Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tooling: Formatierung Reihenfolge Methoden #1347

Open
cagix opened this issue Jan 20, 2024 · 3 comments
Open

Tooling: Formatierung Reihenfolge Methoden #1347

cagix opened this issue Jan 20, 2024 · 3 comments
Labels

Comments

@cagix
Copy link
Member

cagix commented Jan 20, 2024

Spotless formatiert nach dem Google Style, interessiert sich aber (scheinbar?!) nicht für die Reihenfolge von Attributen und Methoden.

IntelliJ hat zusätzlich Einstellungen, um Methoden einheitlich zu sortieren.

Gibt es evtl. eine Einstellung in Spotless? Gib es ähnliche Tools, die das erledigen würden?

=> Einbauen in Gradle und CI, Umformatieren der Codebasis.

@cagix cagix added the tooling label Jan 20, 2024
@tgrothe
Copy link
Contributor

tgrothe commented Feb 2, 2024

@cagix , clang-format könnte das vielleicht. Und spotless kann clang-format starten:

build.gradle

tasks.register('spotlessApplyClang') {
    dependsOn 'spotlessJavaApply'
    spotless {
        java {
            targetExclude('build/generated-src/**')
            clangFormat('8.0.1').style('LLVM')
        }
    }
}

tasks.register('spotlessCheckClang') {
    dependsOn 'spotlessJavaCheck'
    spotless {
        java {
            targetExclude('build/generated-src/**')
            clangFormat('8.0.1').style('LLVM')
        }
    }
}

github_ci.yml

  spotless:
    name: Spotless
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up JDK 21
        uses: actions/setup-java@v4
        with:
          java-version: '21'
          distribution: 'temurin'
          cache: gradle
      - name: Prepare spotless
        run: apt install clang-format
      - name: Spotless
        run: ./gradlew spotlessJavaCheck spotlessCheckClang

clang-format muss vorher installiert sein.

siehe auch https://clang.llvm.org/docs/ClangFormatStyleOptions.html#basedonstyle

@cagix
Copy link
Member Author

cagix commented Feb 3, 2024

@tgrothe ja, das ist vielleicht eine sinnvolle sache.

auf der ci geht das ohne probleme, aber ich kann niemandem im java-umfeld erklären, sich noch lokale nen c-compiler zu installieren (bzw. teile davon).

also in sofern vielleicht noch nicht die lösung, die hier gesucht wird.

@tgrothe
Copy link
Contributor

tgrothe commented Feb 3, 2024

@tgrothe ja, das ist vielleicht eine sinnvolle sache.

auf der ci geht das ohne probleme, aber ich kann niemandem im java-umfeld erklären, sich noch lokale nen c-compiler zu installieren (bzw. teile davon).

also in sofern vielleicht noch nicht die lösung, die hier gesucht wird.

es gäbe dabei auch noch zwei probleme. zum einen weiß ich nicht genau, ob auch die reihenfolge der methoden geändert wird (konnte das noch nicht richtig testen).

es müsste erst mit clang-format formatiert werden, dann mit aosp, und dann müsste geschaut werden (mit git diff ) ob es eine änderung gab. das ist suboptimal.

zudem kommt die 17x version von clang-format llvm noch nicht mit

String s = """text
           """;

klar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants