如何强制 Eclipse 换行? [复制]

2023-12-24

有没有办法让 Eclipse 将带有 b 的行换行至每行 120 的长度? 我无法配置代码格式化程序来换行。这真的让我抓狂...

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

    }

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

    }
}

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

这个帖子Eclipse 分割长字符串的快捷方式 https://stackoverflow.com/questions/257251/eclipse-shortcut-to-split-long-strings对这个问题有更多的讨论。

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

我最近想解决一个类似的问题,目标是突出显示一个段落并在行中的字符数 >= 78 个字符时换行(类似于 Vim 中的“gq”功能)。由于我无法立即找到在线执行此操作的方法,因此我决定看看编写插件有多么容易。事实证明这比我想象的要容易得多,所以如果您对此感兴趣,我想我会发布一些基本说明。

  1. 创建一个新的插件项目
  2. 选择 Hello World, Command 开始
  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(我用来编写 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;
}

希望这可以帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何强制 Eclipse 换行? [复制] 的相关文章

  • createImage(int width, int height) 的问题

    我有以下代码 作为游戏的一部分每 10 毫秒运行一次 private void gameRender if dbImage null createImage returns null if GraphicsEnvironment isHea
  • 如何在Eclipse中集成CSS预处理? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在 Eclipse 中编辑 SCSS 文件 最好使用语法突出显示 scss files 我发现这些资
  • Spring Security 自定义过滤器

    我想自定义 Spring security 3 0 5 并将登录 URL 更改为 login 而不是 j spring security check 我需要做的是允许登录 目录并保护 admin report html 页面 首先 我使用教
  • Spring RestTemplate 使用 cookie 遵循重定向

    最近我遇到了一个问题 我需要做一个GET请求远程服务 我假设使用一个简单的 servlet 并且 RestTemplate 返回Too many redirects 经过一番调查 似乎对指定远程服务发出的第一个请求实际上只是一个 302 重
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • 如何在代理后面安装 Eclipse Neon

    对于 Neon Eclipse 附带了一个安装程序 我在安装程序中找不到任何配置菜单 我的java版本是 java version java version 1 8 0 72 Java TM SE Runtime Environment b
  • 如何根据运行的 jar 的结果让我的 ant 任务通过或失败?

    我正在运行 CrossCheck 无浏览器 js 单元测试 作为 ant 脚本的一部分 如果 CrossCheck 测试失败 我希望 ant 报告失败 这是 build xml 中的相关部分
  • 来自十六进制代码的 Apache POI XSSFColor

    我想将单元格的前景色设置为十六进制代码中的给定颜色 例如 当我尝试将其设置为红色时 style setFillForegroundColor new XSSFColor Color decode FF0000 getIndexed 无论我在
  • 自动生成Flyway的迁移SQL

    当通过 Java 代码添加新模型 字段等时 JPA Hibernate 的自动模式生成是否可以生成新的 Flyway 迁移 捕获自动生成的 SQL 并将其直接保存到新的 Flyway 迁移中 以供审查 编辑 提交到项目存储库 这将很有用 预
  • 是否可以通过编程方式查找 logback 日志文件?

    自动附加日志文件以支持电子邮件会很有用 我可以以编程方式设置路径 如以编程方式设置 Logback Appender 路径 https stackoverflow com questions 3803184 setting logback
  • 套接字的读写如何同步?

    我们创建一个套接字 在套接字的一侧有一个 服务器 在另一侧有一个 客户端 服务器和客户端都可以向套接字写入和读取 这是我的理解 我不明白以下事情 如果服务器从套接字读取数据 它在套接字中是否只看到客户端写入套接字的内容 我的意思是 如果服务
  • Java实现累加器类,提供Collector

    A Collector具有三种通用类型 public interface Collector
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • Spring-ws:如何从没有“Request”元素的 xsd 创建 Wsdl

    尝试为客户端实现 SOAP Web 服务 我需要一个 wsdl 文件来通过soapUI 测试该服务 但正如您在下面看到的 这个 xsd 没有 Request 和 Response 方法 所有请求和响应都被定义为基本 ServiceProvi
  • Resteasy 可以查看 JAX-RS 方法的参数类型吗?

    我们使用 Resteasy 3 0 9 作为 JAX RS Web 服务 最近切换到 3 0 19 我们开始看到很多RESTEASY002142 Multiple resource methods match request警告 例如 我们
  • 使用按钮作为列表的渲染器

    我想使用一个更复杂的渲染器 其中包含列表的多个组件 更准确地说 类似于this https stackoverflow com questions 10840498 java swing 1 6 textinput like firefox
  • OpenCSV:将嵌套 Bean 映射到 CSV 文件

    我正在尝试将 bean 映射到 CSV 文件 但问题是我的 bean 具有其他嵌套 bean 作为属性 所发生的情况是 OpenCSV 遍历属性找到一个 bean 然后进入其中并映射该 bean 内的所有数据 如果找到另一个 bean 它就
  • stm32l0: 执行MI命令失败。使用 vFlashErase 数据包擦除闪存时出错

    我正在使用 Nucleo STM32L031 和 AC6 STM32 工作台 eclipse 我编写应用程序并进入调试模式 一切正常 直到我在应用程序中添加另一个功能 我注意到当我删除 评论 新函数 软件可以再次进入调试模式 但是当我添加
  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复

