diff --git a/README.markdown b/README.markdown index dd2c2b93..66d996ef 100644 --- a/README.markdown +++ b/README.markdown @@ -61,16 +61,16 @@ Source Language, ActionScript, Ada, Ansible configurations, API Blueprint, AppleScript, AsciiDoc, Assembly languages, BEMHTML, Bro, Bourne shell, C, C++, C#, Cabal, Chef, CMake, CoffeeScript, Coco, Coq, CSS, Cucumber, CUDA, D, Dart, DocBook, Dockerfile, Dust, Elixir, Erlang, eRuby, Fortran, Gentoo metadata, -GLSL, Go, Haml, Haskell, Haxe, Handlebars, HSS, HTML, Java, JavaScript, JSON, -JSX, Julia, LESS, Lex, Limbo, LISP, LLVM intermediate language, Lua, Markdown, -MATLAB, Mercury, NASM, Nix, Objective-C, Objective-C++, OCaml, Perl, Perl POD, -PHP, gettext Portable Object, OS X and iOS property lists, Pug (formerly Jade), -Puppet, Python, QML, R, Racket, RDF TriG, RDF Turtle, Relax NG, -reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Solidity, Sphinx, -SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog, VHDL, Vim help, -VimL, Vue.js, xHtml, XML, XSLT, XQuery, YACC, YAML, YANG data models, z80, -Zope page templates, and Zsh. See the [manual][checkers] for details about the -corresponding supported checkers (`:help syntastic-checkers` in Vim). +GLSL, Go, Haml, Haskell, Haxe, Handlebars, HSS, HTML, Java, JavaScript, +JSON, JSX, Julia, LESS, Lex, Limbo, LISP, LLVM intermediate language, Lua, +Markdown, MATLAB, Mercury, NASM, Nix, Objective-C, Objective-C++, OCaml, Perl, +Perl POD, PHP, gettext Portable Object, OS X and iOS property lists, Pug +(formerly Jade), Puppet, Python, QML, R, Racket, RDF TriG, RDF Turtle, Relax +NG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Solidity, +Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog, VHDL, +Vim help, VimL, Vue.js, xHtml, XML, XSLT, XQuery, YACC, YAML, YANG data models, +z80, Zope page templates, and Zsh. See the [manual][checkers] for details about +the corresponding supported checkers (`:help syntastic-checkers` in Vim). A number of third-party Vim plugins also provide checkers for syntastic, for example: [merlin][merlin], [omnisharp-vim][omnisharp], [rust.vim][rust], diff --git a/doc/syntastic-checkers.txt b/doc/syntastic-checkers.txt index ddf9f39e..d6d94386 100644 --- a/doc/syntastic-checkers.txt +++ b/doc/syntastic-checkers.txt @@ -2868,7 +2868,8 @@ to it: https://github.com/mantoni/eslint_d.js#editor-integration -See also: |syntastic-javascript-eslint|, |syntastic-typescript-eslint|. +See also: |syntastic-javascript-eslint|, |syntastic-typescript-eslint|, +|syntastic-vue-eslint|. ------------------------------------------------------------------------------ 2. gjslint *syntastic-html-gjslint* @@ -3426,7 +3427,8 @@ version 2.1.0 or later, instead of "ESLint". Just point https://github.com/mantoni/eslint_d.js#editor-integration -See also: |syntastic-html-eslint|, |syntastic-typescript-eslint|. +See also: |syntastic-html-eslint|, |syntastic-typescript-eslint|, +|syntastic-vue-eslint|. ------------------------------------------------------------------------------ 3. Flow *syntastic-javascript-flow* @@ -6737,7 +6739,8 @@ as "typescript-vim": https://github.com/leafgarland/typescript-vim -See also: |syntastic-html-eslint|, |syntastic-javascript-eslint|. +See also: |syntastic-html-eslint|, |syntastic-javascript-eslint|, +|syntastic-vue-eslint|. ------------------------------------------------------------------------------ 2. TSLint *syntastic-typescript-tslint* @@ -7042,10 +7045,41 @@ SYNTAX CHECKERS FOR VUE.JS *syntastic-checkers-vue* The following checkers are available for Vue.js (filetype "vue"): - 1. pug_lint_vue..............|syntastic-vue-pug_lint_vue| + 1. ESLint...................|syntastic-vue-eslint| + 2. pug_lint_vue.............|syntastic-vue-pug_lint_vue| ------------------------------------------------------------------------------ -1. pug_lint_vue *syntastic-vue-pug_lint_vue* +1. ESLint *syntastic-vue-eslint* + +Name: eslint +Maintainer: LCD 47 + +"ESLint" is a tool for identifying and reporting on patterns found in +ECMAScript/JavaScript code. It can also detect problems in JavaScript +components of Vue.js files. See the project's page for details: + + https://github.com/nzakas/eslint + +Checker options~ + +This checker is initialised using the "makeprgBuild()" function and thus it +accepts the standard options described at |syntastic-config-makeprg|. + +Notes~ + +Automatically fixing errors (option "--fix") is not supported. + +You can also use "eslint_d" (https://github.com/mantoni/eslint_d.js), version +2.1.0 or later, instead of "ESLint". Just point 'g:syntastic_vue_eslint_exec' +to it: + + https://github.com/mantoni/eslint_d.js#editor-integration + +See also: |syntastic-html-eslint|, |syntastic-javascript-eslint|, +|syntastic-typescript-eslint|. + +------------------------------------------------------------------------------ +2. pug_lint_vue *syntastic-vue-pug_lint_vue* Name: pug_lint_vue Maintainer: Tim Carry @@ -7065,6 +7099,13 @@ Checker options~ This checker is initialised using the "makeprgBuild()" function and thus it accepts the standard options described at |syntastic-config-makeprg|. +Note~ + +You probably also need a plugin to set |filetype| for Vue.js files, such as +"vim-vue": + + https://github.com/posva/vim-vue + ============================================================================== SYNTAX CHECKERS FOR XHTML *syntastic-checkers-xhtml* diff --git a/plugin/syntastic.vim b/plugin/syntastic.vim index 752c8a2c..fff95345 100644 --- a/plugin/syntastic.vim +++ b/plugin/syntastic.vim @@ -19,7 +19,7 @@ if has('reltime') lockvar! g:_SYNTASTIC_START endif -let g:_SYNTASTIC_VERSION = '3.8.0-71' +let g:_SYNTASTIC_VERSION = '3.8.0-73' lockvar g:_SYNTASTIC_VERSION " Sanity checks {{{1 diff --git a/plugin/syntastic/registry.vim b/plugin/syntastic/registry.vim index 0283be9b..760cdb67 100644 --- a/plugin/syntastic/registry.vim +++ b/plugin/syntastic/registry.vim @@ -103,7 +103,7 @@ let s:_DEFAULT_CHECKERS = { \ 'verilog': ['verilator'], \ 'vhdl': ['ghdl'], \ 'vim': ['vimlint'], - \ 'vue': ['pug_lint_vue'], + \ 'vue': ['pug_lint_vue', 'eslint'], \ 'xhtml': ['tidy'], \ 'xml': ['xmllint'], \ 'xslt': ['xmllint'], diff --git a/syntax_checkers/vue/eslint.vim b/syntax_checkers/vue/eslint.vim new file mode 100644 index 00000000..68ee396f --- /dev/null +++ b/syntax_checkers/vue/eslint.vim @@ -0,0 +1,23 @@ +"============================================================================ +"File: eslint.vim +"Description: Syntax checking plugin for syntastic +"Maintainer: LCD 47 +"License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +"============================================================================ + +if exists('g:loaded_syntastic_vue_eslint_checker') + finish +endif +let g:loaded_syntastic_vue_eslint_checker = 1 + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'vue', + \ 'name': 'eslint', + \ 'redirect': 'javascript/eslint'}) + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/syntax_checkers/vue/pug_lint_vue.vim b/syntax_checkers/vue/pug_lint_vue.vim index 6a458459..5665d036 100644 --- a/syntax_checkers/vue/pug_lint_vue.vim +++ b/syntax_checkers/vue/pug_lint_vue.vim @@ -1,6 +1,6 @@ "============================================================================ "File: pug_lint_vue.vim -"Description: Syntax checking plugin for syntastic.vim using pug-lint-vue +"Description: Syntax checking plugin for syntastic using pug-lint-vue " (https://github.com/sourceboat/pug-lint-vue) "Maintainer: Tim Carry "License: This program is free software. It comes without any warranty, @@ -20,17 +20,15 @@ let s:save_cpo = &cpo set cpo&vim function! SyntaxCheckers_vue_pug_lint_vue_GetLocList() dict - let makeprg = self.makeprgBuild({ 'fname': expand('%:p') }) + let buf = bufnr('') + let makeprg = self.makeprgBuild({ 'fname': syntastic#util#shescape(fnamemodify(bufname(buf), ':p')) }) - let errorformat = ' %l:%c %m' + let errorformat = '%\s%#%l:%c %m' return SyntasticMake({ \ 'makeprg': makeprg, \ 'errorformat': errorformat, - \ 'defaults': { - \ 'bufnr': bufnr(''), - \ 'type': 'E' - \ } }) + \ 'defaults': { 'bufnr': buf, 'type': 'E' } }) endfunction call g:SyntasticRegistry.CreateAndRegisterChecker({