我测试了user714695的建议:通过在字符串中间按Enter键,加号,引号和缩进自动正确放置。
此帖子Eclipse Shortcut to Split Long Strings有关于此问题的更多讨论。
在另一方面,据我所知,没有内置的方式做到这一点:你想突出一个字符串,并自动格式化放置换行符和+的恰如其分。
我最近想要解决类似的问题,其目标是突出显示一个段落,并在行中的字符数大于等于78个字符(类似于Vim中的'gq'功能)时将这些字包装起来。由于我无法立即找到在线执行此操作的方法,因此我决定看看编写插件是多么容易。事实证明,这比我想象的要容易得多,所以我想如果你感兴趣的话,我会发布一些基本的指导。
- 创建一个新的插件项目
- 选择的Hello World,命令一个下手
- 添加必要的Eclipse库插件的依赖。右键单击该项目,转到PDE工具,然后选择“Open Manifest”,会出现一个依赖关系选项卡。这是项目概览页面(如果它尚未开放)。我添加了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;
}
希望这有助于