mirror of https://github.com/apache/lucene.git
LUCENE-9564: add spotless and gjf (automatic code formatter)
This commit is contained in:
parent
2eeec2f6be
commit
c94b035df8
|
@ -26,6 +26,7 @@ plugins {
|
|||
id "de.undercouch.download" version "4.0.2" apply false
|
||||
id "net.ltgt.errorprone" version "1.2.1" apply false
|
||||
id "com.palantir.docker" version "0.25.0" apply false
|
||||
id 'com.diffplug.spotless' version "5.8.2" apply false
|
||||
}
|
||||
|
||||
apply from: file('gradle/defaults.gradle')
|
||||
|
@ -145,6 +146,7 @@ apply from: file('gradle/validation/ecj-lint.gradle')
|
|||
apply from: file('gradle/validation/gradlew-scripts-tweaked.gradle')
|
||||
apply from: file('gradle/validation/validate-log-calls.gradle')
|
||||
apply from: file('gradle/validation/check-broken-links.gradle')
|
||||
apply from: file('gradle/validation/spotless.gradle')
|
||||
|
||||
// Source or data regeneration tasks
|
||||
apply from: file('gradle/generation/jflex.gradle')
|
||||
|
|
|
@ -22,6 +22,7 @@ configure(rootProject) {
|
|||
["Workflow", "help/workflow.txt", "Typical workflow commands."],
|
||||
["Ant", "help/ant.txt", "Ant-gradle migration help."],
|
||||
["Tests", "help/tests.txt", "Tests, filtering, beasting, etc."],
|
||||
["Formatting", "help/formatting.txt", "Code formatting conventions."],
|
||||
["Jvms", "help/jvms.txt", "Using alternative or EA JVM toolchains."],
|
||||
["Deps", "help/dependencies.txt", "Declaring, inspecting and excluding dependencies."],
|
||||
["ForbiddenApis", "help/forbiddenApis.txt", "How to add/apply rules for forbidden APIs."],
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* LUCENE-9564: This adds automatic (and enforced) code formatting.
|
||||
*/
|
||||
|
||||
def resources = scriptResources(buildscript)
|
||||
|
||||
allprojects { prj ->
|
||||
plugins.withType(JavaPlugin) {
|
||||
prj.apply plugin: 'com.diffplug.spotless'
|
||||
|
||||
spotless {
|
||||
java {
|
||||
licenseHeaderFile file("${resources}/asl-header.txt"), '^(\\s*package)'
|
||||
lineEndings 'UNIX'
|
||||
endWithNewline()
|
||||
googleJavaFormat('1.9')
|
||||
|
||||
switch (project.path) {
|
||||
// Disable for everything else for now.
|
||||
default:
|
||||
target 'non-existing/**'
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add an alias to 'spotlessApply' simply called 'tidy' and add
|
||||
// spotlessCheck to check.
|
||||
allprojects { prj ->
|
||||
task tidy() {
|
||||
description "Applies formatters and cleanups to sources."
|
||||
group "verification"
|
||||
}
|
||||
|
||||
tasks.matching { task -> task.name == "spotlessApply" }.configureEach { v ->
|
||||
tidy.dependsOn v
|
||||
}
|
||||
|
||||
tasks.matching { task -> task.name == "spotlessCheck" }.configureEach { v ->
|
||||
check.dependsOn v
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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.
|
||||
*/
|
|
@ -0,0 +1,20 @@
|
|||
Code formatting
|
||||
===============
|
||||
|
||||
Starting with (LUCENE-9564) Java code is enforced to comply with
|
||||
google-java-format conventions. In theory you shouldn't worry about
|
||||
what the convention actually looks like - write the code in any way
|
||||
you like and then run:
|
||||
|
||||
./gradlew tidy
|
||||
|
||||
prior to running your regular precommit checks. This will reformat
|
||||
your code so that it complies with the convention and passes gradle
|
||||
'check' task.
|
||||
|
||||
IMPORTANT: There is *no* way to mark sections of the code as excluded
|
||||
from formatting. This is by design and cannot be altered. In vast
|
||||
majority of cases the formatter will do a great job of cleaning up the
|
||||
code. Occasionally you may want to rewrite the code (introduce a local
|
||||
variable orreshape code paths) so that it's easier to read after
|
||||
automatic formatting.
|
Loading…
Reference in New Issue