Close #3872 - Add eslint-plugin-jsonc as a linter for JSON, JSONC and 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
This commit is contained in:
João Pesce 2021-08-20 22:02:56 -03:00 committed by GitHub
parent a099fe24b2
commit f896744fee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 102 additions and 0 deletions

View File

@ -0,0 +1,16 @@
" Author: João Pesce <joao@pesce.cc>
" 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
" <devw0rp@gmail.com>
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',
\})

View File

@ -0,0 +1,16 @@
" Author: João Pesce <joao@pesce.cc>
" 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
" <devw0rp@gmail.com>
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',
\})

View File

@ -0,0 +1,16 @@
" Author: João Pesce <joao@pesce.cc>
" 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
" <devw0rp@gmail.com>
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',
\})

View File

@ -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*

15
doc/ale-json5.txt Normal file
View File

@ -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
doc/ale-jsonc.txt Normal file
View File

@ -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:

View File

@ -260,11 +260,16 @@ Notes:
* `tsserver`
* `xo`
* JSON
* `eslint`
* `fixjson`
* `jq`
* `jsonlint`
* `prettier`
* `spectral`
* JSON5
* `eslint`
* JSONC
* `eslint`
* Julia
* `languageserver`
* Kotlin

View File

@ -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|

View File

@ -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