2017-01-19 4 views
0

에이스 편집기 사전 패키지 버전을 사용하고 기본 코드 강조 표시 (사용자 정의 키워드)를 Ace JavaScript 편집기에 추가하려고합니다.에이스 편집기 코드 강조 표시 오브젝트 표기

예문을 너무 많이 읽지 마십시오. 민감한 데이터를 게시하지 않는 것은 순수한 예입니다.

키워드 예 : keywordMapper에 추가 :

"options": "settings|options|global|user"; 

그리고 사용하는 페이지로 일부 CSS를 추가 :

.ace-eclipse .ace_options {\ 
    color: rgb(255,20,147);\ 
}\ 

난 그냥 내가 할 수 있도록 keywrods을 강조 할 생각 점을 강조하지 않고 이것을 얻으십시오 :
enter image description here

하지만 나는 아무것도 시도하지 못했습니다. 나는 단지 첫 번째 (점 : '.') 단어 만 일치시킬 수 있습니다. ".settings"는 일치하지 않을 것입니다 (그렇게 생각할 것입니다).

아이디어는 이전 토큰을 기반으로 자동 완성을 구현한다는 것입니다. "설정"을 입력하십시오. "옵션"(및 기타 항목)을 포함하는 목록을 얻으려면 옵션을 클릭하고 "."을 입력하십시오. "global | user", 또 다른 "." 각 개체의 모든 설정을 표시합니다.

나는 규칙을 사용하여 약간의 실험을했지만, 그것으로 충분 혼란, 그리고 난이 얻을 수있는 가장 가까운는 점을 강조하고 작업이다.

도움을 주시면 감사하겠습니다.

p.s. 에이스 메인 사이트의 <![CDATA[ 예제를 사용해도 작동하도록 게시 된 코드를 얻을 수 없었습니다.

너무 혼란스럽고 모든 문서가 거의 없습니다! 나는 도움을 줄 수는 없지만 그들의 사이트에 "실제 사용자"가 많아서 힘들지는 않을 것이라고 생각한다.

감사합니다.

답변

1

keywordMapper는 키워드 및 최상위 식별자에만 사용됩니다. 점 뒤의 모든 속성은 https://github.com/ajaxorg/ace/blob/v1.2.6/lib/ace/mode/javascript_highlight_rules.js#L210에서 처리됩니다. 그것을 좋아하기 전에 그래서 당신은 다른 규칙을 추가해야합니다 :

 { 
      token : "options", 
      regex : "settings|options|global|user" 
     }, 
당신은 당신은 자신의 값을 사용할 수 있습니다,

는 그러나 자동 완성을 위해 당신이 정말로 토큰을 강조 할 필요가 없습니다 하이 라이터 실험 https://ace.c9.io/tool/mode_creator.html을 사용할 수 있습니다

, 유형 대신.

+0

팁 주셔서 감사합니다. 그것은 하나의 괴물 같은 정규 표현식입니다. 언급하지 않았지만 "시작"규칙을 추가하려고 시도했습니다. token : "rexex"가 있지만 행운이없는 "options", 규칙의 "property"섹션에있는 "support.function"토큰에 코드를 추가해야한다고 제안하고 있습니까? 또한 자동 완성 및 강조 표시는 모두 나를위한 요구 사항입니다. 저는 editor.getSession(). on ('change'...) 이벤트를 사용하여 내 사용자 정의 자동 완성을 적용했습니다.이 기능을 구현하는 더 좋은 방법이 있습니까? – Steve

+0

이 completers에 대한 대답에 형광펜에 대한 좀 더 많은 정보를 추가 http://stackoverflow.com/a/30047705/1743328를 참조하십시오, 당신은 지금이 개체에 대한 이해가 된 것을 볼이 –

+0

에 대한 변경 리스너를 사용할 필요가 없습니다 꺼져.링크를 보내 주셔서 감사합니다. 귀하의 조언에 따라 예상대로 작동하게하고 자동 완성 질문에 대한 링크를 제공해 주셔서 감사드립니다. 정확히 내가 필요로하는 것처럼 보입니다 (비 "해킹 된"솔루션). – Steve