Lit 오류를 무시하는 Vim 플러그인을 만들었습니다.

6487 단어 Vimtech

TL;DR


Lit 오류를 억제하는 Vim 플러그인을 만들었습니다.

왜 그랬어


Typescript의 테스트 코드를 사용하거나ny모드로 게으름을 피우고 싶을 때, 잠시 코드로 라인을 침묵시키려고 할 때, 매번 ESlint의 규칙 이름을 조사한다
복제// eslint-disable-line @typescript-eslint/no-explicit-any 등 코드에 붙이는 작업이 게으르다.
(Litt 오류를 제거하면 게으른 작업을 하지 않아도 됩니다.)
파이톤으로 하나씩 # noqa: C901 하거나 flake8의 오류 메시지에서 줍는 것은 번거롭다 (이하 동문).

만든 물건


평소 ESlint과 flake8은 자체로 만든 Vim 플러그인으로 오류 내용을 QuickFix에 삽입하기 때문에 그곳에서 오류를 줍고, 오류를 줄의 줄 끝이나 위의 줄에 삽입합니다.
https://github.com/heavenshell/vim-shutup/
function s:eslint_format(...)
  if &ft !~ 'typescript'
    return ''
  endif
  let value = a:000[0]
  let position = a:000[1]
  if position == 'upper'
    return printf('// eslint-disable-next-line %s', value)
  endif
  return printf(' // eslint-disable-line %s', value)
endfunction
function s:py_format(...)
  if &ft !~ 'python'
    return ''
  endif
  return printf('  # noqa: %s', a:000[0])
endfunction
let g:shutup_patterns = {
\ '(\zs.*\ze)': function('s:eslint_format'),
\ '[A-Z][0-9]\{3} ': function('s:py_format'),
\ 'eslint:\(Error\|Warning\):\zs.*\ze:': function('s:eslint_format'),
\ }
vimrc에 이런 느낌을 쓰면 오류가 발생한 줄에:Shutup를 치면 퀵픽스에 나타난 오류 메시지에서 규칙 이름을 골라 댓글을 달아준다.
직접 만든 플러그인은vim-lsp 같은 것을 한정적으로 사용하면 번거롭기 때문에 좀 더 통용되고 싶습니다.
예를 들어vim-lsp는 다음과 같은 형식으로 오류로 기록됩니다
eslint:Error:no-console:Unexpected console statement.
제3사칭에 있는 규칙명:no-console:은 규칙명이므로 이 규칙의 정규 표현식g:shutup_patterns을 제외한 키로 정의한다.
만약 이 줄의 오류가 정규 표현식과 일치한다면, 정의된 함수에 들어가서 매개 변수의 첫 번째 일치하는 문자열을 표시하고, 두 번째 문자열을 어느 위치에 삽입하는지 표시합니다.
삽입할 문자열을 함수에서 되돌리면 삽입됩니다.
예를 들어 다음과 같이 한 줄에 두 개의 규칙을 위반한 상황에서 두 개의 규칙을 결합하여 삽입한다.
console.log('foo' as any)
자기 전용이지만 40줄도 안 돼서 가능해서 편해요. 마음에 들어요.

구속


ALE와 같은 Quickfix에 잘못된 규칙 이름이 표시되지 않으면 규칙 이름을 지정하여 주석을 삽입할 수 없습니다.
추기
동료가 나에게 let g:ale_echo_msg_format = '[%linter%] [%severity%] %s (%code%)' 규칙명을 낼 수 있기 때문에 ALE도 순조롭게 사용할 수 있다고 알려주었다.

TODO

  • 문서 작성
  • [X] 테스트 쓰기
  • 화면 할당


    with vim-lsp
    with vim-eslint
    with swnowflake

    좋은 웹페이지 즐겨찾기