VisualStudio.Extensibility 정보(미리 보기)

VisualStudio.Extensibility는 성능 및 안정성 향상을 위해 IDE에서 out-of-process로 실행되는 확장에 주로 초점을 맞춘 Visual Studio 확장을 개발하기 위한 새로운 프레임워크입니다. 개발자 생산성을 최대화하기 위해 간소화되고 신중하게 설계된 최신 비동기 API를 제공합니다. VisualStudio.Extensibility는 현재 개발 중이며 미리 보기로 사용할 수 있습니다.

현재 미리 보기를 사용하면 명령 만들기, 편집기에서 코드 또는 텍스트 작업, 사용자에게 프롬프트 또는 대화 상자 표시, 디버거 시각화 도우미 만들기 등 Visual Studio에 대한 광범위한 확장을 개발할 수 있습니다.

VisualStudio.Extensibility는 Visual Studio에서 확장을 사용하고 작성할 때 개발자가 경험하는 많은 문제를 해결하는 것을 목표로 합니다. VisualStudio.Extensibility를 사용하여 확장을 작성하면 다음과 같은 이점이 제공됩니다.

  • 안정성 증가: Visual Studio가 응답성이 기본 확장이 충돌하거나 중단되면 충돌하지 않습니다.
  • API 복잡성 감소: VisualStudio.Extensibility에는 간소화된 아키텍처, 일관된 API 및 명확한 설명서가 있습니다.
  • 핫 로드 기능: 익스텐션을 설치할 때 Visual Studio를 다시 시작할 필요가 없습니다.

결국 VisualStudio.Extensibility SDK를 사용하여 VS SDK를 사용하여 작성할 수 있는 모든 확장을 작성할 수 있습니다. 그러나 그 때까지는 VisualStudio.Extensibility에서 확장에 필요한 기능을 아직 사용할 수 없는 상황이 발생할 수 있습니다. 이 경우 In-process에서 실행되는 VS SDK와 함께 VisualStudio.Extensibility SDK를 사용하여 기능 격차를 해소할 수 있습니다. 자세한 내용은 진행중인 확장를 참조하세요.

VisualStudio.Extensibility에 대한 최신 정보는 공지 사항의 VSExtensibility GitHub 리포지토리에서 찾을 수 있습니다.

아티클 설명
VisualStudio.Extensibility 설치하기 VisualStudio.Extensibility의 최신 브리뷰를 다운로드하여 설치합니다.
시작 이전에 익스텐션을 개발한 적이 없는 경우 초보자 빠른 시작 및 소개 자습서로 시작합니다.
개념 SKD 및 익스텐션의 작동 방식에 대한 정신 모델을 빌드합니다.
개요 각 주요 기능 영역에 대한 개요를 읽고 자세히 알아보세요.
샘플 주요 기능을 보여주는 샘플 코드를 탐색합니다.
API 참조 VisualStudio.Extensibility API 설명서를 찾습니다.
실험적 API 및 호환성이 손상되는 변경 안정적 대 실험적 API에 대한 접근 방식과 이전 버전의 호환성이 손상되는 변경에 대해 알아봅니다.
알려진 문제 VisualStudio.Extensibility SDK의 알려진 문제를 확인합니다.
고급 항목 VisualStudio.Extensibility SDK의 구현 세부 정보를 알아봅니다.

VisualStudio.Extensibility 설치하기

현재 VisualStudio.Extensibility 미리 보기는 설치할 워크로드와 함께 Visual Studio 2022 버전 17.9 미리 보기 1 이상에서 Visual Studio extension development 작동합니다.

시작하기

다음 문서는 방향을 잡고 시작하는 데 도움이 됩니다"

VisualStudio.Extensibility를 사용하는 방법을 이해하려면 비동기 및 대기 및 종속성 주입을 사용하여 비동기 프로그래밍을 철저히 이해하는 것이 좋습니다. 또한 VisualStudio.Extensibility의 UI는 WPF(Windows Presentation Foundation)를 기반으로 하므로 WPF 설명서를 검토할 수 있습니다.

개념

Visual Studio SDK에 익숙한 경우 VSSDK 사용자에 대한 VisualStudio.Extensibility 소개를 참조하세요.

Visual Studio 익스텐션의 작동 방식에 대한 정신적 모델을 빌드하려면 새 Visual Studio 익스텐션의 일부를 참조하세요.

SDK에 포함된 내용을 알아보려면 SDK의 기능 영역을 참조하세요.

IDE에서 확장은 언제 어디서 표시되어야 하나요? Visual Studio 익스텐션은 특정 조건이 충족되면 IDE에 표시됩니다. 확장이 IDE에 표시되는 방법과 시기를 제어하려면 규칙 기반 활성화 제약 조건을 참조하세요.

Visual Studio 확장을 사용하면 기여를 통해 Visual Studio에서 해당 기능을 사용할 수 있습니다. 자세한 내용은 기여를 참조하세요.

VisualStudio.Extensibility에 사용되는 원격 UI 모델에 대해 알아봅니다.

개요

