2009-04-14 4 views
32

저는 새로운 언어 용 컴파일러를 개발해 왔습니다. 구문 인식 환경에서의 개발을 입증 할 수 있으면 좋겠다고 생각했습니다. 언어에는 사용자 정의 키워드가 매우 많으며 구조는 Java 또는 C/C++와 같은 일반적인 언어와 크게 다릅니다.커스텀 Eclipse 구문 하이 라이터를 어떻게 만들 수 있습니까?

Eclipse 용 사용자 정의 구문 highligher는 어떻게 개발할 수 있습니까? 필자는 몇 가지 플러그인에 대한 언급을 보았지만 초보자가 필요로하는 문서는 충분하지 않습니다.

관련 키워드 목록뿐 아니라 내 언어에 대한 문법/RE가 있습니다.

답변

14

이클립스 프레임 워크는 상당히 복잡한 문서 모델을 사용하여 구문 색상을 지정합니다 (강조 표시가 아니라 채색이라고 함). 다른 편집기 에서처럼 간단하지는 않습니다.

정말로 시도해보고 싶다면 the following from the Eclipse plug-in developer guide을 읽어보십시오.

은 (위의 링크는 지금 죽었어요. This may be a similar document 또는 this.) 당신은 DSL (도메인 특정 언어)를 다루고있는 것처럼

+0

꽤 복잡하지만 높은 품질의 제품을 생산하는 것처럼 보입니다. 내 언어를 계속 개발하면서이 도구를 염두에 두겠습니다. 감사! –

+0

링크가 깨졌습니다. 이게 똑같은가요? http : //help.eclipse.org/indigo/index.jsp? topic = % 2Forg.eclipse.platform.doc.isv % 2Fguide % 2Feditors_highlighting.htm – thejoshwolfe

31

는 소리. 찾고있는 것은 XText과 똑같습니다. 다음은 페이지의 일부입니다.

Xtext는 외부 텍스트 DSL 개발을위한 프레임 워크/도구입니다. Xtext의 간단한 EBNF 문법 언어를 사용하여 고유 한 DSL을 설명하면 생성기에서 파서, AST- 메타 모델 (EMF에서 구현 됨) 및 그로부터 완전한 기능을 갖춘 Eclipse 텍스트 편집기를 생성합니다.

또한 this video과 관련된 인물 중 한 사람과 인터뷰를 확인하십시오. 여기에서 확인해 보겠습니다 :-)

this plugin을 확인할 수도 있습니다. 정확하게 당신이 찾고있는 것은 아니지만 좋은 출발이 될 수 있습니다.

+1

비디오를 Blip에서 더 이상 볼 수 없습니다. –

4

이것은 LiClipse (http://www.liclipse.com/)의 목표 중 하나입니다. Eclipse를 타겟팅하는 구문 강조 표시, 기본 코드 완성, 개요 등으로 편집기를 쉽게 수행 할 수 있습니다. 최근 출처 : http://liclipse.blogspot.com.br/2016/05/liclipse-303-providing-back-to-open.html.

새로운 언어를 추가하는 데 Java 기술이 필요하지 않습니다. (대개 새 .liclipse를 만듭니다. 이것은 적절한 장소에 YAML 파일을 만들고 언어를 분할하는 방법을 설명하는 기본 규칙을 만듭니다. 보통 문자열에서 주석과 코드를 분리하고 파티션에있는 키워드를 지정하면 올바른 구문 강조를 얻을 수 있습니다.

플러그인을 다운로드하면 plugins \ com.brainwy.liclipse.editor \ languages에 몇 가지 예제가 있으며, 기본 설명서는 http://www.liclipse.com/text/supported_languages.htmlhttp://www.liclipse.com/text/scope_definition.html에 있습니다.

+2

나는 아이디어가 멋지지만, LiClipse는 정말로 자유롭지 않다는 것을 명심하십시오. 라이센스는 30 일 동안 LiClipse를 평가할 누군가를 알지만, 계속 사용하려면 구입해야합니다. " – Anton

+0

@Anton : 독립형 LiClipse 응용 프로그램은 무료는 아니지만 LiClipseText Eclipse 플러그인은 [분명히] (http://www.liclipse.com/text/index.html)입니다. LiClipse 업데이트 사이트 인'http : // www.liclipse.com/text/updates'에서 설치할 수 있습니다. – Lii

+1

@Lii 예, LiClipse에서 처리하는 핵심 언어는 LiClipseText로 소스가 오픈되었습니다 (http://liclipse.blogspot.com.br/2016/05/liclipse-303-providing-back-to-open.html 참조). –

1

대신 Notepad ++의 사용자 정의 언어 기능을 사용할 수 있습니다. 우리는 일반적으로 이러한 사용 사례에 대해 Notepad ++를 사용합니다. 단지 XML 일뿐입니다. 또한 notepad ++는 언어 별 문법을 정의하기위한 UI 기반 편집 기능을 제공합니다.

관련 문제