다음을 통해 공유


언어 서비스 및 편집기 확장 시작

편집기 확장을 사용하여 개요, 중괄호 일치, IntelliSense 및 전구와 같은 언어 서비스 기능을 사용자의 프로그래밍 언어 또는 콘텐츠 형식에 추가할 수 있습니다. Visual Studio 편집기의 모양과 동작(예: 텍스트 색 지정, 여백, 도구 영역 및 기타 시각적 요소)을 사용자 지정할 수도 있습니다. 자체 콘텐츠 형식을 정의하고 콘텐츠가 표시되는 텍스트 보기의 모양과 동작을 지정할 수도 있습니다.

편집기 확장 작성을 시작하려면 Visual Studio SDK의 일부로 설치된 편집기 프로젝트 템플릿을 사용합니다. Visual Studio SDK는 VSPackage를 사용하거나 MEF(Managed Extensibility Framework)를 사용하여 Visual Studio 확장을 보다 쉽게 개발할 수 있도록 하는 다운로드 가능한 도구 세트입니다.

참고 항목

Visual Studio SDK에 대한 자세한 내용은 Visual Studio SDK를 참조하세요.

자체 편집기 확장을 작성하기 전에 다음 개념과 기술에 대해 알아보는 것이 좋습니다.

WPF(Windows Presentation Foundation) 및 편집기 확장

Visual Studio 편집기 UI(사용자 인터페이스)는 WPF(Windows Presentation Foundation)를 사용하여 구현됩니다. WPF는 풍부한 시각적 환경과 코드의 시각적 측면을 비즈니스 논리와 분리하는 일관된 프로그래밍 모델을 제공합니다. 편집기 확장을 만들 때 많은 WPF 요소와 기능을 사용할 수 있습니다. 자세한 내용은 Windows Presentation Foundation을 참조하세요.

MEF(Managed Extensibility Framework) 및 편집기 확장

Visual Studio 편집기는 MEF(Managed Extensibility Framework)를 사용하여 구성 요소 및 확장을 관리합니다. 또한 MEF를 사용하면 개발자가 Visual Studio와 같은 호스트 애플리케이션에 대한 확장을 더 쉽게 만들 수 있습니다. 이 프레임워크에서는 MEF 계약에 따라 확장을 정의하고 MEF 구성 요소 부분으로 내보냅니다. 호스트 애플리케이션은 구성 요소 부분을 찾아 등록하고 올바른 컨텍스트에 적용되도록 하여 구성 요소를 관리합니다.

참고 항목

편집기의 MEF에 대한 자세한 내용은 편집기의 Managed Extensibility Framework를 참조하세요.

Visual Studio 편집기 확장 지점 및 확장

편집기 확장 지점은 사용자 지정하고 확장할 수 있는 MEF 구성 요소 부분입니다. 경우에 따라 인터페이스를 구현하고 올바른 메타데이터와 함께 내보내서 확장 지점을 확장합니다. 다른 경우에는 확장을 선언하고 특정 형식으로 내보냅니다.

다음은 편집기 확장의 기본 종류 중 일부입니다.

편집기 확장 배포

Visual Studio에서는 source.extension.vsixmanifest라는 메타데이터 파일을 솔루션에 추가하고 솔루션을 빌드한 다음, Visual Studio에 알려진 폴더에 이진 파일 및 매니페스트의 복사본을 추가하여 편집기 확장을 배포합니다. 매니페스트 파일은 확장에 대한 기본 사항(예: 이름, 작성자, 버전 및 콘텐츠 형식)를 정의합니다. VSIX 매니페스트 파일 및 확장을 배포하는 방법에 대한 자세한 내용은 Visual Studio 확장 배송을 참조하세요.

컴퓨터에 확장을 설치할 때 Visual Studio에 알려진 폴더의 하위 폴더에 이진 파일 및 매니페스트를 포함합니다.

Warning

Visual Studio에 포함된 편집기 확장성 템플릿 중 하나를 사용한다면 매니페스트 및 배포 위치의 세부 정보에 대해 걱정할 필요가 없습니다. 템플릿에는 확장을 등록하고 배포하는 데 필요한 모든 것이 포함되어 있습니다.

실험적 인스턴스에서 확장 실행

확장을 개발하는 동안 Visual Studio의 작업 버전을 다음 실험 폴더에 배포하여(Windows Vista 및 Windows 7) 격리할 수 있습니다.

{%LOCALAPPDATA%}\VisualStudio\10.0Exp\Extensions\{Company}\{ExtensionID}

여기서 %LOCALAPPDATA%는 로그온한 사용자의 이름이며 Company는 확장을 소유한 회사의 이름이고 ExtensionID는 확장의 ID입니다.

실험적 위치에 확장을 배포하면 디버그 모드에서 실행됩니다. Visual Studio의 두 번째 인스턴스가 시작되고 Microsoft Visual Studio - 실험적 인스턴스라는 이름이 지정됩니다.

확장 관리

Visual Studio에 대한 확장은 확장 및 업데이트(도구 메뉴)에 나열됩니다. 실험적 인스턴스에서 확장을 테스트하는 경우 실험적 인스턴스의 확장 및 업데이트에 나열되지만 개발 인스턴스에는 나열되지 않습니다.

자세한 내용은 Visual Studio 확장 찾기 및 사용을 참조하세요.

템플릿을 사용하여 편집기 확장 만들기

편집기 템플릿을 사용하여 분류자, 도구 영역 및 여백을 사용자 지정하는 MEF 확장을 만들 수 있습니다. C# 및 Visual Basic 프로젝트 모두에 대한 템플릿이 있습니다. 자세한 내용은 편집기 항목 템플릿을 사용하여 확장 만들기를 참조하세요.

VSIX 프로젝트 템플릿을 사용하여 확장을 만들 수도 있습니다. 이 템플릿은 모든 종류의 확장을 배포하는 데 필요한 요소만 제공하고 source.extension.vsixmanifest 파일, 필수 어셈블리 참조, 확장을 배포할 수 있는 빌드 작업이 포함된 프로젝트 파일을 포함합니다. 자세한 내용은 VSIX 프로젝트 템플릿을 참조하세요.

Visual Studio 패키지 확장에서 편집기 MEF 구성 요소를 만들 수도 있습니다. 자세한 내용은 다음 연습을 참조하세요.