2008-10-25 1 views
4

다음 코드를 Emacs 루비 모드에서 입력하면 "# {foo}"가 둘러싸는 문자열과 다른 색상으로 표시됩니다. 내 이맥스 모드에서 어떻게해야합니까? 나는 루비 모드 소스 코드를 해독하려했지만 적당한 시간 내에 그것을 이해할 수 없었다. 루비 - mode.el는 font-lock-syntactic-keywords을 설정하는 경우에 대한Emacs font-lock-mode에서 문자열 리터럴 내에서 변수 참조를 바꿔보기

"a #{foo} a" 

답변

1

검색 :

다음은 fontification의 동일한 유형을 달성하기 위해 사용해야하는 것입니다 유사한 font-lock-keywords 변수에 대한 몇 가지 문서입니다.

5

마지막으로 알아 냈습니다. 대답은 글 꼴화 규칙의 "override"매개 변수가 t로 설정되어야한다는 것입니다. 즉, 지정된면이 문자열면을 덮어 쓰게됩니다. 자세한 내용은 "font-lock-keywords"변수에 대한 설명서를 참조하십시오. 다음은 그 예입니다.

(define-derived-mode temp-mode fundamental-mode "Temp" 
    "Temporary major mode." 
    (set (make-local-variable 'font-lock-defaults) 
     '((temp-mode-font-lock-keywords) nil nil nil nil))) 

(defconst temp-mode-font-lock-keywords 
    (list (list "$[A-Za-z0-9]+" 0 font-lock-variable-name-face t)))