有没有办法让 Eclipse 将带有 b 的行换行至每行 120 的长度?
我无法配置代码格式化程序来换行。这真的让我抓狂...
public class Position {
public static void i() {
error("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
}
private static void error(String string) {
// TODO Auto-generated method stub
}
}
我测试了 user714695 的建议:通过在字符串中间按 Enter,加号、引号和缩进会自动正确放置。
这个帖子Eclipse 分割长字符串的快捷方式 https://stackoverflow.com/questions/257251/eclipse-shortcut-to-split-long-strings对这个问题有更多的讨论。
另一方面,据我所知,没有内置的方法可以做到这一点:您想要突出显示一个字符串并自动设置其格式以适当地放置换行符和 +。
我最近想解决一个类似的问题,目标是突出显示一个段落并在行中的字符数 >= 78 个字符时换行(类似于 Vim 中的“gq”功能)。由于我无法立即找到在线执行此操作的方法,因此我决定看看编写插件有多么容易。事实证明这比我想象的要容易得多,所以如果您对此感兴趣,我想我会发布一些基本说明。
- 创建一个新的插件项目
- 选择 Hello World, Command 开始
- 将必要的 eclipse 库添加到插件依赖项中。右键单击该项目,转到 PDE 工具,然后“打开清单”,其中有一个依赖项选项卡。这是项目概述页面(如果尚未为您打开)。我添加了 org.eclipse.jface.text 和 org.eclipse.ui.workbench.texteditor。
- 编辑 SampleHandler.java 文件以处理突出显示的文本并将其替换到文档中。
- 如果单击“项目概述”按钮中的“播放”按钮,将启动一个新的 Eclipse 实例,以便您可以测试它并与之交互。
- 编辑“plugins.xml”(也可以从项目概述页面访问)
- 一旦您对插件感到满意,请按照项目概述页面中的导出说明进行操作。如果您选择“目录”选项,则会在其中放置一个罐子。将此 jar 添加到您的工作区/.metadata/.plugins/ 目录或 Eclipse 查找插件的任何其他路径。
下面是一些非常基本在 Scala(我用来编写 SampleHandler 的语言)中进行自动换行的示例代码。重点在于“执行”函数:
def execute(event: ExecutionEvent ): Object = {
val window = HandlerUtil.getActiveWorkbenchWindowChecked(event)
val editorPart = window.getActivePage().getActiveEditor()
var offset = 0
var length = 0
var selectedText = ""
val iSelection = editorPart.getEditorSite().getSelectionProvider().getSelection()
val selection = iSelection.asInstanceOf[ITextSelection]
offset = selection.getOffset()
if (!iSelection.isEmpty()) {
selectedText = selection.getText()
}
length = selection.getLength()
val editor = editorPart.asInstanceOf[ITextEditor]
val dp = editor.getDocumentProvider()
val doc = dp.getDocument(editor.getEditorInput())
val words = selectedText.split("""\s+""")
var wrapped = ""
var linesize = 0
words.foreach{ w =>
if(linesize+w.size >= 78) {
wrapped += "\n"
linesize = 0
}
wrapped += w + " "
linesize += w.size + 1
}
doc.replace(offset,length,wrapped)
return null;
}
希望这可以帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)