2015-11-15 11 views
5

私は端末vimにYouCompleteMeをインストールするまでシンタックスを使用していました。ですから、YouCompleteMeはSyntasticにエラーチェックをさせませんが、私は両方のプラグインが必要です。Vim(Syntax | YouCompleteMe)用の互換JSチェッカー?

YouCompleteMeにはいくつかのエラーチェッカーがありますが、Javascriptエラーの原因を調べる方法が見つかりませんでした。

どうすれば修正できますか? YCM用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ため

の.vimrc:

" 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 

:SyntasticInfo出力

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

利用可能なチェッカーを有効にした理由がわかりません。彼らはそこにいて、YCMインオレーションの前に働いていました!

+1

YCMは、C、C++、Objective-C、Objective-C++ファイルのシンセティックチェッカーを無効にします(その動作を無効にするオプションもあります)。他のすべての場合、YCMはコードの補完のみを行い、チェックは行いません。そして、syntasticと平和的に共存することができます。 JavaScriptリンタをシンセティックで使用できるようにするには、マニュアルを読むことを検討しましたか?恐ろしい視点、私は知っています。 – lcd047

+0

@ lcd047私はドキュメントを読んだが、実際には "ターンオフ"オプションが見つかりませんでした。私はいくつかの** let **変数を追加して、エラーを表示しても無駄なYCMオプションを無効にしましたが、Syntasticはまだ動作しません。私はSyntextのドキュメントも読んでいますが、すべては問題ありません。私は '':SyntasticInfo''を使うとチェッカーを認識していないことに気付きました。上の出力を見て、私は質問を更新するつもりです。 –

+0

これは、シンセティックをデバッグするのには適していません。課題トラッカーは[この方法]です(https://github.com/scrooloose/syntastic/issues)。 – lcd047

答えて

0

あなたができることは、Vimの代わりにNeovimプラグインとALEプラグインを使用し、場合によってはLanguageClient-neovimプラグインを使用することです。

後者の場合は、npm install -g javascript-typescript-langserverも実行する必要があります。

これは、JavaScript言語サーバーを使用して、非同期リンキング(ALE)および非同期補完機能を提供します。

関連する問題