我測試了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;
}
希望這有助於