禁止复制&;粘贴,有没有办法共享Java详细信息格式化程序

禁止复制&;粘贴,有没有办法共享Java详细信息格式化程序,java,eclipse,debugging,version-control,Java,Eclipse,Debugging,Version Control,我们店里有5-10名开发人员使用Java在Eclipse上工作,我们经常调试没有调试友好的toString()的类 来拯救这一天。万岁!但这只是我的一天。如果我想和我的开发伙伴们分享这一喜悦,我想我必须像他们一样进行一些复制和粘贴 那太糟糕了。我们有N个不同的版本控制系统在Eclipse中工作。。。这似乎是人们想要传递的东西 文件->导出中没有任何内容。。。对话通过搜索联机帮助没有任何内容。没什么 我设法至少跟踪了/workspace/.plugins/org.eclipse.core.runt

我们店里有5-10名开发人员使用Java在Eclipse上工作,我们经常调试没有调试友好的
toString()
的类

来拯救这一天。万岁!但这只是我的一天。如果我想和我的开发伙伴们分享这一喜悦,我想我必须像他们一样进行一些复制和粘贴

那太糟糕了。我们有N个不同的版本控制系统在Eclipse中工作。。。这似乎是人们想要传递的东西

文件->导出中没有任何内容。。。对话通过搜索联机帮助没有任何内容。没什么

我设法至少跟踪了
/workspace/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.dbug.ui.prefs
的一些设置,但我有理由相信还有更多。另外,一想到要把隐藏在隐藏文件夹中的东西放到源代码管理中,我就紧张得要命

有没有更好的方法来共享详细信息格式化程序?理想情况下,这将是我们可以检查代码回购并以这种方式传播的东西

编辑:我正在使用Helios,服务版本1,构建id 20100917-0705


除了
javaLogicalStructures
扩展点(用于向给定类添加逻辑结构),还有一个名为
detailPaneFactories
的扩展点。但这是为了创建细节格式化程序呈现到的文本(或其他任何内容,由于这个扩展点)的窗格。两者都不允许扩展程序列出现有的详细信息格式化程序(或逻辑结构)

detailPaneFactories
扩展的底部确实有一些有趣的内容:

Supplied Implementation: The debug platform contributes a detail pane factory providing a default text source viewer detail pane. The default detail pane displays textual details of a selected element based on the corresponding debug model presentation's implementation of computeDetail(IValue value, IValueDetailListener listener). 因此,首选项存储中的字符串只是一组CSV,具有类型名称、代码段、已启用、类型名称。。。在代码段中,将\u0000替换为,就可以开始了

这将处理导出(见鬼,您可以直接转储首选项字符串whole hog)

导入不会困难得多,不过最好不要覆盖现有的类型,或者给用户这样做的选项,即使有两个不同的代码段


OTOH,我真的不想依赖
*.internal.*

中类的内部工作,虽然在首选项导出向导中没有明确的内容,但导出所有内容也会编写详细的格式化程序。只需在输出文件中搜索
/instance/org.eclipse.jdt.debug.ui/org.eclipse.jdt.debug.ui.detail\u格式化程序
,并仅共享这些行

更新:导入程序中似乎存在错误,在导入文件之前,必须删除每行的
/instance/
前缀

或者,由于它们存储在工作区元数据中的属性文件中,因此您可以共享它们(尽管如果只是复制该文件,可能会覆盖其他调试设置):
${workspace}\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jdt.debug.ui.prefs

在这里使用“宏”可能会起到作用

你必须

  • 安装一个插件,让你 录制宏
  • 开始录制宏并使用Eclipse菜单配置详细信息格式化程序
  • 留着吧 某个共享目录上的宏
  • 安装该插件并在其上运行宏 其他开发人员使用的PC

  • 一个这样的插件是:

    这个问题在EclipseBugzilla中作为文件归档。问题是在配置导入/导出首选项传输时忽略了细节格式化程序。如果被接受,修复程序应在1月底到期的3.8/4.2 M6中。

    来自:

    详细信息格式化程序现在可以作为单独的首选项导出
    以前,共享详细信息格式化程序的唯一方法是导出所有工作区设置

    这将关闭中提到的:

    “使详细信息格式化程序可导出”(with)

    不是一个真正的答案,但我看不出共享Eclipse设置有什么错。事实上,强制安装相同的IDE通常是非常有用的。不幸的是,这里过于个人化的工程师喜欢自己的方式。我比一些人年长,但不是所有人。如果没有来自上面的支持,这将永远不会发生。。。见鬼,即使有背后的力量,这样的努力也很容易失败。呸!他们是否意识到他们的机器上可以有多个Eclipse实例我通常为每个项目保留一个,因为需求可能会非常不同。但我知道你的意思,我感觉到了你的痛苦。虽然没有运气。仅仅是
    /instance…
    行本身似乎不会在UI中产生任何更改。但是,如果我再次导出pref,我会得到
    /instance///instance…
    。看起来它被导入了错误的地方。我还试图通过一组现有的详细信息格式化程序来导入它:导出、调整、导入:查找更改。我想我是通过删除行开头的
    /instance/
    位来实现的。。。在我看来,这是进口商的一个错误。
        /**
         * Populate the detail formatters map with data from preferences.
         */
        private void populateDetailFormattersMap() {
                String[] detailFormattersList= JavaDebugOptionsManager.parseList(JDIDebugUIPlugin.getDefault().getPreferenceStore().getString(IJDIPreferencesConstants.PREF_DETAIL_FORMATTERS_LIST));
                fDetailFormattersMap= new HashMap(detailFormattersList.length / 3);
                for (int i= 0, length= detailFormattersList.length; i < length;) {
                        String typeName= detailFormattersList[i++];
                        String snippet= detailFormattersList[i++].replace('\u0000', ',');
                        boolean enabled= ! JavaDetailFormattersPreferencePage.DETAIL_FORMATTER_IS_DISABLED.equals(detailFormattersList[i++]);
                        fDetailFormattersMap.put(typeName, new DetailFormatter(typeName, snippet, enabled));
                }
        }