2015-08-29 29 views
8

Ten podsumowanie pokazuje, jak automatycznie formatować kod Java za pomocą programu formatującego Eclipse podczas wstępnego zatwierdzania.git pre-commit format kodu haseł - Intellij1/Android Studio

Źródło: https://gist.github.com/ktoso/708972

Kod:

#!/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---------------------------------------------------------------" 

chciałbym osiągnąć z IntelliJ i Android Studio. Jak więc wyglądałby scenariusz?

Sądzę też, że najlepiej będzie uruchamiać formater tylko w przypadku zmienionych plików. Może to jest przydatne:

changedJavaFiles=$(git diff --cached --name-only --diff-filter=ACM | grep '.java$') 

ACM oznacza Dodane, Skopiowane, Zmodyfikowane. Źródło: http://git-scm.com/docs/git-diff

Proszę o komentarz, jeśli coś jest niejasne.

Aktualizacja

Moja konfiguracja jest Windows 10 i chciałbym użyć narzędzia wiersza poleceń mingw32 (Git Bash). Wersja Git to 1.9.5 msysgit.1

+0

czy znalazłeś rozwiązanie tego problemu? – Bhargav

+0

Nie, nie zrobiłem tego, ale nadal interesuję się tym tematem! – BenjaminButton

Odpowiedz

3

IDEA ma to wbudowane w normalne okno dialogowe zatwierdzenia. Po prostu sprawdź "przeformatuj kod" i wszystko stanie się automatycznie.

Jeśli chcesz uruchomić formatowanie IDEA z linii poleceń, nie sądzę, że to możliwe. Jedyne, co udało mi się odkryć, że może wyjść na zewnątrz, to inspekcja kodu.

+0

Dziękuję za odpowiedź. Zaktualizowałem moje pytanie. Jestem w systemie Windows i wszystko dzieje się w Git Bash. Nigdy nie użyłem GUI Androida Studio do zatwierdzenia, a więc nie wiedziałem, aby zaktualizować opcję formatowania wszystkiego. Ponieważ ta opcja istnieje, jestem pewien, że istnieje sposób na uruchomienie tego z linii poleceń. Pobiorę kod źródłowy Androida Studio i będę go przeglądał. Jeśli znajdę coś przydatnego, zostawię inny komentarz. Źródło dla Androida Studio można znaleźć tutaj: http://source.android.com/source/downloading.html – BenjaminButton

2

Możesz użyć IntelliJ command-line source code formatter dostępnego w IntelliJ od wersji 2016.3. Na przykład (dla Git Bash):

CHANGED_JAVA_SRC_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep '.java$') 
$INTELLIJ_DIR/bin/format $CHANGED_JAVA_SRC_FILES 

Chociaż Android Studio opiera się na IntelliJ, wydaje się nie do wspierania tego, kiedy IDE jest otwarty, patrz komentarz poniżej.

Bardziej zaawansowany przykład haczyka wstępnego jest dostępny w git-hooks-code-autoformat project in GitHub.

+1

Obsługuje to, ale z jakiegoś powodu nie działa, gdy IDE jest już otwarte – scana

Powiązane problemy