ProvideLanguageServiceAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
VSPackage가 언어 서비스를 제공한다는 것을 Visual Studio에 알릴 수 있습니다. MPF(관리형 패키지 프레임워크)와 함께 사용됩니다.
public ref class ProvideLanguageServiceAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideLanguageServiceAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
public sealed class ProvideLanguageServiceAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
type ProvideLanguageServiceAttribute = class
inherit RegistrationAttribute
Public NotInheritable Class ProvideLanguageServiceAttribute
Inherits RegistrationAttribute
- 상속
- 특성
예제
이 예제에서는 이 사용자 정의 특성을 사용하여 IntelliSense 작업, 중괄호 일치, 비동기(배경) 구문 분석 및 사용자 지정 색 항목이 지원되는 언어 서비스를 등록하는 방법을 보여 줍니다.
참고
Visual C#을 사용하면 이름의 "특성" 부분을 삭제하여 사용자 정의 특성의 약식 형식을 사용할 수 있습니다. 이 약식 형식은 이 클래스 전체의 다른 모든 예제에서 사용됩니다.
using Microsoft.VisualStudio.Shell;
namespace MyLanguagePackage
{
internal class MyConstants
{
public const string languageName = "MyLanguage";
public const int languageNameResourceID = 106;
}
[ProvideLanguageService(typeof(MyLanguageService),
MyConstants.languageName,
MyConstants.languageNameResourceID,
// Optional language service properties
CodeSense = true, // General IntelliSense support
RequestStockColors = false, // Custom colorable items
EnableASyncCompletion = true, // supports background parsing
MatchBraces = true, // Match braces on command
MatchBracesAtCaret = true // Match braces while typing
)]
class MyLanguagePackage
{
}
}
설명
이 사용자 정의 특성(Visual C#과 관련됨)은 Visual Studio에 언어 서비스를 등록하는 데 필요한 정보를 제공하는 데 사용됩니다. 이 특성에 지정된 값은 어셈블리에 메타데이터로 저장됩니다. 이 메타데이터는 나중에 regpkg.exe(VSIP SDK의 일부)와 같은 프로그램에서 Visual Studio에 언어 서비스에 대해 알려주는 해당 레지스트리 키 및 항목을 만드는 데 사용됩니다.
의 영향을 받는 ProvideLanguageServiceAttribute 레지스트리 항목은 다음 레지스트리 키 아래에 있습니다.
HKEY_LOCAL_MACHINE\
SOFTWARE\
Microsoft\
VisualStudio\
[X.Y]\
Languages\
Language Services\
[language name]\
(Default) = reg_sz: [Language Service GUID]
Package = reg_sz: [Package GUID]
LangResID = reg_dword: [language name resource ID]
여기서 [X.Y] 는 Visual Studio의 버전입니다(예: 8.0Exp) 및 [언어 이름] 은 언어의 이름입니다(클래스 생성자에 대한 두 번째 매개 변수 ProvideLanguageServiceAttribute 에 지정된 대로).
참고
각 속성은 해당 항목이 위의 예제에 표시되지 않도록 영향을 미치는 정확한 레지스트리 항목을 지정합니다. 이러한 추가 항목은 표시된 세 항목과 동일한 수준에 표시됩니다.
클래스 생성자는 필요한 최소 매개 변수를 지정합니다. 사용자 정의 특성 클래스는 선택적 명명된 매개 변수도 지원합니다. 이러한 명명된 매개 변수는 필요한 매개 변수 다음에 생성자의 매개 변수 목록에 지정됩니다. get 및 set 연산자를 모두 지원하는 이 클래스의 모든 속성을 명명된 매개 변수로 지정할 수 있습니다. 이 예제에서는 명명된 매개 변수를 사용하는 방법을 보여 있습니다.
참고
명명된 매개 변수 중 일부는 MPF(관리형 패키지 프레임워크)와 관련이 있으며 각 속성 설명에 설명되어 있습니다.
언어 서비스에는 다음과 같은 사용자 정의 특성이 사용됩니다.
attribute | Description |
---|---|
ProvideLanguageServiceAttribute | Visual Studio에 언어 서비스를 등록하고 지원되는 기능을 지정합니다. |
ProvideLanguageExtensionAttribute | 파일 확장자를 언어 서비스와 연결합니다. |
ProvideLanguageEditorOptionPageAttribute | 언어 서비스와 관련된 옵션 대화 상자의 속성 노드 또는 페이지를 지정합니다. |
ProvideLanguageCodeExpansionAttribute | 언어 서비스에서 코드 조각을 지원할 위치 정보를 지정합니다. |
ProvideServiceAttribute | 언어 서비스를 Visual Studio 서비스로 등록합니다. 관리 코드에 제공된 모든 서비스는 이 특성을 사용합니다. |
상속자 참고
이 특성 클래스는 에서 상속할 수 없으므로 구현할 것이 없습니다.
호출자 참고
이 특성 클래스는 모든 클래스에 나타날 수 있지만 일반적으로 기본 VSPackage 클래스에 적용됩니다. 이 클래스는 VSPackage에서 지원하는 각 언어 서비스에 대해 한 번만 표시됩니다.
생성자
ProvideLanguageServiceAttribute(Object, String, Int32) |
Shell.ProvideLanguageServiceAttribute 클래스의 새 instance 초기화합니다. |
속성
AutoOutlining |
언어 서비스가 자동 개요를 지원하는지 여부를 결정합니다. |
CodeSense |
언어 서비스가 IntelliSense 작업을 지원하는지 여부를 확인합니다. |
CodeSenseDelay |
IntelliSense 작업을 지원하기 위해 구문 분석 작업이 시작되기까지의 시간을 결정합니다. |
DebuggerLanguageExpressionEvaluator |
식을 평가하는 데 사용되는 식 계산기를 결정합니다. |
DefaultToInsertSpaces |
언어 서비스의 옵션 대화 상자에서 공백 삽입 옵션의 기본 설정을 결정합니다. |
DefaultToNonHotURLs |
옵션 대화 상자에서 한 번 클릭 URL 사용 탐색 옵션의 초기 설정을 결정합니다. |
EnableAdvancedMembersOption |
옵션 대화 상자에서 고급 멤버 숨기기 옵션을 사용할 수 있는지 여부를 결정합니다. |
EnableAsyncCompletion |
언어가 백그라운드 구문 분석을 지원하는지 여부를 결정합니다. |
EnableCommenting |
언어 서비스가 단일 명령을 사용하여 소스 코드를 주석 처리하고 주석 처리를 제거할 수 있는지 여부를 결정합니다. |
EnableFormatSelection |
언어 서비스가 소스 코드의 자동 서식 지정을 지원하는지 여부를 결정합니다. |
EnableLineNumbers |
옵션 대화 상자에서 줄 번호 옵션을 선택할 수 있는지 여부를 결정합니다. |
FontColorDefaults |
VSPackage가 언어 서비스를 제공한다는 것을 Visual Studio에 알릴 수 있습니다. MPF(관리형 패키지 프레임워크)와 함께 사용됩니다. |
HideAdvancedMembersByDefault |
옵션 대화 상자에서 고급 멤버 숨기기 옵션의 초기 상태를 결정합니다. |
LanguageName |
언어의 이름을 반환합니다. |
LanguageResourceID |
언어 이름의 지역화된 버전을 가져오는 데 사용되는 리소스 ID를 반환합니다. |
LanguageServiceSid |
VSPackage가 언어 서비스를 제공한다는 것을 Visual Studio에 알릴 수 있습니다. MPF(관리형 패키지 프레임워크)와 함께 사용됩니다. |
MatchBraces |
언어 서비스가 일치하는 언어 쌍을 지원하는지 여부를 결정합니다. |
MatchBracesAtCaret |
입력하는 동안 언어 서비스가 일치하는 언어 쌍을 지원하는지 여부를 결정합니다. |
MaxErrorMessages |
언어 서비스에서 구문 분석 작업에 대해 보고할 수 있는 최대 오류 메시지 수를 결정합니다. |
QuickInfo |
언어 서비스가 IntelliSense 빠른 정보를 지원하는지 확인합니다. |
RequestStockColors |
언어 서비스가 Visual Studio에서 제공하는 기본 제공 색 항목을 사용하는지 여부를 확인합니다. |
ShowCompletion |
옵션 대화 상자에서 문 완성 옵션을 사용할 수 있는지 여부를 확인합니다. |
ShowDropDownOptions |
옵션 대화 상자에서 탐색 모음 옵션을 사용할 수 있는지 여부를 확인합니다. |
ShowHotURLs |
URL을 클릭할 수 있음을 표시하는 방식으로 표시되는지 여부를 확인합니다. 이 옵션은 사용되지 않습니다. |
ShowMatchingBrace |
일치하는 언어 쌍이 상태 표시줄에 표시되는지 여부를 확인합니다. |
ShowSmartIndent |
옵션 대화 상자에서 스마트 인덴팅 옵션을 사용할 수 있는지 여부를 확인합니다. |
SingleCodeWindowOnly |
언어 서비스에 대해 Window -> New Window 명령을 사용할 수 없는지 여부를 확인합니다. |
SupportCopyPasteOfHTML |
언어 서비스가 복사 및 붙여넣기 작업을 위해 클립보드 형식 HTML을 지원하는지 여부를 결정합니다. |
TypeId |
RegistrationAttribute 파생 클래스가 System.ComponentModel.TypeDescriptor.GetAttributes(...)와 함께 작동하도록 하려면 TypeID 속성을 재정의합니다. 이 속성에서 파생된 특성은 클래스에 적용할 수 있는 인스턴스에 대한 더 나은 제어가 필요한 경우에만 이 속성을 재정의해야 합니다. (다음에서 상속됨 RegistrationAttribute) |
메서드
GetPackageRegKeyPath(Guid) |
VSPackage의 레지스트리 경로(애플리케이션의 레지스트리 루트를 기준으로)를 가져옵니다. (다음에서 상속됨 RegistrationAttribute) |
Register(RegistrationAttribute+RegistrationContext) |
클래스 생성자가 지정한 대로 모든 레지스트리 키와 항목을 만듭니다. |
Unregister(RegistrationAttribute+RegistrationContext) |
클래스 생성자가 지정한 대로 모든 레지스트리 키와 항목을 제거합니다. |