AvalonEdit의 SyntaxHighlighting Engine을 캐스케이드하고 싶습니다. 2 HighlightingDefinitions
입니다. 첫 번째 구문은 주요 구문입니다. 두 번째는 복잡한 다중 선 - 전 처리기 - 마크 업 언어입니다. 이런 이유로 첫 번째 문법에 두 번째 문법을 포함시키는 것은 너무 복잡합니다. 더 쉬운 방법은 첫 번째 구문을 렌더링하고 나중에 두 번째 구문을 기반으로 영향을받는 선분을 변경하는 것입니다.AvalonEdit : Cascading HighlightingColorizers
그래서 HighlightingColorizer
을 두 번째 언어로 인스턴스화하고 LineTransformers
에 추가했습니다. 그러나 두 번째 언어는 전처리 지시어가있는 라인 파트뿐만 아니라 전체 문서를 색칠합니다. 비 전 처리기 코드는 검은 색입니다.
두 번째 줄 변환기의 방법을 디버깅 했으므로 강조 표시되지 않은 코드 (= 전 처리기 코드 없음)의 줄이 예상대로 색이 지정되지 않았습니다. 그러나 선의 색깔은 검은 색입니다.
그래서 HighlightingColorizer
은 전체 문서의 이전 강조 표시를 모두 색칠하기 전에 다시 설정합니까?
다른 문제가있을 수 있습니까? 2 HighlightingColorizers
을 올바르게 캐스케이드 할 수 있습니까?
AvalonEdit 및 IIRC로 약간 작업했는데 다른 색상 표시기를 적용 할 때 모든 강조 표시가 재설정되었습니다. 이 문제를 해결하는 가장 좋은 방법은 AvalonEdit의 코드베이스를 사용하여 색 구성표를 해석하고 다시 적용하는 방법을 변경해야하는 첫 번째 실패 내에서 두 번째 문법을 포함 시키려고 다시 시도하는 것입니다.후자는 아마도 그것이 '리셋에 대한 언급'또는 이와 비슷한 것으로 생각하지 않기 때문에 아마 사소한 것일 것입니다. –
@ Xeno가 바로 여기 있습니다. XML 정의 파일을 사용하지 않으려면 코드 기반을 편집해야합니다. 그러나, 왜 이렇게하고 싶지 않은지 확신 할 수 없습니다. 원하는만큼 오랫동안 사용할 수 있으며 작은 세부 사항을 색칠하는 데 사용할 수 있습니다. 필자는 내장 된 SQL을 사용하여 simalar를 수행하는 파일을 작성했습니다. 그것은 빠르고 잘 작동합니다 ... – MoonKnight