google / google/google-java-format
Allow to provide source file java language version
- 主要語言
- Java
- 星號
- 6.2k
- 分支
- 937
- 平均合併
- 6 分鐘
- 30 天內合併 PR
- 3
描述
When formatting files with `google-java-format`, the parser uses the same source version as its own runtime version (running `google-java-format` on JDK X implies that that Java source files are conformant with JDK `X`), but this is actually not necessary true and files may be aiming for a different (older) Java version. Nowadays it is a common pattern to use `--release` flag to compiler for a specific older version of the language using a newer JDK.
Unfortunately Java language is not fully backward compatible and some features have introduced breaking changes like reserved identifiers `var`, `with, `yield` or `record` (see current list in [JLS Section 3.8](https://docs.oracle.com/javase/specs/jls/se21/html/jls-3.html#jls-3.8))
For files who were designed to compile with an older Java version and who are using now reserved identifiers, this cause their processing with `google-java-format` using a recent JDK version to fail.
A solution would be to allow to pass either the `source` or the `release` option to the java parser to adapt its own parsing to the java version used by the file.
貢獻指南
評估
這個 Issue 還沒有評估資料。