小编rep*_*mer的帖子

如何为自定义Java标记添加Eclipse Quick Fix?

我想将Eclipse文件的自定义问题报告给Eclipse的Problems View,并为它们提供快速修复.

标准方法是使用扩展点org.eclipse.core.resources.markers声明自定义标记并通过调用添加标记org.eclipse.core.resources.IResource.createMarker(String).然后,可以使用扩展点org.eclipse.ui.ide.markerResolution为自定义标记提供快速修复.

上述方法是一种与语言无关的创建和解析资源标记的方法.缺点是我必须编写一些样板代码来解决我的自定义Java问题.相反,我想重用IQuickFixProcessor.也就是说,我想使用扩展点解析我的自定义Java标记org.eclipse.jdt.ui.quickFixProcessors.使用此扩展点,我不再需要解析找到标记的Java文件,我不必构建绑定并找到覆盖标记的AST节点.如果我不重用org.eclipse.jdt.internal.ui.text.correction.CorrectionMarkerResolutionGenerator它及其依赖项,我最终会复制它的大部分内容.

如何使用JDT基础结构为我的自定义Java标记提供快速修复?

尝试1:

我将自定义标记定义如下:

<extension
  id="custom.marker"
  name="Custom Java Problem"
  point="org.eclipse.core.resources.markers">
    <super type="org.eclipse.jdt.core.problem"/>
    <super type="org.eclipse.core.resources.problemmarker"/>
    <super type="org.eclipse.core.resources.textmarker"/>
    <persistent value="true"/>
</extension>
Run Code Online (Sandbox Code Playgroud)

然后,我通过调用方法添加了上述标记的实例IResource.createMarker("custom.marker").

接下来,我定义了一个自定义Quick Fix处理器.

<extension
  point="org.eclipse.jdt.ui.quickFixProcessors">
  <quickFixProcessor
    class="quickfixes.CustomQuickFixProcessor"
    id="quickfixes.quickFixProcessor">
  </quickFixProcessor>
</extension>
Run Code Online (Sandbox Code Playgroud)

我的自定义标记出现在Eclipse的Problems View中,但是当我右键单击自定义问题时,Quick Fix菜单项被禁用.

尝试2:

我重申IMarker marker = resource.createMarker("custom.marker");IMarker marker = resource.createMarker(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER);.作为此更改的结果,当我右键单击"问题视图"中的自定义问题时,"快速修复"菜单项变为可用,但是,当我选择它时,会弹出一个对话框,指出没有可用的选项问题.但是,我验证了CustomQuickFixProcessor.hasCorrections(ICompilationUnit, int)调用并返回true,但是,CustomQuickFixProcessor.getCorrections(IInvocationContext, IProblemLocation[])没有被调用.

尝试3:

尝试3是尝试2的延续.我IJavaModelMarker.ID按如下方式设置自定义标记:

marker.setAttribute(IJavaModelMarker.ID, IProblem.ExternalProblemFixable);
Run Code Online (Sandbox Code Playgroud)

因此,CustomQuickFixProcessor.getCorrections当我将鼠标悬停在编辑器中的自定义标记上时,或者单击Java编辑器左边缘的灯光构建时,会调用它.但是,当我在"问题视图"中选择标记时,右键单击标记,然后选择"快速修复"菜单项,CustomQuickFixProcessor.getCorrections不会调用,并出现一个对话框,说明没有可用的快速修复. …

java eclipse eclipse-jdt

14
推荐指数
2
解决办法
2427
查看次数

如何在Ubuntu启动时禁用声音效果?

Ubuntu在启动时播放几个声音文件.当一个人遇到这样的噪音会分散其他人的注意力时,这些声音效果会变得烦人.什么是禁用Ubuntu启动和用户登录时播放的两个声音文件的最简单方法?有没有办法在启动时自动静音系统音量?

audio ubuntu

8
推荐指数
3
解决办法
1万
查看次数

在Eclipse中添加菜单项

我想编写一个Eclipse插件,将项添加到Eclipse JDT中的Refactor菜单中?我怎样才能做到这一点?

非常感谢

eclipse refactoring

8
推荐指数
1
解决办法
1254
查看次数

Java的序列化对象表示

我正在寻找Java用于序列化对象的格式.默认序列化以二进制格式序列化对象.特别是,我很想知道程序的两次运行是否可以不同地序列化同一个对象.

对象应该满足什么条件,以便对象在Java的默认序列化/反序列化往返中保持其行为?

java serialization deterministic

7
推荐指数
2
解决办法
1045
查看次数

如何配置Eclipse插件的bootstrap类路径?

我想替换我的Eclipse插件所依赖的一些类(javax.tools.*)rt.jar依赖于我自己的这些类的版本.rt.jar通常通过设置bootclasspath来替换类.我的问题是如何在Eclipse插件中执行此操作.

