2012-03-12 77 views
3

有沒有一種方法可以使eclipse與b一致,每行長度爲120? 我無法配置代碼格式化程序來包裝行。這真的讓我發瘋......如何強制eclipse包裝該行?

public class Position { 
    public static void i() { 
     error("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); 

    } 

    private static void error(String string) { 
     // TODO Auto-generated method stub 

    } 
} 

回答

3

不,eclipse不會拆分字符串。如果你把光標放在字符串的某個位置,按回車也許你想要。

0

看來,格式化或清理不解決這個問題,但對於字符串「自動換行」的偏好,可以在使用插入字符串時...只需鍵入關鍵字,如「字符串」首選項窗口的頂部。

4

我測試了user714695的建議:通過在字符串中間按Enter鍵,加號,引號和縮進自動正確放置。

此帖子Eclipse Shortcut to Split Long Strings有關於此問題的更多討論。

在另一方面,據我所知,沒有內置的方式做到這一點:你想突出一個字符串,並自動格式化放置換行符和+的恰如其分。

我最近想要解決類似的問題,其目標是突出顯示一個段落,並在行中的字符數大於等於78個字符(類似於Vim中的'gq'功能)時將這些字包裝起來。由於我無法立即找到在線執行此操作的方法,因此我決定看看編寫插件是多麼容易。事實證明,這比我想象的要容易得多,所以我想如果你感興趣的話,我會發布一些基本的指導。

  1. 創建一個新的插件項目
  2. 選擇的Hello World,命令一個下手
  3. 添加必要的Eclipse庫插件的依賴。右鍵單擊該項目,轉到PDE工具,然後選擇「Open Manifest」,會出現一個依賴關係選項卡。這是項目概覽頁面(如果它尚未開放)。我添加了org.eclipse.jface.text和org.eclipse.ui.workbench.texteditor。
  4. 編輯SampleHandler.java文件來處理突出顯示的文本,並在文檔中替換它。
  5. 如果您單擊從項目概況按鈕進入「播放」按鈕,Eclipse的新實例將啓動,所以你可以測試並與之交互。
  6. 編輯「plugins.xml」(也從項目概述頁面訪問)
  7. 一旦您滿意的插件,按照說明在項目概述頁面導出。如果你選擇'目錄'選項,一個罐子將被放置在那裏。這個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; 
} 

希望這有助於

0

你也許能夠做到你想要使用什麼搜索/替換(按Ctrl + ˚F)使用正則表達式。應該有一些方法來捕獲字符串的前N個字符和單獨捕獲組中的字符串的其餘部分,然後在替換字段中的這些組之間插入"+"。我不是一個正則表達式大師了,所以很遺憾我無法提供妙方......

一旦你的字符串常量拆分,可以使用代碼格式化(按Ctrl ++˚F)修復換行符。