我有一个带问题标记的自定义编辑器.标记在"问题"视图中正确显示图标,位置和文本,问题图标在编辑器的左边缘正确显示.
当我将鼠标悬停在边距中的问题标记图标上时,我想在弹出窗口中显示相同的错误消息文本,就像在Java编辑器中一样.现在没有弹出窗口.
有没有一种简单的方法来实现这一目标?
答案:
好吧,它看起来并不像标记系统中内置的功能.似乎已经提交了一个补丁,所以它可能会在以后的版本中添加,但在此之前它也很容易手工创建.
IAnnotationHover和实现的类getHoverInfo().getAnnotationHover()方法中返回类SourceViewerConfiguration.getHoverInfo()方法中,调用ISourceViewer.getAnnotationModel().getAnnotationIterator()以获取所有标记.我试图检查一个值是否等于+或 - 2是另一个值.
这就是我遇到的.
for (int lineNumber : errorLineList) {
if (lineNumber == startLineNumber
|| lineNumber == (startLineNumber + 1)
|| lineNumber == (startLineNumber + 2)
|| lineNumber == (startLineNumber - 1)
|| lineNumber == (startLineNumber - 2)) {
lineFound = true;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
但是如果我想要容差为5,那么我必须添加10个检查.
在java中有没有其他优雅的方法来做到这一点.
我对SQL有一些了解,但在Oracle中却是一个完整的新手.以下sql语句将在SQL Server中正确执行.但这不会在Oracle中执行并引发错误.
select Field1, * from Table1 where SomeField = 0
Run Code Online (Sandbox Code Playgroud)
请告诉我们如何在Oracle中执行类似的声明.收到的错误如下:
ORA-00936: missing expression
00936. 00000 - "missing expression"
Run Code Online (Sandbox Code Playgroud) 我想用jdt列出java项目中的所有文件,包括jsps,xml文件等.
我尝试了下面的代码,但它只返回java资源(包括类文件,我不需要).
List<String> resourceNames = new ArrayList<String>();
IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
for (IProject project : projects) {
if (project.isOpen() && project.isNatureEnabled(JavaCore.NATURE_ID)) {
for (IResource resource : project.members()) {
resourceNames.add(resource.getName() + "-" + resource.getFullPath().toString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我正确的方向.