Class ServerContextDocumentClearedEvent

java.lang.Object
java.util.EventObject
org.springframework.context.ApplicationEvent
com.github._1c_syntax.bsl.languageserver.context.events.ServerContextDocumentClearedEvent
All Implemented Interfaces:
Serializable

public class ServerContextDocumentClearedEvent extends ApplicationEvent
Событие, публикуемое при освобождении вторичных данных документа в контексте сервера.

Событие генерируется контекстом сервера ServerContext при вызове метода ServerContext.tryClearDocument(DocumentContext), и только когда тот реально освободил данные (документ не был открыт в редакторе). Так batch-анализ (AnalyzeCommand) и populateContext выбрасывают тяжёлый AST/токенайзер после обработки каждого файла.

В отличие от DocumentContextContentChangedEvent событие не подразумевает пересчёт — оно сигнализирует, что производные данные документа выброшены, и привязанные к URI кэши (хранящие AST-узлы или выведенные типы) должны быть сброшены, иначе они удерживали бы освобождённые данные и росли бы на весь прогон. Это отдельная от ServerContextDocumentClosedEvent семантика: документ не закрывается, лишь освобождает резидентные данные.

See Also:
  • Constructor Details

    • ServerContextDocumentClearedEvent

      public ServerContextDocumentClearedEvent(ServerContext source, DocumentContext documentContext)
      Создаёт новое событие освобождения вторичных данных документа.
      Parameters:
      source - контекст сервера, в котором были освобождены данные документа
      documentContext - документ, чьи вторичные данные были освобождены
  • Method Details

    • getSource

      public ServerContext getSource()
      Overrides:
      getSource in class EventObject
    • getDocumentContext

      public DocumentContext getDocumentContext()
      Документ, чьи вторичные данные были освобождены.