2012-03-12 83 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)修复换行符。