如何关闭 Java 代码某些部分的 Eclipse 代码格式化程序?

2024-02-02

我有一些 Java 代码,其中的 SQL 语句编写为 Java 字符串(请不要进行 OR/M 争论,嵌入式 SQL 就是这样 - 不是我的决定)。

我已将 SQL 语句在语义上分解为多行代码中的多个串联字符串,以便于维护。所以而不是像这样:

String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";

我有类似的东西:

String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";

这种风格使 SQL 更易于阅读和维护(恕我直言),特别是对于较大的查询。例如,我可以将编辑器置于“覆盖”模式并相当轻松地就地修改文本。

请注意,此问题的普遍性超出了 SQL 的特定示例。任何使用任何垂直格式编写的代码,尤其是表格结构,都容易被漂亮的打印机破坏。

现在,一些项目成员使用 Eclipse 编辑器,当他们格式化整个源文件时,语义格式通常会被破坏。

有没有办法指示 Eclipse 在格式化方面忽略某些源代码行?

我正在寻找诸如切换 Eclipse 格式化程序的特殊注释之类的东西。理想情况下,这样的注释可以配置为我们选择的任何内容,并且其他格式化程序也可以编程为尊重它:

// STOP-ECLIPSE-FORMATTING
String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";
// START-ECLIPSE-FORMATTING

显然,一个“解决方案”是让我们的团队成员标准化一些外部格式化程序,例如Jalopy http://www.triemax.com/products/jalopy/ or JIndent http://www.jindent.com/,但这不是这个问题的目的(也不是我对这个项目的决定):我专门寻找一种临时避免 Eclipse 格式化程序的方法。

理想情况下,解决方案将允许我插入 Eclipse 格式化程序的指令无需使用 Eclipse 的团队成员进行任何 IDE 重新配置(除了可能选择与格式化程序无关的命令注释之外:STOP-ECLIPSE-FORMATTINGSTOP-FORMATTING).


Eclipse 3.6 允许您通过放置特殊注释来关闭格式化,例如

// @formatter:off
...
// @formatter:on

The on/off features have to be turned "on" in Eclipse preferences: Java > Code Style > Formatter. Click on Edit, Off/On Tags, enable Enable Off/On tags.

也可以在首选项中更改魔法字符串 -在此处查看 Eclipse 3.6 文档 http://archive.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/eclipse-news-part2.html#JavaFormatter.

更多信息

Java > Code Style > Formatter > Edit > Off/On Tags

此首选项允许您定义一个要禁用的标签和一个要启用格式化程序的标签(请参阅格式化程序配置文件中的“关闭/打开标签”选项卡):

You also need to enable the flags from Java Formatting

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

如何关闭 Java 代码某些部分的 Eclipse 代码格式化程序? 的相关文章

