Skip to content

Commit

Permalink
Close #3872 - Add eslint-plugin-jsonc as a linter for JSON, JSONC and…
Browse files Browse the repository at this point in the history
… JSON5 (#3873)

* Add eslint as linter for JSON, JSONC and JSON5

Use the same lint configuration as eslint for javascript.

* Add documentation for JSON* eslint support

* Fix spacing in documentation

* Update docs to be unopinionated about plugins

Remove any preference for eslint plugins, since there are more thant one
that would work

* Reorder languages and tools in alphabetic order

* Fix misalignment

* Change orders to pass the tests
  • Loading branch information
jpesce authored Aug 21, 2021
1 parent a099fe2 commit f896744
Show file tree
Hide file tree
Showing 9 changed files with 102 additions and 0 deletions.
16 changes: 16 additions & 0 deletions ale_linters/json/eslint.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
" Author: João Pesce <[email protected]>
" Description: eslint for JSON files.
"
" Requires eslint-plugin-jsonc or a similar plugin to work
"
" Uses the same funtcions as ale_linters/javascript/eslint.vim by w0rp
" <[email protected]>

call ale#linter#Define('json', {
\ 'name': 'eslint',
\ 'output_stream': 'both',
\ 'executable': function('ale#handlers#eslint#GetExecutable'),
\ 'cwd': function('ale#handlers#eslint#GetCwd'),
\ 'command': function('ale#handlers#eslint#GetCommand'),
\ 'callback': 'ale#handlers#eslint#HandleJSON',
\})
16 changes: 16 additions & 0 deletions ale_linters/json5/eslint.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
" Author: João Pesce <[email protected]>
" Description: eslint for JSON5 files.
"
" Requires eslint-plugin-jsonc or a similar plugin to work
"
" Uses the same funtcions as ale_linters/javascript/eslint.vim by w0rp
" <[email protected]>

call ale#linter#Define('json5', {
\ 'name': 'eslint',
\ 'output_stream': 'both',
\ 'executable': function('ale#handlers#eslint#GetExecutable'),
\ 'cwd': function('ale#handlers#eslint#GetCwd'),
\ 'command': function('ale#handlers#eslint#GetCommand'),
\ 'callback': 'ale#handlers#eslint#HandleJSON',
\})
16 changes: 16 additions & 0 deletions ale_linters/jsonc/eslint.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
" Author: João Pesce <[email protected]>
" Description: eslint for JSONC files.
"
" Requires eslint-plugin-jsonc or a similar plugin to work
"
" Uses the same funtcions as ale_linters/javascript/eslint.vim by w0rp
" <[email protected]>

call ale#linter#Define('jsonc', {
\ 'name': 'eslint',
\ 'output_stream': 'both',
\ 'executable': function('ale#handlers#eslint#GetExecutable'),
\ 'cwd': function('ale#handlers#eslint#GetCwd'),
\ 'command': function('ale#handlers#eslint#GetCommand'),
\ 'callback': 'ale#handlers#eslint#HandleJSON',
\})
9 changes: 9 additions & 0 deletions doc/ale-json.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@
ALE JSON Integration *ale-json-options*


===============================================================================
eslint *ale-json-eslint*

The `eslint` linter for JSON uses the JavaScript options for `eslint`; see:
|ale-javascript-eslint|.

You will need a JSON ESLint plugin installed for this to work.


===============================================================================
fixjson *ale-json-fixjson*

Expand Down
15 changes: 15 additions & 0 deletions doc/ale-json5.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
===============================================================================
ALE JSON5 Integration *ale-json5-options*


===============================================================================
eslint *ale-json5-eslint*

The `eslint` linter for JSON uses the JavaScript options for `eslint`; see:
|ale-javascript-eslint|.

You will need a JSON5 ESLint plugin installed for this to work.


===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
15 changes: 15 additions & 0 deletions doc/ale-jsonc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
===============================================================================
ALE JSONC Integration *ale-jsonc-options*


===============================================================================
eslint *ale-jsonc-eslint*

The `eslint` linter for JSON uses the JavaScript options for `eslint`; see:
|ale-javascript-eslint|.

You will need a JSONC ESLint plugin installed for this to work.


===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
5 changes: 5 additions & 0 deletions doc/ale-supported-languages-and-tools.txt
Original file line number Diff line number Diff line change
Expand Up @@ -260,11 +260,16 @@ Notes:
* `tsserver`
* `xo`
* JSON
* `eslint`
* `fixjson`
* `jq`
* `jsonlint`
* `prettier`
* `spectral`
* JSON5
* `eslint`
* JSONC
* `eslint`
* Julia
* `languageserver`
* Kotlin
Expand Down
5 changes: 5 additions & 0 deletions doc/ale.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2824,11 +2824,16 @@ documented in additional help files.
standard..............................|ale-javascript-standard|
xo....................................|ale-javascript-xo|
json....................................|ale-json-options|
eslint................................|ale-json-eslint|
fixjson...............................|ale-json-fixjson|
jsonlint..............................|ale-json-jsonlint|
jq....................................|ale-json-jq|
prettier..............................|ale-json-prettier|
spectral..............................|ale-json-spectral|
jsonc...................................|ale-jsonc-options|
eslint................................|ale-jsonc-eslint|
json5...................................|ale-json5-options|
eslint................................|ale-json5-eslint|
julia...................................|ale-julia-options|
languageserver........................|ale-julia-languageserver|
kotlin..................................|ale-kotlin-options|
Expand Down
5 changes: 5 additions & 0 deletions supported-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,11 +269,16 @@ formatting.
* [tsserver](https://github.com/Microsoft/TypeScript/wiki/Standalone-Server-%28tsserver%29)
* [xo](https://github.com/sindresorhus/xo)
* JSON
* [eslint](http://eslint.org/)
* [fixjson](https://github.com/rhysd/fixjson)
* [jq](https://stedolan.github.io/jq/)
* [jsonlint](https://github.com/zaach/jsonlint)
* [prettier](https://github.com/prettier/prettier)
* [spectral](https://github.com/stoplightio/spectral)
* JSON5
* [eslint](http://eslint.org/)
* JSONC
* [eslint](http://eslint.org/)
* Julia
* [languageserver](https://github.com/JuliaEditorSupport/LanguageServer.jl)
* Kotlin
Expand Down

0 comments on commit f896744

Please sign in to comment.