gpt4 book ai didi

java - 禁止复制和粘贴,有没有办法共享 Java 细节格式化程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:58 26 4
gpt4 key购买 nike

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

随之而来 Detail Formatters挽回局面。欢呼!但只是的一天。如果我想与其他开发人员分享快乐,我想我必须像他们一样进行一些复制和粘贴。

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

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

我设法至少跟踪了 /workspace/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.dbug.ui.prefs 的一些设置,但有理由相信它不仅如此。此外,一想到要将隐藏文件夹中深埋的内容放入源代码管理中,我就紧张不已。

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

编辑:我使用的是 Helios,Service Release 1,build id 20100917-0705。


除了 javaLogicalStructures 扩展点(用于向给定类添加逻辑结构)之外,还有一个名为 detailPaneFactories 的扩展点。但这是为了创建细节格式化程序呈现到的文本(或任何东西,感谢这个扩展点)的 Pane 。两者都不允许扩展程序列出现有的详细格式化程序(或与此相关的逻辑结构)。

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). 

computeDetail sounds promising. I'll keep ya posted (unless someone else beats me to it... hurray bounties).

Hmm... org.eclipse.jdt.debug.ui.JavaDebugUtils.getPreferenceStore() sounds promising, but I'd still rather not write a plugin for this myself.

Ah... well. Here's the code org.eclipse.jdt.internal.debug.ui.JavaDetailFormattersManager uses to load them:

    /**
* 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));
}
}

因此首选项存储中的字符串只是一堆 CSV,其中包含类型名称、片段、启用、类型名称...在片段中将\u0000 替换为 , 就可以了。

它处理导出(该死,你可以直接转储整个 pig 的首选项字符串)。

导入不会更难,但最好不要覆盖现有类型,或者让用户选择这样做,甚至可能存在两个有问题的片段的差异。

OTOH,我真的宁愿不依赖*.internal.*中类的内部工作。

最佳答案

来自Eclipse 3.8 and 4.2 M5 - New and Noteworthy :

Detail formatters can now be exported as separate preferences.
Previously the only way to share detail formatters was to export all of your workspace settings.

detail formatter export

这将关闭 bug 224815 Brian De Alwis提到在 his answer :
“使详细信息格式化程序可导出”(使用 that patch )

关于java - 禁止复制和粘贴,有没有办法共享 Java 细节格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5278419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com