Tsuquyomi忽略打开时的错误

问题描述

我使用Tsuquyomi作为Syntastic插件来检查Vim中的TypeScript。我希望在打开文件时看到所有错误。相反,我只看到ESLint错误。保存或手动运行检查器时,我只能看到Tsuquyomi错误

在我的.vimrc中,我配置Syntastic在开通时与Tsuquyomi进行检查:

" Configure Syntax management
let g:syntastic_error_symbol = "✗"
let g:syntastic_warning_symbol = "⚠"
let g:syntastic_javascript_checkers = ['eslint','standard']
let g:syntastic_cs_checkers = ['Syntax','semantic','issues']
let g:syntastic_ignore_files = ['Sync/ebs/*']
let syntastic_mode_map = { 'passive_filetypes': ['less'] }
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_typescript_checkers = ['tsuquyomi']
let g:tsuquyomi_disable_quickfix = 0
let g:syntastic_debug = 3
" Frustratingly necessary for syntastic redrawing
set autoread
set ttyfast
au FileWritePost * :redraw!
au TermResponse * :redraw!
au TextChanged * :redraw!
au QuickFixCmdPre * :redraw!
au QuickFixCmdPost * :redraw!

如果我创建的文件错误,例如x.ts

const a: number = 'a'

console.log('a test:',a)

当我打开文件时,没有显示错误:mes输出显示Tsuquyomi尚未发现任何错误

"src/x.ts" 3L,49C
syntastic: 0.544308: g:syntastic_version = '3.8.0-94 (Vim 801,Linux,GUI)'
syntastic: 0.544445: &shell = '/usr/bin/zsh',&shellcmdflag = '-c',&shellpipe = '2>&1| tee',&shellquote = '',&shellredir = '>%s 2>&1',&shelltemp = 1,&shellxquote = '',&autochdir = 0,&shellxescape = ''
syntastic: 0.544821: UpdateErrors (auto): default checkers
syntastic: 0.545096: CacheErrors: default checkers
syntastic: 0.545567: g:syntastic_aggregate_errors = 0
syntastic: 0.545754: getcwd() = '/home/david/Sync/phaser3-typescript-project-template'
syntastic: 0.550256: CacheErrors: Invoking checker: typescript/tsuquyomi
syntastic: 2.404657: getLocList: checker typescript/tsuquyomi returned 0
syntastic: 2.404823: typescript/tsuquyomi raw: []
syntastic: 2.405012: quiet_messages filter: {}
syntastic: 2.405159: getLocList: checker typescript/tsuquyomi run in 1.854759s
syntastic: 2.405434: aggregated: {'_sorted': 0,'_name': '','_owner': 1,'_columns': 1,'_rawLoclist': []}

如果我随后手动检查:SyntasticCheck,则会显示错误,并在:mes中列出该错误

