Используйте tsconfig.json для tsc с синтаксисом в vim

Я хочу использовать плагин syntastic для vim, чтобы дать мне реальную проверку ошибок, когда я пишу файлы typescript, используя tsc. Я уже активировал tsc в vim. Любые предложения о том, как я мог бы получить tsc для использования в качестве конфигурации ближайшего родительского файла tsconfig.json? Я считаю, что tsc не делает этого по умолчанию, что затрудняет конфигурацию syntastic. Спасибо!

EDIT: Причина, по которой я думаю, что это не использование tsconfig.json, объясняется тем, что такие параметры, как метод разрешения модуля, не работают ( "требуют" не определены), а также не ловят файлы определений, определенные в атрибуте files в tsconfig.json.

Моя неудачная попытка решить эту проблему:

let g:syntastic_typescript_checks=['tsc', 'tslint']

" typescript: find tsconfig.json
function! FindTypescriptRoot()
    return fnamemodify(findfile('tsconfig.json', './;'), ':h')
endfunction

let g:syntastic_typescript_tsc_args=['-p', FindTypescriptRoot()]

Это приводит к тому, что Syntastic выплевывает мне эту ошибку:

app.ts|| TS5042: Option 'project' cannot be mixed with source files on a command line.

Это, вероятно, потому, что он выполняет команду типа tsc -p /path/to/project/ app.ts, которая является незаконным использованием этого флага... Но я не понимаю, почему мои настройки в tsconfig.json игнорируются syntastic: (

Ответ 1

Резюме

Добавьте let g:syntastic_typescript_tsc_fname = '' в .vimrc.

Подробнее

Как romainl, упомянутый в его ответе, "Использование tsconfig.json" в разделе wiki Typescript:

Вызывая tsc без входных файлов, в этом случае компилятор ищет файл tsconfig.json, начиная с текущего каталога и продолжая цепочку родительских каталогов.

Вы можете сделать это в Vim с помощью Syntastic добавив следующее к вашему .vimrc или .vimrc.after, если вы используете Janus, как указано в LCD 047 ответьте на Синтаксическая проблема # 1628:

let g:syntastic_typescript_tsc_fname = ''

Ответ 2

Вики говорит:

Использование tsconfig.json

  • Вызывая tsc без входных файлов, в этом случае компилятор ищет файл tsconfig.json, начиная с текущего каталога и продолжая цепочку родительских каталогов.

  • Вызов tsc без входных файлов и параметра командной строки -project (или просто -p), который указывает путь к каталогу, содержащему файл tsconfig.json.

Когда входные файлы указаны в командной строке, файлы tsconfig.json игнорируются.

Итак, в принципе, вам нужно найти способ сказать Syntastic не передавать имя файла tsc.

Я бы предложил использовать свой трекер проблем с этого момента.