drawers / abecedary Goto Github PK
View Code? Open in Web Editor NEWA set of lint rules for ordering Kotlin enums, sealed classes, and more
License: Apache License 2.0
A set of lint rules for ordering Kotlin enums, sealed classes, and more
License: Apache License 2.0
In large Gradle projects, the include
calls in the settings.gradle.kts
often get messy. Maybe there is some way to allow the lint check to work here?
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
com.android.library
, com.android.application
)com.android.tools.lint:lint-tests
, com.android.tools.lint:lint
, com.android.tools.lint:lint-checks
, com.android.tools.lint:lint-api
)These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.
.github/workflows/ci.yml
actions/checkout v4@692973e3d937129bcbf40652eb9f2f61becf3332
gradle/wrapper-validation-action v3@88425854a36845f9c881450d9660b5fd46bee142
actions/setup-java v4@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9
gradle/gradle-build-action v3@66535aaf56f831b35e3a8481c9c99b665b84dd45
gradle/gradle-build-action v3@66535aaf56f831b35e3a8481c9c99b665b84dd45
actions/upload-artifact v4@0b2256b8c012f0828dc542b3febcab082c67f72b
gradle.properties
settings.gradle.kts
build.gradle.kts
abecedary-annotation/gradle.properties
abecedary-annotation/build.gradle.kts
abecedary-lint/gradle.properties
abecedary-lint/build.gradle.kts
abecedary-sample/build.gradle.kts
gradle/libs.versions.toml
junit:junit 4.13.2
com.android.tools.lint:lint-api 31.5.0
com.android.tools.lint:lint-checks 31.5.0
com.android.tools.lint:lint 31.5.0
com.android.tools.lint:lint-tests 31.5.0
com.android.lint 8.5.0
org.jetbrains.dokka 1.9.20
com.vanniktech.maven.publish 0.29.0
com.android.application 8.5.0
com.android.library 8.5.0
com.diffplug.spotless 6.25.0
org.jetbrains.kotlin.jvm 1.9.23
gradle/wrapper/gradle-wrapper.properties
gradle 8.8
Abecedary currently publishes an annotation artifact and a lint artifact. In a way, the annotation artifact is wasteful.
It's possible to use options in lint rules (https://googlesamples.github.io/android-custom-lint-rules/api-guide.html#options/readingoptions).
So we could allow the user to forgo using the annotation artifact and use an annotation declared in their own codebase
Abecedary currently does a deep search through supertypes looking for the @Alphabetical
annotation.
We should allow opt-out of this behavior to control performance in large projects, making the lint check only kick in when there is an explicit @Alphabetical
annotation.
It can be done via a lint option:
https://googlesamples.github.io/android-custom-lint-rules/api-guide.html#options/readingoptions
Current release management and CI/CD infrastructure is very basic or non-existent. Would be good to set up infrastructure to make releases via GitHub.
The message for the lint rule should explain about the annotation, otherwise it's not clear to a reader. It should also highlight the supertype containing the annotation if it's not explicitly decorating the class location of the message.
Another common site for merge conflicts and disorder are blocks like the dependencies {
block in a build.gradle.kts
file.
We could make @Alphabetical
apply to a block:
@Alphabetical run {
println("apple")
println("banana")
}
in which case, it would scan the lines of the block and enforce dictionary order. This could be a "nuclear option" where none of the other annotation targets make sense.
Although there is a general preference to use UElementHandler, for annotation usages it's okay to use the Detector APIs. We should try that to see if it supports all our use cases
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.