如何关闭 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 代码格式化程序? 的相关文章

  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口

随机推荐

  • 如何给导航栏上的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