我想将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不会调用,并出现一个对话框,说明没有可用的快速修复. …
Ubuntu在启动时播放几个声音文件.当一个人遇到这样的噪音会分散其他人的注意力时,这些声音效果会变得烦人.什么是禁用Ubuntu启动和用户登录时播放的两个声音文件的最简单方法?有没有办法在启动时自动静音系统音量?
我想编写一个Eclipse插件,将项添加到Eclipse JDT中的Refactor菜单中?我怎样才能做到这一点?
非常感谢
我正在寻找Java用于序列化对象的格式.默认序列化以二进制格式序列化对象.特别是,我很想知道程序的两次运行是否可以不同地序列化同一个对象.
对象应该满足什么条件,以便对象在Java的默认序列化/反序列化往返中保持其行为?
我想替换我的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文件中找不到该类时才进行咨询?
我正在使用Xtext来定义我的 DSL。Xtext 生成一个解析器,让我遍历输入 DSL 的 EMF 模型。我想将此 EMF 模型转换为其他树。为了做这个翻译,我需要遍历树。但是,我找不到 Xtext 生成的 EMF 模型的访问者类。我发现的最接近的东西是访问单个节点的 Switch 类。我可以自己遍历 EMF 模型并在我访问的每个节点上调用 Switch 类。但是,我想知道 Xtext 中是否存在实现模型遍历的访问者功能。
我知道Z3无法检查包含递归函数的公式的可满足性.但是,我想知道Z3是否可以在有界数据结构上处理这样的公式.例如,我在我的Z3程序中定义了一个长度最多为2的列表,并且调用了一个函数last来返回列表的最后一个元素.但是,当要求检查包含的公式的可满足性时,Z3不会终止last.
有没有办法在Z3中使用有界列表上的递归函数?
问题:
arules包的先验函数从输入事务中推断出关联规则,并报告每个规则的支持,置信度和提升.关联规则源自频繁项集.我想在输入事务中获得最频繁的项目集.具体来说,我想获得具有给定最小支持的所有项目集.itemset的支持是包含itemset的事务数与事务总数的比率.
要求:
itemFrequency提供的功能.不幸的是,此功能仅使用单个项目报告项目集.我对所有长度的项目集感兴趣,并且支持率最低.示例输入:
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) 我正在使用在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文件的问题.
什么线索我做错了什么?
eclipse ×4
java ×3
z3 ×2
apriori ×1
associations ×1
audio ×1
classpath ×1
dsl ×1
eclipse-emf ×1
eclipse-jdt ×1
fonts ×1
latex ×1
r ×1
refactoring ×1
smt ×1
tex ×1
ubuntu ×1
xetex ×1
xtext ×1