확장 개발 프로젝트에 필요할 수 있는 SDK 영역의 개요를 읽습니다.

  • 명령을 만들고 IDE의 사용자에게 노출합니다. 명령을 참조 하세요.
  • 파일 및 문서의 내용으로 작업하려면 편집기 익스텐션을 참조하세요.
  • 해당 문서 자체의 메모리 내 표현으로 작업하려면 문서를 참조하세요.
  • 확장에서 출력 창을 사용합니다. 출력 창을 참조하세요.
  • 도구 창, Visual Studio IDE 내의 도킹 가능한 창으로 작업합니다. 도구 창을 참조하세요.
  • 사용자 지정 가능한 단추가 있는 프롬프트를 사용하여 사용자와 상호 작용합니다. 사용자 프롬프트를 참조 하세요.
  • 사용자 지정 UI와 대화 상자를 사용하여 사용자와 상호 작용, 대화 상자 참조
  • 디버깅할 때 사용자 지정 데이터 시각화 만들기, 디버거 시각화 도우미 참조
  • 프로젝트 샌드 솔루션에 대한 정보 쿼리 또는 수정, 프로젝트 쿼리 참조
  • 언어 서버/LSP로 작업하여 추가 언어를 지원하려면 언어 서버 공급자를 참조하세요

샘플 및 튜토리얼

모든 샘플이 포함된 Visual Studio 솔루션은 Samples.sln에서 찾을 수 있습니다.

샘플 설명
간단한 명령 처리기 명령 작업의 기본 사항을 보여 줍니다. 이 첫 번째 Visual Studio 익스텐션 만들기 자습서도 참조하세요.
GUID 익스텐션 삽입 코드 편집기에서 텍스트 또는 코드를 삽입하는 방법, 특정 활성화 조건으로 명령을 구성하는 방법 및 지역화를 위해 리소스 파일을 사용하는 방법을 보여 있습니다. 이 첫 번째 단순 익스텐션 만들기 자습서도 참조하세요.
명령 육아 IDE의 여러 측면에 부모로 사용할 수 있는 명령을 작성하는 방법을 보여 줍니다.
문서 선택기 파일 경로 패턴과 일치하는 파일에만 적용되는 편집기 확장을 만드는 방법을 보여 줍니다.
출력 창 출력 창 API의 가장 기본적인 사용 표시
도구 창 도구 창을 만들고 콘텐츠로 채우는 방법을 보여줍니다.
사용자 프롬프트 사용자에게 프롬프트를 표시하는 방법을 보여줍니다.
대화 상자 사용자 지정 UI가 있는 대화 상자를 사용자에게 표시하는 방법을 보여 줬습니다.
단어 개수 여백 문서의 단어 개수를 표시하는 편집기 여백 확장을 만드는 방법을 보여 줍니다.
마크다운 린터 여러 구성 요소가 익스텐션 내에서 상호 작용하는 방법과 Visual Studio의 여러 영역을 확장할 수 있는 방법을 보여 줍니다.
프로젝트 쿼리 만들 수 있는 여러 종류의 프로젝트 시스템 쿼리를 보여 줍니다.
주석 제거기 .NET 종속성 주입을 통해 Visual Studio SDK 서비스를 사용하고 명령, 프롬프트 및 진행률 보고서에 VisualStudio.Extensibility API를 사용하는 방법을 보여 줍니다.
RegexMatchDebugVisualizer 원격 UI를 사용하여 디버거 시각화 도우미를 만들어 모달 대화 상자 창에서 시작되는 정규식 일치 항목을 시각화하는 방법을 보여줍니다.
MemoryStreamDebugVisualizer 디버거 시각화 도우미를 만들어 모달이 아닌 도구 창에서 시작되는 MemoryStream 개체를 시각화하는 방법을 보여 줍니다.
RustLanguageServiceProvider Rust 파일을 열 때 Intellisense 및 도구 설명을 추가하는 Rust 언어 서버 공급자 확장을 만드는 방법을 보여 둡니다.

실험적 API 및 호환성이 손상되는 변경

17.9 릴리스부터 대부분의 API를 안정적으로 레이블 지정할 준비가 완료되었습니다. 즉, 이러한 API에 대해 호환성이 손상되는 변경을 수행할 계획이 없습니다. 유용성에 대한 사용자 피드백에 대한 응답과 같이 수행해야 할 수 있는 호환성이 손상되는 변경은 호환성이 손상되는 변경 페이지에서 많은 공지와 함께 공식적으로 전달됩니다.

다음과 같은 이유 중 하나로 인해 아직 안정성 기준을 충족하지 못하는 몇 가지 API가 있습니다.

  • 기능 영역은 새로운 기능이며 향후 버전에서는 추가 기능과 변경이 예상됩니다.
  • API는 새로운 기능이므로 안정으로 표시하기 전에 사용자 피드백을 디자인에 통합하려고 합니다.
  • 특정 API를 사용하기 어렵다는 피드백을 받았으므로 이후 버전에서 업데이트할 계획입니다.

이러한 API의 경우 익스텐션 작성자가 SDK에 대한 확신을 가지고 익스텐션을 만들 수 있도록 [Experimental] 특성을 사용하여 명시적으로 레이블을 지정했습니다.

실험적 API를 사용하는 방법을 비롯한 자세한 정보는 실험적 API 페이지를 참조하세요.

알려진 문제

문제 추적기를 통한 피드백 및 버그 보고서에 감사드리며 SDK에 있는 모든 문제를 해결하기 위해 노력하고 있습니다.

현재 알려진 문제에 대한 자세한 정보는 알려진 문제 페이지를 방문하세요.

고급 항목

아티클 설명
고급 원격 UI 원격 UI 모델에 대한 자세한 정보
In-proc 확장 VisualStudio.Extensibility SDK in-proc을 사용하는 다양한 옵션에 대한 간단한 연습

API 문서

피드백 보내기

피드백과 참여를 적극적으로 모색하고 있습니다. 미리 보기 단계는 문제 및 기회를 식별하는 데 도움이 되는 커뮤니티 입력을 얻을 수 있는 좋은 시간입니다. 문제 추적기에서 피드백을 제공하고 버그를 보고할 수 있습니다.