这是一个专门针对Eclipse平台的插件开发的问题:
我想在右键单击一种IMarker时显示的默认菜单中添加一个菜单项(所有标记都是一个好的开始).
我在实现IMarkerResolution并在我的plugin.xml中引用它时取得了一些成功
<extension point="org.eclipse.ui.ide.markerResolution">
<markerResolutionGenerator
markerType="my.stuff.mymarker"
class="my.stuff.MyResolutionGenerator">
</markerResolutionGenerator>
</extension>
Run Code Online (Sandbox Code Playgroud)
但不是通过eclipse快速修复功能访问我的代码,我想添加自己的菜单文本而不是"快速修复",而不必显示快速修复选项旁边的操作.通过(双击)标记来运行动作也是非常有用的.
我正在使用eclipse 3.5.2来完成我当前的项目.
提前致谢!
更新我已解决此问题:
<extension point="org.eclipse.ui.menus">
<menuContribution
class="my.stuff.MarkerContributionFactory"
locationURI="popup:#AbstractTextEditorRulerContext?after=additions">
<dynamic
class="my.stuff.MarkerMenuContribution"
id="my.stuff.MarkerMenuContribution">
</dynamic>
</menuContribution>
</extension>
public class MarkerContributionFactory extends ExtensionContributionFactory{
@Override
public void createContributionItems(IServiceLocator serviceLocator, IContributionRoot additions){
ITextEditor editor = (ITextEditor)
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
additions.addContributionItem(new MarkerMenuContribution(editor), null);
}
}
public class MarkerMenuContribution extends ContributionItem{
private ITextEditor editor;
private IVerticalRulerInfo rulerInfo;
private List<IMarker> markers;
public MarkerMenuContribution(ITextEditor editor){
this.editor = editor;
this.rulerInfo = getRulerInfo();
this.markers = getMarkers();
}
private IVerticalRulerInfo getRulerInfo(){
return …Run Code Online (Sandbox Code Playgroud) 我正在尝试应用阅读Java Concurrency In Practice中的经验教训,以声明我编写的类是线程安全的还是包含非同步的可变状态.我认为这是一个好主意,因为它记录了如何使用类的意图.
今天,我编写了一个包装java.lang.Class和java.net.URI实例的类.我正准备在javadoc中写入它是线程安全不可变的,因为这两个字段都被声明为最终引用.但是,我查看了URI和Class的源代码,并没有看到它们是否是线程安全的任何声明,并且它似乎并不是很明显.
更普遍地考虑这个问题:是否有一个常见的java类列表,说明它们是否是线程安全的?
另一方面,由于这个类的使用方式,实例是否严格是线程安全的并不重要,我现在将它标记为"可能是线程安全的".
这是一个专门针对Eclipse平台的插件开发的问题:
我需要实现持久性而不用硬编码我正在使用的数据存储区的名称.我希望能够在我的插件与独立数据存储器同时运行的情况下拥有多个eclipse实例.
这样做的一种方法是使用工作空间的文件路径来生成/查找与该特定工作空间相关的数据存储的名称.
我已经尝试过org.eclipse.core.resources.ResourcesPlugin.getWorkspace(),但这似乎没有办法获得该字符串.
为了避免任何混淆,我知道-data和-showlocation - 我想在运行时在eclipse插件中访问showlocation的文本.
我正在使用eclipse 3.5.2来完成我当前的项目.
提前致谢!
我试图告诉Git忽略我对属性文件所做的更改,以便我不会意外地将它提交到我的git存储库.我在用:
git update-index假设不变[文件]
这给出了输出:
错误:假设 - 未更改:不存在且 - 删除未传递致命:无法处理路径假定 - 未更改
我不知道这个错误消息意味着什么,谷歌似乎已经画了一个空白.上面提到的[file]在存储库中进行了版本控制,并且具有文件系统(未添加到暂存区域)更改.
如何让Git忽略对我的文件的文件系统更改(以便"git add."不会将它添加到暂存区域)?
谢谢!