Skip to content

angelozerr/ec4j

 
 

Repository files navigation

ec4j

License Maven Central Build Status

ec4j is an EditorConfig parser for Java.

Who is using ec4j?

Here are some projects that use `ec4j:

Basic usage

To parse a single .editorconfig file into an EditorConfig model:

java.nio.file.Path editorConfigFile = Paths.get("path/to/my/.editorconfig");
EditorConfigParser parser = EditorConfigParser.builder().build();
EditorConfigModelHandler handler = new EditorConfigModelHandler(EditorConfigConstants.VERSION,
            PropertyTypeRegistry.getDefault());
parser.parse(Resources.ofPath(editorConfigFile), StandardCharsets.UTF_8, handler);
EditorConfig editorConfig = handler.getEditorConfig();

To query the properties applicable to a file in a source tree:

Cache myCache = ...; // e.g. Caches.none()
EditorConfigLoader myLoader = ...; // e.g. EditorConfigLoader.getDefault()
EditorConfigSession mySession = EditorConfigSession.builder()
        .cache(myCache)
        .loader(myLoader)
        .rootDirectory(ResourcePaths.ofPath(Paths.get("/my/dir")))
        .build();
QueryResult result = mySession.queryProperties(Resources.ofPath(Paths.get("/my/dir1/Class1.java")));
IndentStyleValue indentStyleValue = result.getValue(PropertyType.indent_style, IndentStyleValue.space);
switch (indentStyleVal) {
    case space:
        // ...
        break;
    case tab:
        //...
        break;
    default:
        throw new IllegalStateException("Huh "+ indentStyleVal +"?");
    }
}

How to build

Prerequisites:

  • Java 7+

  • Optionally Maven 3.5.0+, unless you want to use ./mvnw or mvnw.bat delivered by the project

  • cmake 2.6+ to run the editorconfig-core-test testsuite (optional).

The most common build with unit tests:

./mvnw clean install

On Windows:

mvnw.bat clean install

A build with editorconfig-core-test testsuite:

git submodule init
git submodule update
mvn -Pcore-test clean install && ( cd core && cmake . && ctest . )

Relationship to editorconfig-core-java

ec4j aims at offering a superset of editorconfig-core-java 's functionality.

While editorconfig-core-java supports just the basic use case of querying the EditorConfig properties applicable to a given file, ec4j offers much more in addition to that:

ec4j took portions of code from editorconfig-core-java. Such ones are clearly marked in `ec4j’s JavaDoc.

Get support and contribute

  • License and community: ec4j is a community open-source project licensed under the Apache License.

  • Support: You can ask questions, report bugs, and request features using GitHub issues.

  • Git: This angelozerr/ec4j repository is the reference repository to contribute to ec4j

  • Build and CI: build can be performed with a simple mvn clean verify, continuous integration and deployment is performed by Travis CI

About

Java EditorConfig Parser

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 95.5%
  • Shell 2.4%
  • Batchfile 1.9%
  • CMake 0.2%