diffplug / diffplug/spotless

Allow spotless greclipse.properties to be selected via configuration

Open
#901 1 comment 3 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
5.6k
Forks
559
Avg merge
1d 14h
Merged PRs (30d)
43

Description

The default formatting configuration of `greclipse` isn't very standard or desirable. However, spotless configures [`greclipse.properties`](https://github.com/diffplug/spotless/blob/main/testlib/src/main/resources/groovy/greclipse/format/greclipse.properties) in a much more standard way.

For example, compare the default formatting of `googleJavaFormat` to `greclipse`. They're very different.

If you Google `site:github.com "greclipse.properties"`, you will find that many projects simply copied this file as defined by spotless.

Instead of having to copy `greclipse.properties` into every project, it'd be sweet if we could just select this formatting configuration by spotless via configuration, for example:
```xml

spotless

```

EDIT:
Unfortunately, I spoke too soon. I didn't realize spotless's [`greclipse.properties`](https://github.com/diffplug/spotless/blob/main/testlib/src/main/resources/groovy/greclipse/format/greclipse.properties) sets the following (I assume for testing):
```properties
groovy.formatter.braces.start=next
groovy.formatter.braces.end=same
```

These settings aren't very typical. I propose the following settings to stay consistent with [`googleJavaFormat`](https://google.github.io/styleguide/javaguide.html) as well as with examples on the [Groovy style guide](https://groovy-lang.org/style-guide.html):
```properties
groovy.formatter.braces.end=next
groovy.formatter.braces.start=same
groovy.formatter.longListLength=100
groovy.formatter.multiline.indentation=4
groovy.formatter.remove.unnecessary.semicolons=true
org.eclipse.jdt.core.formatter.indent_empty_lines=false
org.eclipse.jdt.core.formatter.tabulation.char=space
org.eclipse.jdt.core.formatter.tabulation.size=2
```

Contributor guide

Open the contributing guide

Research direction

Start by examining testlib/src/main/resources/groovy/greclipse/format/greclipse.properties and the greclipse formatter configuration entry point. Compare the referenced Spotless properties with the revised settings in the issue and determine how a named configuration can be selected. Done means projects can choose the configuration without copying the properties file and the resulting formatting matches the documented settings.

Written by the indexing model from the issue text.

Assessment

Tech stack
groovy, java
Domain
build-system, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.