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 Summary
ConstructorsConstructorDescriptionLanguageServerConfiguration(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, String defaultConfigFileName, String globalConfigPath, @Nullable LanguageServerConfiguration initialSnapshot) Creates a newLanguageServerConfigurationinstance. -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanbooleangetCustomConfigurationRoot(LanguageServerConfiguration configuration, Path srcDir) Получить корневой каталог конфигурации с учётом настроек.Паттерны путей для исключения из индексации (простые имена каталогов или glob).Язык интерфейса для сообщений и документации в этом workspace.inthashCode()booleanvoidreset()Сбросить конфигурацию к Spring-инициализированным значениям по умолчанию.voidsetConfigurationRoot(@Nullable Path configurationRoot) voidsetExcludePaths(List<String> excludePaths) Паттерны путей для исключения из индексации (простые имена каталогов или glob).voidsetLanguage(Language language) Язык интерфейса для сообщений и документации в этом workspace.voidsetSiteRoot(String siteRoot) voidsetUseDevSite(boolean useDevSite) toString()voidОбновить конфигурацию из файла.
-
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 newLanguageServerConfigurationinstance.- 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
Обновить конфигурацию из файла.Публикует
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 serversrcDir- Директория исходных файлов- Returns:
- Корневой каталог для анализа, или
nullесли конфигурация находится вне srcDir
-
getLanguage
Язык интерфейса для сообщений и документации в этом workspace. -
getDiagnosticsOptions
-
getCodeLensOptions
-
getDocumentLinkOptions
-
getInlayHintOptions
-
getCapabilities
-
getFormattingOptions
-
getReferencesOptions
-
getSemanticTokensOptions
-
getOscriptOptions
-
getV8PlatformOptions
-
getSiteRoot
-
isUseDevSite
public boolean isUseDevSite() -
getConfigurationRoot
-
getExcludePaths
-
getConfigurationFile
-
setLanguage
Язык интерфейса для сообщений и документации в этом workspace. -
setSiteRoot
-
setUseDevSite
public void setUseDevSite(boolean useDevSite) -
setConfigurationRoot
-
setExcludePaths
-
equals
-
canEqual
-
hashCode
-
toString
-