Class ServerContext

java.lang.Object
com.github._1c_syntax.bsl.languageserver.context.ServerContext

@Component public class ServerContext extends Object
Контекст сервера - центральное хранилище информации о рабочей области.

Управляет коллекцией всех документов проекта, метаданными конфигурации 1С, обеспечивает доступ к контекстам отдельных документов и их синхронизацию.

  • Constructor Details

  • Method Details

    • populateContext

      public void populateContext()
    • populateContext

      public void populateContext(List<File> files)
    • getDocuments

      public Map<URI, DocumentContext> getDocuments()
    • getDocument

      public @Nullable DocumentContext getDocument(String uri)
    • getDocument

      public Optional<DocumentContext> getDocument(String mdoRef, ModuleType moduleType)
    • getDocument

      public @Nullable DocumentContext getDocument(URI uri)
    • getDocuments

      public Map<ModuleType, DocumentContext> getDocuments(String mdoRef)
    • addDocument

      public DocumentContext addDocument(URI uri)
    • removeDocument

      public void removeDocument(URI uri)
    • clear

      public void clear()
    • openDocument

      public void openDocument(DocumentContext documentContext, String content, Integer version)
      Помечает документ как открытый и перестраивает его содержимое

      Документы, помеченные как открытые, не будут удаляться из контекста сервера при вызове removeDocument(URI), а так же не будут очищаться при вызове tryClearDocument(DocumentContext).

      Если вспомогательные данные документа был в "замороженном" состоянии, то перед перестроением документа они будут разморожены.

      Parameters:
      documentContext - документ, который необходимо открыть.
      content - новое содержимое документа.
      version - версия документа.
    • isDocumentOpened

      public boolean isDocumentOpened(DocumentContext documentContext)
      Проверяет, открыт ли документ в редакторе.

      Открытые документы управляются клиентом через события textDocument/didOpen, textDocument/didChange и textDocument/didClose. Для таких документов содержимое хранится в памяти сервера и может отличаться от содержимого файла на диске.

      Открытые документы не будут удалены при вызове removeDocument(URI) и не будут очищены при вызове tryClearDocument(DocumentContext).

      Parameters:
      documentContext - документ для проверки
      Returns:
      true, если документ открыт в редакторе, false в противном случае
    • rebuildDocument

      public void rebuildDocument(DocumentContext documentContext)
      Перестроить документ. В качестве содержимого будут использоваться данные, прочитанные из файла, с которым связан документ.
      Parameters:
      documentContext - документ, который необходимо перестроить.
    • rebuildDocument

      public void rebuildDocument(DocumentContext documentContext, String content, Integer version)
      Перестроить документ, используя новое содержимое.
      Parameters:
      documentContext - документ, который необходимо перестроить.
      content - новое содержимое документа.
      version - версия документа.
    • tryClearDocument

      public void tryClearDocument(DocumentContext documentContext)
      Попытаться очистить документ, если он не открыт.
      Parameters:
      documentContext - документ, который необходимо попытаться закрыть.
    • closeDocument

      public void closeDocument(DocumentContext documentContext)
      Закрыть документ и очистить его содержимое.
      Parameters:
      documentContext - документ, который необходимо закрыть.
    • getConfiguration

      public CF getConfiguration()
    • setConfigurationRoot

      public void setConfigurationRoot(@Nullable Path configurationRoot)
    • getConfigurationRoot

      public @Nullable Path getConfigurationRoot()