我测试了user714695的建议:通过在字符串中间按Enter键,可以自动正确放置加号,引号和缩进.
另一方面,据我所知,没有内置的方法可以做到这一点:你想要突出显示一个字符串并自动格式化它以适当地放置换行符.
我最近想解决一个类似的问题,其目标是突出显示一个段落,并在行中的字符数为> = 78个字符时包裹单词(类似于Vim中的’gq’功能).由于我无法立即找到在线执行此操作的方法,因此我决定看一下编写插件是多么容易.事实证明这比我想象的容易得多,所以我想我会发布一些基本的指示,如果你感兴趣的话.
>创建一个新的插件项目
>选择Hello World,Command one开头
>将必要的eclipse库添加到插件依赖项中.右键单击项目,转到PDE Tools,然后“Open Manifest”有一个依赖项选项卡.这是项目概述页面(如果它尚未打开).我添加了org.eclipse.jface.text和org.eclipse.ui.workbench.texteditor.
>编辑SampleHandler.java文件以处理突出显示的文本并将其替换为文档.
>如果单击可从项目概述按钮访问的“播放”按钮,将启动eclipse的新实例,以便您可以测试并与之交互.
>编辑’plugins.xml'(也可以从项目概述页面访问)
>一旦您对插件感到满意,请按照项目概述页面中的导出说明进行操作.如果选择“目录”选项,则会在其中放置一个jar.将此jar添加到您的workspace / .metadata / .plugins /目录或Eclipse查找插件的任何其他路径.
下面是一些非常基本的示例代码,它在Scala中执行自动换行,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;
}
希望这可以帮助