Udostępnij za pośrednictwem


ILanguageClient Interfejs

Definicja

Interfejs reprezentujący klienta języka, który łączy się z serwerem językowym opartym na protokole serwera językowego.

public interface class ILanguageClient
public interface ILanguageClient
type ILanguageClient = interface
Public Interface ILanguageClient

Uwagi

Normalna sekwencja aktywacji dla następującego ILanguageClient wzorca:

  1. Wywołania OnLoadedAsync()programu Visual Studio ,
  2. Rozszerzenie wywołuje zdarzenie i oczekuje InvokeAsync<TEventArgs>(AsyncEventHandler<TEventArgs>, Object, TEventArgs) na StartAsync zdarzenie przed powrotem z elementu .OnLoadedAsync()
  3. Wywołania i oczekiwanie ActivateAsync(CancellationToken) programu Visual Studio przed powrotem z elementu OnLoadedAsync()
  4. Rozszerzenie uruchamia serwer LSP i zwraca wartość do Connection programu Visual Studio.
  5. Program Visual Studio uruchamia asynchronicznie inicjowanie serwera przy użyciu komunikatów LSP "initialize" i "initialized",
  6. Program Visual Studio kończy obsługę zdarzeń StartAsync ,
  7. Rozszerzenie kończy OnLoadedAsync() wykonywanie,
  8. Program Visual Studio wywołuje metodę OnServerInitializedAsync() po wymianie komunikatów LSP "initialize" i "initialized" (lub metodzie OnServerInitializeFailedAsync(ILanguageClientInitializationInfo) w przypadku awarii).

Właściwości

ConfigurationSections

Pobiera nazwy sekcji konfiguracji klienta języka. Może to mieć wartość null, jeśli klient języka nie udostępnia ustawień.

FilesToWatch

Pobiera listę nazw plików do watch zmian. Zmiany zostaną wysłane na serwer za pośrednictwem komunikatu "workspace/didChangeWatchedFiles". Pliki do watch muszą znajdować się w bieżącym aktywnym obszarze roboczym. Nazwy plików można określić jako ścieżki względne do dokładnego pliku lub wzorce globu zgodnie ze standardem w pliku gitignore zobacz https://www.kernel.org/pub/software/scm/git/docs/gitignore.html pliki.

InitializationOptions

Pobiera obiekt opcji inicjowania, który klient chce wysłać po wysłaniu komunikatu "inicjowanie". Może to mieć wartość null, jeśli klient nie potrzebuje niestandardowych opcji inicjowania.

Name

Pobiera nazwę klienta języka (wyświetlanego użytkownikowi).

ShowNotificationOnInitializeFailed

Pobiera wartość wskazującą, czy bąbelek powiadomień jest wyświetlany, gdy serwer językowy nie może zainicjować.

Metody

ActivateAsync(CancellationToken)

Ta metoda jest wywoływana przez program Visual Studio w celu powiadomienia rozszerzenia o konieczności uruchomienia serwera LSP.

OnLoadedAsync()

Ta metoda jest wywoływana przez program Visual Studio w celu powiadomienia rozszerzenia o załadowaniu klienta języka. Rozszerzenie może natychmiast uruchomić serwer LSP lub poczekać na uruchomienie akcji użytkownika. Aby uruchomić wywołanie serwera i poczekać InvokeAsync<TEventArgs>(AsyncEventHandler<TEventArgs>, Object, TEventArgs) na StartAsync zdarzenie przed powrotem z tej metody.

OnServerInitializedAsync()

Ta metoda jest wywoływana przez program Visual Studio w celu powiadomienia rozszerzenia, że serwer LSP został zainicjowany: dostawca LSP "inicjowanie" i "zainicjowane" komunikaty zostały wymienione.

OnServerInitializeFailedAsync(Exception)

Sygnalizuje, że nie można zainicjować rozszerzenia serwera językowego.

OnServerInitializeFailedAsync(ILanguageClientInitializationInfo)

Ta metoda jest wywoływana przez program Visual Studio, aby powiadomić rozszerzenie o tym, że inicjowanie serwera LSP nie powiodło się.

Zdarzenia

StartAsync

Zdarzenie asynchroniczne wskazujące programOwi Visual Studio, że serwer powinien zostać uruchomiony przez wywołanie metody ActivateAsync(CancellationToken). Jeśli serwer jest już uruchomiony, to zdarzenie zostanie zignorowane.

StopAsync

Zdarzenie asynchroniczne wskazujące programOwi Visual Studio, że serwer powinien zostać zatrzymany przez wysłanie żądania "shutdown" dostawcy LSP. Jeśli serwer nie zostanie uruchomiony, to zdarzenie zostanie zignorowane.

Dotyczy