SciTE(Scintilla)에서 내 사용자 정의 언어에 대한 구문 강조를 어떻게 생성합니까?

SciTE(Scintilla)에서 내 사용자 정의 언어에 대한 구문 강조를 어떻게 생성합니까?

고유한 사용자 정의 구문 강조 기능을 갖춘 사용자 정의 언어를 만들고 싶습니다.

Notepad++는 사용자 정의 "언어"를 만들 수 있는 Windows 전용 SciTE/Scintilla 기반 텍스트 편집기이며 이제 Linux에서도 같은 것을 재현하고 싶습니다.

꼭(?) 사용해야 해요SciTE/신틸라(내가 아는 한) 이는 다음을 표시할 수 있는 유일한 일반 텍스트 편집기이기 때문입니다.다른 크기글꼴동일한텍스트 파일(예: 기본 글꼴 = 12pt, 주석 글꼴 = 24pt)

내가 사용하는 것은논평글꼴은 복잡한 스크립트(알파벳)를 더 큰 글꼴 크기로 표시합니다. 다른 사람 있으면 말해주세요일반 텍스트이 작업을 수행하는 편집기입니다.

나는 이것이 SciTE/Scintilla(Notepad++ 아님)의 기능이라고 생각합니다. 다음 파일에서 일부 마법이 수행될 수 있습니다: /usr/share/scite/.properties

Notepad++에는 새로운 언어나 구문을 설정하기 위한 GUI 인터페이스가 있지만 SciTE에서 이를 수행하는 정확한 방법에 대한 몇 가지 지침을 사용할 수 있습니다.

감사해요...

답변1

다시 읽어보니 꽤 고통스럽습니다. 왜냐하면 C++ 소스 코드가 모두 정적으로 정의되어 있기 때문입니다.

예를 들어, 신틸라에 이미 존재하는 규칙 위에 특정 수의 규칙을 정의해야 합니다. 음, 꽤 혼란스럽습니다. Google에서 "scintilla lexer"를 빠르게 검색할 수 있지만 구문 강조 표시는 코드에 대해 매우 복잡하다는 점을 이해해야 합니다. notepad++와 그 모든 기능을 살펴보세요. 이는 거의 코드 구문 분석기이며 컴파일러에서 찾을 수 있습니다.

무엇보다도 모든 유형의 언어에 대해 플래시 어휘 분석기를 만드는 것이 가능합니다.

또 다른 문제는 텍스트 색상이 플랫폼 독립적이어야 한다는 것입니다. 또한 Windows에 더 유리하다고 생각합니다(duh). 글꼴 렌더러도 잊지 마세요. 그것도 또 다른 문제일 수 있습니다.

신틸라가 gnome이나 kde로 포팅되었는지는 잘 모르겠습니다. 그렇죠?

답변2

귀하의 요구 사항을 충족하지 못할 수도 있지만제디트새로운 언어를 강조할 수 있는 편집기를 원할 경우 언어 강조를 위한 광범위한 구성이 있습니다.

답변3

AFAIK, Notepad++는 Scintilla 어휘분석기를 기반으로 합니다.

나는 "새로운 언어"가 "기존 어휘 분석기이지만 새로운 키워드 세트"를 의미한다고 생각했지만 더 강력한 것 같습니다.

내가 무엇을 찾았나요 :(http://docs.activestate.com/komodo/4.4/udl.html)

Komodo는 UDL(사용자 정의 언어)이라고 불리는 다국어 구문 어휘 분석 및 사용자 정의 구문 강조를 위한 시스템을 정의합니다.UDL 파일은 Luddite라는 언어로 작성된 다음 Scintilla 어휘 분석기로 컴파일됩니다.Komodo용으로 포장되었습니다.

따라서 Notepad++에서 언어를 정의한 후에는 컴파일된 어휘분석기를 가져와서 scite에 추가할 수 있어야 합니다.

관련 정보