google-java-format
เป็นโปรแกรมที่ฟอร์แมตซอร์สโค้ด Java ให้สอดคล้องกับ Google Java Style
ดาวน์โหลดฟอร์แมตเตอร์และรันด้วย:
java -jar /path/to/google-java-format-${GJF_VERSION?}-all-deps.jar <options> [files...]
ฟอร์แมตเตอร์สามารถดำเนินการกับไฟล์ทั้งหมด บนบรรทัดที่จำกัด ( --lines
) บนออฟเซ็ตเฉพาะ ( --offset
) ส่งผ่านไปยัง standard-out (ค่าเริ่มต้น) หรือแก้ไขแบบแทนที่ ( --replace
)
หากต้องการฟอร์แมตบรรทัดที่เปลี่ยนแปลงในแพตช์เฉพาะ ให้ใช้ google-java-format-diff.py
หมายเหตุ: ไม่มีการกำหนดค่าตามอัลกอริทึมของตัวจัดรูปแบบสำหรับการจัดรูปแบบ นี่เป็นการตัดสินใจออกแบบโดยเจตนาที่จะรวมการจัดรูปแบบโค้ดของเราให้อยู่ในรูปแบบเดียว
ปลั๊กอิน IntelliJ รูปแบบ google-java มีให้ใช้งานจากที่เก็บปลั๊กอิน หากต้องการติดตั้ง ให้ไปที่การตั้งค่า IDE ของคุณแล้วเลือกหมวดหมู่ Plugins
คลิกแท็บ Marketplace
ค้นหาปลั๊กอิน google-java-format
และคลิกปุ่ม Install
ปลั๊กอินจะถูกปิดใช้งานตามค่าเริ่มต้น หากต้องการเปิดใช้งาน ให้เปิดการตั้งค่าโครงการ จากนั้นคลิก "การตั้งค่า Google-java-format" และทำเครื่องหมายที่ช่อง "เปิดใช้งาน Google-java-format"
หากต้องการเปิดใช้งานเป็นค่าเริ่มต้นในโปรเจ็กต์ใหม่ ให้เปิดการตั้งค่าเริ่มต้นสำหรับโปรเจ็กต์ใหม่และกำหนดค่าภายใต้ "การตั้งค่าอื่นๆ/การตั้งค่ารูปแบบ google-java-format"
เมื่อเปิดใช้งาน ระบบจะแทนที่ Reformat Code
แบบปกติและการดำเนินการ Optimize Imports
ปลั๊กอินรูปแบบ google-java ใช้คลาสภายในบางอย่างที่ไม่สามารถใช้ได้หากไม่มีการกำหนดค่าเพิ่มเติม หากต้องการใช้ปลั๊กอิน คุณต้องเพิ่มตัวเลือกบางอย่างให้กับรันไทม์ Java ของ IDE ในการทำเช่นนั้น ไปที่ Help→Edit Custom VM Options...
และวางในบรรทัดเหล่านี้:
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
เมื่อคุณทำเสร็จแล้ว ให้รีสตาร์ท IDE
สามารถดาวน์โหลดปลั๊กอิน Eclipse รูป google-java-format
เวอร์ชันล่าสุดได้จากหน้าเผยแพร่ วางลงในโฟลเดอร์ดรอปอิน Eclipse เพื่อเปิดใช้งานปลั๊กอิน
ปลั๊กอินเพิ่มการใช้งานฟอร์แมตเตอร์ google-java-format
ที่สามารถกำหนดค่าได้ใน Window > Preferences > Java > Code Style > Formatter > Formatter Implementation
ฟอร์แมตเตอร์สามารถใช้ในซอฟต์แวร์ที่สร้างจาวาเพื่อส่งออกโค้ดจาวาที่อ่านง่ายขึ้น เพียงรวมไลบรารี่ไว้ใน maven/gradle/etc ของคุณ การกำหนดค่า
google-java-format
ใช้ javac API ภายในสำหรับการแยกวิเคราะห์ซอร์ส Java จำเป็นต้องใช้แฟล็ก JVM ต่อไปนี้เมื่อรันบน JDK 16 และใหม่กว่า เนื่องจาก JEP 396: Strongly Encapsulate JDK Internals ตามค่าเริ่มต้น:
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
< dependency >
< groupId >com.google.googlejavaformat</ groupId >
< artifactId >google-java-format</ artifactId >
< version >${google-java-format.version}</ version >
</ dependency >
dependencies {
implementation ' com.google.googlejavaformat:google-java-format:$googleJavaFormatVersion '
}
จากนั้นคุณสามารถใช้ฟอร์แมตเตอร์ผ่านเมธอด formatSource
เช่น
String formattedSource = new Formatter (). formatSource ( sourceString );
หรือ
CharSource source = ...
CharSink output = ...
new Formatter (). formatSource ( source , output );
จุดเริ่มต้นของคุณควรเป็นวิธีการอินสแตนซ์ของ com.google.googlejavaformat.java.Formatter
mvn install
โปรดดูคู่มือผู้ร่วมให้ข้อมูลสำหรับรายละเอียด
Copyright 2015 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.