随机推荐

  • 如何给导航栏上的backButtonItem设置action?

    如何给导航栏上的backButtonItem设置action 我有一个导航栏 当我按下后退按钮时 我需要向用户提醒一些消息 并且只有在用户做出反应后才返回到上一个视图 我该怎么做 谢谢 void viewDidLoad super view
  • 如何在Python中模拟cx_Oracle游标

    我在一个类中有两个以下函数 我需要模拟数据库连接和游标结果 cx Oracle connect 已成功修补 它按预期工作 但是光标 callfunc fetch all 不会被模拟 知道正确的语法是什么吗 class dbconnect d
  • 如何使用 JsonSerialized::jsonSerialize() 忽略 null 属性?

    假设我们有一个简单的对象可以使用嵌套对象进行序列化 class User implements JsonSerializable private name private email private address public funct
  • 如何从 Oracle 日期获取 UNIX 纪元? [复制]

    这个问题在这里已经有答案了 有没有人有比这更好更快的解决方案来使用 Oracle SQL 获取 unix 纪元时间戳 SQL gt select cast sysdate as date cast to date 1970 01 01 YY
  • 从图像中删除标签

    我有一张带有 2 个标签的映像 在 AWS ECR 中 我只想删除一个标签 我可以使用以下命令轻松地从本地环境中删除 docker rmi
  • 是否可以通过Google Places API获取“流行时代”信息

    是否可以通过 Google Places API 或任何其他 API 获取 流行时间 信息 我需要在我的应用程序中针对特定位置显示此信息 这是 Google 问题跟踪器中最重要的功能请求之一 超过 500 颗星 https issuetra
  • 如果两行中满足某些条件,如何在 R 数据框中添加新列,显示当前行和前一行中的值之和?

    假设您有一个包含 a 和 b 列的数据框 其值如下所示 由以下命令生成df lt data frame a c 0 1 2 2 3 b c 1 3 8 9 4 假设您要添加列 c 如果 a 中的值等于列 a 中紧邻前一行的值 则对列 b 中
  • Django Rest Framework - 如何路由到函数视图

    我在用Django with Django Rest Framework Django 2 0 2 djangorestframework 3 7 7 我正在尝试路由到function view 我当前的设置如下所示 project pro
  • 您能否链接到使用BackgroundWorker 的一个很好的示例,而不将其作为组件放置在表单上?

    我记得很多年前 2005年 我在代码中使用了BackgroundWorker 但没有使用可视化组件 但我不记得是如何使用的 不幸的是 我很健忘 在停止使用它后很快就忘记了一切 也许我正在扩展BackgroundWorker 类 您能链接到以
  • 在哪里可以查看 Web 部署历史记录?

    我正在管理一家第三方供应商 该供应商使用 Microsoft Web Deploy 将 ASP NET 网站推送到我们的服务器 我可以在哪里找到文件发布地点 时间的历史记录吗 根据微软文档 http www iis net learn pu
  • 在 Google Dataflow 中使用 FireStore

    我想在带有 python 的数据流模板中使用 FireStore 我做过这样的事情 with beam Pipeline options options as p p Read from PubSub gt gt beam io ReadF
  • 迭代单个左值

    我想将一个左值传递给一个需要一对迭代器的函数 并且让它的行为就像我将一对迭代器传递给仅包含该值的范围一样 我的做法如下 include
  • 正则表达式仅提取字母数字单词

    我正在寻找一个正则表达式来提取仅包含字母数字字符的单词 string This is a dollar sign matches re findall regex string matches This is sign 这可以通过对字符串进
  • 如何将 Windows 上的 VSCode 键映射转移到 ubuntu

    我在 Windows 上使用 vs code 作为我的首选编辑器 最近我在 Ubuntu 上安装了 现在默认的键映射不同了 有什么方法可以在 Ubuntu 上设置类似于 Windows 的键映射 或者至少是它的一个子集 我创建了一个提供默认
  • Q-learning 和带有贪婪选择的 SARSA 等价吗?

    Q learning 和 SARSA 之间的区别在于 Q learning 比较当前状态和最佳可能的下一个状态 而 SARSA 则将当前状态与实际的下一个状态进行比较 如果使用贪婪选择策略 即 100 的时间选择具有最高动作值的动作 那么
  • Makefile 问题:扫描目录树中 .c 文件的智能方法

    我正在做一个增长非常快的项目 并且无法保持目标文件最新 通配符命令之外的问题位于 我不想要递归 makefile 和 我不希望它手动列出 之间 这些对象应该进入一个单独的目录 该目录已经可以工作了 注 我不是that习惯了 makefile
  • RavenDB 排序依据

    在我的 C 应用程序中 我有一个对象集合 其中包含int Order属性范围从 1 到n 当我这样做时 var listings session Query
  • 删除过期会话

    这是我第一次发帖 我相信我已经搜索过其他一些论坛 看看我的问题是否已经被提出 但我仍然摸不着头脑 我知道有很多关于过期会话的帖子 但我想我是在考虑特定场景 用户登录仪表板并转到页面 它闲置多久 然后垃圾收集器就会执行其操作并清除会话 现在
  • 垂直“带有页面的 Gridview”或“Viewpager”

    我功能上需要的是Vertical ViewPager with GridView 所以每一页ViewPager应该有一个GridView 但是ViewPager是水平的 所以有两种可能 使用 GridView 旋转 ViewPager 创建
  • 如何关闭 Java 代码某些部分的 Eclipse 代码格式化程序?

    我有一些 Java 代码 其中的 SQL 语句编写为 Java 字符串 请不要进行 OR M 争论 嵌入式 SQL 就是这样 不是我的决定 我已将 SQL 语句在语义上分解为多行代码中的多个串联字符串 以便于维护 所以而不是像这样 Stri