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
- Наследование
- Атрибуты
Примеры
В этом примере показано, как этот пользовательский атрибут используется для регистрации языковой службы, которая поддерживает операции 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) |
Удаляет все разделы реестра и записи, определенные конструктором класса. |