Condividi tramite


Classe LanguageService

Si tratta della classe base per un servizio di linguaggio che fornisce le funzionalità del linguaggio incluso evidenziazione della sintassi, la corrispondenza di parentesi graffe, il completamento automatico, il supporto IntelliSense e l'espansione del frammento di codice.

Questa API non è conforme a CLS. 

Gerarchia di ereditarietà

System.Object
  Microsoft.VisualStudio.Package.LanguageService

Spazio dei nomi:  Microsoft.VisualStudio.Package
Assembly:   Microsoft.VisualStudio.Package.LanguageService.9.0 (in Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.10.0 (in Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.11.0 (in Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
  Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)

Sintassi

'Dichiarazione
<CLSCompliantAttribute(False)> _
<ComVisibleAttribute(True)> _
Public MustInherit Class LanguageService _
    Implements IDisposable, IVsLanguageInfo, IVsLanguageDebugInfo, IVsProvideColorableItems,  _
    IVsLanguageContextProvider, IServiceProvider, IObjectWithSite, ISynchronizeInvoke, IVsDebuggerEvents,  _
    IVsFormatFilterProvider
[CLSCompliantAttribute(false)]
[ComVisibleAttribute(true)]
public abstract class LanguageService : IDisposable, 
    IVsLanguageInfo, IVsLanguageDebugInfo, IVsProvideColorableItems, IVsLanguageContextProvider, IServiceProvider, 
    IObjectWithSite, ISynchronizeInvoke, IVsDebuggerEvents, IVsFormatFilterProvider

Il tipo LanguageService espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo protetto LanguageService Inizializza una nuova istanza di LanguageService classe.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica InvokeRequired Determina se un metodo deve essere chiamato tramite un limite del thread.
Proprietà pubblica IsActive Determina se il servizio di linguaggio è connesso alla visualizzazione corrente e pertanto è attivo.
Proprietà pubblica IsDebugging Stabilisce se il debugger è attivo.
Proprietà pubblica IsParsing Determina se un di traccia in background è in corso.
Proprietà pubblica LastActiveTextView Restituisce l'ultima visualizzazione di testo attiva associata al servizio di linguaggio.
Proprietà pubblica MainThreadId Restituisce l'id del thread che il servizio di linguaggio viene eseguito.
Proprietà pubblica Name Restituisce il nome del linguaggio, ad esempio “C++„ o “HTML„).
Proprietà protetta. ParseThreadIsAlive
Proprietà pubblica ParseThreadPaused
Proprietà pubblica Preferences Fornisce l'accesso alle preferenze del servizio di linguaggio.
Proprietà pubblica Site Restituisce il provider di servizi fornita al servizio di linguaggio.

In alto

Metodi

  Nome Descrizione
Metodo pubblico AbortBackgroundParse
Metodo pubblico AddCodeWindowManager Aggiunge un amministratore di finestra del codice al servizio di linguaggio.
Metodo pubblico BeginInvoke richiama un metodo su un altro thread.
Metodo pubblico BeginParse Avvia un'operazione di analisi in un thread in background.
Metodo pubblico CanStopThread
Metodo pubblico CreateCodeWindowManager Creare un'istanza di un oggetto CodeWindowManager classe.
Metodo pubblico CreateDocumentProperties Creare un'istanza di un oggetto DocumentProperties classe.
Metodo pubblico CreateDropDownHelper Creare un'istanza di un oggetto TypeAndMemberDropdownBars classe.
Metodo pubblico CreateExpansionFunction creare un'istanza ExpansionFunction classe.
Metodo pubblico CreateExpansionProvider creare un'istanza ExpansionProvider classe.
Metodo pubblico CreateParseRequest Crea una richiesta per soddisfare il motivo specificato per analizzare che viene quindi passato al parser.
Metodo pubblico CreateSource Creare un'istanza di un oggetto Source classe.
Metodo pubblico CreateViewFilter Creare un'istanza di un oggetto ViewFilter classe.
Metodo pubblico CurFileExtensionFormat Restituisce l'indice nell'elenco di estensioni di file che corrisponde all'estensione del nome file specificato.
Metodo pubblico DispatchCommand(Guid, UInt32, IntPtr, IntPtr) chiamato per eseguire il comando specificato.
Metodo pubblico DispatchCommand(Guid, UInt32, UInt32, IntPtr, IntPtr)
Metodo pubblico Dispose Chiamato quando l'oggetto del servizio di linguaggio di distruggendosi.
Metodo pubblico EndInvoke Recupera il risultato di una chiamata asincrona avviata da LanguageService.BeginInvoke.
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico GetCodeWindowManager Creare un'istanza di un oggetto CodeWindowManager classe.
Metodo pubblico GetCodeWindowManagerForSource restituisce CodeWindowManager oggetto associato a specificato Source oggetto.
Metodo pubblico GetCodeWindowManagerForView restituisce CodeWindowManager associato a specificato IVsTextView oggetto.
Metodo pubblico GetColorableItem restituisce richiesto IVsColorableItem oggetto.
Metodo pubblico GetColorizer(IVsTextLines) Iinstantiates a Colorizer classe.
Metodo pubblico GetColorizer(IVsTextLines, IVsColorizer%) Restituisce il colorizer associato a un oggetto Source oggetto che contiene l'oggetto specificato IVsTextLines oggetto.
Metodo pubblico GetFileExtensions Restituisce una stringa contenente le estensioni di file associato al linguaggio.
Metodo pubblico GetFormatFilterList Restituisce un elenco dei filtri dell'estensione di file appropriati per un oggetto Salva con nome finestra di dialogo.
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetImageList Restituisce un elenco immagini che contiene glifi associati al servizio di linguaggio.
Metodo pubblico GetItemCount Restituisce il numero di elementi colorabili personalizzati supportati dal servizio di linguaggio.
Metodo pubblico GetIVsDebugger restituisce IVsDebugger oggetto che rappresenta il debugger attualmente disponibile per l'ascolto degli eventi del debugger.
Metodo pubblico GetIVsTextMacroHelperIfRecordingOn restituisce IVsTextMacroHelper l'oggetto se la registrazione è attivata.
Metodo pubblico GetLanguageID Restituisce il linguaggio GUID del servizio di linguaggio.
Metodo pubblico GetLanguageName Restituisce il nome del linguaggio handle del servizio di linguaggio.
Metodo pubblico GetLanguagePreferences Restituisce un oggetto LanguagePreferences oggetto per il servizio di linguaggio.
Metodo pubblico GetLanguageServiceGuid Restituisce il GUID del servizio di linguaggio.
Metodo pubblico GetLocationOfName metodo obsoleto che restituisce sempre E_NOTIMPL.
Metodo pubblico GetNameOfLocation Restituisce il nome dell'elemento contenitore contenente la posizione specificata.
Metodo pubblico GetOrCreateSource
Metodo pubblico GetParseResult Ottiene il risultato dell'operazione di analisi.
Metodo pubblico GetPrimaryViewForSource
Metodo pubblico GetProximityExpressions Restituisce un elenco di espressioni da valutare e indicarne automobili finestra, per un intervallo specificato di righe.
Metodo pubblico GetScanner restituisce una singola creazione di istanze di un parser.
Metodo pubblico GetService Restituisce un oggetto servizio che è possibile eseguire il cast in una specifica interfaccia.
Metodo pubblico GetSite Restituisce un puntatore unmarshaled a un'interfaccia richiesta.
Metodo pubblico GetSource(IVsTextLines) Restituisce un oggetto esistente Source l'oggetto che contiene il buffer specificato del database di origine.
Metodo pubblico GetSource(IVsTextView) Restituisce un oggetto esistente Source l'oggetto che contiene il file di origine riportato nella visualizzazione di testo specificata.
Metodo pubblico GetSource(String) Restituisce un oggetto esistente Source oggetto assegnato un nome file.
Metodo pubblico GetSources Restituisce una raccolta di Source oggetti gestiti dal servizio di linguaggio.
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico Initialize chiamato per inizializzare il servizio di linguaggio.
Metodo pubblico Invoke Chiamato per richiamare un'attività specificata dal delegato specificato.
Metodo pubblico IsMacroRecordingOn Chiamato per determinare se la registrazione è attivata.
Metodo pubblico IsMappedLocation Chiamato per determinare se la posizione specificata nel codice di riferimenti specificato del file di origine in un altro file.
Metodo pubblico IsSourceOpen Determina se il file di origine viene aperto.
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico OnActiveViewChanged Chiamato quando la visualizzazione corrente è stato modificato a una visualizzazione diversa.
Metodo pubblico OnCaretMoved Chiamato quando il cursore è spostato.
Metodo protetto OnChangesCommitted Chiamato quando le modifiche generate da un'operazione dei frammenti di codice o di completamento automatico di espansione viene eseguito il commit nel buffer.
Metodo pubblico OnCloseSource chiamato per chiudere specificato Source oggetto.
Metodo pubblico OnIdle Chiamato quando nessun altro evento deve essere gestito.
Metodo pubblico OnModeChange Chiamato ogni volta che la modalità di debug è cambiato durante il debug.
Metodo pubblico OnParseAborted
Metodo pubblico OnParseComplete Chiamato quando un di traccia in background è stato completato.
Metodo pubblico OpenDocument Aprire il file specificato.
Metodo pubblico ParseSource Analizza il database di origine basato su specificato ParseRequest oggetto.
Metodo pubblico QueryInvalidEncoding Determina se il formato di origine fornito è valido o meno.
Metodo pubblico QueryService Restituisce l'interfaccia di richiesta dal servizio specificato.
Metodo pubblico QueryWaitForAutoOutliningCallback
Metodo pubblico RemoveCodeWindowManager Chiamato quando la visualizzazione associata a specificato CodeWindowManager verrà chiusa.
Metodo pubblico ResolveName Restituisce un elenco di nomi del metodo che corrispondono al nome specificato modificato dai flag specificati.
Metodo pubblico ScrollToEnd(IVsTextView) Aggiorna la visualizzazione specificata per mostrare la fine del file di origine.
Metodo pubblico ScrollToEnd(IVsWindowFrame) Aggiorna la visualizzazione della struttura della finestra specificata per mostrare la fine del file di origine.
Metodo pubblico SetSite Chiamato per impostare o posizionare il provider di servizi per questo servizio di linguaggio.
Metodo pubblico SetUserContextDirty Contrassegna il contesto utente come modificato nel buffer di origine specificato.
Metodo pubblico SynchronizeDropdowns Chiamato per aggiornare una barra a discesa basata sulla posizione corrente del cursore.
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblico UpdateLanguageContext Aggiorna il contesto corrente della guida utente in un'area selezionata del database di origine specificato.
Metodo pubblico ValidateBreakpointLocation chiamato per determinare se la posizione specificata può avere un punto di interruzione applicato a.

In alto

Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfacciaMetodo privato IVsFormatFilterProvider.CurFileExtensionFormat Restituisce l'indice nell'elenco di estensioni di file che corrisponde all'estensione del nome file specificato.
Implementazione esplicita dell'interfacciaMetodo privato IVsFormatFilterProvider.GetFormatFilterList Restituisce un elenco dei filtri dell'estensione di file appropriati per un oggetto Salva con nome finestra di dialogo.
Implementazione esplicita dell'interfacciaMetodo privato IVsFormatFilterProvider.QueryInvalidEncoding Determina se il formato di origine fornito è valido o meno.
Implementazione esplicita dell'interfacciaMetodo privato IVsLanguageContextProvider.UpdateLanguageContext Aggiorna il contesto corrente della guida utente fornito un'area selezionata del database di origine specificato.

In alto

Note

Visual Studio servizi di linguaggio vengono utilizzati per fornire supporto per i linguaggi di codice.un servizio di linguaggio è registrato con Visual Studio quando il pacchetto del servizio di linguaggio è installato.La parte del processo di registrazione associare un'estensione di file con un servizio di linguaggio in qualsiasi momento un file con tale estensione viene caricato, il servizio di linguaggio viene caricata.

LanguageService la classe è la classe base per il servizio di linguaggio.Visual Studio creare un'istanza del package VS che implementa il servizio di linguaggio e chiama SetSite metodo nel package VS.Nell'implementazione del metodo, Initialize metodo su Package la classe base è denominata.eseguire l'override Initialize metodo per creare un'istanza del servizio di linguaggio.Ricordare chiamare SetSite metodo sul servizio di linguaggio dopo la creazione di istanze.

Note per gli implementatori

Derivare la classe da questa classe per creare diventi proprietaria del servizio di linguaggio.È inoltre necessario, per lo meno, implementare un parser che implementa IScanner interfaccia.Tutte le funzionalità di un servizio di linguaggio sono basate sul parser.

I seguenti metodi e le proprietà sono contrassegnati come astratta e devono essere implementati in gatto derivato classe LanguageService classe:

Metodo/proprietà da distribuire

descrizione

GetLanguagePreferences

Un metodo che restituisce un'LanguagePreferences oggetto.

GetScanner

un metodo che restituisce IScanner oggetto.

ParseSource

un metodo che analizza il database di origine.

Name

Una proprietà di sola lettura che restituisce il nome della lingua

Se non si intende supportare ValidateBreakpointLocation ma il linguaggio supporta i punti di interruzione, è necessario eseguire l'override di ValidateBreakpointLocation il metodo e restituisce un intervallo che contiene la riga e la colonna specificata; in caso contrario, i punti di interruzione non possono essere impostati in qualsiasi posizione eccetto la riga 1.È possibile restituire E_NOTIMPL per indicare che non supportate in caso contrario questo metodo ma l'intervallo è necessario impostare sempre.l'esempio in ValidateBreakpointLocation il metodo mostra come tale operazione.

Note per i chiamanti

Registrare il servizio di linguaggio quando si installa il pacchetto VS (ciò potrebbe essere un pacchetto dedicato al servizio di linguaggio o un pacchetto di progetto che garantisce un servizio di linguaggio).Creare un'istanza si possiede il servizio di linguaggio durante l'inizializzazione del pacchetto.Visual Studio interagisce con il servizio di linguaggio per visualizzare il codice scritto nel linguaggio supportato dal servizio di linguaggio.Vedere l'esempio di seguito per quali la registrazione di linguaggio può essere eseguita.

Esempi

Nell'esempio seguente viene illustrato come registrare e inizializzare il servizio di linguaggio per il pacchetto.nota: MyLanguageService deriva da LanguageService classe.

using System.ComponentModel.Design;
using Microsoft.VisualStudio.Shell;

namespace MyLanguagePackage
{
    /////////////////////////////////////////////
    // Other package registration details go here
    /////////////////////////////////////////////

    // Offer a new language service
    [ProvideServiceAttribute(typeof(MyLanguageService),
                                       ServiceName = "My Language Service")]

    // Register the language service with Visual Studio.
    // "106" is the resource ID in the satellite DLL to the localized language name.
    [ProvideLanguageServiceAttribute(typeof(MyLanguageService),"My Language",106)]

    // Associate a file extension with our language service.
    [ProvideLanguageExtensionAttribute(typeof(MyLanguageService), ".myext")]

    class MyLanguagePackage : Package
    {
        protected override void Initialize()
        {
            base.Initialize();

            IServiceContainer serviceContainer = this as IServiceContainer;
            MyLanguageService languageService = new MyLanguageService();
            languageService.SetSite(this);
            serviceContainer.AddService(typeof(MyLanguageService),
                                        languageService,
                                        true);
        }
    }
}

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Package

Altre risorse

Panoramica del servizio di linguaggio (managed package Framework)