Class LanguageServerConfiguration

java.lang.Object
com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration

@Component @Scope(value="workspace", proxyMode=TARGET_CLASS) public class LanguageServerConfiguration extends Object
Per-workspace конфигурация BSL Language Server.

Содержит настройки, специфичные для конкретного workspace. Создаётся lazy при первом обращении к workspace-scoped proxy.

Глобальные настройки (language, sendErrors, traceLog) находятся в GlobalLanguageServerConfiguration.

  • Constructor Details

    • LanguageServerConfiguration

      @ConstructorProperties({"language","diagnosticsOptions","codeLensOptions","documentLinkOptions","inlayHintOptions","capabilities","formattingOptions","referencesOptions","semanticTokensOptions","oscriptOptions","v8PlatformOptions","siteRoot","useDevSite","configurationRoot","excludePaths","configurationFile","defaultConfigFileName","globalConfigPath","initialSnapshot"}) public LanguageServerConfiguration(Language language, DiagnosticsOptions diagnosticsOptions, CodeLensOptions codeLensOptions, DocumentLinkOptions documentLinkOptions, InlayHintOptions inlayHintOptions, CapabilitiesOptions capabilities, FormattingOptions formattingOptions, ReferencesOptions referencesOptions, SemanticTokensOptions semanticTokensOptions, OScriptOptions oscriptOptions, V8PlatformOptions v8PlatformOptions, String siteRoot, boolean useDevSite, @Nullable Path configurationRoot, List<String> excludePaths, @Nullable File configurationFile, @Value("${app.configuration.path:.bsl-language-server.json}") String defaultConfigFileName, @Value("${app.globalConfiguration.path:${user.home}/.bsl-language-server.json}") String globalConfigPath, @Nullable LanguageServerConfiguration initialSnapshot)
      Creates a new LanguageServerConfiguration instance.
      Parameters:
      language - Язык интерфейса для сообщений и документации в этом workspace.
      diagnosticsOptions -
      codeLensOptions -
      documentLinkOptions -
      inlayHintOptions -
      capabilities -
      formattingOptions -
      referencesOptions -
      semanticTokensOptions -
      oscriptOptions -
      v8PlatformOptions -
      siteRoot -
      useDevSite -
      configurationRoot -
      excludePaths - Паттерны путей для исключения из индексации (простые имена каталогов или glob). Сопоставление выполняется относительно корня конфигурации.
      configurationFile -
      defaultConfigFileName -
      globalConfigPath -
      initialSnapshot - Снимок состояния, сделанный в init() ПОСЛЕ применения Spring-инициализации и чтения дефолтного конфиг-файла. Используется reset() — он возвращает конфигурацию именно к этому состоянию, а не к голому new LanguageServerConfiguration() (у которого нет ни Spring-injected значений из application.properties, ни прочитанного с диска конфига).

      Исключён из сериализации и из copyPropertiesFrom(LanguageServerConfiguration) — snapshot принадлежит инстансу и не должен переноситься при импорте чужих свойств.

    • LanguageServerConfiguration

      public LanguageServerConfiguration()
  • Method Details

    • update

      public void update(@Nullable File configurationFile)
      Обновить конфигурацию из файла.

      Публикует LanguageServerConfigurationChangedEvent через AOP аспект.

      Parameters:
      configurationFile - Файл с конфигурацией
    • reset

      public void reset()
      Сбросить конфигурацию к Spring-инициализированным значениям по умолчанию.

      Восстанавливает состояние, зафиксированное в init() после применения Spring-инжектированных полей (@Value) и чтения дефолтного конфиг-файла. Не возвращает к голому new LanguageServerConfiguration() — это разрушило бы настройки, накаченные из application.properties и других bootstrap-источников.

    • getCustomConfigurationRoot

      public static @Nullable Path getCustomConfigurationRoot(LanguageServerConfiguration configuration, Path srcDir)
      Получить корневой каталог конфигурации с учётом настроек.
      Parameters:
      configuration - Конфигурация language server
      srcDir - Директория исходных файлов
      Returns:
      Корневой каталог для анализа, или null если конфигурация находится вне srcDir
    • getLanguage

      public Language getLanguage()
      Язык интерфейса для сообщений и документации в этом workspace.
    • getDiagnosticsOptions

      public DiagnosticsOptions getDiagnosticsOptions()
    • getCodeLensOptions

      public CodeLensOptions getCodeLensOptions()
    • getDocumentLinkOptions

      public DocumentLinkOptions getDocumentLinkOptions()
    • getInlayHintOptions

      public InlayHintOptions getInlayHintOptions()
    • getCapabilities

      public CapabilitiesOptions getCapabilities()
    • getFormattingOptions

      public FormattingOptions getFormattingOptions()
    • getReferencesOptions

      public ReferencesOptions getReferencesOptions()
    • getSemanticTokensOptions

      public SemanticTokensOptions getSemanticTokensOptions()
    • getOscriptOptions

      public OScriptOptions getOscriptOptions()
    • getV8PlatformOptions

      public V8PlatformOptions getV8PlatformOptions()
    • getSiteRoot

      public String getSiteRoot()
    • isUseDevSite

      public boolean isUseDevSite()
    • getConfigurationRoot

      public @Nullable Path getConfigurationRoot()
    • getExcludePaths

      public List<String> getExcludePaths()
      Паттерны путей для исключения из индексации (простые имена каталогов или glob). Сопоставление выполняется относительно корня конфигурации.
    • getConfigurationFile

      public @Nullable File getConfigurationFile()
    • setLanguage

      public void setLanguage(Language language)
      Язык интерфейса для сообщений и документации в этом workspace.
    • setSiteRoot

      public void setSiteRoot(String siteRoot)
    • setUseDevSite

      public void setUseDevSite(boolean useDevSite)
    • setConfigurationRoot

      public void setConfigurationRoot(@Nullable Path configurationRoot)
    • setExcludePaths

      public void setExcludePaths(List<String> excludePaths)
      Паттерны путей для исключения из индексации (простые имена каталогов или glob). Сопоставление выполняется относительно корня конфигурации.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • canEqual

      protected boolean canEqual(Object other)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object