색상 선언 변수


11

emacs가 C / C ++의 단일 함수에서 선언 된 변수를 기억하게하는 간단한 방법을 찾고 있습니다. "간단한"이란 외부 파일이없고 구성 파일에 elisp 줄이있는 것을 의미합니다.

내 기본 Emacs 구성은 선언시 변수 이름을 노란색으로 표시하지만 사용시 흰색으로 표시합니다.

char toto; // 'char' is green, 'toto' is yellow

toto = 42; // 'toto' is white

같은 기능 / 범위의 모든 "toto"도 노란색으로 표시하고 싶습니다.

나는 이미이 질문을 보았지만 더 간단한 것을 원합니다. 또한 font-lock mode로 무언가를 시도했지만 변수 이름에 적합한 것을 만들지는 못했습니다.

이미 C ++ 클래스 멤버 이름에 대한 아이디어가 있습니다 (이름 패턴 사용). 여기서 로컬 변수 일치를 원합니다.


3
이것은 아마도 보이는 것보다 어렵습니다. nobugs.org/developer/parsingcpp
사마

8
왜 패키지를 사용하고 싶지 않습니까? 이 기능을 제공하는 패키지가있는 경우, 패키지를 설치하면 기능을 처음부터 다시 작성하는 것보다 구성에서 거의 생략 할 필요가 거의 없습니다.
Tyler

11
이것은 color-identifiers-mode패키지 와 비슷하게 들립니다 . (외부 패키지를 고려하지 않기로했기 때문에 이것을 주석으로 게시합니다.)
Aaron Harris

7
모든 "외부 패키지"는 "구성 파일의 일부 생략 행"으로 설명 될 수도 있습니다. 누군가가 패키지 형태로 코드를 제공했다는 이유로 기존 코드를 피하는 것은 터무니없는 일입니다.
phils

어떤 버전의 이맥스가 있습니까?
DA 빈센트

답변:


1

당신은, 당신의 변수 방식을 위해 뭔가를 regexp와를 소집 할 수있는 일치 (의사 정규 표현식 코드) [char|other|types] [a-z];[a-z] =*;와 모드의 글꼴 잠금 키워드 목록에 추가; 사용자 정의 키워드 페이지 의 매뉴얼에서 :

예를 들어, 다음 코드는 C 모드에 대해 두 가지 글꼴 화 패턴을 추가합니다. 하나는 주석에서 'FIXME'라는 단어를 글꼴 화하고 다른 하나는 키워드로 'and', 'or'및 'not'이라는 단어를 글꼴 화합니다.

 (font-lock-add-keywords 'c-mode
  '(("\\<\\(FIXME\\):" 1 font-lock-warning-face prepend)
    ("\\<\\(and\\|or\\|not\\)\\>" . font-lock-keyword-face)))

이 예는 C 모드에만 영향을줍니다. C 모드와이 모드에서 파생 된 모든 모드에 동일한 패턴을 추가하려면 다음을 수행하십시오.

 (add-hook 'c-mode-hook
  (lambda ()
   (font-lock-add-keywords nil
    '(("\\<\\(FIXME\\):" 1 font-lock-warning-face prepend)
      ("\\<\\(and\\|or\\|not\\)\\>" .
       font-lock-keyword-face)))))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.