Linter/code formatter for Gremlin
npm install gremlint!Gremlint Github Header 1920x1024
Gremlint is a code formatter, from [Apache TinkerPop™][tk] which parses Gremlin queries and rewrites them to adhere to certain styling rules. It does so by parsing the query to an abstract syntax tree, and reprinting it from scratch.
- To make Gremlin queries more readable
- To make your queries more beautiful
- To act as a "living" style guide
``bash`
npm install gremlint
`typescript
import { formatQuery } from 'gremlint';
const unformattedQuery = g.V().has('person', 'name', 'marko').shortestPath().with(ShortestPath.target, __.has('name', 'josh')).with(ShortestPath.distance, 'weight');
const formattedQuery = formatQuery(unformattedQuery);
console.log(formattedQuery);
`
``
g.V().
has('person', 'name', 'marko').
shortestPath().
with(ShortestPath.target, __.has('name', 'josh')).
with(ShortestPath.distance, 'weight')
The default max line length is 80, but it can easily be overridden.
`typescript
import { formatQuery } from 'gremlint';
const unformattedQuery = g.V().has('person', 'name', 'marko').shortestPath().with(ShortestPath.target, __.has('name', 'josh')).with(ShortestPath.distance, 'weight');
const formattedQuery = formatQuery(unformattedQuery, { maxLineLength: 50 });
console.log(formattedQuery);
`
``
g.V().
has('person', 'name', 'marko').
shortestPath().
with(
ShortestPath.target,
__.has('name', 'josh')).
with(ShortestPath.distance, 'weight')
`typescript
import { formatQuery } from 'gremlint';
const unformattedQuery = g.V().has('person', 'name', 'marko').shortestPath().with(ShortestPath.target, __.has('name', 'josh')).with(ShortestPath.distance, 'weight');
const formattedQuery = formatQuery(unformattedQuery, {
indentation: 4, // default: 0
maxLineLength: 40, // default: 80
shouldPlaceDotsAfterLineBreaks: true, // default: false
});
console.log(formattedQuery);
`
```
g.V()
.has('person', 'name', 'marko')
.shortestPath()
.with(
ShortestPath.target,
__.has('name', 'josh'))
.with(
ShortestPath.distance,
'weight')
https://gremlint.com is a website which utilizes the Gremlint library to give users an online "living" style guide for Gremlin queries. It also serves as a platform for showcasing the features of Gremlint. Its source code is available here.
!Gremlint V2 Screenshot
[tk]: https://tinkerpop.apache.org