Поделиться через


ProvideLanguageServiceAttribute Класс

Определение

Сообщает Visual Studio о том, что VSPackage предоставляет языковую службу. Используется с 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 (часть пакета SDK VSIP), для создания соответствующих разделов реестра и записей, которые сообщают 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 Описание
ProvideLanguageServiceAttribute Регистрирует языковую службу в Visual Studio и указывает поддерживаемые функции.
ProvideLanguageExtensionAttribute Связывает расширение файла с языковой службой.
ProvideLanguageEditorOptionPageAttribute Указывает узел или страницу свойств для диалогового окна Параметры, относяскогося к языковой службе.
ProvideLanguageCodeExpansionAttribute Указывает сведения о расположении для поддержки фрагментов кода в языковой службе.
ProvideServiceAttribute Регистрирует языковую службу в качестве службы Visual Studio. Все службы, предоставляемые в управляемом коде, используют этот атрибут.

Примечания для тех, кто наследует этот метод

Этот класс атрибута не может быть унаследован от , поэтому реализовать нечего.

Примечания для тех, кто вызывает этот метод

Этот класс атрибута обычно применяется к основному классу VSPackage, хотя он может отображаться в любом классе. Этот класс должен отображаться только один раз для каждой языковой службы, поддерживаемых VSPackage.

Конструкторы

ProvideLanguageServiceAttribute(Object, String, Int32)

Инициализирует новый экземпляр класса Shell.ProvideLanguageServiceAttribute.

Свойства

AutoOutlining

Определяет, поддерживает ли языковая служба автоматическую структуризацию.

CodeSense

Определяет, поддерживает ли языковая служба операции IntelliSense.

CodeSenseDelay

Определяет период времени до начала выполнения операции для поддержки операции IntelliSense.

DebuggerLanguageExpressionEvaluator

Определяет средство оценки выражений, используемое для оценки выражений.

DefaultToInsertSpaces

Определяет значение по умолчанию для параметра Вставка пробелов в диалоговом окне Параметры языковой службы.

DefaultToNonHotURLs

Определяет начальное значение параметра Включить навигацию по URL-адресу одним щелчком в диалоговом окне Параметры.

EnableAdvancedMembersOption

Определяет, включен ли параметр Скрыть расширенных участников в диалоговом окне Параметры.

EnableAsyncCompletion

Определяет, поддерживает ли язык анализ фона.

EnableCommenting

Определяет, может ли языковая служба комментировать и удалять комментарии из исходного кода с помощью одной команды.

EnableFormatSelection

Определяет, поддерживает ли языковая служба автоматическое форматирование исходного кода.

EnableLineNumbers

Определяет, можно ли выбрать параметр Номера строк в диалоговом окне Параметры.

FontColorDefaults

Сообщает Visual Studio о том, что VSPackage предоставляет языковую службу. Используется с MPF.

HideAdvancedMembersByDefault

Определяет начальное состояние параметра Скрыть расширенные члены в диалоговом окне Параметры.

LanguageName

Возвращает имя языка.

LanguageResourceID

Возвращает идентификатор ресурса, используемый для получения локализованной версию имени языка.

LanguageServiceSid

Сообщает Visual Studio о том, что VSPackage предоставляет языковую службу. Используется с MPF.

MatchBraces

Определяет, поддерживает ли языковая служба соответствующие языковые пары.

MatchBracesAtCaret

Определяет, поддерживают ли языковые службы соответствующие языковые пары во время ввода текста.

MaxErrorMessages

Определяет максимальное количество сообщений об ошибках, о которых может сообщить языковая служба за операцию синтаксического анализа.

QuickInfo

Определяет, поддерживает ли языковая служба краткие сведения IntelliSense.

RequestStockColors

Определяет, использует ли языковая служба встроенные цветные элементы, предоставляемые Visual Studio.

ShowCompletion

Определяет, включены ли параметры завершения инструкции в диалоговом окне Параметры.

ShowDropDownOptions

Определяет, включен ли параметр панели навигации в диалоговом окне Параметры.

ShowHotURLs

Определяет, отображаются ли URL-адреса таким образом, чтобы показать, что их можно щелкнуть. Данный параметр не используется.

ShowMatchingBrace

Определяет, отображается ли соответствующая языковая пара в строке состояния.

ShowSmartIndent

Определяет, включен ли параметр Smart Indenting в диалоговом окне Параметры.

SingleCodeWindowOnly

Определяет, отключена ли команда Window —> New Window для языковой службы.

SupportCopyPasteOfHTML

Определяет, поддерживает ли языковая служба формат HTML буфера обмена для операций копирования и вставки.

TypeId

Переопределите свойство TypeID, чтобы разрешить производным классам RegistrationAttribute работать с System.ComponentModel.TypeDescriptor.GetAttributes(...). Атрибут, производный от этого , должен переопределять это свойство только в том случае, если ему требуется более качественный контроль над экземплярами, которые можно применить к классу.

(Унаследовано от RegistrationAttribute)

Методы

GetPackageRegKeyPath(Guid)

Получает путь в реестре (относительно корня реестра приложения) VSPackage.

(Унаследовано от RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

Создает все разделы реестра и записи, определенные конструктором класса.

Unregister(RegistrationAttribute+RegistrationContext)

Удаляет все разделы реестра и записи, определенные конструктором класса.

Применяется к