From f72aac329acad4ed8401df1df2f2fc1a2a7e1a9f Mon Sep 17 00:00:00 2001 From: Adriaan Zonnenberg Date: Tue, 28 Mar 2017 22:34:20 +0200 Subject: [PATCH] Add configuration for ALE and simplify Syntastic configuration Replaced syntastic configuration by a file that uses Syntastic's redirect option to redirect to 'javascript/eslint' --- ftplugin/vue.vim | 7 +++ readme.md | 7 +-- syntax_checkers/vue/eslint.vim | 79 +++------------------------------- 3 files changed, 18 insertions(+), 75 deletions(-) diff --git a/ftplugin/vue.vim b/ftplugin/vue.vim index 64e58c5..d17c2e1 100644 --- a/ftplugin/vue.vim +++ b/ftplugin/vue.vim @@ -10,3 +10,10 @@ endif runtime! ftplugin/html.vim setlocal suffixesadd+=.vue + +if exists('g:loaded_ale') + let g:ale_linters = get(g:, 'ale_linters', {}) + let g:ale_linters.vue = get(g:ale_linters, 'vue', ['eslint']) + let g:ale_linter_aliases = get(g:, 'ale_linter_aliases', {}) + let g:ale_linter_aliases.vue = get(g:ale_linter_aliases, 'vue', 'javascript') +endif diff --git a/readme.md b/readme.md index e03ce4d..de7eda1 100644 --- a/readme.md +++ b/readme.md @@ -29,10 +29,11 @@ git clone https://github.com/posva/vim-vue.git git clone https://github.com/posva/vim-vue.git ~/.vim/pack/plugins/start ``` -### Integration with [Syntastic](https://github.com/scrooloose/syntastic) +### Integration with [Syntastic](https://github.com/scrooloose/syntastic) or [ALE](https://github.com/w0rp/ale) -Currently only `eslint` is available. Please make sure `eslint` and -`eslint-plugin-vue` are installed: +Currently only `eslint` is available. Please make sure +[eslint](http://eslint.org/) and +[eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) are installed: ```bash npm i -g eslint eslint-plugin-vue diff --git a/syntax_checkers/vue/eslint.vim b/syntax_checkers/vue/eslint.vim index 2c14371..e9d67c0 100644 --- a/syntax_checkers/vue/eslint.vim +++ b/syntax_checkers/vue/eslint.vim @@ -1,78 +1,13 @@ -"============================================================================ -"File: eslint.vim -"Description: vue syntax checker - using eslint -"Maintainer: Maksim Ryzhikov -"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. -"============================================================================ +" Vue cofiguration for Syntastic if exists('g:loaded_syntastic_vue_eslint_checker') - finish + finish endif + let g:loaded_syntastic_vue_eslint_checker = 1 -if !exists('g:syntastic_vue_eslint_sort') - let g:syntastic_vue_eslint_sort = 1 -endif - -if !exists('g:syntastic_vue_eslint_generic') - let g:syntastic_vue_eslint_generic = 0 -endif - -let s:save_cpo = &cpo -set cpo&vim - -function! SyntaxCheckers_vue_eslint_IsAvailable() dict - if g:syntastic_vue_eslint_generic - call self.log('generic eslint, exec =', self.getExec()) - endif - - if !executable(self.getExec()) - return 0 - endif - return g:syntastic_vue_eslint_generic || syntastic#util#versionIsAtLeast(self.getVersion(), [0, 1]) -endfunction - -function! SyntaxCheckers_vue_eslint_GetLocList() dict - if !g:syntastic_vue_eslint_generic - call syntastic#log#deprecationWarn('vue_eslint_conf', 'javascript_eslint_args', - \ "'--config ' . syntastic#util#shexpand(OLD_VAR)") - endif - - let makeprg = self.makeprgBuild({ 'args_before': (g:syntastic_vue_eslint_generic ? '' : '-f compact') }) - - let errorformat = - \ '%E%f: line %l\, col %c\, Error - %m,' . - \ '%W%f: line %l\, col %c\, Warning - %m' - - let loclist = SyntasticMake({ - \ 'makeprg': makeprg, - \ 'errorformat': errorformat, - \ 'postprocess': ['guards'] }) - - if !g:syntastic_vue_eslint_generic - if !exists('s:eslint_new') - let s:eslint_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1]) - endif - - if !s:eslint_new - for e in loclist - let e['col'] += 1 - endfor - endif - endif - - return loclist -endfunction - call g:SyntasticRegistry.CreateAndRegisterChecker({ - \ 'filetype': 'vue', - \ 'name': 'eslint'}) - -let &cpo = s:save_cpo -unlet s:save_cpo - -" vim: set sw=4 sts=4 et fdm=marker: + \ 'filetype': 'vue', + \ 'name': 'eslint', + \ 'redirect': 'javascript/eslint' + \ })