[c#] Visual Studio에서 사용할 새 언어를 만드는 방법
새 템플릿 언어를 작성하고 Visual Studio에서 “지원”하기를 원합니다. 내가 알아야 할 것은 :
- 새 언어를 어떻게 구문 분석합니까?
새 템플릿 언어로 된 일부 코드가 주어지면 어떻게 HTML로 번역합니까? 지금은 정규식을 사용하여 토큰을 토큰별로 구문 분석하고 있지만 언어가 더 복잡해지고 오류 검사가 없기 때문에 이것이 잘 확장 될 것이라고 생각하지 않습니다. ANTLR에 대해 들어 봤지만 사용하지 않았습니다. 이것이이 작업에 적합한 도구일까요, 아니면 더 간단한 것이 있을까요? 이상적으로는 다른 언어처럼 가능한 한 많은 정보 (줄 번호, 오류 유형)와 함께 구문 오류를 오류 창에 보내고 싶습니다. - Visual Studio 용 새 파일 형식을 만들려면 어떻게하나요?
- 구문 강조는 어떻게 얻습니까?
1 단계에서 만든 것과 동일한 파서를 사용할 수 있습니까? 아니면 완전히 다른 것입니까? - Intellisense는 어떻게 얻습니까?
파서를 C #으로 작성하고 싶습니다.
답변
Visual Studio와의 통합 작업을 이미 수행 한 다른 언어를 살펴 보겠습니다. 좋은 예는 Boo입니다. 언어 및 Visual Studio 통합은 오픈 소스입니다. 따라서 그들이 무엇을해야했는지 정확히 볼 수 있습니다.
- 부 언어 : https://github.com/boo/boo-lang
- VS2010 용 Boo 구문 강조 (VSX 추가 기능) : http://vs2010boo.codeplex.com/
- Boo Language Studio (VS2008의 구문 강조 표시) : http://boolangstudio.codeplex.com/
VS2010 용 Boo 구문 강조에는 홈페이지에 몇 가지 권장 링크가 포함되어 있으므로 쉽게 참조 할 수 있습니다.
- VS 2010의 “분류”(구문 강조)에 대한 멋진 기사 : http://dotneteers.net/blogs/divedeeper/archive/2008/11/04/LearnVSXNowPart38.aspx
- VSX 추가 기능의 예 : http://blogs.msdn.com/vsxteam/archive/2009/06/17/new-editor-samples-for-visual-studio-2010-beta-1.aspx
답변
Visual Studio 측면과 관련하여 필요한 것은 “언어 서비스”이며, 이는 주어진 파일 확장명 / 형식에 대해 색상 지정, 인텔리 젠스 등을 처리하는 엔터티입니다.
소개 는이 문서를 참조
하고 코드 샘플 은 여기를 참조하십시오.
파싱과 관련하여 많은 기술이 있으며 의견이나 조언을 제공하지 않을 것입니다.
제 생각에는 Visual Studio의 이전 버전보다 VS2010에서 이러한 종류의 확장을 제공하는 것이 훨씬 더 간단하지만 상당한 양의 작업이 관련되어 있습니다.
또한보십시오
Visual Studio 2010 확장 성, MPF 및 언어 서비스
답변
이 기사를 기반으로 VS Language Service를 작성했습니다.
http://www.codeproject.com/KB/recipes/VSLanguageService.aspx
문법에 대한 기본 핸들이 있으면 나쁘지 않았습니다.
답변
찾고있는 대부분의 기능을 보여주는 샘플이 VS SDK에 있습니다.
답변
나는 자신의 언어로 VS를 사용하고 있었고 구문 강조가 절실히 필요했습니다 . 이 튜토리얼을 기반으로 내 것을 만들었습니다 .https : //mattduffield.wordpress.com/2012/07/31/writing-a-brightscript-syntax-highlight-extension-for-visual-studio-2010/
튜토리얼이 VS2010에 있다는 것을 알고 있습니다. 나는 딸꾹질이 없거나 아주 작은 VS2012에서 내 것을 만들었습니다. (VS2013에서도 작업) 최근에 VS2015로 변경하여 문제없이 솔루션을 편집 할 수 있습니다.
답변
Visual Studio 2013 SDK에 대한 매우 유용한 최신 샘플 모음을 찾았습니다.
http://blogs.msdn.com/b/vsx/archive/2014/05/30/vs-2013-sdk-samples-released.aspx
유망하게 들리는 OokLanguage의 최신 버전도 포함되어 있습니다.
우리는 ANTLR 4를 사용하여 매력처럼 작동하고 C # 코드와 직접 상호 작용할 수있는 언어를 구문 분석했습니다. 완전히 추천 할 수 있습니다.
답변
다른 답변에서 언급했듯이 가장 흥미로운 코드 샘플은 Visual Studio의 최신 버전 (작성 당시 2017)에 대한 Ook 언어 확장 입니다.
VS 2015의 경우 VS2015 분기 의 샘플을 참조하세요 .
2015 이상용 SDK를 설치하려면 VS 설정을 다시 실행해야합니다. 2015 년에는 “Visual Studio 확장 성 도구 업데이트 3″이라고합니다.