redhat-developer / redhat-developer/vscode-java
Java formatter ignores org.eclipse.jdt.core.formatter.tabulation.size and uses editor's 'tab size' when calculating line split
还没有人认领这个 Issue。
- 主要语言
- TypeScript
- 星标
- 2.3k
- 派生
- 546
- 平均合并
- 20 小时 1 分钟
- 30 天内合并 PR
- 11
描述
Java formatter ignores org.eclipse.jdt.core.formatter.tabulation.size and uses editor's 'tab size' when calculating how lines should be split. This makes it difficult for users to use their preferred indentation size without throwing off source control history diffs.
Environment
- JDK version: openjdk version "17.0.10" 2024-01-16 LTS
- Visual Studio Code version: 1.86.2
- Java extension version: 1.28.1
Steps To Reproduce
Relevant settings:
- Java formatter
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>and<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>in my java formatter
(full formatting file: java-formatter.xml.txt)) - VS Code set to
tab size: 4
If I have a line that is 121 characters, the formatter will wrap appropriately. However, if someone else has their tab size:2, the total line length is calculated to be less than 120, and thus will unwrap the lines wich throws off the file history diffs.
Current Result
Line split is calculated based on VS Code's tab size setting, instead of the formatter's tabulation.size
Expected Result
Line split should be calculated based on the tabulation.size setting, to allow users to have their preferred tab size within VS Code
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先,使用提供的 lineSplit 和 tabulation.size 设置重现格式化程序的行为,同时改变 VS Code 的制表符大小。跟踪 Java 格式化程序在哪里计算行长度,并根据 Expected Result 验证结果:换行应使用 tabulation.size,而不是编辑器的制表符大小。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java, vscode
- 领域
- developer-experience, tooling
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100