2014-01-23 5 views

답변

1

에이스는 그룹의 규칙에있는 모든 정규식을 연결합니다. 당신은 /(regex1)(regex2)($)/ 될 것입니다 정규 표현식을 결과

[{token: .., regex: "regex1"}, {token: .., regex: /regex2/}, {defaultToken: ..}]

같은 그룹이 문서의 모든 행이 반복적으로 발생 정규식에 대응 규칙의 유형과 각각 일치하는 토큰 일치 (here 참조) 그래서 경우 만들어집니다. 일치하지 않는 텍스트의 경우 defaultToken이 사용됩니다.

정규 표현식이 라인별로 일치하므로 규칙에서 /\n/은 일치하지 않습니다.

첫 질문에 대해서는 {token : "comment", regex : "^\\s*\\w+"}가 작동해야한다고 생각합니다.

0

내 솔루션은 을 parameter 앞에 넣어야 작동합니다. 여기

this.$rules = { 
    start: [{ 
     token: 'support.function', 
     regex: /[^\(\)\"\s]+/, 
     next: 'line' 
    }], 
    line: [{ 
     token: 'markup.raw', 
     regex: /^\s*/, 
     next: 'start', 
    }, { 
     token: 'variable.parameter', 
     regex: /[^\(\)\"\s]+/ 
    }, { 
     token: 'markup.raw', 
     regex: /^\ */, 
     next: 'start', 
    }] 
} 

전체 코드 : https://github.com/Cirru/ace/blob/master/lib/ace/mode/cirru_highlight_rules.js

+0

이 고맙다는 중대하다. 이것을 정답이라고 가정하십시오. – ainu