programing

vim의 함수 본문에서 인수 강조

firstcheck 2021. 1. 16. 09:54
반응형

vim의 함수 본문에서 인수 강조


IDE에서 빌릴 수있는 작은 것. 따라서 아이디어는 함수 본문 내에서 함수 인수 (및 범위가 지정된 변수 이름)를 강조하는 것입니다. 이것은 일부 C :의 기본 동작입니다.

일반 정력 강조

글쎄, 커서를 안에두면 알고리즘 논리를 더 잘 따르기 위해 func인수를보고 강조 표시 foo하고 싶습니다 bar. 비슷한 이름의 fooin func2은 강조 표시되지 않습니다. 이 사치는 생략 할 수 있지만 ...

강조된 func

로컬 범위 변수를 사용하여 로컬에서 초기화 된 변수를 강조 표시하고 싶습니다.

내부에서 <code> i </ code> 강조

마지막으로 럭셔리 함을 다시 보여주기 위해 :

다시 사치

이것을 작성하는 것이 그렇게 사소하지 않습니다. 일반적인 아이디어를 제공하기 위해 C를 사용했습니다. 실제로 Scheme / Clojure 프로그래밍에 이것을 더 잘 사용할 수 있습니다.

클로저도 내부 구조

이 인식해야한다 let, loop, for, doseq예를 들어 바인딩.

내 vimscript-fu는 그렇게 강하지 않습니다. 나는 우리가 필요하다고 생각한다

  • 커서 아래의 함수 정의에서 인수를 구문 분석 (비정규 식?)합니다. 물론 이것은 특정 언어 일 것입니다. 제 우선 순위는 Clojure입니다.
  • 주어진 함수 / 범위 만 포함하도록 구문 영역을 정의합니다.
  • 필요한 구문 일치를 제공하십시오.

함수로서 이것은 (매우 리소스 집약적 인 경우) 키에 매핑되거나 CursorMoved그렇게 느리지 않을 수 있습니다.

좋아, 지금. 누군가 이와 같은 글을 쓰거나 찾았습니까? vimscript 전문가가 실제로 그러한 스크립트 작성을 시작하는 방법에 대한 아이디어를 가지고 있습니까?

약간의 주제를 벗어 났고 형식이 잘못되어 죄송합니다. 자유롭게 편집 / 포맷하십시오. 닫으려면 투표하십시오.


이것은 들리는 것보다 훨씬 어렵고 파일을 파싱 할 필요가 없기 때문에 vimscript API를 그대로 사용하면 경계선이 불가능합니다. 제대로 작동하려면 파일을 점진적 으로 구문 분석해야합니다 . 그렇기 때문에 정규 구문 파일은 정규식으로 수행 할 수있는 작업으로 제한됩니다. 몇 개의 문자를 변경하면 vim이 전체 파일을 다시 실행하지 않고도 구문 강조 표시에서 변경된 사항을 파악할 수 있습니다.

vim 구문 하이 라이터는 정규 표현식을 처리하는 데 제한되어 있지만이 작업을 수행하고 싶다면 vimscript에서 자체 파서를 롤링하고 파일의 토큰을 줄과 열로 참조하는 버퍼 로컬 구문을 생성하도록 할 수 있습니다. , 정규식에서 \ % l 및 \ % c 원자 사용. 이것은 모든 변경 후에 다시 실행되어야합니다. 불행히도 "파일 변경"에 대한 autocmd는 없지만 구성 가능한 기간 동안 유휴 상태 일 때 실행되는 CursorHold autocmd가 있습니다.


여기 에서 한 가지 가능한 해결책을 찾을 수 있습니다 . 전체 파일의 모든 항목을 강조 표시하고 매번 명령을 제공해야하기 때문에 최선의 방법은 아닙니다 (아마 두 번째 명령은 피할 수 있으며 첫 번째 명령에 대해서는 알지 못함). 그래도 한번보세요.

참조 URL : https://stackoverflow.com/questions/9348687/highlight-arguments-in-function-body-in-vim

반응형