如何强制Eclipse换行



有没有一种方法可以让Eclipse将带有b的行包装成每行120的长度?我无法将代码格式化程序配置为换行。这真的让我抓狂。。。

public class Position {
    public static void i() {
        error("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
    }
    private static void error(String string) {
        // TODO Auto-generated method stub
    }
}

我测试了用户714695的建议:通过在字符串中间按回车键,加号、引号和缩进会自动正确放置。

这个Eclipse后的拆分长字符串的快捷方式对这个问题有更多的讨论。

另一方面,据我所知,没有内置的方法可以做到这一点:你想突出显示一个字符串,并自动格式化它,以适当地放置换行符和+。

我最近想解决一个类似的问题,目标是当行中的字符数>=78个字符时,突出显示一段并包装单词(类似于Vim中的"gq"功能)。由于我无法立即在网上找到这样做的方法,我决定看看写一个插件有多容易。结果比我想象的要容易得多,所以我想如果你感兴趣的话,我会发布一些基本的说明。

  1. 创建一个新的插件项目
  2. 选择Hello World,命令一开始
  3. 将必要的eclipse库添加到插件依赖项中。右键单击项目,转到PDE工具,然后"打开清单"有一个依赖项选项卡。这是项目概述页面(如果尚未为您打开)。我添加了org.eclipse.jface.text和org.eclipse.ui.workbench.texteditor
  4. 编辑SampleHandler.java文件以处理高亮显示的文本并将其替换在文档中
  5. 如果您单击可从项目概述按钮访问的"播放"按钮,将启动eclipse的一个新实例,以便您可以对其进行测试和交互
  6. 编辑"plugins.xml"(也可从项目概述页面访问)
  7. 一旦您对该插件感到满意,请按照项目概述页面中的导出说明进行操作。如果您选择"目录"选项,则会在其中放置一个罐子。将这个jar添加到您的工作区/.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;
}

希望这能帮助

不,eclipse不会分割字符串。如果您将光标放在字符串中的某个位置,然后按enter键,可能确实需要。

格式化程序或清理程序似乎不会解决这个问题,但首选字符串"自动换行",它可以在插入字符串时使用。。。只需在首选项窗口的顶部键入一个类似"字符串"的关键字。

您可以使用带有正则表达式的搜索/替换(Ctrl+f)来执行您想要的操作。应该有一些方法可以在单独的捕获组中捕获字符串的前N个字符和字符串的其余部分,然后在替换字段中的这些组之间插入"+"。不过,我不是正则表达式专家,所以不幸的是,我无法提供神奇的公式。。。

字符串常量拆分后,可以使用代码格式(Ctrl+Shift+F

最新更新