Messages maintainer: Bram Moolenaar <Bram@vim.org>
"src/x.ts" 3L,49C
syntastic: 0.432894: g:syntastic_version = '3.8.0-94 (Vim 801,GUI)'
syntastic: 0.432996: &shell = '/usr/bin/zsh',&shellxescape = ''
syntastic: 0.433309: UpdateErrors (auto): default checkers
syntastic: 0.433540: CacheErrors: default checkers
syntastic: 0.434051: g:syntastic_aggregate_errors = 0
syntastic: 0.434179: getcwd() = '/home/david/Sync/phaser3-typescript-project-template'
syntastic: 0.646807: system: command run in 0.208338s
syntastic: 0.647076: CacheErrors: Invoking checker: typescript/eslint
syntastic: 0.647493: SyntasticMake: called with options: {'postprocess': ['guards'],'errorformat': '%E%f: line %l\,col %c\,Error - %m,%W%f: line %l\,Warning - %m','makeprg': 'eslint -f compact src/
x.ts'}
syntastic: 3.528810: system: command run in 2.880954s
syntastic: 3.529040: checker output: ['']
syntastic: 3.529402: raw loclist: [{'lnum': 0,'bufnr': 0,'col': 0,'valid': 0,'vcol': 0,'nr': -1,'module': '','type': '','pattern': '','text': ''}]
syntastic: 3.530081: postprocess: [{'lnum': 0,'text': ''}]
syntastic: 3.530351: getLocList: checker typescript/eslint returned 0
syntastic: 3.530516: typescript/eslint raw: [{'lnum': 0,'text': ''}]
syntastic: 3.530739: quiet_messages filter: {}
syntastic: 3.530953: getLocList: checker typescript/eslint run in 2.883754s
syntastic: 3.531414: CacheErrors: Invoking checker: typescript/tsuquyomi
syntastic: 3.600012: getLocList: checker typescript/tsuquyomi returned 0
syntastic: 3.600261: typescript/tsuquyomi raw: []
syntastic: 3.600468: quiet_messages filter: {}
syntastic: 3.600669: getLocList: checker typescript/tsuquyomi run in 0.069068s
syntastic: 3.600990: aggregated: {'_sorted': 0,'_rawLoclist': []}
syntastic: 65.325780: g:syntastic_version = '3.8.0-94 (Vim 801,GUI)'
syntastic: 65.326247: &shell = '/usr/bin/zsh',&shellxescape = ''
syntastic: 65.327336: UpdateErrors: default checkers
syntastic: 65.328042: CacheErrors: default checkers
syntastic: 65.329746: g:syntastic_aggregate_errors = 0
syntastic: 65.330482: getcwd() = '/home/david/Sync/phaser3-typescript-project-template'
syntastic: 65.332150: CacheErrors: Invoking checker: typescript/eslint
syntastic: 65.334221: SyntasticMake: called with options: {'postprocess': ['guards'],'makeprg': 'eslint -f compact src
/x.ts'}
syntastic: 67.663350: system: command run in 2.328375s
syntastic: 67.663507: checker output: ['']
syntastic: 67.663724: raw loclist: [{'lnum': 0,'text': ''}]
syntastic: 67.663915: postprocess: [{'lnum': 0,'text': ''}]
syntastic: 67.664079: getLocList: checker typescript/eslint returned 0
syntastic: 67.664235: typescript/eslint raw: [{'lnum': 0,'text': ''}]
syntastic: 67.664398: quiet_messages filter: {}
syntastic: 67.664516: getLocList: checker typescript/eslint run in 2.331968s
syntastic: 67.664731: CacheErrors: Invoking checker: typescript/tsuquyomi
syntastic: 67.720773: getLocList: checker typescript/tsuquyomi returned 0
syntastic: 67.720950: typescript/tsuquyomi raw: [{'lnum': 1,'valid': 1,'col': 7,'availableCodeFix': 1,'filename': '/home/david/Sync/phaser3-typescript-project-template/src/x.ts','bufnr': 1,'code': 2322,'t
ype': 'E','text': '2322[QF available]: Type ''"a"'' is not assignable to type ''number''.'}]

如何在打开时让Tsuquyomi显示TypeScript错误,同时确保我总是尽可能快地看到它们?

解决方法

您有这行:

let g:tsuquyomi_disable_quickfix = 1

此选项禁止检查语法/语义。

尽管您设置了此设置,但似乎保存和手动触发仍然有效,并且您只能看到即时检查被阻止。

来源:

https://github.com/Quramy/tsuquyomi/issues/183

编辑:

如果这不起作用,请遵循文档:

与合成集成

如果您使用syntastic,则可以使用syntastic来显示语法和语义错误,而不是vim的默认quickfix窗口。要集成syntastic,请将以下设置写入.vimrc。

let g:tsuquyomi_disable_quickfix = 1
let g:syntastic_typescript_checkers = ['tsuquyomi'] " You shouldn't use 'tsc' checker.

syntastic具有默认的TypeScript检查器,其名称为'tsc'。您不应该在运行Tusuquyomi时使用它,因为它们不共享编译选项。 Tusuquyomi的检查程序名称为“ tsuquyomi”使用tsserver和您的tsconfig.json。

您似乎在第二行:

let g:syntastic_typescript_checkers = ['eslint','tsuquyomi']

我会尝试删除“夹板”,看看是否有帮助,如果您真的同时喜欢两者,我们应该寻找其他方式来配置它们。

来源:

https://github.com/Quramy/tsuquyomi

编辑2:

[..],只要先前的检查程序没有返回错误,就会依次调用每个检查程序。在这种情况下,您可能希望从最快到最慢,或者从宽松到严格列出检查器。

那么,您的陪同错误是否实际上阻止了tsuquyomi显示自己的错误?值得检查以更改其顺序。

来源:

https://blog.jpalardy.com/posts/how-to-configure-syntastic/