我创建了这些类的版本的JAR文件,并将其添加到Bundle-ClassPath的属性MANIFEST.MF,该bin.includes属性build.properties,和.classpath.我还将我的JAR文件的路径输入到Eclipse Application启动配置对话框的名为"Bootstrap entries:"的字段中,并将我的JAR移动到"Project Properties> Build Path"的"Order and Export"选项卡中的顶部.尽管如此,当我使用Eclipse Application启动配置运行Eclipse插件时,插件使用原始类rt.jar而不是我的JAR文件中的类.

我如何配置我的Eclipse插件,以便它首先查找我的JAR文件中的类,并且rt.jar仅在我的JAR文件中找不到该类时才进行咨询?

java eclipse classpath bootclasspath

6
推荐指数
1
解决办法
3万
查看次数

如何遍历 Xtext 生成的 EMF 对象树?

我正在使用Xtext来定义我的 DSL。Xtext 生成一个解析器,让我遍历输入 DSL 的 EMF 模型。我想将此 EMF 模型转换为其他树。为了做这个翻译,我需要遍历树。但是,我找不到 Xtext 生成的 EMF 模型的访问者类。我发现的最接近的东西是访问单个节点的 Switch 类。我可以自己遍历 EMF 模型并在我访问的每个节点上调用 Switch 类。但是,我想知道 Xtext 中是否存在实现模型遍历的访问者功能。

eclipse dsl xtext eclipse-emf

5
推荐指数
1
解决办法
3908
查看次数

Z3可以检查有界数据结构上递归函数的可满足性吗?

我知道Z3无法检查包含递归函数的公式的可满足性.但是,我想知道Z3是否可以在有界数据结构上处理这样的公式.例如,我在我的Z3程序中定义了一个长度最多为2的列表,并且调用了一个函数last来返回列表的最后一个元素.但是,当要求检查包含的公式的可满足性时,Z3不会终止last.

有没有办法在Z3中使用有界列表上的递归函数?

z3

5
推荐指数
1
解决办法
1255
查看次数

如何从R中的apriori调用中获取常用项集的频率?

问题:

arules包的先验函数从输入事务中推断出关联规则,并报告每个规则的支持,置信度提升.关联规则源自频繁项集.我想在输入事务中获得最频繁的项目集.具体来说,我想获得具有给定最小支持的所有项目集.itemset的支持是包含itemset的事务数与事务总数的比率.

要求:

  1. 我非常希望从apriori函数的中间结果中找到最频繁的项集.也就是说,我宁愿不从头开始编写程序来计算最频繁的项集,因为apriori函数已经将它计算为中间步骤.尽管如此,如果确实没有合理的方式来访问先验函数的中间结果,我会对其他解决方案持开放态度.
  2. 我宁愿不对apriori函数的结果进行字符串操作,因为这种方法太依赖于apriori函数结果的字符串表示.再说一次,如果事实证明没有更好的选择,我可以采用这种方法.
  3. 我知道arulesitemFrequency提供的功能.不幸的是,此功能仅使用单个项目报告项目集.我对所有长度的项目集感兴趣,并且支持率最低.
  4. 我希望输出按数字支持排序,然后按字典顺序按项目集排序.

示例输入:

a,b
a,b,c
Run Code Online (Sandbox Code Playgroud)

程序:

# The following is how I'm using apriori to infer the association rules.
library(package = "arules")
transactions = read.transactions(file = file("stdin"), format = "basket", sep = ",")
rules = apriori(transactions, parameter = list(minlen=1, sup = 0.001, conf = 0.001))
WRITE(rules, file = "", sep = ",", …
Run Code Online (Sandbox Code Playgroud)

r associations apriori

5
推荐指数
1
解决办法
7145
查看次数

TeX字体映射

我正在使用在XeLaTeX上编写的包.此软件包使用fontspec为文本的不同部分指定字体:拉丁语,非拉丁语,数学模式,...

该软件包附带了几个示例文件.我能够xelatex大多数依赖于常规ttf或otf文件.但是,其中一个尝试将数学模式中的数字字体设置为某种字体,例如"NonLatin Digits".但是,字体似乎不是常规字体.同一目录中有两个文件名为"nonlatindigits.map"和"nonlatindigits.tec".TECkit使用这些映射文件生成TeX字体.但是,由于某种原因,它无法创建文件,并且xelatex发出以下错误消息.

 kpathsea: Invalid fontname `NonLatin Digits', contains ' '

 ! Font \zf@basefont="NonLatin Digits" at 10.0pt not loadable: Metric (TFM) file or
 installed font not found.
Run Code Online (Sandbox Code Playgroud)

kpathsea程序抱怨空格,但删除空格确实解决了加载TFM文件的问题.

什么线索我做错了什么?

fonts latex tex xetex

4
推荐指数
1
解决办法
5930
查看次数

Z3可以检查包含递归函数的公式的可满足性吗?

我正在尝试一些涉及递归函数的Z3教程的例子.我试过以下例子.

  1. 斐波纳契(第8.3节)
  2. IsNat(第8.3节)
  3. 归纳法(第10.5节)

Z3超过了上述所有示例.但是,该教程似乎意味着只有Inductive是非终结的.

Z3可以检查包含递归函数的公式的可满足性,还是无法处理任何归纳事实?

smt z3

4
推荐指数
1
解决办法
1544
查看次数