Class ServerContextProvider
Управляет коллекцией экземпляров ServerContext (по одному на каждую workspace folder)
и обеспечивает маршрутизацию от URI документа к контексту сервера.
-
Constructor Summary
ConstructorsConstructorDescriptionServerContextProvider(ObjectProvider<ServerContext> serverContextObjectProvider, LanguageServerConfiguration languageServerConfiguration, WorkspaceScope workspaceScope) -
Method Summary
Modifier and TypeMethodDescriptionaddWorkspace(URI workspaceUri) Добавить workspace по URI и создать для нее контекст сервера.addWorkspace(URI workspaceUri, @Nullable String workspaceName) Добавить workspace по URI и создать для нее контекст сервера.addWorkspace(WorkspaceFolder workspaceFolder) Добавить workspace folder и создать для нее контекст сервера.voidclear()Очистить все workspaces.Получить все контексты серверов с их URI.getDocument(URI uri) Получить документ по нормализованному URI.getDocumentUnsafe(String uri) Получить документ по строковому URI с нормализацией.getDocumentUnsafe(URI uri) Получить документ по URI с нормализацией.getServerContext(URI documentUri) Получить контекст сервера для URI документа.getServerContextUnsafe(URI documentUri) Получить контекст сервера для URI документа (с нормализацией URI).voidОбработчик события добавления документа в контекст.voidОбработчик события удаления документа из контекста.voidremoveWorkspace(WorkspaceFolder workspaceFolder) Удалить workspace folder и очистить ее контекст сервера.
-
Constructor Details
-
ServerContextProvider
public ServerContextProvider(ObjectProvider<ServerContext> serverContextObjectProvider, LanguageServerConfiguration languageServerConfiguration, WorkspaceScope workspaceScope)
-
-
Method Details
-
addWorkspace
Добавить workspace folder и создать для нее контекст сервера.- Parameters:
workspaceFolder- информация о workspace folder- Returns:
- созданный контекст сервера
-
addWorkspace
Добавить workspace по URI и создать для нее контекст сервера.- Parameters:
workspaceUri- URI корня workspace- Returns:
- созданный контекст сервера
-
addWorkspace
Добавить workspace по URI и создать для нее контекст сервера.- Parameters:
workspaceUri- URI корня workspaceworkspaceName- имя workspace (если null — извлекается из URI)- Returns:
- созданный контекст сервера
-
removeWorkspace
Удалить workspace folder и очистить ее контекст сервера.- Parameters:
workspaceFolder- информация о workspace folder
-
getServerContextUnsafe
Получить контекст сервера для URI документа (с нормализацией URI).Используется для внешних вызовов, где URI может быть не нормализован.
- Parameters:
documentUri- URI документа (будет нормализован)- Returns:
- контекст сервера, содержащий документ, или пустой Optional, если не найден
-
getServerContext
Получить контекст сервера для URI документа.Сначала ищет в индексе документов (O(1)), затем по URI workspace (для новых документов). URI должен быть уже нормализован через
Absolute.uri(URI). ИспользуетсяAbsolute.uri(URI)для канонизации, что работает со всеми схемами URI.- Parameters:
documentUri- нормализованный URI документа- Returns:
- контекст сервера, содержащий документ, или пустой Optional, если не найден
-
getDocumentUnsafe
Получить документ по строковому URI с нормализацией.Ищет документ во всех зарегистрированных контекстах. Используется для внешних вызовов, где URI может быть не нормализован.
- Parameters:
uri- строковый URI документа- Returns:
- Контекст документа, если найден
-
getDocumentUnsafe
Получить документ по URI с нормализацией.Ищет документ во всех зарегистрированных контекстах. Используется для внешних вызовов, где URI может быть не нормализован.
- Parameters:
uri- URI документа (будет нормализован)- Returns:
- Контекст документа, если найден
-
getDocument
Получить документ по нормализованному URI.URI должен быть уже нормализован через
Absolute.uri(URI).- Parameters:
uri- нормализованный URI документа- Returns:
- Контекст документа, если найден
-
getAllContexts
Получить все контексты серверов с их URI.- Returns:
- неизменяемая карта URI → контекст сервера
-
clear
public void clear()Очистить все workspaces. -
onDocumentAdded
Обработчик события добавления документа в контекст. Добавляет документ в индекс для быстрого поиска. -
onDocumentRemoved
Обработчик события удаления документа из контекста. Удаляет документ из индекса.
-