Gist này cho thấy cách tự động định dạng mã Java bằng cách sử dụng trình định dạng Eclipse tại tiền cam kết.git pre-commit hook format code - Intellij/Android Studio
Nguồn: https://gist.github.com/ktoso/708972
Code:
#!/bin/sh
#
# This hook will run the eclipse code formatter before any commit
# to make the source look as it's supposed to look like in the repo.
ECLIPSE_HOME=$HOME/eclipse
STYLE_FILE=$HOME/org.eclipse.jdt.core.prefs
echo "Running pre-commit hook: run-eclipse-formatter---------------------"
echo "Will run eclipse formatter, using: $STYLE_FILE"
echo "Listing folders to run formatter on… "
code_dirs=`find . -maxdepth 3 | grep 'src/'`
for dir in $code_dirs; do
echo $dir;
done;
echo "Launching eclipse code formatter… "
exec $ECLIPSE_HOME/eclipse \
-nosplash \
-application org.eclipse.jdt.core.JavaCodeFormatter \
-verbose \
-config $STYLE_FILE \
$code_dirs
echo "done---------------------------------------------------------------"
Tôi muốn đạt được điều này với IntelliJ và Android Studio. Kịch bản trông như thế nào?
Ngoài ra tôi đoán sẽ tốt nhất là chỉ chạy trình định dạng trên các tệp đã thay đổi. Có thể điều này hữu ích:
changedJavaFiles=$(git diff --cached --name-only --diff-filter=ACM | grep '.java$')
ACM là viết tắt của Đã thêm, Đã sao chép, Sửa đổi. Nguồn: http://git-scm.com/docs/git-diff
Vui lòng nhận xét nếu có gì không rõ ràng.
Cập nhật
thiết lập của tôi là Windows 10 và tôi muốn sử dụng công cụ dòng lệnh MINGW32 (Git Bash). Phiên bản Git là 1.9.5 msysgit.1
bạn có tìm thấy giải pháp cho vấn đề này không? – Bhargav
Không, tôi đã không nhưng tôi vẫn quan tâm đến chủ đề này! – BenjaminButton