随机推荐

  • rsync .git 目录

    这个问题可能是因为我对 gits 和 git 存储库的一般作用缺乏了解 但是 我可以将目录与我创建的内容同步吗git init机器之间 我的笔记本电脑上有一个存储库 将其从那里获取的唯一方法是 scp rsync 到远程主机 我可以从中再次
  • 在 C 中将字母转换为数字

    我正在尝试编写一个将字母转换为数字的代码 例如 一个 gt 0 B gt 1 C gt 2 等等 我正在考虑编写 26 个 if 语句 我想知道是否有更好的方法来做到这一点 谢谢你 这是我觉得比以前更好的方式switch方法 但符合标准 不
  • 函数无法处理较大的 n 值(接近 400)

    这是来自一个统计项目 我定义了下面的函数 但是当 n 接近 400 时 第二个方法很慢 第一个方法很好 这里有些人帮助了我在这个问题中 https stackoverflow com questions 32608913 how to op
  • 使用libxml2 sax解析器时如何从xml中获取属性的名称和值?

    我一直试图通过使用 libxml2 解析 iPhone 应用程序上的 api 来检测一些通用 xml 中属性的名称和值对 对于我的项目来说 解析速度非常重要 所以我决定使用 libxml2 本身而不是使用 NSXMLParser 现在 参考
  • ubuntu 中的 libc 还是 glibc?

    我对这些库有点困惑 我现在在 Ubuntu 上工作 我使用 g 5 我看到我的应用程序链接在 libc so 中 它是Ubuntu的C标准库的实现吗 和glibc有区别吗 ldd application exe libc so 6 gt l
  • 分离实体和延迟加载字段 - 工作线程

    我有以下问题 A 类从数据库中检索一些对象 这些对象本身就是可运行的 并在线程池中运行它们 它们需要在运行时更新其状态 它们更新在其上注册的侦听器 问题是它们在实体处于分离状态时访问延迟加载的字段 因为事务仅覆盖主线程 所以当然有例外 调用
  • 如何使用Serde解析多种不同类型的YAML文件? [复制]

    这个问题在这里已经有答案了 我正在尝试解析这个 YAML 文件 application build something container name another thing environment ONE ENV fake SEC EN
  • 如何加速rbind?

    我应该从 MS SQL 服务器下载一个表 行数大于600万 服务器无法一次返回全部数据 因此 我编写了一次下载 10 000 行的代码 并且 它在循环中绑定行 假使 假设getData 函数一次返回一个包含 10000 行的数据框 伪代码
  • 更改 NSButton 突出显示的背景颜色

    我有一个 NSButton 我希望在突出显示时和不突出显示时具有不同的背景颜色 不突出显示时透明 如果这有什么区别 目前 我有以下代码 view setWantsLayer YES NSButton button NSButton allo
  • 使用 JSF、JDBC 和 HttpServlet 搜索和检索 dataTable 中的数据 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 以下是我的代码 我的豆子 impor
  • 无法重现keycloak直接裸冒

    经过一番努力 我还是无法重现直接裸冒OIDC的功能 refs https www keycloak org docs latest securing apps direct naked impersonation https www key
  • java - 使用数组调用 PL/SQL 存储过程

    我有一个类似于以下内容的 PL SQL 存储过程 我需要在 Java 中调用它 TYPE AssocArrayVarchar20 t is table of VARCHAR2 20 index by BINARY INTEGER TYPE
  • std::map 与 std::pair 键,其中对元素没有顺序重要性

    正如问题所说 我需要以这种方式使用 std map std map
  • GridLayout的rowOrderPreserved和columnOrderPreserved

    有人可以解释一下吗GridLayout s rowOrderPreserved and columnOrderPreserved mean 我不明白这些文档 将值设置为 true 或 false 有什么区别 插图会很有帮助 考虑下面的代码G
  • Windows Media Foundation 使用 IMFTransform 将 mp4 电影帧解码为 2D 纹理

    我正在尝试使用 Windows Media Foundation 类解码 mp4 视频 并将帧转换为可由 DirectX 着色器用于渲染的 2D 纹理 我已经能够使用读取源流MF从URL创建SourceReader并能够读取具有主要类型的流
  • 在 Linux 上以编程方式在启动时运行?

    如何以编程方式设置 Linux 上的可执行文件在用户登录时运行 基本上相当于HKCU Software Microsoft Windows CurrentVersion RunWindows 中的注册表项 对于 Linux 上的 gnome
  • 如何阻止maven解析本地存储库中的依赖关系

    有没有办法告诉maven 当做MVN包 mvn site或者 不从本地存储库解析依赖项 这个问题的背景 有时 当以前缓存的依赖项 例如 SomeProject 0 7 ALPHA 在远程存储库中不再可用时 我会遇到问题 在我的本地构建中 一
  • 删除mysql表中N条旧记录

    我有一个登录时间像这样的表 id user id datetime 1 1 2011 01 19 18 51 01 2 1 2011 01 19 18 51 02 3 1 2011 01 19 18 51 03 4 1 2011 01 19
  • 简单的sql查询,合并结果并除以

    我想得到2 counts from 2 tables并像 MySQL 数据库一样计算出百分比 select field one count as COUNT ONE from table1 group by field one select
  • 如何强制 Eclipse 换行? [复制]

    这个问题在这里已经有答案了 有没有办法让 Eclipse 将带有 b 的行换行至每行 120 的长度 我无法配置代码格式化程序来换行 这真的让我抓狂 public class Position public static void i er