2010-07-21 5 views
3

누구든지 scintilla에 렉서를 추가 했습니까?scintilla/scite에 새로운 렉서 추가 (... 그리고 결국 wxPython StyledTextCtrl)

나는 http://www.scintilla.org/SciTELexer.html에서 짧은 지침에 따라 한 - 심지어

모든 컴파일 (렉서의 설정 변경) http://www.scintilla.org/ScintillaDoc.html#BuildingScintilla에서 비밀 별도의 지시 사항을 발견, 나는 잘 SciTE하기 위해 렉서를 추가 할 수 있지만 내 ColouriseMapfileDoc을 할 수 있습니다 메서드가 호출되지 않습니다 (printf는 출력을 생성하지 않습니다). 동일한 코드를 예 : ColouriseLuaDoc 렉서, 다 괜찮아요 (printf 않습니다 생산 출력).

은 특히 나는/scintilla/include/Scintilla.iface에서

  1. 이의 불꽃에서
  2. val SCLEX_MAPFILE=99 그리고 어떤 어휘 클래스 ID를 추가 한 디렉토리의 실행 HFacer.py을 포함하고 SciLexer.h 파일이 변경된 것을 확인했다.
  3. 함수와 렉서의 ID와 연관된 파일 이름 끝에 ColouriseMapfileDoc 함수
  4. LexMapfile.cxx으로 생성됨 :

    LexerModule lmMapfile (SCLEX_MAPFILE, ColouriseMapfileDoc "맵 파일을");

  5. 실행 LexGen.py

  6. scite/src/others.propertiesscite/src/SciTEGlobal.properties에서
  7. 이의 정의에 $(filter.conf)을 추가 몇 가지 스타일을 설정 복제하여 등록 정보 파일을 새로운 SciTE를 작성 (비밀의 지시에 따라) 모든 메이크 파일을 생성 open.filter.
  8. SciTE의 언어 메뉴에이 언어를 추가했습니다.
  9. Scintilla와 SciTE를 모두 빌드했습니다.
  10. 불평하고 저주.

12 단계를 제외하고 무엇이 잘못 되었나요?

답변

3

나중에이 질문을 읽는 경우 - import yourformatSciTEGlobal.properties에 추가해야합니다. 그것이 문서화되지 않은 9b 단계입니다.

3

누군가이 질문을 나중에 읽는 경우 -yourformat을 SciTEGlobal.properties에 추가해야합니다. 그것이 문서화되지 않은 9b 단계입니다.

이 단계는 더 이상 필요하지 않습니다. 나는 3.2.2를 컴파일했고 이것은 import *로했다. 나머지 단계는 아직 완전하고 적절합니다.

2

http://www.scintilla.org/SciTELexer.html에 설명 된대로 scintilla/lexer/LexOthers.cxx에 직접 렉서 1 개를 연결합니다. scite 3.2.3의 경우 부족 단계 5b는 LINK_LEXER(lmYouLexerMod);scintilla/src/Catalogue.cxx에 추가해야한다는 것입니다.