Class ServerContext
Управляет коллекцией всех документов проекта, метаданными конфигурации 1С, обеспечивает доступ к контекстам отдельных документов и их синхронизацию.
-
Constructor Summary
ConstructorsConstructorDescriptionServerContext(ObjectProvider<DocumentContext> documentContextProvider, WorkDoneProgressHelper workDoneProgressHelper, LanguageServerConfiguration languageServerConfiguration) -
Method Summary
Modifier and TypeMethodDescriptionaddDocument(URI uri) Добавить документ в контекст.voidclear()voidcloseDocument(DocumentContext documentContext) Закрыть документ и очистить его содержимое.getDocument(String mdoRef, com.github._1c_syntax.bsl.types.ModuleType moduleType) getDocument(URI uri) Получить документ по URI.getDocumentLock(URI uri) Получить блокировку для выполнения операций над документом по URI.Map<com.github._1c_syntax.bsl.types.ModuleType, DocumentContext> getDocuments(String mdoRef) getDocumentUnsafe(String uri) Получить документ по строковому URI с нормализацией.getDocumentUnsafe(URI uri) Получить документ по URI с нормализацией.booleanisDocumentOpened(DocumentContext documentContext) Проверяет, открыт ли документ в редакторе.voidopenDocument(DocumentContext documentContext, String content, Integer version) Помечает документ как открытый и перестраивает его содержимоеvoidvoidpopulateContext(List<File> files) voidrebuildDocument(DocumentContext documentContext) Перестроить документ.voidrebuildDocument(DocumentContext documentContext, String content, Integer version) Перестроить документ, используя новое содержимое.voidremoveDocument(URI uri) Удалить документ из контекста.voidsetConfigurationRoot(@Nullable Path configurationRoot) voidtryClearDocument(DocumentContext documentContext) Попытаться очистить документ, если он не открыт.
-
Constructor Details
-
ServerContext
@ConstructorProperties({"documentContextProvider","workDoneProgressHelper","languageServerConfiguration"}) public ServerContext(ObjectProvider<DocumentContext> documentContextProvider, WorkDoneProgressHelper workDoneProgressHelper, LanguageServerConfiguration languageServerConfiguration)
-
-
Method Details
-
populateContext
public void populateContext() -
populateContext
-
getDocuments
-
getDocument
public Optional<DocumentContext> getDocument(String mdoRef, com.github._1c_syntax.bsl.types.ModuleType moduleType) -
getDocument
Получить документ по URI.URI должен быть уже нормализован (например, получен из DocumentContext или через Absolute.uri).
- Parameters:
uri- нормализованный URI документа- Returns:
- Контекст документа или
null, если документ не найден
-
getDocumentUnsafe
Получить документ по URI с нормализацией.Используется для внешних вызовов (CLI, Service), где URI может быть не нормализован.
- Parameters:
uri- URI документа (будет нормализован)- Returns:
- Контекст документа или
null, если документ не найден
-
getDocumentUnsafe
Получить документ по строковому URI с нормализацией.Используется для внешних вызовов (CLI, Service), где URI может быть не нормализован.
- Parameters:
uri- строковый URI документа- Returns:
- Контекст документа или
null, если документ не найден
-
getDocuments
-
addDocument
Добавить документ в контекст.URI должен быть уже нормализован.
- Parameters:
uri- нормализованный URI документа- Returns:
- Контекст документа
-
removeDocument
Удалить документ из контекста.URI должен быть уже нормализован.
- Parameters:
uri- нормализованный URI документа
-
clear
public void clear() -
getDocumentLock
Получить блокировку для выполнения операций над документом по URI.Может использоваться для операций, требующих долгосрочной установки блокировки на изменение объекта.
- Parameters:
uri- URI документа- Returns:
- блокировка, связанная с URI документа.
-
openDocument
Помечает документ как открытый и перестраивает его содержимоеДокументы, помеченные как открытые, не будут удаляться из контекста сервера при вызове
removeDocument(URI), а так же не будут очищаться при вызовеtryClearDocument(DocumentContext).Если вспомогательные данные документа был в "замороженном" состоянии, то перед перестроением документа они будут разморожены.
- Parameters:
documentContext- документ, который необходимо открыть.content- новое содержимое документа.version- версия документа.
-
isDocumentOpened
Проверяет, открыт ли документ в редакторе.Открытые документы управляются клиентом через события textDocument/didOpen, textDocument/didChange и textDocument/didClose. Для таких документов содержимое хранится в памяти сервера и может отличаться от содержимого файла на диске.
Открытые документы не будут удалены при вызове
removeDocument(URI)и не будут очищены при вызовеtryClearDocument(DocumentContext).- Parameters:
documentContext- документ для проверки- Returns:
true, если документ открыт в редакторе,falseв противном случае
-
rebuildDocument
Перестроить документ. В качестве содержимого будут использоваться данные, прочитанные из файла, с которым связан документ.- Parameters:
documentContext- документ, который необходимо перестроить.
-
rebuildDocument
Перестроить документ, используя новое содержимое.- Parameters:
documentContext- документ, который необходимо перестроить.content- новое содержимое документа.version- версия документа.
-
tryClearDocument
Попытаться очистить документ, если он не открыт.- Parameters:
documentContext- документ, который необходимо попытаться закрыть.
-
closeDocument
Закрыть документ и очистить его содержимое.- Parameters:
documentContext- документ, который необходимо закрыть.
-
getConfiguration
-
setConfigurationRoot
-
getConfigurationRoot
-