2015-11-15 27 views
5

Stavo usando Syntastic per installare YouCompleteMe nel terminale vim. Quindi, il fatto è che YouCompleteMe non consente a Syntastic di controllare gli errori, ma ho bisogno di entrambi i plugin.Controllo JS compatibile per Vim (Syntastic | YouCompleteMe)?

YouCompleteMe ha alcuni correttori di errori, ma non ho trovato un modo per farlo funzionare per provocare errori Javascript.

Come posso risolvere il problema?

Vimrc per Syntastic

let g:syntastic_always_populate_loc_list = 0 
let g:syntastic_auto_loc_list = 2 
let g:syntastic_loc_list_height = 8 
let g:syntastic_check_on_open = 1 
let g:syntastic_check_on_wq = 1 
let g:syntastic_aggregate_errors = 1 
let g:syntastic_id_checkers = 1 
let g:syntastic_error_symbol = "✗" 
let g:syntastic_warning_symbol = "⚠" 

set statusline+=%#warningmsg# 
set statusline+=%{SyntasticStatuslineFlag()} 
set statusline+=%* 

let g:syntastic_javascript_checkers = ['jslint', 'jsonlint', 'gjslint'] 
let g:syntastic_html_tidy_exec = 'tidy5' 

Vimrc per YCM:

" YouCompleteMe and UltiSnips compatibility, with the helper of supertab 
let g:ycm_key_list_select_completion = ['<A-¶>', '<A-Space>', '<Down>'] 
let g:ycm_key_list_previous_completion = ['<A-§>', '<A-π>', '<Up>'] 

" You Complete Me Options 
let g:ycm_show_diagnostics_ui = 0 
let g:ycm_enable_diagnostic_highlighting = 0 
let g:ycm_enable_diagnostic_signs = 0 
let g:ycm_show_diagnostics_ui = 0 
let g:ycm_open_loclist_on_ycm_diags = 0 
let g:ycm_complete_in_comments = 0 
let g:ycm_complete_in_strings = 0 
let g:ycm_collect_identifiers_from_comments_and_strings = 0 
let g:ycm_collect_identifiers_from_tags_files = 1 

:SyntasticInfouscita

> Syntastic version: 3.7.0-31 (Vim 704, Darwin) 
> Info for filetype: javascript 
> Global mode: active 
> Filetype javascript is active 
> The current file will be checked automatically 
> Available checkers: - 
> Currently enabled checkers: - 

Non so perché disponibile e abilitare i correttori è andato? Erano lì e stavano lavorando prima dell'installazione di YCM!

+1

YCM disattiva i controlli di syntastic per i file C, C++, Objective-C e Objective-C++ (e c'è un'opzione per disattivare tale comportamento). Per tutto il resto, YCM esegue solo il completamento del codice, non il controllo e può coesistere pacificamente con syntastic. Per quanto riguarda l'abilitazione dei linters JavaScript in syntastic, hai preso in considerazione la lettura del manuale? Prospettiva spaventosa, lo so. – lcd047

+0

@ lcd047 Ho letto la documentazione ma in realtà non ho trovato l'opzione "disattiva". Ho aggiunto alcune variabili ** let ** per disabilitare le opzioni YCM senza errori di visualizzazione, ma Syntastic continua a non funzionare. Leggo anche la documentazione Syntastic ma tutto è ok. Ho notato che usare '': SyntasticInfo''it non riconosce le pedine. Guarda l'output sopra, ho intenzione di aggiornare la domanda. –

+0

Questo non è un buon posto per eseguire il debug di syntastic. Il tracker dei problemi è [in questo modo] (https://github.com/scrooloose/syntastic/issues). – lcd047

risposta

0

Quello che si potrebbe fare è utilizzare Neovim anziché Vim insieme al plugin ALE e facoltativamente il plug-in LanguageClient-neovim.

Affinché quest'ultimo funzioni, è necessario eseguire anche npm install -g javascript-typescript-langserver.

Questo consente di ottenere il linting asincrono (ALE) e le funzioni di completamento/linting asincrono tramite il server di linguaggio JavaScript.