다음을 통해 공유


ProvideLanguageServiceAttribute 클래스

정의

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
상속
ProvideLanguageServiceAttribute
특성

예제

이 예제에서는 이 사용자 정의 특성을 사용하여 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)

클래스 생성자가 지정한 대로 모든 레지스트리 키와 항목을 제거합니다.

적용 대상