Visual Studio에서 사용할 새 언어를 만드는 방법


102

새 템플릿 언어를 작성하고 Visual Studio에서 "지원"하기를 원합니다. 내가 알아야 할 것은 :

  1. 새 언어를 어떻게 구문 분석합니까?
    새 템플릿 언어로 된 일부 코드가 주어지면 어떻게 HTML로 번역합니까? 지금은 정규식을 사용하여 토큰을 토큰별로 구문 분석하고 있지만 언어가 더 복잡해지고 오류 검사가 없기 때문에 이것이 잘 확장 될 것이라고 생각하지 않습니다. ANTLR에 대해 들어 봤지만 사용하지 않았습니다. 이것이이 작업에 적합한 도구일까요, 아니면 더 간단한 것이 있을까요? 이상적으로는 다른 언어처럼 가능한 한 많은 정보 (줄 번호, 오류 유형)와 함께 구문 오류를 오류 창에 보내고 싶습니다.
  2. Visual Studio 용 새 파일 형식을 만들려면 어떻게하나요?
  3. 구문 강조는 어떻게 얻습니까?
    1 단계에서 만든 것과 동일한 파서를 사용할 수 있습니까? 아니면 완전히 다른 것입니까?
  4. Intellisense는 어떻게 얻습니까?

파서를 C #으로 작성하고 싶습니다.

답변:


62

Visual Studio와의 통합 작업을 이미 수행 한 다른 언어를 살펴 보겠습니다. 좋은 예는 Boo입니다. 언어 및 Visual Studio 통합은 오픈 소스입니다. 따라서 그들이 무엇을해야했는지 정확히 볼 수 있습니다.

VS2010 용 Boo 구문 강조에는 홈페이지에 몇 가지 권장 링크가 포함되어 있으므로 쉽게 참조 할 수 있습니다.


29

Visual Studio 측면과 관련하여 필요한 것은 "언어 서비스"이며, 이는 주어진 파일 확장명 / 형식에 대해 색상 지정, 인텔리 젠스 등을 처리하는 엔터티입니다.

소개 는이 문서를 참조
하고 코드 샘플 은 여기를 참조하십시오.

파싱과 관련하여 많은 기술이 있으며 의견이나 조언을 제공하지 않을 것입니다.

제 생각에는 Visual Studio의 이전 버전보다 VS2010에서 이러한 종류의 확장을 제공하는 것이 훨씬 더 간단하지만 상당한 양의 작업이 관련되어 있습니다.

또한보십시오

Visual Studio 2010 확장 성, MPF 및 언어 서비스



2

찾고있는 대부분의 기능을 보여주는 샘플이 VS SDK에 있습니다.


2

나는 자신의 언어로 VS를 사용하고 있었고 구문 강조가 절실히 필요했습니다 . 이 튜토리얼을 기반으로 내 것을 만들었습니다 .https : //mattduffield.wordpress.com/2012/07/31/writing-a-brightscript-syntax-highlight-extension-for-visual-studio-2010/

튜토리얼이 VS2010에 있다는 것을 알고 있습니다. 나는 딸꾹질이 없거나 아주 작은 VS2012에서 내 것을 만들었습니다. (VS2013에서도 작업) 최근에 VS2015로 변경하여 문제없이 솔루션을 편집 할 수 있습니다.



0

다른 답변에서 언급했듯이 가장 흥미로운 코드 샘플은 Visual Studio의 최신 버전 (작성 당시 2017)에 대한 Ook 언어 확장 입니다.

VS 2015의 경우 VS2015 분기샘플을 참조하세요 .

2015 이상용 SDK를 설치하려면 VS 설정을 다시 실행해야합니다. 2015 년에는 "Visual Studio 확장 성 도구 업데이트 3"이라고합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.