diff --git a/build.gradle.kts b/build.gradle.kts index ce8061dc8f2..7cc597a0550 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,13 +14,14 @@ plugins { id("me.qoomon.git-versioning") version "3.0.0" id("com.github.ben-manes.versions") version "0.31.0" id("io.freefair.javadoc-links") version "5.2.1" - id("org.springframework.boot") version "2.3.3.RELEASE" + id("org.springframework.boot") version "2.3.4.RELEASE" id("com.github.1c-syntax.bslls-dev-tools") version "0.3.1" } apply(plugin = "io.spring.dependency-management") repositories { + mavenLocal() mavenCentral() maven(url = "https://jitpack.io") } @@ -68,6 +69,8 @@ dependencies { } api("com.github.1c-syntax", "utils", "0.3.1") api("com.github.1c-syntax", "mdclasses", "0.6.1") + // ls-core + api("com.github.1c-syntax", "ls-core-lib", "feature-first_step-c57a90d-DIRTY") // JLanguageTool implementation("org.languagetool", "languagetool-core", "5.0.2") @@ -127,7 +130,7 @@ tasks.withType { tasks.jar { manifest { - attributes["Main-Class"] = "com.github._1c_syntax.bsl.languageserver.BSLLSPLauncher" + attributes["Main-Class"] = "com.github._1c_syntax.ls_core.LSLauncher" attributes["Implementation-Version"] = archiveVersion.get() } enabled = true @@ -135,6 +138,7 @@ tasks.jar { tasks.bootJar { manifest { + attributes["Start-Class"] = "com.github._1c_syntax.ls_core.LSLauncher" attributes["Implementation-Version"] = archiveVersion.get() } archiveClassifier.set("exec") diff --git a/docs/contributing/DiagnosticStructure.md b/docs/contributing/DiagnosticStructure.md index fc7855629c9..c7525bf503d 100644 --- a/docs/contributing/DiagnosticStructure.md +++ b/docs/contributing/DiagnosticStructure.md @@ -233,7 +233,7 @@ _**<В разработке>**_ package com.github._1c_syntax.bsl.languageserver.diagnostics; import org.eclipse.lsp4j.Diagnostic; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.bsl.languageserver.utils.BSLRanges; import org.junit.jupiter.api.Test; import java.util.List; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/AutoServerInfo.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/AutoServerInfo.java deleted file mode 100644 index d3a1878cdf1..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/AutoServerInfo.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver; - -import lombok.EqualsAndHashCode; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import javax.annotation.PostConstruct; -import java.io.IOException; -import java.io.InputStream; -import java.io.Serializable; -import java.util.jar.Attributes; -import java.util.jar.Manifest; - -/** - * Информация о сервере. Автоматически заполняется на основании данных о версии и имени приложения. - */ -@Slf4j -@EqualsAndHashCode(exclude = "applicationName", callSuper = true) -@Component -public class AutoServerInfo extends org.eclipse.lsp4j.ServerInfo implements Serializable { - - private static final String MANIFEST_VERSION = readVersion(); - - @SuppressWarnings("FieldMayBeFinal") - @Value("${spring.application.name:Dummy Language Server}") - // Field is transient to exclude it from GSON serialization in jsonrpc. - private transient String applicationName = ""; - - @PostConstruct - private void init() { - setName(applicationName); - setVersion(MANIFEST_VERSION); - } - - private static String readVersion() { - final InputStream mfStream = Thread.currentThread() - .getContextClassLoader() - .getResourceAsStream("META-INF/MANIFEST.MF"); - - Manifest manifest = new Manifest(); - try { - manifest.read(mfStream); - } catch (IOException e) { - LOGGER.error("Can't read manifest", e); - return ""; - } - - return manifest.getMainAttributes().getValue(Attributes.Name.IMPLEMENTATION_VERSION); - } - -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLSBinding.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLSBinding.java index ec8d60a447a..b6c40b84ccd 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLSBinding.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLSBinding.java @@ -21,9 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; +import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.BSLDiagnosticInfo; import lombok.AccessLevel; import lombok.Getter; import org.springframework.boot.Banner; @@ -61,16 +61,16 @@ public static ConfigurableApplicationContext getApplicationContext() { } @SuppressWarnings("unchecked") - public static Collection getDiagnosticInfos() { + public static Collection getDiagnosticInfos() { return getApplicationContext().getBean("diagnosticInfos", Collection.class); } - public static LanguageServerConfiguration getLanguageServerConfiguration() { - return getApplicationContext().getBean(LanguageServerConfiguration.class); + public static BSLLanguageServerConfiguration getLanguageServerConfiguration() { + return getApplicationContext().getBean(BSLLanguageServerConfiguration.class); } - public static ServerContext getServerContext() { - return getApplicationContext().getBean(ServerContext.class); + public static BSLServerContext getServerContext() { + return getApplicationContext().getBean(BSLServerContext.class); } private static SpringApplication createApplication() { diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLSConfiguration.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLSConfiguration.java new file mode 100644 index 00000000000..1d5cb6a7fb1 --- /dev/null +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLSConfiguration.java @@ -0,0 +1,12 @@ +package com.github._1c_syntax.bsl.languageserver; + +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * Данный класс необходим spring boot'у для инжекта реализации ls-core + */ +@SpringBootApplication +@ComponentScan("com.github._1c_syntax.ls_core") +public class BSLLSConfiguration { +} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLSPLauncher.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLSPLauncher.java deleted file mode 100644 index 4ede63dd286..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLSPLauncher.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver; - -import com.github._1c_syntax.bsl.languageserver.cli.AnalyzeCommand; -import com.github._1c_syntax.bsl.languageserver.cli.FormatCommand; -import com.github._1c_syntax.bsl.languageserver.cli.LanguageServerStartCommand; -import com.github._1c_syntax.bsl.languageserver.cli.VersionCommand; -import lombok.RequiredArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.ExitCodeGenerator; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.stereotype.Component; -import picocli.CommandLine; -import picocli.CommandLine.Option; -import picocli.CommandLine.ParameterException; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.Callable; - -import static picocli.CommandLine.Command; - -@Command( - name = "bsl-language-server", - subcommands = { - AnalyzeCommand.class, - FormatCommand.class, - VersionCommand.class, - LanguageServerStartCommand.class - }, - usageHelpAutoWidth = true, - synopsisSubcommandLabel = "[COMMAND [ARGS]]", - footer = "@|green Copyright(c) 2018-2020|@", - header = "@|green BSL language server|@") -@SpringBootApplication -@Component -@ConditionalOnProperty( - prefix = "app.command.line.runner", - value = "enabled", - havingValue = "true", - matchIfMissing = true) -@RequiredArgsConstructor -public class BSLLSPLauncher implements Callable, CommandLineRunner, ExitCodeGenerator { - - private static final String DEFAULT_COMMAND = "lsp"; - - @Option( - names = {"-h", "--help"}, - usageHelp = true, - description = "Show this help message and exit") - private boolean usageHelpRequested; - - @Option( - names = {"-c", "--configuration"}, - description = "Path to language server configuration file", - paramLabel = "", - defaultValue = "") - private String configurationOption; - - @Option(names = "--spring.config.location", hidden = true) - private String springConfigLocation; - - @Option(names = "--debug", hidden = true) - private boolean debug; - - private final CommandLine.IFactory picocliFactory; - - private int exitCode; - - public static void main(String[] args) { - var applicationContext = SpringApplication.run(BSLLSPLauncher.class, args); - var launcher = applicationContext.getBean(BSLLSPLauncher.class); - if (launcher.getExitCode() >= 0) { - System.exit( - SpringApplication.exit(applicationContext) - ); - } - } - - @Override - public void run(String[] args) { - var cmd = new CommandLine(this, picocliFactory); - - // проверка использования дефолтной команды - // если строка параметров пуста, то это точно вызов команды по умолчанию - if (args.length == 0) { - args = addDefaultCommand(args); - } else { - // выполнение проверки строки запуска в попытке, т.к. парсер при нахождении - // неизвестных параметров выдает ошибку - try { - var parseResult = cmd.parseArgs(args); - // если переданы параметры без команды и это не справка - // то считаем, что параметры для команды по умолчанию - if (!parseResult.hasSubcommand() && !parseResult.isUsageHelpRequested()) { - args = addDefaultCommand(args); - } - } catch (ParameterException ex) { - // если поймали ошибку, а имя команды не передано, подставим команду и посмотрим, - // вдруг заработает - if (!ex.getCommandLine().getParseResult().hasSubcommand()) { - args = addDefaultCommand(args); - } - } - } - - exitCode = cmd.execute(args); - - } - - @NotNull - private static String[] addDefaultCommand(String[] args) { - List tmpList = new ArrayList<>(Arrays.asList(args)); - tmpList.add(0, DEFAULT_COMMAND); - args = tmpList.toArray(new String[0]); - return args; - } - - @Override - public int getExitCode() { - return exitCode; - } - - public Integer call() { - // заглушка, командой как таковой не пользуемся - return 0; - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLanguageServer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLanguageServer.java deleted file mode 100644 index 40234a6c0bc..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLLanguageServer.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver; - -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; -import com.github._1c_syntax.bsl.languageserver.jsonrpc.DiagnosticParams; -import com.github._1c_syntax.bsl.languageserver.jsonrpc.ProtocolExtension; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.eclipse.lsp4j.CodeLensOptions; -import org.eclipse.lsp4j.Diagnostic; -import org.eclipse.lsp4j.DocumentLinkOptions; -import org.eclipse.lsp4j.InitializeParams; -import org.eclipse.lsp4j.InitializeResult; -import org.eclipse.lsp4j.ServerCapabilities; -import org.eclipse.lsp4j.ServerInfo; -import org.eclipse.lsp4j.TextDocumentSyncKind; -import org.eclipse.lsp4j.services.LanguageServer; -import org.eclipse.lsp4j.services.TextDocumentService; -import org.eclipse.lsp4j.services.WorkspaceService; -import org.springframework.stereotype.Component; - -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.nio.file.Path; -import java.util.List; -import java.util.concurrent.CompletableFuture; - -@Slf4j -@Component -@RequiredArgsConstructor -public class BSLLanguageServer implements LanguageServer, ProtocolExtension { - - private final LanguageServerConfiguration configuration; - private final BSLTextDocumentService textDocumentService; - private final BSLWorkspaceService workspaceService; - private final ServerContext context; - private final ServerInfo serverInfo; - private boolean shutdownWasCalled; - - @Override - public CompletableFuture initialize(InitializeParams params) { - - setConfigurationRoot(params); - CompletableFuture.runAsync(context::populateContext); - - ServerCapabilities capabilities = new ServerCapabilities(); - capabilities.setTextDocumentSync(TextDocumentSyncKind.Full); - capabilities.setDocumentRangeFormattingProvider(Boolean.TRUE); - capabilities.setDocumentFormattingProvider(Boolean.TRUE); - capabilities.setFoldingRangeProvider(Boolean.TRUE); - capabilities.setDocumentSymbolProvider(Boolean.TRUE); - capabilities.setCodeActionProvider(Boolean.TRUE); - capabilities.setCodeLensProvider(new CodeLensOptions()); - capabilities.setDocumentLinkProvider(new DocumentLinkOptions()); - capabilities.setWorkspaceSymbolProvider(Boolean.TRUE); - - InitializeResult result = new InitializeResult(capabilities, serverInfo); - - return CompletableFuture.completedFuture(result); - } - - private void setConfigurationRoot(InitializeParams params) { - if (params.getRootUri() == null) { - return; - } - - Path rootPath; - try { - rootPath = new File(new URI(params.getRootUri()).getPath()).getCanonicalFile().toPath(); - } catch (URISyntaxException | IOException e) { - LOGGER.error("Can't read root URI from initialization params.", e); - return; - } - - Path configurationRoot = LanguageServerConfiguration.getCustomConfigurationRoot( - configuration, - rootPath); - context.setConfigurationRoot(configurationRoot); - } - - @Override - public CompletableFuture shutdown() { - shutdownWasCalled = true; - textDocumentService.reset(); - context.clear(); - return CompletableFuture.completedFuture(Boolean.TRUE); - } - - @Override - public void exit() { - int status = shutdownWasCalled ? 0 : 1; - System.exit(status); - } - - /** - * {@inheritDoc} - *

- * См. {@link BSLTextDocumentService#diagnostics(DiagnosticParams)} - */ - @Override - public CompletableFuture> diagnostics(DiagnosticParams params) { - return textDocumentService.diagnostics(params); - } - - @Override - public TextDocumentService getTextDocumentService() { - return textDocumentService; - } - - @Override - public WorkspaceService getWorkspaceService() { - return workspaceService; - } - -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLTextDocumentService.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLTextDocumentService.java deleted file mode 100644 index 5c6a6ffd0eb..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLTextDocumentService.java +++ /dev/null @@ -1,311 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver; - -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.ComputeTrigger; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; -import com.github._1c_syntax.bsl.languageserver.jsonrpc.DiagnosticParams; -import com.github._1c_syntax.bsl.languageserver.jsonrpc.ProtocolExtension; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; -import com.github._1c_syntax.bsl.languageserver.providers.CodeLensProvider; -import com.github._1c_syntax.bsl.languageserver.providers.DiagnosticProvider; -import com.github._1c_syntax.bsl.languageserver.providers.DocumentLinkProvider; -import com.github._1c_syntax.bsl.languageserver.providers.DocumentSymbolProvider; -import com.github._1c_syntax.bsl.languageserver.providers.FoldingRangeProvider; -import com.github._1c_syntax.bsl.languageserver.providers.FormatProvider; -import com.github._1c_syntax.bsl.languageserver.providers.HoverProvider; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import lombok.RequiredArgsConstructor; -import org.eclipse.lsp4j.CodeAction; -import org.eclipse.lsp4j.CodeActionParams; -import org.eclipse.lsp4j.CodeLens; -import org.eclipse.lsp4j.CodeLensParams; -import org.eclipse.lsp4j.Command; -import org.eclipse.lsp4j.CompletionItem; -import org.eclipse.lsp4j.CompletionList; -import org.eclipse.lsp4j.CompletionParams; -import org.eclipse.lsp4j.DefinitionParams; -import org.eclipse.lsp4j.Diagnostic; -import org.eclipse.lsp4j.DidChangeTextDocumentParams; -import org.eclipse.lsp4j.DidCloseTextDocumentParams; -import org.eclipse.lsp4j.DidOpenTextDocumentParams; -import org.eclipse.lsp4j.DidSaveTextDocumentParams; -import org.eclipse.lsp4j.DocumentFormattingParams; -import org.eclipse.lsp4j.DocumentHighlight; -import org.eclipse.lsp4j.DocumentHighlightParams; -import org.eclipse.lsp4j.DocumentLink; -import org.eclipse.lsp4j.DocumentLinkParams; -import org.eclipse.lsp4j.DocumentOnTypeFormattingParams; -import org.eclipse.lsp4j.DocumentRangeFormattingParams; -import org.eclipse.lsp4j.DocumentSymbol; -import org.eclipse.lsp4j.DocumentSymbolParams; -import org.eclipse.lsp4j.FoldingRange; -import org.eclipse.lsp4j.FoldingRangeRequestParams; -import org.eclipse.lsp4j.Hover; -import org.eclipse.lsp4j.HoverParams; -import org.eclipse.lsp4j.Location; -import org.eclipse.lsp4j.LocationLink; -import org.eclipse.lsp4j.ReferenceParams; -import org.eclipse.lsp4j.RenameParams; -import org.eclipse.lsp4j.SignatureHelp; -import org.eclipse.lsp4j.SignatureHelpParams; -import org.eclipse.lsp4j.SymbolInformation; -import org.eclipse.lsp4j.TextEdit; -import org.eclipse.lsp4j.WorkspaceEdit; -import org.eclipse.lsp4j.jsonrpc.messages.Either; -import org.eclipse.lsp4j.services.TextDocumentService; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; -import java.util.stream.Collectors; - -@Component -@RequiredArgsConstructor -public class BSLTextDocumentService implements TextDocumentService, ProtocolExtension { - - private final ServerContext context; - private final LanguageServerConfiguration configuration; - private final DiagnosticProvider diagnosticProvider; - private final CodeActionProvider codeActionProvider; - private final CodeLensProvider codeLensProvider; - private final DocumentLinkProvider documentLinkProvider; - private final DocumentSymbolProvider documentSymbolProvider; - private final FoldingRangeProvider foldingRangeProvider; - private final FormatProvider formatProvider; - private final HoverProvider hoverProvider; - - @Override - public CompletableFuture, CompletionList>> completion(CompletionParams position) { - List completionItems = new ArrayList<>(); - completionItems.add(new CompletionItem("Hello World")); - return CompletableFuture.completedFuture(Either.forLeft(completionItems)); - } - - @Override - public CompletableFuture resolveCompletionItem(CompletionItem unresolved) { - throw new UnsupportedOperationException(); - } - - @Override - public CompletableFuture hover(HoverParams params) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return CompletableFuture.completedFuture(null); - } - Optional hover = hoverProvider.getHover(params, documentContext); - return CompletableFuture.completedFuture(hover.orElse(null)); - } - - @Override - public CompletableFuture signatureHelp(SignatureHelpParams params) { - throw new UnsupportedOperationException(); - } - - @Override - public CompletableFuture, List>> definition( - DefinitionParams params - ) { - throw new UnsupportedOperationException(); - } - - @Override - public CompletableFuture> references(ReferenceParams params) { - throw new UnsupportedOperationException(); - } - - @Override - public CompletableFuture> documentHighlight(DocumentHighlightParams params) { - throw new UnsupportedOperationException(); - } - - @Override - public CompletableFuture>> documentSymbol( - DocumentSymbolParams params - ) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return CompletableFuture.completedFuture(null); - } - - return CompletableFuture.supplyAsync(() -> documentSymbolProvider.getDocumentSymbols(documentContext)); - } - - @Override - public CompletableFuture>> codeAction(CodeActionParams params) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return CompletableFuture.completedFuture(null); - } - - return CompletableFuture.supplyAsync(() -> codeActionProvider.getCodeActions(params, documentContext)); - } - - @Override - public CompletableFuture> codeLens(CodeLensParams params) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return CompletableFuture.completedFuture(null); - } - - return CompletableFuture.supplyAsync(() -> codeLensProvider.getCodeLens(documentContext)); - } - - @Override - public CompletableFuture resolveCodeLens(CodeLens unresolved) { - throw new UnsupportedOperationException(); - } - - @Override - public CompletableFuture> formatting(DocumentFormattingParams params) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return CompletableFuture.completedFuture(null); - } - - List edits = formatProvider.getFormatting(params, documentContext); - return CompletableFuture.completedFuture(edits); - } - - @Override - public CompletableFuture> rangeFormatting(DocumentRangeFormattingParams params) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return CompletableFuture.completedFuture(null); - } - - List edits = formatProvider.getRangeFormatting(params, documentContext); - return CompletableFuture.completedFuture(edits); - } - - @Override - public CompletableFuture> onTypeFormatting(DocumentOnTypeFormattingParams params) { - throw new UnsupportedOperationException(); - } - - @Override - public CompletableFuture> foldingRange(FoldingRangeRequestParams params) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return CompletableFuture.completedFuture(null); - } - - return CompletableFuture.supplyAsync(() -> foldingRangeProvider.getFoldingRange(documentContext)); - } - - @Override - public CompletableFuture rename(RenameParams params) { - throw new UnsupportedOperationException(); - } - - @Override - public void didOpen(DidOpenTextDocumentParams params) { - DocumentContext documentContext = context.addDocument(params.getTextDocument()); - if (configuration.getDiagnosticsOptions().getComputeTrigger() != ComputeTrigger.NEVER) { - validate(documentContext); - } - } - - @Override - public void didChange(DidChangeTextDocumentParams params) { - - // TODO: Place to optimize -> migrate to #TextDocumentSyncKind.INCREMENTAL and build changed parse tree - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return; - } - - documentContext.rebuild(params.getContentChanges().get(0).getText()); - - if (configuration.getDiagnosticsOptions().getComputeTrigger() == ComputeTrigger.ONTYPE) { - validate(documentContext); - } - } - - @Override - public void didClose(DidCloseTextDocumentParams params) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return; - } - - documentContext.clearSecondaryData(); - - diagnosticProvider.publishEmptyDiagnosticList(documentContext); - } - - @Override - public void didSave(DidSaveTextDocumentParams params) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return; - } - - if (configuration.getDiagnosticsOptions().getComputeTrigger() != ComputeTrigger.NEVER) { - validate(documentContext); - } - } - - @Override - public CompletableFuture> documentLink(DocumentLinkParams params) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return CompletableFuture.completedFuture(null); - } - - return CompletableFuture.supplyAsync(() -> documentLinkProvider.getDocumentLinks(documentContext)); - } - - @Override - public CompletableFuture> diagnostics(DiagnosticParams params) { - DocumentContext documentContext = context.getDocument(params.getTextDocument().getUri()); - if (documentContext == null) { - return CompletableFuture.completedFuture(Collections.emptyList()); - } - - return CompletableFuture.supplyAsync(() -> { - var diagnostics = documentContext.getDiagnostics(); - - var range = params.getRange(); - if (range != null) { - diagnostics = diagnostics.stream() - .filter(diagnostic -> Ranges.containsRange(range, diagnostic.getRange())) - .collect(Collectors.toList()); - } - return diagnostics; - }); - } - - public void reset() { - context.clear(); - } - - private void validate(DocumentContext documentContext) { - diagnosticProvider.computeAndPublishDiagnostics(documentContext); - } - -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLWorkspaceService.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLWorkspaceService.java deleted file mode 100644 index f669b3faf81..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/BSLWorkspaceService.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver; - -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.providers.SymbolProvider; -import lombok.RequiredArgsConstructor; -import org.apache.commons.beanutils.PropertyUtils; -import org.eclipse.lsp4j.DidChangeConfigurationParams; -import org.eclipse.lsp4j.DidChangeWatchedFilesParams; -import org.eclipse.lsp4j.SymbolInformation; -import org.eclipse.lsp4j.WorkspaceSymbolParams; -import org.eclipse.lsp4j.services.WorkspaceService; -import org.springframework.stereotype.Component; - -import java.lang.reflect.InvocationTargetException; -import java.util.List; -import java.util.concurrent.CompletableFuture; - -@Component -@RequiredArgsConstructor -public class BSLWorkspaceService implements WorkspaceService { - - private final LanguageServerConfiguration configuration; - private final SymbolProvider symbolProvider; - - @Override - public CompletableFuture> symbol(WorkspaceSymbolParams params) { - return CompletableFuture.supplyAsync(() -> symbolProvider.getSymbols(params)); - } - - @Override - public void didChangeConfiguration(DidChangeConfigurationParams params) { - try { - PropertyUtils.copyProperties(configuration, params.getSettings()); - } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { - throw new RuntimeException(e); - } - } - - @Override - public void didChangeWatchedFiles(DidChangeWatchedFilesParams params) { - // no-op - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/AnalyzeCommand.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/AnalyzeCommand.java index 363eb83e996..183d3bea027 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/AnalyzeCommand.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/AnalyzeCommand.java @@ -21,13 +21,14 @@ */ package com.github._1c_syntax.bsl.languageserver.cli; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; import com.github._1c_syntax.bsl.languageserver.context.MetricStorage; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; import com.github._1c_syntax.bsl.languageserver.reporters.ReportersAggregator; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.FileInfo; +import com.github._1c_syntax.ls_core.cli.CLICommand; import com.github._1c_syntax.mdclasses.mdo.MDObjectBase; import com.github._1c_syntax.utils.Absolute; import lombok.RequiredArgsConstructor; @@ -48,7 +49,6 @@ import java.util.Collection; import java.util.List; import java.util.Optional; -import java.util.concurrent.Callable; import java.util.stream.Collectors; import static picocli.CommandLine.Option; @@ -87,7 +87,7 @@ footer = "@|green Copyright(c) 2018-2020|@") @Component @RequiredArgsConstructor -public class AnalyzeCommand implements Callable { +public class AnalyzeCommand implements CLICommand { private static class ReportersKeys extends ArrayList { ReportersKeys(ReportersAggregator aggregator) { @@ -148,8 +148,8 @@ private static class ReportersKeys extends ArrayList { private boolean debug; private final ReportersAggregator aggregator; - private final LanguageServerConfiguration configuration; - private final ServerContext context; + private final BSLLanguageServerConfiguration configuration; + private final BSLServerContext context; public Integer call() { @@ -168,8 +168,8 @@ public Integer call() { File configurationFile = new File(configurationOption); configuration.update(configurationFile); - Path configurationPath = LanguageServerConfiguration.getCustomConfigurationRoot(configuration, srcDir); - context.setConfigurationRoot(configurationPath); + Path configurationPath = BSLLanguageServerConfiguration.getCustomConfigurationRoot(configuration, srcDir); + context.setProjectRoot(configurationPath); Collection files = FileUtils.listFiles(srcDir.toFile(), new String[]{"bsl", "os"}, true); @@ -209,7 +209,7 @@ private FileInfo getFileInfoFromFile(Path srcDir, File file) { throw new RuntimeException(e); } - DocumentContext documentContext = context.addDocument(file.toURI(), textDocumentContent); + var documentContext = (BSLDocumentContext) context.addDocument(file.toURI(), textDocumentContent); Path filePath = srcDir.relativize(Absolute.path(file)); List diagnostics = documentContext.getDiagnostics(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/FormatCommand.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/FormatCommand.java index a25c8f10319..0911d592cf3 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/FormatCommand.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/FormatCommand.java @@ -21,9 +21,10 @@ */ package com.github._1c_syntax.bsl.languageserver.cli; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; -import com.github._1c_syntax.bsl.languageserver.providers.FormatProvider; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; +import com.github._1c_syntax.bsl.languageserver.providers.BSLFormatProvider; +import com.github._1c_syntax.ls_core.cli.CLICommand; import com.github._1c_syntax.utils.Absolute; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -43,7 +44,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.concurrent.Callable; import static picocli.CommandLine.Command; import static picocli.CommandLine.Option; @@ -72,10 +72,10 @@ footer = "@|green Copyright(c) 2018-2020|@") @Component @RequiredArgsConstructor -public class FormatCommand implements Callable { +public class FormatCommand implements CLICommand { - private final ServerContext serverContext; - private final FormatProvider formatProvider; + private final BSLServerContext serverContext; + private final BSLFormatProvider formatProvider; @Option( names = {"-h", "--help"}, @@ -138,7 +138,7 @@ private void formatFile(File file) { String textDocumentContent = FileUtils.readFileToString(file, StandardCharsets.UTF_8); final URI uri = file.toURI(); - DocumentContext documentContext = serverContext.addDocument(uri, textDocumentContent); + var documentContext = (BSLDocumentContext) serverContext.addDocument(uri, textDocumentContent); DocumentFormattingParams params = new DocumentFormattingParams(); FormattingOptions options = new FormattingOptions(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/LanguageServerStartCommand.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/LanguageServerStartCommand.java deleted file mode 100644 index 6ca7c559caf..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/LanguageServerStartCommand.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.cli; - -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.eclipse.lsp4j.jsonrpc.Launcher; -import org.eclipse.lsp4j.services.LanguageClient; -import org.eclipse.lsp4j.services.LanguageClientAware; -import org.springframework.stereotype.Component; - -import java.io.File; -import java.util.List; -import java.util.concurrent.Callable; - -import static picocli.CommandLine.Command; -import static picocli.CommandLine.Option; - -/** - * Запускает приложение в режиме Language Server - * Ключ команды: - * без ключа - * Параметры: - * -c, (--configuration) <arg> - Путь к конфигурационному файлу BSL Language Server (.bsl-language-server.json). - * Возможно указывать как в абсолютном, так и относительном виде. - * Если параметр опущен, то будут использованы настройки по умолчанию. - * Выводимая информация: - * Данный режим используется для взаимодействия с клиентом по протоколу LSP. - */ -@Slf4j -@Command( - name = "lsp", - aliases = {"--lsp"}, - description = "LSP server mode (default)", - usageHelpAutoWidth = true, - footer = "@|green Copyright(c) 2018-2020|@") -@Component -@RequiredArgsConstructor -public class LanguageServerStartCommand implements Callable { - @Option( - names = {"-h", "--help"}, - usageHelp = true, - description = "Show this help message and exit") - private boolean usageHelpRequested; - - @Option( - names = {"-c", "--configuration"}, - description = "Path to language server configuration file", - paramLabel = "", - defaultValue = "") - private String configurationOption; - - @Option(names = "--spring.config.location", hidden = true) - private String springConfigLocation; - - @Option(names = "--debug", hidden = true) - private boolean debug; - - private final LanguageServerConfiguration configuration; - private final Launcher launcher; - private final List languageClientAwares; - - public Integer call() { - - File configurationFile = new File(configurationOption); - configuration.update(configurationFile); - - var languageClient = launcher.getRemoteProxy(); - - languageClientAwares.forEach(languageClientAware -> languageClientAware.connect(languageClient)); - - launcher.startListening(); - return -1; - } - -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/VersionCommand.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/VersionCommand.java deleted file mode 100644 index 98c36cb2ce3..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/VersionCommand.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.cli; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.eclipse.lsp4j.ServerInfo; -import org.springframework.stereotype.Component; -import picocli.CommandLine.Command; -import picocli.CommandLine.Option; - -import java.util.concurrent.Callable; - -/** - * Выводит версию приложения - * Ключ команды: - * -v, (--version) - */ -@Slf4j -@Command( - name = "version", - aliases = {"-v", "--version"}, - description = "Print version", - usageHelpAutoWidth = true, - footer = "@|green Copyright(c) 2018-2020|@") -@Component -@RequiredArgsConstructor -public class VersionCommand implements Callable { - - @Option(names = "--spring.config.location", hidden = true) - private String springConfigLocation; - - @Option(names = "--debug", hidden = true) - private boolean debug; - - private final ServerInfo serverInfo; - - public Integer call() { - String version = serverInfo.getVersion(); - if (version.isEmpty()) { - return 1; - } - - System.out.printf( - "version: %s%n", - version - ); - - return 0; - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/lsp/FileAwarePrintWriter.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/lsp/FileAwarePrintWriter.java deleted file mode 100644 index bbfcd08e4a6..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/lsp/FileAwarePrintWriter.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.cli.lsp; - -import com.github._1c_syntax.bsl.languageserver.configuration.watcher.LanguageServerConfigurationChangeEvent; -import com.github._1c_syntax.bsl.languageserver.configuration.watcher.LanguageServerConfigurationFileChangeEvent; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.event.EventListener; -import org.springframework.stereotype.Component; - -import javax.annotation.CheckForNull; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.PrintWriter; -import java.nio.charset.StandardCharsets; -import java.util.Objects; - -/** - * Обертка над PrintWriter, позволяющая изменять выходной файловый поток "на-лету", - * в отличие от установки в конструкторе в оригинальном {@link PrintWriter}. - */ -@Component -@Slf4j -public class FileAwarePrintWriter extends PrintWriter { - - private boolean isEmpty = true; - private File file; - - /** - * Конструктор по умолчанию. Отправляет вывод в /dev/null. - */ - public FileAwarePrintWriter() { - super(OutputStream.nullOutputStream()); - } - - /** - * @param file Файл, в который отныне нужно перенаправлять вывод PrintWriter - */ - public void setFile(@CheckForNull File file) { - - // sync on non-private field, cause this#lock is supposed to be used as lock-object. See field description. - synchronized (lock) { - if (Objects.equals(file, this.file)) { - return; - } - - this.file = file; - - if (file == null) { - closeOutputStream(); - return; - } - - if (file.isDirectory()) { - LOGGER.error("Trace log setting must lead to file, not directory! {}", file.getAbsolutePath()); - return; - } - - FileOutputStream fileOutputStream; - try { - // stream is not closed, cause it used as output stream in writer. See this#out field. - fileOutputStream = new FileOutputStream(file); - } catch (FileNotFoundException e) { - LOGGER.error("Can't create LSP trace file", e); - return; - } - - closeOutputStream(); - - this.out = new BufferedWriter(new OutputStreamWriter(fileOutputStream, StandardCharsets.UTF_8)); - this.lock = this.out; - this.isEmpty = false; - } - - } - - @Override - public void print(String s) { - if (isEmpty) { - return; - } - super.print(s); - } - - @Override - public void flush() { - if (isEmpty) { - return; - } - super.flush(); - } - - /** - * Обработчик события {@link LanguageServerConfigurationFileChangeEvent}. - * - * @param event Событие - */ - @EventListener - public void handleEvent(LanguageServerConfigurationChangeEvent event) { - setFile(event.getSource().getTraceLog()); - } - - @SneakyThrows - private void closeOutputStream() { - out.close(); - isEmpty = true; - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/lsp/LanguageServerLauncherConfiguration.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/lsp/LanguageServerLauncherConfiguration.java deleted file mode 100644 index 3fab87528aa..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/lsp/LanguageServerLauncherConfiguration.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.cli.lsp; - -import lombok.extern.slf4j.Slf4j; -import org.eclipse.lsp4j.jsonrpc.Launcher; -import org.eclipse.lsp4j.launch.LSPLauncher; -import org.eclipse.lsp4j.services.LanguageClient; -import org.eclipse.lsp4j.services.LanguageServer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import java.io.InputStream; -import java.io.OutputStream; - -/** - * Конфигурация для создания объектов из lsp4j-слоя. - */ -@Configuration -@Slf4j -public class LanguageServerLauncherConfiguration { - - @Bean - public Launcher launcher( - LanguageServer server, - FileAwarePrintWriter printWriter - ) { - InputStream in = System.in; - OutputStream out = System.out; - - return LSPLauncher.createServerLauncher(server, in, out, false, printWriter); - - } - -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/lsp/package-info.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/lsp/package-info.java deleted file mode 100644 index 1d90566daee..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/lsp/package-info.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -/** - * Классы для конфигурирования и запуска команды - * {@link com.github._1c_syntax.bsl.languageserver.cli.LanguageServerStartCommand} - */ -@ParametersAreNonnullByDefault -package com.github._1c_syntax.bsl.languageserver.cli.lsp; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/AbstractQuickFixSupplier.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/AbstractQuickFixSupplier.java index 033659b8e8b..e1f7bc9b490 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/AbstractQuickFixSupplier.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/AbstractQuickFixSupplier.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.codeactions; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import lombok.RequiredArgsConstructor; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionKind; @@ -39,7 +39,7 @@ public abstract class AbstractQuickFixSupplier implements CodeActionSupplier { protected final QuickFixSupplier quickFixSupplier; @Override - public List getCodeActions(CodeActionParams params, DocumentContext documentContext) { + public List getCodeActions(CodeActionParams params, BSLDocumentContext documentContext) { List only = params.getContext().getOnly(); if (only != null && !only.isEmpty() && !only.contains(CodeActionKind.QuickFix)) { return Collections.emptyList(); @@ -63,6 +63,6 @@ public List getCodeActions(CodeActionParams params, DocumentContext protected abstract Stream processDiagnosticStream( Stream diagnosticStream, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/CodeActionSupplier.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/CodeActionSupplier.java index 09610fa8702..0276a5d6161 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/CodeActionSupplier.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/CodeActionSupplier.java @@ -21,12 +21,12 @@ */ package com.github._1c_syntax.bsl.languageserver.codeactions; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionParams; import java.util.List; public interface CodeActionSupplier { - List getCodeActions(CodeActionParams params, DocumentContext documentContext); + List getCodeActions(CodeActionParams params, BSLDocumentContext documentContext); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/FixAllCodeActionSupplier.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/FixAllCodeActionSupplier.java index 207b1b6080e..429a24cadd3 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/FixAllCodeActionSupplier.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/FixAllCodeActionSupplier.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.codeactions; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.QuickFixProvider; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionContext; @@ -50,7 +50,7 @@ public FixAllCodeActionSupplier(QuickFixSupplier quickFixSupplier) { protected Stream processDiagnosticStream( Stream diagnosticStream, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { return diagnosticStream .map(Diagnostic::getCode) @@ -61,7 +61,7 @@ protected Stream processDiagnosticStream( private List getFixAllCodeAction( Either diagnosticCode, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { Optional> quickFixClass = quickFixSupplier.getQuickFixClass(diagnosticCode); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/GenerateStandardRegionsSupplier.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/GenerateStandardRegionsSupplier.java index 55983bbc3b2..cc539b68be1 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/GenerateStandardRegionsSupplier.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/GenerateStandardRegionsSupplier.java @@ -21,12 +21,12 @@ */ package com.github._1c_syntax.bsl.languageserver.codeactions; -import com.github._1c_syntax.bsl.languageserver.configuration.Language; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.FileType; import com.github._1c_syntax.bsl.languageserver.context.symbol.RegionSymbol; import com.github._1c_syntax.bsl.languageserver.utils.Regions; +import com.github._1c_syntax.ls_core.configuration.Language; import com.github._1c_syntax.mdclasses.metadata.Configuration; import com.github._1c_syntax.mdclasses.metadata.additional.ConfigurationSource; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; @@ -55,9 +55,9 @@ @Component public class GenerateStandardRegionsSupplier implements CodeActionSupplier { - private final LanguageServerConfiguration languageServerConfiguration; + private final BSLLanguageServerConfiguration languageServerConfiguration; - public GenerateStandardRegionsSupplier(LanguageServerConfiguration languageServerConfiguration) { + public GenerateStandardRegionsSupplier(BSLLanguageServerConfiguration languageServerConfiguration) { this.languageServerConfiguration = languageServerConfiguration; } @@ -71,7 +71,7 @@ public GenerateStandardRegionsSupplier(LanguageServerConfiguration languageServe * пустой {@code List} если генерация областей не требуется */ @Override - public List getCodeActions(CodeActionParams params, DocumentContext documentContext) { + public List getCodeActions(CodeActionParams params, BSLDocumentContext documentContext) { ModuleType moduleType = documentContext.getModuleType(); FileType fileType = documentContext.getFileType(); @@ -114,14 +114,14 @@ public List getCodeActions(CodeActionParams params, DocumentContext return List.of(codeAction); } - private ScriptVariant getRegionsLanguage(DocumentContext documentContext, FileType fileType) { + private ScriptVariant getRegionsLanguage(BSLDocumentContext documentContext, FileType fileType) { ScriptVariant regionsLanguage; - Configuration configuration = documentContext.getServerContext().getConfiguration(); + Configuration configuration = documentContext.getMDConfiguration(); if (configuration.getConfigurationSource() == ConfigurationSource.EMPTY || fileType == FileType.OS) { regionsLanguage = getScriptVariantFromConfigLanguage(); } else { - regionsLanguage = documentContext.getServerContext().getConfiguration().getScriptVariant(); + regionsLanguage = documentContext.getMDConfiguration().getScriptVariant(); } return regionsLanguage; } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixCodeActionSupplier.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixCodeActionSupplier.java index 11ad39b70f6..44bbc1589a1 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixCodeActionSupplier.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixCodeActionSupplier.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.codeactions; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.QuickFixProvider; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionParams; @@ -44,7 +44,7 @@ public QuickFixCodeActionSupplier(QuickFixSupplier quickFixSupplier) { protected Stream processDiagnosticStream( Stream diagnosticStream, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { return diagnosticStream .flatMap(diagnostic -> getCodeActionsByDiagnostic(diagnostic, params, documentContext).stream()); @@ -53,7 +53,7 @@ protected Stream processDiagnosticStream( private List getCodeActionsByDiagnostic( Diagnostic diagnostic, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { Optional> quickFixClass = diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixSupplier.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixSupplier.java index b3a1a20bff6..607c82df078 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixSupplier.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixSupplier.java @@ -23,9 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.BSLDiagnostic; import com.github._1c_syntax.bsl.languageserver.diagnostics.QuickFixProvider; -import com.github._1c_syntax.bsl.languageserver.diagnostics.infrastructure.DiagnosticConfiguration; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCode; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; +import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.BSLDiagnosticInfo; +import com.github._1c_syntax.ls_core.diagnostics.infrastructure.DiagnosticConfiguration; +import com.github._1c_syntax.ls_core.diagnostics.metadata.CoreDiagnosticInfo; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticCode; import lombok.RequiredArgsConstructor; import org.eclipse.lsp4j.jsonrpc.messages.Either; import org.springframework.stereotype.Component; @@ -37,7 +38,7 @@ @RequiredArgsConstructor public class QuickFixSupplier { - private final Map diagnosticInfos; + private final Map diagnosticInfos; private final DiagnosticConfiguration diagnosticConfiguration; // TODO: Рефакторинг апи квик-фиксов. @@ -51,7 +52,8 @@ public > Optional (BSLDiagnosticInfo) coreDiagnosticInfo) + .map(BSLDiagnosticInfo::getDiagnosticClass) .filter(QuickFixProvider.class::isAssignableFrom) .map(aClass -> (Class) aClass); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CodeLensSupplier.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CodeLensSupplier.java index 019257848ce..9f0f56dd53f 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CodeLensSupplier.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CodeLensSupplier.java @@ -21,11 +21,11 @@ */ package com.github._1c_syntax.bsl.languageserver.codelenses; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import org.eclipse.lsp4j.CodeLens; import java.util.List; public interface CodeLensSupplier { - List getCodeLenses(DocumentContext documentContext); + List getCodeLenses(BSLDocumentContext documentContext); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CognitiveComplexityCodeLensSupplier.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CognitiveComplexityCodeLensSupplier.java index 75ec763a0cd..48728cefbbd 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CognitiveComplexityCodeLensSupplier.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CognitiveComplexityCodeLensSupplier.java @@ -21,8 +21,8 @@ */ package com.github._1c_syntax.bsl.languageserver.codelenses; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import lombok.RequiredArgsConstructor; import org.eclipse.lsp4j.CodeLens; @@ -38,10 +38,10 @@ @RequiredArgsConstructor public class CognitiveComplexityCodeLensSupplier implements CodeLensSupplier { - private final LanguageServerConfiguration configuration; + private final BSLLanguageServerConfiguration configuration; @Override - public List getCodeLenses(DocumentContext documentContext) { + public List getCodeLenses(BSLDocumentContext documentContext) { if (!configuration.getCodeLensOptions().isShowCognitiveComplexity()) { return Collections.emptyList(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CyclomaticComplexityCodeLensSupplier.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CyclomaticComplexityCodeLensSupplier.java index 23610668064..c9e0ba17fba 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CyclomaticComplexityCodeLensSupplier.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/CyclomaticComplexityCodeLensSupplier.java @@ -21,8 +21,8 @@ */ package com.github._1c_syntax.bsl.languageserver.codelenses; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import lombok.RequiredArgsConstructor; import org.eclipse.lsp4j.CodeLens; @@ -38,10 +38,10 @@ @RequiredArgsConstructor public class CyclomaticComplexityCodeLensSupplier implements CodeLensSupplier { - private final LanguageServerConfiguration configuration; + private final BSLLanguageServerConfiguration configuration; @Override - public List getCodeLenses(DocumentContext documentContext) { + public List getCodeLenses(BSLDocumentContext documentContext) { if (!configuration.getCodeLensOptions().isShowCyclomaticComplexity()) { return Collections.emptyList(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/LanguageServerConfiguration.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/BSLLanguageServerConfiguration.java similarity index 79% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/LanguageServerConfiguration.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/BSLLanguageServerConfiguration.java index c7ac0cc8abc..cd3a4498823 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/LanguageServerConfiguration.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/BSLLanguageServerConfiguration.java @@ -27,10 +27,13 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.ObjectMapper; import com.github._1c_syntax.bsl.languageserver.configuration.codelens.CodeLensOptions; -import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.DiagnosticsOptions; +import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.BSLDiagnosticsOptions; import com.github._1c_syntax.bsl.languageserver.configuration.documentlink.DocumentLinkOptions; -import com.github._1c_syntax.bsl.languageserver.configuration.watcher.LanguageServerConfigurationChangeEvent; -import com.github._1c_syntax.bsl.languageserver.configuration.watcher.LanguageServerConfigurationFileChangeEvent; +import com.github._1c_syntax.ls_core.configuration.LSPFeature; +import com.github._1c_syntax.ls_core.configuration.Language; +import com.github._1c_syntax.ls_core.configuration.LanguageServerConfiguration; +import com.github._1c_syntax.ls_core.configuration.watcher.LanguageServerConfigurationChangeEvent; +import com.github._1c_syntax.ls_core.configuration.watcher.LanguageServerConfigurationFileChangeEvent; import com.github._1c_syntax.utils.Absolute; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -43,7 +46,7 @@ import org.apache.commons.beanutils.PropertyUtils; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.ApplicationEventPublisher; -import org.springframework.context.ApplicationEventPublisherAware; +import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Role; import org.springframework.stereotype.Component; @@ -53,8 +56,10 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Optional; +import java.util.Set; import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -64,7 +69,7 @@ /** * Корневой класс конфигурации BSL Language Server. *

- * В обычном режиме работы провайдеры и прочие классы могут расчитывать на единственность объекта конфигурации + * В обычном режиме работы провайдеры и прочие классы могут рассчитывать на единственность объекта конфигурации * и безопасно сохранять ссылку на конфигурацию или ее части. */ @Data @@ -74,7 +79,8 @@ @NoArgsConstructor @Slf4j @JsonIgnoreProperties(ignoreUnknown = true) -public class LanguageServerConfiguration implements ApplicationEventPublisherAware { +@Primary +public class BSLLanguageServerConfiguration implements LanguageServerConfiguration { private static final Pattern searchConfiguration = Pattern.compile("Configuration\\.(xml|mdo)$"); @@ -82,7 +88,7 @@ public class LanguageServerConfiguration implements ApplicationEventPublisherAwa @JsonProperty("diagnostics") @Setter(value = AccessLevel.NONE) - private DiagnosticsOptions diagnosticsOptions = new DiagnosticsOptions(); + private BSLDiagnosticsOptions diagnosticsOptions = new BSLDiagnosticsOptions(); @JsonProperty("codeLens") @Setter(value = AccessLevel.NONE) @@ -106,18 +112,25 @@ public class LanguageServerConfiguration implements ApplicationEventPublisherAwa @Getter(value = AccessLevel.NONE) private ApplicationEventPublisher applicationEventPublisher; + /** + * Доступные фичи language server + */ + @JsonIgnore + private Set lspFeatures; + + @Override public void update(File configurationFile) { if (!configurationFile.exists()) { return; } - LanguageServerConfiguration configuration; + BSLLanguageServerConfiguration configuration; - ObjectMapper mapper = new ObjectMapper(); + var mapper = new ObjectMapper(); mapper.enable(ACCEPT_CASE_INSENSITIVE_ENUMS); try { - configuration = mapper.readValue(configurationFile, LanguageServerConfiguration.class); + configuration = mapper.readValue(configurationFile, BSLLanguageServerConfiguration.class); } catch (IOException e) { LOGGER.error("Can't deserialize configuration file", e); return; @@ -130,14 +143,30 @@ public void update(File configurationFile) { notifyConfigurationChanged(); } - + @Override public void reset() { - copyPropertiesFrom(new LanguageServerConfiguration()); + copyPropertiesFrom(new BSLLanguageServerConfiguration()); notifyConfigurationFileChanged(); notifyConfigurationChanged(); } - - public static Path getCustomConfigurationRoot(LanguageServerConfiguration configuration, Path srcDir) { + + @Override + public void addLSPFeature(LSPFeature lspFeature) { + if (lspFeatures == null) { + lspFeatures = new HashSet<>(); + } + lspFeatures.add(lspFeature); + } + + @Override + public boolean isLSPFeature(LSPFeature lspFeature) { + if (lspFeatures == null) { + return false; + } + return lspFeatures.contains(lspFeature); + } + + public static Path getCustomConfigurationRoot(BSLLanguageServerConfiguration configuration, Path srcDir) { Path rootPath = null; Path pathFromConfiguration = configuration.getConfigurationRoot(); @@ -190,7 +219,7 @@ private static File getConfigurationFile(Path rootPath) { } @SneakyThrows - private void copyPropertiesFrom(LanguageServerConfiguration configuration) { + private void copyPropertiesFrom(BSLLanguageServerConfiguration configuration) { // todo: refactor PropertyUtils.copyProperties(this, configuration); PropertyUtils.copyProperties(this.codeLensOptions, configuration.codeLensOptions); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/Language.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/Language.java deleted file mode 100644 index fea03dbdaee..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/Language.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.configuration; - -/** - * Язык для сообщений, ресурсов и прочих взаимододействий между - * BSL Language Server и пользователем. - */ -public enum Language { - - /** - * Русский - */ - RU("ru"), - - /** - * Английский - */ - EN("en"); - - /** - * Язык по умолчанию - */ - public static final Language DEFAULT_LANGUAGE = RU; - - private final String languageCode; - - /** - * @param languageCode код языка в соответствии с {@link java.util.Locale#getLanguage()} - */ - Language(String languageCode) { - this.languageCode = languageCode; - } - - /** - * @return код языка в соответствии с {@link java.util.Locale#getLanguage()} - */ - public String getLanguageCode() { - return languageCode; - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/codelens/CodeLensOptions.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/codelens/CodeLensOptions.java index de5f466b76e..ff63d3d4daa 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/codelens/CodeLensOptions.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/codelens/CodeLensOptions.java @@ -28,7 +28,7 @@ import lombok.NoArgsConstructor; /** - * Корневой класс для настройки {@link com.github._1c_syntax.bsl.languageserver.providers.CodeLensProvider} + * Корневой класс для настройки {@link com.github._1c_syntax.bsl.languageserver.providers.BSLCodeLensProvider} */ @Data @AllArgsConstructor(onConstructor = @__({@JsonCreator(mode = JsonCreator.Mode.DISABLED)})) diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/codelens/package-info.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/codelens/package-info.java index 6e2d789b2d2..308c2760cc2 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/codelens/package-info.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/codelens/package-info.java @@ -20,6 +20,6 @@ * License along with BSL Language Server. */ /** - * Пакет содержит настройки {@link com.github._1c_syntax.bsl.languageserver.providers.CodeLensProvider} + * Пакет содержит настройки {@link com.github._1c_syntax.bsl.languageserver.providers.BSLCodeLensProvider} */ package com.github._1c_syntax.bsl.languageserver.configuration.codelens; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/DiagnosticsOptions.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/BSLDiagnosticsOptions.java similarity index 69% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/DiagnosticsOptions.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/BSLDiagnosticsOptions.java index f53e3977293..6234dbf790e 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/DiagnosticsOptions.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/BSLDiagnosticsOptions.java @@ -23,28 +23,20 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.databind.ParametersDeserializer; +import com.github._1c_syntax.ls_core.configuration.diagnostics.CoreDiagnosticsOptions; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import org.eclipse.lsp4j.jsonrpc.messages.Either; - -import java.util.HashMap; -import java.util.Map; /** - * Корневой класс для настройки {@link com.github._1c_syntax.bsl.languageserver.providers.DiagnosticProvider} + * Корневой класс для настройки {@link com.github._1c_syntax.ls_core.providers.DiagnosticProvider} */ +@EqualsAndHashCode(callSuper = true) @Data @AllArgsConstructor(onConstructor = @__({@JsonCreator(mode = JsonCreator.Mode.DISABLED)})) @NoArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) -public class DiagnosticsOptions { - private ComputeTrigger computeTrigger = ComputeTrigger.ONSAVE; +public class BSLDiagnosticsOptions extends CoreDiagnosticsOptions { private SkipSupport skipSupport = SkipSupport.NEVER; - private Mode mode = Mode.ON; - - @JsonDeserialize(using = ParametersDeserializer.class) - private Map>> parameters = new HashMap<>(); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/ComputeTrigger.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/ComputeTrigger.java deleted file mode 100644 index 65816d7ec9f..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/ComputeTrigger.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.configuration.diagnostics; - -/** - * Триггер для запуска процедуры расчета диагностик. - */ -public enum ComputeTrigger { - /** - * При редактировании файла - */ - ONTYPE, - - /** - * При сохранении файла - */ - ONSAVE, - - /** - * Никогда - */ - NEVER -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/Mode.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/Mode.java deleted file mode 100644 index 0dd8e5bfefb..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/Mode.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.configuration.diagnostics; - -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; - -/** - * Режим для учета настроек правил. - *

- * См. {@link DiagnosticsOptions#getParameters()} - */ -public enum Mode { - - /** - * Все диагностики считаются выключенными. - */ - OFF, - - /** - * Все диагностики, включенные по умолчанию ({@link DiagnosticMetadata#activatedByDefault()}, считаются включенными. - * Остальные - в соответствии с конфигурацией настроек правил. - */ - ON, - - /** - * Все диагностики, кроме указанных в конфигурации настроек правил, считаются включенными. - */ - EXCEPT, - - /** - * Только диагностики, указанные в конфигурации настроек правил, считаются включенными. - */ - ONLY, - - /** - * Все диагностики считаются включенными. - */ - ALL -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/databind/ParametersDeserializer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/databind/ParametersDeserializer.java deleted file mode 100644 index 1ff23ece5a7..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/databind/ParametersDeserializer.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.databind; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.extern.slf4j.Slf4j; -import org.eclipse.lsp4j.jsonrpc.messages.Either; - -import java.io.IOException; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -/** - * Служебный класс-десериализатор для коллекции настроек диагностик. - *

- * См. {@link com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.DiagnosticsOptions#getParameters()} - */ -@Slf4j -public class ParametersDeserializer extends JsonDeserializer>>> { - - @Override - public Map>> deserialize( - JsonParser p, - DeserializationContext context - ) throws IOException { - - JsonNode diagnostics = p.getCodec().readTree(p); - - if (diagnostics == null) { - return Collections.emptyMap(); - } - - ObjectMapper mapper = new ObjectMapper(); - Map>> diagnosticsMap = new HashMap<>(); - - Iterator> diagnosticsNodes = diagnostics.fields(); - diagnosticsNodes.forEachRemaining((Map.Entry entry) -> { - JsonNode diagnosticConfig = entry.getValue(); - if (diagnosticConfig.isBoolean()) { - diagnosticsMap.put(entry.getKey(), Either.forLeft(diagnosticConfig.asBoolean())); - } else { - Map diagnosticConfiguration = getDiagnosticConfiguration(mapper, entry.getValue()); - diagnosticsMap.put(entry.getKey(), Either.forRight(diagnosticConfiguration)); - } - }); - - return diagnosticsMap; - } - - private static Map getDiagnosticConfiguration( - ObjectMapper mapper, - JsonNode diagnosticConfig - ) { - Map diagnosticConfiguration; - try { - JavaType type = mapper.getTypeFactory().constructType(new TypeReference>() {}); - diagnosticConfiguration = mapper.readValue(mapper.treeAsTokens(diagnosticConfig), type); - } catch (IOException e) { - LOGGER.error("Can't deserialize diagnostic configuration", e); - return null; - } - return diagnosticConfiguration; - } - -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/package-info.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/package-info.java index 551a8d4fb84..c84f7c5ea35 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/package-info.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/diagnostics/package-info.java @@ -20,6 +20,6 @@ * License along with BSL Language Server. */ /** - * Пакет содержит настройки для работы {@link com.github._1c_syntax.bsl.languageserver.providers.DiagnosticProvider} + * Пакет содержит настройки для работы {@link com.github._1c_syntax.ls_core.providers.DiagnosticProvider} */ package com.github._1c_syntax.bsl.languageserver.configuration.diagnostics; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/documentlink/DocumentLinkOptions.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/documentlink/DocumentLinkOptions.java index b4142087701..b0a1de2227d 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/documentlink/DocumentLinkOptions.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/documentlink/DocumentLinkOptions.java @@ -28,7 +28,7 @@ import lombok.NoArgsConstructor; /** - * Корневой класс для настройки {@link com.github._1c_syntax.bsl.languageserver.providers.DocumentLinkProvider} + * Корневой класс для настройки {@link com.github._1c_syntax.bsl.languageserver.providers.BSLDocumentLinkProvider} */ @Data @AllArgsConstructor(onConstructor = @__({@JsonCreator(mode = JsonCreator.Mode.DISABLED)})) diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/documentlink/package-info.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/documentlink/package-info.java index 125c0dc67ed..9f0f54dfca4 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/documentlink/package-info.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/documentlink/package-info.java @@ -20,6 +20,6 @@ * License along with BSL Language Server. */ /** - * Пакет содержит настройки {@link com.github._1c_syntax.bsl.languageserver.providers.DocumentLinkProvider} + * Пакет содержит настройки {@link com.github._1c_syntax.bsl.languageserver.providers.BSLDocumentLinkProvider} */ package com.github._1c_syntax.bsl.languageserver.configuration.documentlink; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/package-info.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/package-info.java index a4451c55cf2..e61e27d032a 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/package-info.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/package-info.java @@ -23,7 +23,7 @@ * В пакете содержатся классы для конфигурирования BSL Language Server. *

* Корневой пакет содержит корневой класс конфигурации - * {@link com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration} + * {@link com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration} * , настройки верхнего уровня и дополнительные пакеты для настроек в разрезе провайдеров * (диагностики, code lens, и т.д.) */ diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileChangeListener.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileChangeListener.java index b06d40d23ad..5880e0109ad 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileChangeListener.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileChangeListener.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.configuration.watcher; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -37,21 +37,21 @@ * Обработчик событий изменения файла конфигурации. *

* Выполняет обновление/сброс инстанса - * {@link com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration}. + * {@link com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration}. */ @Component @Slf4j @RequiredArgsConstructor public class ConfigurationFileChangeListener { - private final LanguageServerConfiguration configuration; + private final BSLLanguageServerConfiguration configuration; /** * Обработчик изменения файла конфигурации. Актуализирует текущий активный инстанс конфигурации - * {@link com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration}. + * {@link com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration}. * * @param configurationFile Изменившийся файл конфигурации, содержащий - * {@link com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration}. + * {@link com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration}. * @param eventKind Тип события, произошедшего с файлом. */ public void onChange(File configurationFile, WatchEvent.Kind eventKind) { diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileSystemWatcher.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileSystemWatcher.java index 826f338c70e..3015201b485 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileSystemWatcher.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileSystemWatcher.java @@ -21,7 +21,8 @@ */ package com.github._1c_syntax.bsl.languageserver.configuration.watcher; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.ls_core.configuration.watcher.LanguageServerConfigurationFileChangeEvent; import com.github._1c_syntax.utils.Absolute; import com.sun.nio.file.SensitivityWatchEventModifier; import lombok.RequiredArgsConstructor; @@ -57,7 +58,7 @@ @RequiredArgsConstructor public class ConfigurationFileSystemWatcher { - private final LanguageServerConfiguration configuration; + private final BSLLanguageServerConfiguration configuration; private final ConfigurationFileChangeListener listener; private Path registeredPath; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/LanguageServerConfigurationChangeEvent.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/LanguageServerConfigurationChangeEvent.java deleted file mode 100644 index fa5ddb99759..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/LanguageServerConfigurationChangeEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.configuration.watcher; - -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import org.springframework.context.ApplicationEvent; - -/** - * Описание события изменения конфигурации. - *

- * В качестве источника события содержит ссылку на конфигурацию. - */ -public class LanguageServerConfigurationChangeEvent extends ApplicationEvent { - public LanguageServerConfigurationChangeEvent(LanguageServerConfiguration configuration) { - super(configuration); - } - - @Override - public LanguageServerConfiguration getSource() { - return (LanguageServerConfiguration) super.getSource(); - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/package-info.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/package-info.java index e9da672b2ef..c6e779dfa75 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/package-info.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/package-info.java @@ -21,7 +21,7 @@ */ /** * В пакете содержатся классы, относящиеся к отслеживанию факта изменения (удаление, создание, редактирование) файла - * конфигурации ({@link com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration}). + * конфигурации ({@link com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration}). */ @ParametersAreNonnullByDefault package com.github._1c_syntax.bsl.languageserver.configuration.watcher; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/DocumentContext.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/BSLDocumentContext.java similarity index 65% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/context/DocumentContext.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/context/BSLDocumentContext.java index 866d5deda06..4016676fdd9 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/DocumentContext.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/BSLDocumentContext.java @@ -21,23 +21,25 @@ */ package com.github._1c_syntax.bsl.languageserver.context; +import com.github._1c_syntax.bsl.languageserver.context.computer.BSLDiagnosticIgnoranceComputer; import com.github._1c_syntax.bsl.languageserver.context.computer.CognitiveComplexityComputer; import com.github._1c_syntax.bsl.languageserver.context.computer.ComplexityData; -import com.github._1c_syntax.bsl.languageserver.context.computer.Computer; import com.github._1c_syntax.bsl.languageserver.context.computer.CyclomaticComplexityComputer; -import com.github._1c_syntax.bsl.languageserver.context.computer.DiagnosticComputer; -import com.github._1c_syntax.bsl.languageserver.context.computer.DiagnosticIgnoranceComputer; import com.github._1c_syntax.bsl.languageserver.context.computer.QueryComputer; import com.github._1c_syntax.bsl.languageserver.context.computer.SymbolTreeComputer; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.SymbolTree; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLLexer; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; import com.github._1c_syntax.bsl.parser.BSLTokenizer; import com.github._1c_syntax.bsl.parser.SDBLTokenizer; +import com.github._1c_syntax.ls_core.context.CoreDocumentContext; +import com.github._1c_syntax.ls_core.context.computer.DiagnosticComputer; +import com.github._1c_syntax.ls_core.context.computer.DiagnosticIgnoranceComputer; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.mdclasses.mdo.MDObjectBase; +import com.github._1c_syntax.mdclasses.metadata.Configuration; import com.github._1c_syntax.mdclasses.metadata.SupportConfiguration; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import com.github._1c_syntax.mdclasses.metadata.additional.SupportVariant; @@ -46,12 +48,8 @@ import org.antlr.v4.runtime.tree.TerminalNodeImpl; import org.antlr.v4.runtime.tree.Tree; import org.apache.commons.io.FilenameUtils; -import org.eclipse.lsp4j.Diagnostic; -import org.eclipse.lsp4j.Position; -import org.eclipse.lsp4j.Range; import java.net.URI; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; @@ -61,22 +59,14 @@ import java.util.stream.Collectors; import static java.util.Objects.requireNonNull; -import static org.antlr.v4.runtime.Token.DEFAULT_CHANNEL; -public class DocumentContext { - - private final URI uri; - private String content; - private final ServerContext context; - private final DiagnosticComputer diagnosticComputer; +public class BSLDocumentContext extends CoreDocumentContext { private final FileType fileType; private BSLTokenizer tokenizer; private final ReentrantLock computeLock = new ReentrantLock(); - private final ReentrantLock diagnosticsLock = new ReentrantLock(); - private final Lazy contentList = new Lazy<>(this::computeContentList, computeLock); private final Lazy moduleType = new Lazy<>(this::computeModuleType, computeLock); private final Lazy> supportVariants = new Lazy<>(this::computeSupportVariants, computeLock); @@ -85,38 +75,20 @@ public class DocumentContext { = new Lazy<>(this::computeCognitiveComplexity, computeLock); private final Lazy cyclomaticComplexityData = new Lazy<>(this::computeCyclomaticComplexity, computeLock); - private final Lazy diagnosticIgnoranceData - = new Lazy<>(this::computeDiagnosticIgnorance, computeLock); private final Lazy metrics = new Lazy<>(this::computeMetrics, computeLock); - private final Lazy> diagnostics = new Lazy<>(this::computeDiagnostics, diagnosticsLock); private final Lazy> queries = new Lazy<>(this::computeQueries, computeLock); - public DocumentContext(URI uri, String content, ServerContext context, DiagnosticComputer diagnosticComputer) { - this.uri = uri; - this.content = content; - this.context = context; - this.diagnosticComputer = diagnosticComputer; + public BSLDocumentContext(URI uri, String content, BSLServerContext context, DiagnosticComputer diagnosticComputer) { + super(uri, content, context, diagnosticComputer); this.tokenizer = new BSLTokenizer(content); - this.fileType = computeFileType(this.uri); - } - - public ServerContext getServerContext() { - return context; - } - - public String getContent() { - requireNonNull(content); - return content; - } - - public String[] getContentList() { - return contentList.getOrCompute(); + this.fileType = computeFileType(getUri()); } + @Override public BSLParser.FileContext getAst() { - requireNonNull(content); + requireNonNull(getContent()); return tokenizer.getAst(); } @@ -124,13 +96,16 @@ public SymbolTree getSymbolTree() { return symbolTree.getOrCompute(); } + @Override public List getTokens() { - requireNonNull(content); + requireNonNull(getContent()); return tokenizer.getTokens(); } - public List getTokensFromDefaultChannel() { - return getTokens().stream().filter(token -> token.getChannel() == DEFAULT_CHANNEL).collect(Collectors.toList()); + @Override + protected DiagnosticIgnoranceComputer.Data computeDiagnosticIgnorance() { + var diagnosticIgnoranceComputer = new BSLDiagnosticIgnoranceComputer(this); + return diagnosticIgnoranceComputer.compute(); } public List getComments() { @@ -139,44 +114,10 @@ public List getComments() { .collect(Collectors.toList()); } - public String getText(Range range) { - Position start = range.getStart(); - Position end = range.getEnd(); - - String[] contentListUnboxed = getContentList(); - - if (start.getLine() > contentListUnboxed.length || end.getLine() > contentListUnboxed.length) { - throw new ArrayIndexOutOfBoundsException("Range goes beyond the boundaries of the parsed document"); - } - - String startString = contentListUnboxed[start.getLine()]; - StringBuilder sb = new StringBuilder(); - - if (start.getLine() == end.getLine()) { - sb.append(startString, start.getCharacter(), end.getCharacter()); - } else { - sb.append(startString.substring(start.getCharacter())).append("\n"); - } - - for (int i = start.getLine() + 1; i <= end.getLine() - 1; i++) { - sb.append(contentListUnboxed[i]).append("\n"); - } - - if (start.getLine() != end.getLine()) { - sb.append(contentListUnboxed[end.getLine()], 0, end.getCharacter()); - } - - return sb.toString(); - } - public MetricStorage getMetrics() { return metrics.getOrCompute(); } - public URI getUri() { - return uri; - } - public FileType getFileType() { return fileType; } @@ -189,10 +130,6 @@ public ComplexityData getCyclomaticComplexityData() { return cyclomaticComplexityData.getOrCompute(); } - public DiagnosticIgnoranceComputer.Data getDiagnosticIgnorance() { - return diagnosticIgnoranceData.getOrCompute(); - } - public ModuleType getModuleType() { return moduleType.getOrCompute(); } @@ -202,46 +139,31 @@ public Map getSupportVariants() { } public Optional getMdObject() { - return Optional.ofNullable(getServerContext().getConfiguration().getModulesByObject().get(getUri())); + return Optional.ofNullable(getMDConfiguration().getModulesByObject().get(getUri())); } public List getQueries() { return queries.getOrCompute(); } - public List getDiagnostics() { - return diagnostics.getOrCompute(); - } - - public List getComputedDiagnostics() { - return Optional - .ofNullable(diagnostics.get()) - .orElseGet(Collections::emptyList); - } - + @Override public void rebuild(String content) { computeLock.lock(); - clearSecondaryData(); + super.rebuild(content); symbolTree.clear(); - this.content = content; tokenizer = new BSLTokenizer(content); computeLock.unlock(); } + @Override public void clearSecondaryData() { computeLock.lock(); - diagnosticsLock.lock(); - content = null; - contentList.clear(); + super.clearSecondaryData(); tokenizer = null; - cognitiveComplexityData.clear(); cyclomaticComplexityData.clear(); metrics.clear(); - diagnosticIgnoranceData.clear(); - diagnostics.clear(); queries.clear(); - diagnosticsLock.unlock(); computeLock.unlock(); } @@ -263,30 +185,25 @@ private static FileType computeFileType(URI uri) { return fileTypeFromUri; } - private String[] computeContentList() { - return getContent().split("\n", -1); - } - private SymbolTree computeSymbolTree() { return new SymbolTreeComputer(this).compute(); } - private ModuleType computeModuleType() { - return context.getConfiguration().getModuleType(uri); + return getMDConfiguration().getModuleType(getUri()); } private Map computeSupportVariants() { - return context.getConfiguration().getModuleSupport(uri); + return getMDConfiguration().getModuleSupport(getUri()); } private ComplexityData computeCognitiveComplexity() { - Computer cognitiveComplexityComputer = new CognitiveComplexityComputer(this); + var cognitiveComplexityComputer = new CognitiveComplexityComputer(this); return cognitiveComplexityComputer.compute(); } private ComplexityData computeCyclomaticComplexity() { - Computer cyclomaticComplexityComputer = new CyclomaticComplexityComputer(this); + var cyclomaticComplexityComputer = new CyclomaticComplexityComputer(this); return cyclomaticComplexityComputer.compute(); } @@ -334,7 +251,7 @@ private int[] computeCovlocData() { return Trees.getDescendants(getAst()).stream() .filter(Predicate.not(TerminalNodeImpl.class::isInstance)) - .filter(DocumentContext::mustCovered) + .filter(BSLDocumentContext::mustCovered) .mapToInt(node -> ((BSLParserRuleContext) node).getStart().getLine()) .distinct().toArray(); @@ -346,16 +263,11 @@ private static boolean mustCovered(Tree node) { || node instanceof BSLParser.Var_nameContext; } - private DiagnosticIgnoranceComputer.Data computeDiagnosticIgnorance() { - Computer diagnosticIgnoranceComputer = new DiagnosticIgnoranceComputer(this); - return diagnosticIgnoranceComputer.compute(); - } - - private List computeDiagnostics() { - return diagnosticComputer.compute(this); - } - private List computeQueries() { return (new QueryComputer(this)).compute(); } + + public Configuration getMDConfiguration() { + return ((BSLServerContext) getServerContext()).getConfiguration(); + } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/ServerContext.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/BSLServerContext.java similarity index 55% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/context/ServerContext.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/context/BSLServerContext.java index 37eff00d9af..9dc477507ea 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/ServerContext.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/BSLServerContext.java @@ -21,24 +21,21 @@ */ package com.github._1c_syntax.bsl.languageserver.context; +import com.github._1c_syntax.ls_core.context.CoreServerContext; +import com.github._1c_syntax.ls_core.context.DocumentContext; import com.github._1c_syntax.mdclasses.metadata.Configuration; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import com.github._1c_syntax.utils.Absolute; import com.github._1c_syntax.utils.Lazy; -import lombok.RequiredArgsConstructor; -import lombok.Setter; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.FileUtils; -import org.eclipse.lsp4j.TextDocumentItem; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Lookup; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; -import javax.annotation.CheckForNull; import java.io.File; import java.net.URI; -import java.nio.charset.StandardCharsets; -import java.nio.file.Path; import java.util.Collection; import java.util.Collections; import java.util.EnumMap; @@ -51,40 +48,69 @@ @Slf4j @Component -@RequiredArgsConstructor -public abstract class ServerContext { - private final Map documents = Collections.synchronizedMap(new HashMap<>()); +@Primary +public class BSLServerContext extends CoreServerContext { + /** + * Расширения анализируемых файлов + */ + private static final String[] FILE_EXTENSIONS = new String[]{"bsl", "os"}; + private final Lazy configurationMetadata = new Lazy<>(this::computeConfigurationMetadata); - @CheckForNull - @Setter - private Path configurationRoot; + private final Map mdoRefs = Collections.synchronizedMap(new HashMap<>()); - private final Map> documentsByMDORef + private final Map> documentsByMDORef = Collections.synchronizedMap(new HashMap<>()); private final ReadWriteLock contextLock = new ReentrantReadWriteLock(); - public void populateContext() { - if (configurationRoot == null) { - LOGGER.info("Can't populate server context. Configuration root is not defined."); - return; - } - LOGGER.debug("Finding files to populate context..."); - Collection files = FileUtils.listFiles( - configurationRoot.toFile(), - new String[]{"bsl", "os"}, - true - ); - populateContext(files); + @Autowired + public BSLServerContext() { + super(); + } + + @Override + public String[] sourceExtensions() { + return FILE_EXTENSIONS; + } + + @Override + public void clear() { + super.clear(); + documentsByMDORef.clear(); + mdoRefs.clear(); + configurationMetadata.clear(); + } + + @Override + public void removeDocument(URI uri) { + var absoluteURI = Absolute.uri(uri); + removeDocumentMdoRefByUri(absoluteURI); + super.removeDocument(absoluteURI); + } + + @Override + protected DocumentContext createDocumentContext(URI uri, String content) { + var absoluteURI = Absolute.uri(uri); + var documentContext = super.createDocumentContext(absoluteURI, content); + addMdoRefByUri(absoluteURI, (BSLDocumentContext) documentContext); + return documentContext; + } + + @Override + @Lookup + protected DocumentContext lookupDocumentContext(URI absoluteURI, String content) { + // так и должно быть, магия spring boot + return null; } + @Override public void populateContext(Collection uris) { LOGGER.debug("Populating context..."); contextLock.writeLock().lock(); uris.parallelStream().forEach((File file) -> { - DocumentContext documentContext = getDocument(file.toURI()); + var documentContext = (BSLDocumentContext) getDocument(file.toURI()); if (documentContext == null) { - documentContext = createDocumentContext(file); + documentContext = (BSLDocumentContext) createDocumentContext(file); documentContext.getSymbolTree(); documentContext.clearSecondaryData(); } @@ -94,16 +120,7 @@ public void populateContext(Collection uris) { LOGGER.debug("Context populated."); } - public Map getDocuments() { - return Collections.unmodifiableMap(documents); - } - - @CheckForNull - public DocumentContext getDocument(String uri) { - return getDocument(URI.create(uri)); - } - - public Optional getDocument(String mdoRef, ModuleType moduleType) { + public Optional getDocument(String mdoRef, ModuleType moduleType) { var documentsGroup = documentsByMDORef.get(mdoRef); if (documentsGroup != null) { return Optional.ofNullable(documentsGroup.get(moduleType)); @@ -111,80 +128,24 @@ public Optional getDocument(String mdoRef, ModuleType moduleTyp return Optional.empty(); } - @CheckForNull - public DocumentContext getDocument(URI uri) { - return documents.get(Absolute.uri(uri)); - } - - public Map getDocuments(String mdoRef) { + public Map getDocuments(String mdoRef) { return documentsByMDORef.getOrDefault(mdoRef, Collections.emptyMap()); } - public DocumentContext addDocument(URI uri, String content) { - contextLock.readLock().lock(); - - DocumentContext documentContext = getDocument(uri); - if (documentContext == null) { - documentContext = createDocumentContext(uri, content); - } else { - documentContext.rebuild(content); - } - - contextLock.readLock().unlock(); - return documentContext; - } - - public DocumentContext addDocument(TextDocumentItem textDocumentItem) { - return addDocument(URI.create(textDocumentItem.getUri()), textDocumentItem.getText()); - } - - public void removeDocument(URI uri) { - URI absoluteURI = Absolute.uri(uri); - removeDocumentMdoRefByUri(absoluteURI); - documents.remove(absoluteURI); - } - - public void clear() { - documents.clear(); - documentsByMDORef.clear(); - mdoRefs.clear(); - configurationMetadata.clear(); - } - public Configuration getConfiguration() { return configurationMetadata.getOrCompute(); } - @Lookup - protected abstract DocumentContext lookupDocumentContext(URI absoluteURI, String content); - - @SneakyThrows - private DocumentContext createDocumentContext(File file) { - String content = FileUtils.readFileToString(file, StandardCharsets.UTF_8); - return createDocumentContext(file.toURI(), content); - } - - private DocumentContext createDocumentContext(URI uri, String content) { - URI absoluteURI = Absolute.uri(uri); - - DocumentContext documentContext = lookupDocumentContext(absoluteURI, content); - - documents.put(absoluteURI, documentContext); - addMdoRefByUri(absoluteURI, documentContext); - - return documentContext; - } - @SneakyThrows private Configuration computeConfigurationMetadata() { - if (configurationRoot == null) { + if (getProjectRoot() == null) { return Configuration.create(); } - ForkJoinPool customThreadPool = new ForkJoinPool(); - return customThreadPool.submit(() -> Configuration.create(configurationRoot)).get(); + var customThreadPool = new ForkJoinPool(); + return customThreadPool.submit(() -> Configuration.create(getProjectRoot())).get(); } - private void addMdoRefByUri(URI uri, DocumentContext documentContext) { + private void addMdoRefByUri(URI uri, BSLDocumentContext documentContext) { var modulesByObject = getConfiguration().getModulesByObject(); var mdoByUri = modulesByObject.get(uri); @@ -193,7 +154,7 @@ private void addMdoRefByUri(URI uri, DocumentContext documentContext) { mdoRefs.put(uri, mdoRef); var documentsGroup = documentsByMDORef.get(mdoRef); if (documentsGroup == null) { - Map newDocumentsGroup = new EnumMap<>(ModuleType.class); + Map newDocumentsGroup = new EnumMap<>(ModuleType.class); newDocumentsGroup.put(documentContext.getModuleType(), documentContext); documentsByMDORef.put(mdoRef, newDocumentsGroup); } else { @@ -206,8 +167,9 @@ private void removeDocumentMdoRefByUri(URI uri) { var mdoRef = mdoRefs.get(uri); if (mdoRef != null) { var documentsGroup = documentsByMDORef.get(mdoRef); - if (documentsGroup != null) { - documentsGroup.remove(documents.get(uri).getModuleType()); + var documentContext = (BSLDocumentContext) getDocument(uri); + if (documentsGroup != null && documentContext != null) { + documentsGroup.remove(documentContext.getModuleType()); if (documentsGroup.isEmpty()) { documentsByMDORef.remove(mdoRef); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/DiagnosticComputer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/BSLDiagnosticComputer.java similarity index 86% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/DiagnosticComputer.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/BSLDiagnosticComputer.java index 6bc3a21b3a3..74193a133cc 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/DiagnosticComputer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/BSLDiagnosticComputer.java @@ -21,8 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.BSLDiagnostic; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.context.computer.DiagnosticComputer; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.eclipse.lsp4j.Diagnostic; @@ -36,11 +37,12 @@ @Component @RequiredArgsConstructor @Slf4j -public abstract class DiagnosticComputer { +public abstract class BSLDiagnosticComputer implements DiagnosticComputer { + @Override public List compute(DocumentContext documentContext) { - DiagnosticIgnoranceComputer.Data diagnosticIgnorance = documentContext.getDiagnosticIgnorance(); + var diagnosticIgnorance = documentContext.getDiagnosticIgnorance(); return diagnostics(documentContext).parallelStream() .flatMap((BSLDiagnostic diagnostic) -> { @@ -50,7 +52,7 @@ public List compute(DocumentContext documentContext) { String message = String.format( "Diagnostic computation error.%nFile: %s%nDiagnostic: %s", documentContext.getUri(), - diagnostic.getInfo().getCode() + diagnostic.getInfo().getDiagnosticCode() ); LOGGER.error(message, e); @@ -60,7 +62,6 @@ public List compute(DocumentContext documentContext) { .filter((Diagnostic diagnostic) -> !diagnosticIgnorance.diagnosticShouldBeIgnored(diagnostic)) .collect(Collectors.toList()); - } @Lookup("diagnostics") diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/DiagnosticIgnoranceComputer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/BSLDiagnosticIgnoranceComputer.java similarity index 78% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/DiagnosticIgnoranceComputer.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/BSLDiagnosticIgnoranceComputer.java index a91b77cdb8b..7c2d380a929 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/DiagnosticIgnoranceComputer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/BSLDiagnosticIgnoranceComputer.java @@ -21,31 +21,26 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCode; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.ls_core.context.computer.DiagnosticIgnoranceComputer; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticCode; import com.github._1c_syntax.utils.CaseInsensitivePattern; -import lombok.AllArgsConstructor; import org.antlr.v4.runtime.Token; import org.apache.commons.lang3.Range; -import org.eclipse.lsp4j.Diagnostic; import javax.annotation.CheckForNull; import java.util.ArrayDeque; import java.util.ArrayList; -import java.util.Collection; import java.util.Deque; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.function.Predicate; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; -public class DiagnosticIgnoranceComputer implements Computer { - - private static final DiagnosticCode ALL_DIAGNOSTICS_KEY = new DiagnosticCode("all"); +public class BSLDiagnosticIgnoranceComputer implements DiagnosticIgnoranceComputer { private static final Pattern IGNORE_ALL_ON = CaseInsensitivePattern.compile( "BSLLS-(?:вкл|on)" @@ -63,12 +58,12 @@ public class DiagnosticIgnoranceComputer implements Computer>> diagnosticIgnorance = new HashMap<>(); private final Map> ignoranceStack = new HashMap<>(); - public DiagnosticIgnoranceComputer(DocumentContext documentContext) { + public BSLDiagnosticIgnoranceComputer(BSLDocumentContext documentContext) { this.documentContext = documentContext; } @@ -184,33 +179,9 @@ private static DiagnosticCode getKey(Matcher matcher) { if (matcher.groupCount() != 0) { key = new DiagnosticCode(matcher.group(1)); } else { - key = ALL_DIAGNOSTICS_KEY; + key = DiagnosticIgnoranceComputer.getAllDiagnosticKey(); } return key; } - @AllArgsConstructor - public static class Data { - private final Map>> diagnosticIgnorance; - - public boolean diagnosticShouldBeIgnored(Diagnostic diagnostic) { - if (diagnosticIgnorance.isEmpty()) { - return false; - } - - int line = diagnostic.getRange().getStart().getLine(); - - Predicate>>> ignoreAll = - entry -> entry.getKey().equals(ALL_DIAGNOSTICS_KEY); - Predicate>>> ignoreConcreteDiagnostic = - entry -> entry.getKey().equals(diagnostic.getCode()); - - return diagnosticIgnorance.entrySet().stream() - .filter(ignoreAll.or(ignoreConcreteDiagnostic)) - .map(Map.Entry::getValue) - .flatMap(Collection::stream) - .anyMatch(range -> range.contains(line)); - } - } - } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CognitiveComplexityComputer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CognitiveComplexityComputer.java index 66b0bd94d9f..cc3e3b3d5e8 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CognitiveComplexityComputer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CognitiveComplexityComputer.java @@ -21,13 +21,14 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserBaseListener; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.context.computer.Computer; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.CommonToken; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTreeWalker; @@ -48,7 +49,7 @@ public class CognitiveComplexityComputer extends BSLParserBaseListener implements Computer { - private final DocumentContext documentContext; + private final BSLDocumentContext documentContext; private int fileComplexity; private int fileCodeBlockComplexity; @@ -62,7 +63,7 @@ public class CognitiveComplexityComputer private int nestedLevel; private final Set ignoredContexts; - public CognitiveComplexityComputer(DocumentContext documentContext) { + public CognitiveComplexityComputer(BSLDocumentContext documentContext) { this.documentContext = documentContext; fileComplexity = 0; fileCodeBlockComplexity = 0; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/Computer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/Computer.java deleted file mode 100644 index 158e647ec68..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/Computer.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.context.computer; - -public interface Computer { - T compute(); -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CyclomaticComplexityComputer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CyclomaticComplexityComputer.java index beb91400c64..fbedba428fc 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CyclomaticComplexityComputer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CyclomaticComplexityComputer.java @@ -21,13 +21,14 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserBaseListener; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.context.computer.Computer; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.CommonToken; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTreeWalker; @@ -45,7 +46,7 @@ public class CyclomaticComplexityComputer extends BSLParserBaseListener implements Computer { - private final DocumentContext documentContext; + private final BSLDocumentContext documentContext; private int fileComplexity; private int fileCodeBlockComplexity; @@ -57,7 +58,7 @@ public class CyclomaticComplexityComputer private MethodSymbol currentMethod; private int complexity; - public CyclomaticComplexityComputer(DocumentContext documentContext) { + public CyclomaticComplexityComputer(BSLDocumentContext documentContext) { this.documentContext = documentContext; fileComplexity = 0; fileCodeBlockComplexity = 0; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/MethodSymbolComputer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/MethodSymbolComputer.java index ca7633db545..331166ef816 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/MethodSymbolComputer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/MethodSymbolComputer.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodDescription; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.ParameterDefinition; @@ -29,11 +29,12 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.annotations.AnnotationKind; import com.github._1c_syntax.bsl.languageserver.context.symbol.annotations.AnnotationParameterDefinition; import com.github._1c_syntax.bsl.languageserver.context.symbol.annotations.CompilerDirectiveKind; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; +import com.github._1c_syntax.bsl.languageserver.utils.BSLTrees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.context.computer.Computer; +import com.github._1c_syntax.ls_core.utils.Ranges; import com.github._1c_syntax.mdclasses.mdo.MDObjectBase; import com.github._1c_syntax.mdclasses.metadata.additional.MDOReference; import org.antlr.v4.runtime.Token; @@ -57,10 +58,10 @@ public final class MethodSymbolComputer BSLParser.ANNOTATION_ATSERVERNOCONTEXT_SYMBOL, BSLParser.ANNOTATION_ATCLIENTATSERVER_SYMBOL); - private final DocumentContext documentContext; + private final BSLDocumentContext documentContext; private final List methods = new ArrayList<>(); - public MethodSymbolComputer(DocumentContext documentContext) { + public MethodSymbolComputer(BSLDocumentContext documentContext) { this.documentContext = documentContext; } @@ -212,7 +213,7 @@ private MethodSymbol createMethodSymbol( } private Optional createDescription(Token token) { - List comments = Trees.getComments(documentContext.getTokens(), token); + List comments = BSLTrees.getComments(documentContext.getTokens(), token); if (comments.isEmpty()) { return Optional.empty(); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputer.java index 136de1ca6ab..96cdd93aa80 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputer.java @@ -21,10 +21,11 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor; import com.github._1c_syntax.bsl.parser.SDBLTokenizer; +import com.github._1c_syntax.ls_core.context.computer.Computer; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; @@ -37,7 +38,7 @@ public class QueryComputer extends BSLParserBaseVisitor implements Computer> { - private final DocumentContext documentContext; + private final BSLDocumentContext documentContext; private final List queries = new ArrayList<>(); private static final Pattern QUERIES_ROOT_KEY = CaseInsensitivePattern.compile( @@ -46,7 +47,7 @@ public class QueryComputer extends BSLParserBaseVisitor implements Co private static final int MINIMAL_QUERY_STRING_LENGTH = 8; - public QueryComputer(DocumentContext documentContext) { + public QueryComputer(BSLDocumentContext documentContext) { this.documentContext = documentContext; } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/RegionSymbolComputer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/RegionSymbolComputer.java index f053e8ced4f..1e0fa14a7ab 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/RegionSymbolComputer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/RegionSymbolComputer.java @@ -21,11 +21,12 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.RegionSymbol; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor; +import com.github._1c_syntax.ls_core.context.computer.Computer; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.antlr.v4.runtime.tree.ParseTree; import org.apache.commons.lang3.tuple.Pair; import org.eclipse.lsp4j.Range; @@ -39,12 +40,12 @@ public final class RegionSymbolComputer extends BSLParserBaseVisitor implements Computer> { - private final DocumentContext documentContext; + private final BSLDocumentContext documentContext; private final Deque> regionStack = new ArrayDeque<>(); private final List regions = new ArrayList<>(); - public RegionSymbolComputer(DocumentContext documentContext) { + public RegionSymbolComputer(BSLDocumentContext documentContext) { this.documentContext = documentContext; } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/SymbolTreeComputer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/SymbolTreeComputer.java index 78d5008ddd9..83c10fc787a 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/SymbolTreeComputer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/SymbolTreeComputer.java @@ -21,13 +21,14 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.RegionSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.Symbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.SymbolTree; import com.github._1c_syntax.bsl.languageserver.context.symbol.VariableSymbol; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.context.computer.Computer; +import com.github._1c_syntax.ls_core.utils.Ranges; import java.util.ArrayList; import java.util.Comparator; @@ -36,9 +37,9 @@ public class SymbolTreeComputer implements Computer { - private final DocumentContext documentContext; + private final BSLDocumentContext documentContext; - public SymbolTreeComputer(DocumentContext documentContext) { + public SymbolTreeComputer(BSLDocumentContext documentContext) { this.documentContext = documentContext; } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/VariableSymbolComputer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/VariableSymbolComputer.java index 6eccca4c416..db6bcf6be11 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/VariableSymbolComputer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/VariableSymbolComputer.java @@ -21,15 +21,17 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.VariableSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.variable.VariableDescription; import com.github._1c_syntax.bsl.languageserver.context.symbol.variable.VariableKind; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; +import com.github._1c_syntax.bsl.languageserver.utils.BSLTrees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.context.computer.Computer; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.Range; @@ -40,10 +42,10 @@ public class VariableSymbolComputer extends BSLParserBaseVisitor implements Computer> { - private final DocumentContext documentContext; + private final BSLDocumentContext documentContext; private final List variables = new ArrayList<>(); - public VariableSymbolComputer(DocumentContext documentContext) { + public VariableSymbolComputer(BSLDocumentContext documentContext) { this.documentContext = documentContext; } @@ -93,10 +95,10 @@ private Optional createDescription(BSLParserRuleContext ctx // поиск комментариев начинается от первого токена - VAR var varToken = Trees.getPreviousTokenFromDefaultChannel(tokens, ctx.getStart().getTokenIndex(), BSLParser.VAR_KEYWORD); - varToken.ifPresent(value -> comments.addAll(Trees.getComments(tokens, value))); + varToken.ifPresent(value -> comments.addAll(BSLTrees.getComments(tokens, value))); // висячий комментарий смотрим по токену переменной, он должен находится в этой же строке - Optional trailingComments = Trees.getTrailingComment(tokens, ctx.getStop()); + Optional trailingComments = BSLTrees.getTrailingComment(tokens, ctx.getStop()); if (comments.isEmpty() && trailingComments.isEmpty()) { return Optional.empty(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/infrastructure/DocumentContextConfiguration.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/infrastructure/DocumentContextConfiguration.java index 6ee824291b3..5ed9b54b12a 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/infrastructure/DocumentContextConfiguration.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/infrastructure/DocumentContextConfiguration.java @@ -21,9 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.context.infrastructure; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; -import com.github._1c_syntax.bsl.languageserver.context.computer.DiagnosticComputer; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; +import com.github._1c_syntax.bsl.languageserver.context.computer.BSLDiagnosticComputer; import lombok.RequiredArgsConstructor; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; @@ -40,10 +40,10 @@ public class DocumentContextConfiguration { @Bean @Scope("prototype") - public DocumentContext documentContext(URI uri, String content) { - var serverContext = applicationContext.getBean(ServerContext.class); - var diagnosticComputer = applicationContext.getBean(DiagnosticComputer.class); - return new DocumentContext(uri, content, serverContext, diagnosticComputer); + public BSLDocumentContext documentContext(URI uri, String content) { + var serverContext = applicationContext.getBean(BSLServerContext.class); + var diagnosticComputer = applicationContext.getBean(BSLDiagnosticComputer.class); + return new BSLDocumentContext(uri, content, serverContext, diagnosticComputer); } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/Symbol.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/Symbol.java index d533e701301..9f74a90c11e 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/Symbol.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/Symbol.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.context.symbol; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import lombok.Getter; import lombok.Setter; import org.eclipse.lsp4j.Range; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/SymbolTree.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/SymbolTree.java index 2a609f1431a..57ae8287dc2 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/SymbolTree.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/SymbolTree.java @@ -21,10 +21,10 @@ */ package com.github._1c_syntax.bsl.languageserver.context.symbol; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Trees; import lombok.Getter; import lombok.Value; import org.eclipse.lsp4j.Range; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractCommonModuleNameDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractCommonModuleNameDiagnostic.java index 3bbc37e0186..c01dad99551 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractCommonModuleNameDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractCommonModuleNameDiagnostic.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.bsl.languageserver.utils.BSLRanges; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.mdo.MDObjectBase; import com.github._1c_syntax.utils.CaseInsensitivePattern; @@ -41,7 +41,7 @@ public AbstractCommonModuleNameDiagnostic(String regexp) { @Override protected void check() { - Optional range = Ranges.getFirstSignificantTokenRange(documentContext.getTokens()); + Optional range = BSLRanges.getFirstSignificantTokenRange(documentContext.getTokens()); if (range.isEmpty()) { return; } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractDiagnostic.java index d3acd814c38..18d991c3b96 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractDiagnostic.java @@ -21,8 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticInfo; import lombok.Getter; import lombok.Setter; import org.eclipse.lsp4j.Diagnostic; @@ -34,12 +35,12 @@ public abstract class AbstractDiagnostic implements BSLDiagnostic { @Getter @Setter protected DiagnosticInfo info; - protected final DiagnosticStorage diagnosticStorage = new DiagnosticStorage(this); - protected DocumentContext documentContext; + protected final BSLDiagnosticStorage diagnosticStorage = new BSLDiagnosticStorage(this); + protected BSLDocumentContext documentContext; @Override public List getDiagnostics(DocumentContext documentContext) { - this.documentContext = documentContext; + this.documentContext = (BSLDocumentContext) documentContext; diagnosticStorage.clearDiagnostics(); check(); return diagnosticStorage.getDiagnostics(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractListenerDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractListenerDiagnostic.java index f698f0ee041..7f4626ef738 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractListenerDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractListenerDiagnostic.java @@ -21,9 +21,10 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.parser.BSLParserBaseListener; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticInfo; import lombok.Getter; import lombok.Setter; import org.antlr.v4.runtime.tree.ParseTreeWalker; @@ -36,12 +37,12 @@ public abstract class AbstractListenerDiagnostic extends BSLParserBaseListener i @Getter @Setter protected DiagnosticInfo info; - protected final DiagnosticStorage diagnosticStorage = new DiagnosticStorage(this); - protected DocumentContext documentContext; + protected final BSLDiagnosticStorage diagnosticStorage = new BSLDiagnosticStorage(this); + protected BSLDocumentContext documentContext; @Override public List getDiagnostics(DocumentContext documentContext) { - this.documentContext = documentContext; + this.documentContext = (BSLDocumentContext) documentContext; diagnosticStorage.clearDiagnostics(); ParseTreeWalker walker = new ParseTreeWalker(); walker.walk(this, documentContext.getAst()); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractMultilingualStringDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractMultilingualStringDiagnostic.java index c92c8ad7f11..42687eb80d8 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractMultilingualStringDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractMultilingualStringDiagnostic.java @@ -21,9 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; import com.github._1c_syntax.bsl.languageserver.utils.MultilingualStringAnalyser; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; import org.antlr.v4.runtime.tree.ParseTree; import java.util.Map; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractSDBLVisitorDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractSDBLVisitorDiagnostic.java index c869f1fafed..4410f14d805 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractSDBLVisitorDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractSDBLVisitorDiagnostic.java @@ -21,9 +21,10 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.parser.SDBLParserBaseVisitor; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticInfo; import lombok.Getter; import lombok.Setter; import org.antlr.v4.runtime.tree.ParseTree; @@ -35,14 +36,14 @@ public abstract class AbstractSDBLVisitorDiagnostic extends SDBLParserBaseVisito @Getter @Setter protected DiagnosticInfo info; - protected final DiagnosticStorage diagnosticStorage = new DiagnosticStorage(this); - protected DocumentContext documentContext; + protected final BSLDiagnosticStorage diagnosticStorage = new BSLDiagnosticStorage(this); + protected BSLDocumentContext documentContext; @Override public List getDiagnostics(DocumentContext documentContext) { - this.documentContext = documentContext; + this.documentContext = (BSLDocumentContext) documentContext; diagnosticStorage.clearDiagnostics(); - var queries = documentContext.getQueries(); + var queries = this.documentContext.getQueries(); if (!queries.isEmpty()) { queries.forEach(sdblTokenizer -> this.visitQueryPackage(sdblTokenizer.getAst())); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractVisitorDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractVisitorDiagnostic.java index ad7b7f0863e..cd82870c1ec 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractVisitorDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractVisitorDiagnostic.java @@ -21,9 +21,10 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticInfo; import lombok.Getter; import lombok.Setter; import org.antlr.v4.runtime.tree.ParseTree; @@ -36,14 +37,14 @@ public abstract class AbstractVisitorDiagnostic extends BSLParserBaseVisitor getDiagnostics(DocumentContext documentContext) { - this.documentContext = documentContext; + this.documentContext = (BSLDocumentContext) documentContext; diagnosticStorage.clearDiagnostics(); - this.visitFile(documentContext.getAst()); + this.visitFile(this.documentContext.getAst()); return diagnosticStorage.getDiagnostics(); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BSLDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BSLDiagnostic.java index eb7a783dff2..33565596b88 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BSLDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BSLDiagnostic.java @@ -21,32 +21,20 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; -import com.github._1c_syntax.bsl.languageserver.utils.DiagnosticHelper; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.BSLDiagnosticInfo; +import com.github._1c_syntax.ls_core.diagnostics.CoreDiagnostic; import org.eclipse.lsp4j.Diagnostic; -import java.util.List; -import java.util.Map; - /** * BSLDiagnostic main purpose is to provide collection of LSP {@link Diagnostic}, - * fired on concrete {@link DocumentContext}. + * fired on concrete {@link BSLDocumentContext}. *

- * Each BSLDiagnostic implementation MUST contain constructor with exactly one parameter {@link DiagnosticInfo}. - * Passed DiagnosticInfo MUST be stored as a object field and returned by {@link #getInfo()}. + * Each BSLDiagnostic implementation MUST contain constructor with exactly one parameter {@link BSLDiagnosticInfo}. + * Passed BSLDiagnosticInfo MUST be stored as a object field and returned by {@link #getInfo()}. *

- * {@link #getDiagnostics(DocumentContext)} method SHOULD use {@link DiagnosticStorage} to add and return diagnostics. + * {@link #getDiagnostics(BSLDocumentContext)} method SHOULD use {@link BSLDiagnosticStorage} to add and return diagnostics. */ -public interface BSLDiagnostic { - - List getDiagnostics(DocumentContext documentContext); - - void setInfo(DiagnosticInfo info); - - DiagnosticInfo getInfo(); +public interface BSLDiagnostic extends CoreDiagnostic { - default void configure(Map configuration) { - DiagnosticHelper.configureDiagnostic(this, configuration); - } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/LanguageServerConfigurationFileChangeEvent.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BSLDiagnosticStorage.java similarity index 58% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/LanguageServerConfigurationFileChangeEvent.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BSLDiagnosticStorage.java index 83ca31a0e47..d784a16750e 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/LanguageServerConfigurationFileChangeEvent.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BSLDiagnosticStorage.java @@ -19,24 +19,26 @@ * You should have received a copy of the GNU Lesser General Public * License along with BSL Language Server. */ -package com.github._1c_syntax.bsl.languageserver.configuration.watcher; +package com.github._1c_syntax.bsl.languageserver.diagnostics; -import org.springframework.context.ApplicationEvent; +import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.CoreDiagnosticStorage; +import org.antlr.v4.runtime.ParserRuleContext; -import java.io.File; +public class BSLDiagnosticStorage extends CoreDiagnosticStorage { -/** - * Описание события изменения файла конфигурации. - *

- * В качестве источника события содержит ссылку на файл конфигурации. - */ -public class LanguageServerConfigurationFileChangeEvent extends ApplicationEvent { - public LanguageServerConfigurationFileChangeEvent(File configurationFile) { - super(configurationFile); + private static final String SOURCE = "bsl-language-server"; + + BSLDiagnosticStorage(BSLDiagnostic diagnostic) { + super(diagnostic); } @Override - public File getSource() { - return (File) super.getSource(); + protected String getSource() { + return SOURCE; + } + + public void addDiagnostic(BSLParserRuleContext methodName, String message) { + addDiagnostic((ParserRuleContext) methodName, message); } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BeginTransactionBeforeTryCatchDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BeginTransactionBeforeTryCatchDiagnostic.java index 5e8871436f8..3e5454c8679 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BeginTransactionBeforeTryCatchDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/BeginTransactionBeforeTryCatchDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CachedPublicDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CachedPublicDiagnostic.java index ccbc8b9e8fb..1188c47f9d5 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CachedPublicDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CachedPublicDiagnostic.java @@ -21,13 +21,13 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.utils.Keywords; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import com.github._1c_syntax.mdclasses.metadata.additional.ReturnValueReuse; @@ -67,7 +67,7 @@ protected void check() { .forEach(regionSymbol -> diagnosticStorage.addDiagnostic(regionSymbol.getRegionNameRange())); } - private boolean isCashed(DocumentContext documentContext) { + private boolean isCashed(BSLDocumentContext documentContext) { return documentContext.getMdObject() .filter(CommonModule.class::isInstance) .map(CommonModule.class::cast) diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CanonicalSpellingKeywordsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CanonicalSpellingKeywordsDiagnostic.java index 69db02104c6..43726425fc8 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CanonicalSpellingKeywordsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CanonicalSpellingKeywordsDiagnostic.java @@ -21,14 +21,14 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; import com.github._1c_syntax.bsl.languageserver.utils.Keywords; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; import org.antlr.v4.runtime.Token; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionParams; @@ -282,7 +282,7 @@ protected void check() { public List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { List textEdits = new ArrayList<>(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeBlockBeforeSubDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeBlockBeforeSubDiagnostic.java index f24b866e789..878c16ec642 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeBlockBeforeSubDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeBlockBeforeSubDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeOutOfRegionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeOutOfRegionDiagnostic.java index cd8ad2d97b3..c2fc05569a0 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeOutOfRegionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeOutOfRegionDiagnostic.java @@ -26,14 +26,14 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNode; @@ -119,7 +119,7 @@ private void addChildrenToRelatedInformation( Integer... ruleIndex ) { Trees.getChildren(ctx, ruleIndex).stream() - .filter(node -> !node.getTokens().isEmpty()) + .filter(node -> !((BSLParserRuleContext) node).getTokens().isEmpty()) .map(node -> RelatedInformation.create( documentContext.getUri(), diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CognitiveComplexityDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CognitiveComplexityDiagnostic.java index dafdac055a0..3f38c90b983 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CognitiveComplexityDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CognitiveComplexityDiagnostic.java @@ -24,14 +24,14 @@ import com.github._1c_syntax.bsl.languageserver.context.computer.ComplexitySecondaryLocation; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.DiagnosticRelatedInformation; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommandModuleExportMethodsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommandModuleExportMethodsDiagnostic.java index 3db5d943782..885c321a261 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommandModuleExportMethodsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommandModuleExportMethodsDiagnostic.java @@ -24,9 +24,9 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnostic.java index 2b8dcc0d42e..7c74a266749 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnostic.java @@ -21,19 +21,19 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodDescription; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; import com.github._1c_syntax.bsl.languageserver.recognizer.BSLFootprint; import com.github._1c_syntax.bsl.languageserver.recognizer.CodeRecognizer; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLTokenizer; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; import org.antlr.v4.runtime.Token; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionParams; @@ -205,7 +205,7 @@ private static String uncomment(String comment) { @Override public List getQuickFixes( - List diagnostics, CodeActionParams params, DocumentContext documentContext + List diagnostics, CodeActionParams params, BSLDocumentContext documentContext ) { List textEdits = diagnostics.stream() diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommitTransactionOutsideTryCatchDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommitTransactionOutsideTryCatchDiagnostic.java index fb84d6ea835..dfc33c26ac7 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommitTransactionOutsideTryCatchDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommitTransactionOutsideTryCatchDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleAssignDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleAssignDiagnostic.java index 54b43dc5fb5..cddb47909af 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleAssignDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleAssignDiagnostic.java @@ -22,11 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; -import com.github._1c_syntax.mdclasses.metadata.Configuration; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNode; @@ -50,7 +49,7 @@ public ParseTree visitLValue(BSLParser.LValueContext ctx) { return ctx; } - Configuration configuration = documentContext.getServerContext().getConfiguration(); + var configuration = documentContext.getMDConfiguration(); if (configuration.getCommonModule(identifier.getText()).isPresent()) { diagnosticStorage.addDiagnostic(identifier, info.getMessage(identifier.getText())); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleInvalidTypeDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleInvalidTypeDiagnostic.java index 66cdca39556..46e794c524d 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleInvalidTypeDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleInvalidTypeDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameCachedDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameCachedDiagnostic.java index 3f1d3f28ba8..3ad2d19cbe1 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameCachedDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameCachedDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import com.github._1c_syntax.mdclasses.metadata.additional.ReturnValueReuse; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientDiagnostic.java index c80386391fb..678b7bf5c68 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientServerDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientServerDiagnostic.java index 0e790cf509d..d14d163186d 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientServerDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientServerDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameFullAccessDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameFullAccessDiagnostic.java index 9563ff275fd..21263e0c630 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameFullAccessDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameFullAccessDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalClientDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalClientDiagnostic.java index bed1375036f..6143f5464f4 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalClientDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalClientDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalDiagnostic.java index 3985967c605..6bfca6fb915 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameServerCallDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameServerCallDiagnostic.java index f262b7e5b04..3480bdac6ca 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameServerCallDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameServerCallDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameWordsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameWordsDiagnostic.java index dfad523521a..46be50eae5e 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameWordsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameWordsDiagnostic.java @@ -22,11 +22,11 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import com.github._1c_syntax.utils.CaseInsensitivePattern; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveLostDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveLostDiagnostic.java index 4e72116c72a..c39042950ad 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveLostDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveLostDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveNeedLessDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveNeedLessDiagnostic.java index 5c7dc6a1335..0e73254f499 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveNeedLessDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveNeedLessDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ConsecutiveEmptyLinesDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ConsecutiveEmptyLinesDiagnostic.java index 0c0cacf2cfb..0123a8cb11d 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ConsecutiveEmptyLinesDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ConsecutiveEmptyLinesDiagnostic.java @@ -21,15 +21,15 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; import com.github._1c_syntax.bsl.parser.BSLLexer; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.antlr.v4.runtime.Token; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionParams; @@ -97,7 +97,7 @@ private void addIssue(int startEmptyLine, int lastEmptyLine) { @Override public List getQuickFixes( - List diagnostics, CodeActionParams params, DocumentContext documentContext) { + List diagnostics, CodeActionParams params, BSLDocumentContext documentContext) { var eofTokenLine = getEofTokenLine(documentContext.getTokens()); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CreateQueryInCycleDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CreateQueryInCycleDiagnostic.java index 730ec2e5d9d..682303950ec 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CreateQueryInCycleDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CreateQueryInCycleDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParser.AssignmentContext; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import lombok.ToString; import org.antlr.v4.runtime.ParserRuleContext; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CyclomaticComplexityDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CyclomaticComplexityDiagnostic.java index c7dc8cd7c1d..4c067d53392 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CyclomaticComplexityDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CyclomaticComplexityDiagnostic.java @@ -24,14 +24,14 @@ import com.github._1c_syntax.bsl.languageserver.context.computer.ComplexitySecondaryLocation; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.DiagnosticRelatedInformation; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DataExchangeLoadingDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DataExchangeLoadingDiagnostic.java index f928b3195dd..4bb18a6b9b4 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DataExchangeLoadingDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DataExchangeLoadingDiagnostic.java @@ -22,13 +22,13 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.ParserRuleContext; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeletingCollectionItemDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeletingCollectionItemDiagnostic.java index 0b307830bd2..544404d9a65 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeletingCollectionItemDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeletingCollectionItemDiagnostic.java @@ -22,13 +22,13 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParser.CallStatementContext; import com.github._1c_syntax.bsl.parser.BSLParser.MethodCallContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedAttributes8312Diagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedAttributes8312Diagnostic.java index 5b72bb6d0d2..964c333beef 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedAttributes8312Diagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedAttributes8312Diagnostic.java @@ -24,12 +24,12 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedCurrentDateDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedCurrentDateDiagnostic.java index dc4eb53d266..d9d4a9d7d0b 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedCurrentDateDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedCurrentDateDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import java.util.regex.Pattern; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedFindDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedFindDiagnostic.java index 8feaac1547d..a8bcde2a215 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedFindDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedFindDiagnostic.java @@ -24,10 +24,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import java.util.regex.Pattern; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMessageDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMessageDiagnostic.java index b95cb3b2f43..321822db5ea 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMessageDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMessageDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import java.util.regex.Pattern; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethodCallDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethodCallDiagnostic.java index 6f6f5a07a32..252e14c75d9 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethodCallDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethodCallDiagnostic.java @@ -21,17 +21,18 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodDescription; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.utils.MdoRefBuilder; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; @@ -108,21 +109,22 @@ public ParseTree visitGlobalMethodCall(BSLParser.GlobalMethodCallContext ctx) { return super.visitGlobalMethodCall(ctx); } - private static boolean currentMethodIsDeprecated(BSLParserRuleContext ctx, DocumentContext documentContext) { + private static boolean currentMethodIsDeprecated(BSLParserRuleContext ctx, BSLDocumentContext documentContext) { return Optional.ofNullable(Trees.getRootParent(ctx, BSLParser.RULE_sub)) - .flatMap(sub -> documentContext.getSymbolTree().getMethodSymbol(sub)) + .flatMap(sub -> documentContext.getSymbolTree().getMethodSymbol((BSLParserRuleContext) sub)) .map(MethodSymbol::isDeprecated) .orElse(false); } private void checkDeprecatedCall(String mdoRef, Token methodName) { - var documentContexts = documentContext.getServerContext().getDocuments(mdoRef); - String methodNameText = methodName.getText(); + var documentContexts = + ((BSLServerContext) documentContext.getServerContext()).getDocuments(mdoRef); + var methodNameText = methodName.getText(); documentContexts.entrySet().stream() .filter(entry -> DEFAULT_MODULE_TYPES.contains(entry.getKey())) .map(Map.Entry::getValue) - .map(DocumentContext::getSymbolTree) + .map(BSLDocumentContext::getSymbolTree) .flatMap(symbolTree -> symbolTree.getMethods().stream()) .filter(methodSymbol -> methodSymbol.isDeprecated() && methodSymbol.getName().equalsIgnoreCase(methodNameText)) diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethods8310Diagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethods8310Diagnostic.java index 7aa52d7a3e7..2b77f678961 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethods8310Diagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethods8310Diagnostic.java @@ -24,10 +24,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethods8317Diagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethods8317Diagnostic.java index 2db724671ea..939e56128be 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethods8317Diagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedMethods8317Diagnostic.java @@ -24,10 +24,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import java.util.regex.Pattern; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedTypeManagedFormDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedTypeManagedFormDiagnostic.java index 98b23d84de8..1afcb9947b6 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedTypeManagedFormDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedTypeManagedFormDiagnostic.java @@ -21,15 +21,15 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.CodeAction; @@ -79,7 +79,7 @@ public ParseTree visitGlobalMethodCall(BSLParser.GlobalMethodCallContext ctx) { public List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { List textEdits = new ArrayList<>(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticStorage.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticStorage.java deleted file mode 100644 index fc034e9d53f..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticStorage.java +++ /dev/null @@ -1,235 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.diagnostics; - -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.tree.ParseTree; -import org.antlr.v4.runtime.tree.TerminalNode; -import org.eclipse.lsp4j.Diagnostic; -import org.eclipse.lsp4j.DiagnosticRelatedInformation; -import org.eclipse.lsp4j.Range; - -import javax.annotation.Nullable; -import java.util.ArrayList; -import java.util.List; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; - -import static com.github._1c_syntax.bsl.languageserver.providers.DiagnosticProvider.SOURCE; - -public class DiagnosticStorage { - - private final BSLDiagnostic diagnostic; - private final Queue diagnosticList = new ConcurrentLinkedQueue<>(); - - DiagnosticStorage(BSLDiagnostic diagnostic) { - this.diagnostic = diagnostic; - } - - public List getDiagnostics() { - return new ArrayList<>(diagnosticList); - } - - public void clearDiagnostics() { - diagnosticList.clear(); - } - - protected void addDiagnostic(BSLParserRuleContext node) { - if (node.exception != null) { - return; - } - - addDiagnostic( - Ranges.create(node) - ); - } - - protected void addDiagnostic(BSLParserRuleContext node, String diagnosticMessage) { - if (node.exception != null) { - return; - } - - addDiagnostic( - Ranges.create(node), - diagnosticMessage - ); - } - - protected void addDiagnostic(int startLine, int startChar, int endLine, int endChar) { - addDiagnostic( - Ranges.create(startLine, startChar, endLine, endChar) - ); - } - - protected void addDiagnostic(Range range) { - addDiagnostic( - range, - diagnostic.getInfo().getMessage() - ); - } - - protected void addDiagnostic(Range range, String diagnosticMessage) { - addDiagnostic( - range, - diagnosticMessage, - null - ); - } - - protected void addDiagnostic(Token token) { - addDiagnostic( - Ranges.create(token) - ); - } - - protected void addDiagnostic(Token startToken, Token endToken) { - addDiagnostic( - Ranges.create(startToken, endToken) - ); - } - - protected void addDiagnostic(Token token, String diagnosticMessage) { - addDiagnostic( - Ranges.create(token), - diagnosticMessage - ); - } - - protected void addDiagnostic(TerminalNode terminalNode) { - addDiagnostic(terminalNode.getSymbol()); - } - - protected void addDiagnostic(TerminalNode terminalNode, String diagnosticMessage) { - addDiagnostic(terminalNode.getSymbol(), diagnosticMessage); - } - - protected void addDiagnostic(TerminalNode startTerminalNode, TerminalNode stopTerminalNode) { - addDiagnostic(startTerminalNode.getSymbol(), stopTerminalNode.getSymbol()); - } - - protected void addDiagnostic(BSLParserRuleContext node, List relatedInformation) { - if (node.exception != null) { - return; - } - - addDiagnostic( - node, - diagnostic.getInfo().getMessage(), - relatedInformation - ); - } - - public void addDiagnostic(Token token, List relatedInformation) { - addDiagnostic( - token, - diagnostic.getInfo().getMessage(), - relatedInformation - ); - } - - public void addDiagnostic( - BSLParserRuleContext node, - String diagnosticMessage, - List relatedInformation - ) { - - if (node.exception != null) { - return; - } - - addDiagnostic( - Ranges.create(node), - diagnosticMessage, - relatedInformation - ); - } - - public void addDiagnostic( - Token token, - String diagnosticMessage, - List relatedInformation - ) { - addDiagnostic( - Ranges.create(token), - diagnosticMessage, - relatedInformation - ); - } - - public void addDiagnostic( - Range range, - List relatedInformation - ) { - addDiagnostic( - range, - diagnostic.getInfo().getMessage(), - relatedInformation - ); - } - - public void addDiagnostic( - Range range, - String diagnosticMessage, - @Nullable List relatedInformation - ) { - diagnosticList.add(createDiagnostic( - diagnostic, - range, - diagnosticMessage, - relatedInformation - )); - } - - public void addDiagnostic(ParseTree tree) { - if(tree instanceof BSLParserRuleContext) { - addDiagnostic((BSLParserRuleContext) tree); - } else if (tree instanceof TerminalNode) { - addDiagnostic((TerminalNode) tree); - } else { - throw new IllegalArgumentException("Unsupported parameter type " + tree); - } - } - - private static Diagnostic createDiagnostic( - BSLDiagnostic bslDiagnostic, - Range range, - String diagnosticMessage, - @Nullable List relatedInformation - ) { - Diagnostic diagnostic = new Diagnostic( - range, - diagnosticMessage, - bslDiagnostic.getInfo().getLSPSeverity(), - SOURCE - ); - - diagnostic.setCode(bslDiagnostic.getInfo().getCode()); - diagnostic.setTags(bslDiagnostic.getInfo().getLSPTags()); - - if (relatedInformation != null) { - diagnostic.setRelatedInformation(relatedInformation); - } - return diagnostic; - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DuplicateRegionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DuplicateRegionDiagnostic.java index 225ea4ccccf..2ff3917c64e 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DuplicateRegionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DuplicateRegionDiagnostic.java @@ -24,12 +24,12 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.RegionSymbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.utils.Keywords; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.DiagnosticRelatedInformation; import org.eclipse.lsp4j.Range; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyCodeBlockDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyCodeBlockDiagnostic.java index 224635dabcc..6fde0e160aa 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyCodeBlockDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyCodeBlockDiagnostic.java @@ -22,13 +22,13 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNode; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyRegionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyRegionDiagnostic.java index 82b66dd7c0f..f8b3b4d6cc4 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyRegionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyRegionDiagnostic.java @@ -21,14 +21,14 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.antlr.v4.runtime.ParserRuleContext; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionParams; @@ -89,7 +89,7 @@ public void exitEveryRule(ParserRuleContext ctx) { public List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { List textEdits = new ArrayList<>(diagnostics.size()); diagnostics diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyStatementDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyStatementDiagnostic.java index fdf077db70c..1f4088deb64 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyStatementDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyStatementDiagnostic.java @@ -21,14 +21,14 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionParams; @@ -70,7 +70,7 @@ public ParseTree visitStatement(BSLParser.StatementContext ctx) { public List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { List textEdits = new ArrayList<>(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExcessiveAutoTestCheckDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExcessiveAutoTestCheckDiagnostic.java index e01b94cc6ac..4ff4bd3e978 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExcessiveAutoTestCheckDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExcessiveAutoTestCheckDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeDiagnostic.java index da392a7247f..e828a2ee248 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeInCommonModuleDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeInCommonModuleDiagnostic.java index c32180d46a3..1195be7a184 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeInCommonModuleDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeInCommonModuleDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExportVariablesDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExportVariablesDiagnostic.java index 069ff8c19e4..90b0bac1401 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExportVariablesDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExportVariablesDiagnostic.java @@ -25,9 +25,9 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.VariableSymbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; @DiagnosticMetadata( type = DiagnosticType.CODE_SMELL, diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExtraCommasDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExtraCommasDiagnostic.java index d5f5f11437f..4a52df45231 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExtraCommasDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExtraCommasDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FormDataToValueDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FormDataToValueDiagnostic.java index f98e3edbadd..140d7447ef7 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FormDataToValueDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FormDataToValueDiagnostic.java @@ -25,12 +25,12 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.annotations.CompilerDirectiveKind; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParser.GlobalMethodCallContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import java.util.regex.Pattern; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionNameStartsWithGetDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionNameStartsWithGetDiagnostic.java index 79ce982760e..5a5f173bad9 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionNameStartsWithGetDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionNameStartsWithGetDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionOutParameterDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionOutParameterDiagnostic.java index 53ce201e4ad..c2337b42237 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionOutParameterDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionOutParameterDiagnostic.java @@ -24,12 +24,12 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.ParameterDefinition; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; import org.apache.commons.collections4.map.CaseInsensitiveMap; @@ -67,8 +67,7 @@ public ParseTree visitFunction(BSLParser.FunctionContext ctx) { return ctx; } - Map lvalues = Trees - .findAllRuleNodes(ctx.subCodeBlock(), BSLParser.RULE_lValue) + Map lvalues = Trees.findAllRuleNodes(ctx.subCodeBlock(), BSLParser.RULE_lValue) .stream() .collect( Collectors.toMap( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionReturnsSamePrimitiveDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionReturnsSamePrimitiveDiagnostic.java index a1eaa9fc139..deefc352297 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionReturnsSamePrimitiveDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionReturnsSamePrimitiveDiagnostic.java @@ -23,14 +23,14 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionShouldHaveReturnDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionShouldHaveReturnDiagnostic.java index 852c31e9e00..b56da184441 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionShouldHaveReturnDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionShouldHaveReturnDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLLexer; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; import java.util.Collection; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/GetFormMethodDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/GetFormMethodDiagnostic.java index 7d2e948aed7..5175550a3e7 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/GetFormMethodDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/GetFormMethodDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import java.util.regex.Pattern; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IdenticalExpressionsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IdenticalExpressionsDiagnostic.java index 624a0c6fb74..9673e9e8c98 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IdenticalExpressionsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IdenticalExpressionsDiagnostic.java @@ -22,11 +22,11 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.utils.DiagnosticHelper; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; import java.util.List; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfConditionComplexityDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfConditionComplexityDiagnostic.java index 535fb3df0a5..e68711ec0ba 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfConditionComplexityDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfConditionComplexityDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedCodeBlockDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedCodeBlockDiagnostic.java index ea3d11067ae..d4915a45606 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedCodeBlockDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedCodeBlockDiagnostic.java @@ -22,13 +22,13 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.utils.DiagnosticHelper; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.DiagnosticRelatedInformation; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedConditionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedConditionDiagnostic.java index c534944263a..d34b7e08c39 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedConditionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedConditionDiagnostic.java @@ -22,13 +22,13 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.utils.DiagnosticHelper; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.DiagnosticRelatedInformation; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseIfEndsWithElseDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseIfEndsWithElseDiagnostic.java index e2aa1a117bd..dff71e2e644 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseIfEndsWithElseDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseIfEndsWithElseDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/InvalidCharacterInFileDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/InvalidCharacterInFileDiagnostic.java index 9d1a9698991..a7e2863071d 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/InvalidCharacterInFileDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/InvalidCharacterInFileDiagnostic.java @@ -21,13 +21,13 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; import com.github._1c_syntax.bsl.parser.BSLLexer; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; import org.antlr.v4.runtime.Lexer; import org.antlr.v4.runtime.Token; import org.eclipse.lsp4j.CodeAction; @@ -110,7 +110,7 @@ public void check() { public List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { List textEdits = new ArrayList<>(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IsInRoleMethodDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IsInRoleMethodDiagnostic.java index ce9dab81ad3..61d25ba3335 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IsInRoleMethodDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IsInRoleMethodDiagnostic.java @@ -23,13 +23,14 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; +import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.ParseTree; import javax.annotation.Nullable; @@ -124,7 +125,7 @@ private void handlePrivilegedModeGlobalMethod(BSLParser.GlobalMethodCallContext } } - private static void addAssignedNameVar(BSLParserRuleContext assignmentNode, Set nameVars) { + private static void addAssignedNameVar(ParserRuleContext assignmentNode, Set nameVars) { var childNode = Trees.getFirstChild(assignmentNode, BSLParser.RULE_lValue); childNode.ifPresent(node -> nameVars.add(node.getText())); } @@ -132,7 +133,7 @@ private static void addAssignedNameVar(BSLParserRuleContext assignmentNode, Set< @Override public ParseTree visitAssignment(BSLParser.AssignmentContext ctx) { var childNode = Trees.getFirstChild(ctx, BSLParser.RULE_lValue); - childNode.ifPresent((BSLParserRuleContext node) -> + childNode.ifPresent((ParserRuleContext node) -> { isInRoleVars.remove(node.getText()); privilegedModeNameVars.remove(node.getText()); @@ -145,7 +146,7 @@ private boolean checkStatement(BSLParserRuleContext ctx) { return checkStatement(ctx, parentExpression); } - private boolean checkStatement(BSLParserRuleContext ctx, @Nullable BSLParserRuleContext parentExpression) { + private boolean checkStatement(BSLParserRuleContext ctx, @Nullable ParserRuleContext parentExpression) { if (parentExpression == null) { return false; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/JoinWithSubQueryDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/JoinWithSubQueryDiagnostic.java index 1a768567bc7..04efb957a32 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/JoinWithSubQueryDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/JoinWithSubQueryDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.SDBLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/JoinWithVirtualTableDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/JoinWithVirtualTableDiagnostic.java index 8cad49e9b07..cea776f157e 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/JoinWithVirtualTableDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/JoinWithVirtualTableDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.SDBLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LatinAndCyrillicSymbolInWordDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LatinAndCyrillicSymbolInWordDiagnostic.java index 4ffd5cd3432..242ed3446ca 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LatinAndCyrillicSymbolInWordDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LatinAndCyrillicSymbolInWordDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LineLengthDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LineLengthDiagnostic.java index 4bddfd2cbae..9ac73a37c42 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LineLengthDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LineLengthDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; import com.github._1c_syntax.bsl.parser.BSLLexer; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.antlr.v4.runtime.Token; import java.util.ArrayList; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MagicNumberDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MagicNumberDiagnostic.java index 8cae3c751ac..0896ad9ce2b 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MagicNumberDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MagicNumberDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.DiagnosticHelper; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.DiagnosticConfigurator; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.ParseTree; @@ -64,7 +64,7 @@ public class MagicNumberDiagnostic extends AbstractVisitorDiagnostic { @Override public void configure(Map configuration) { - DiagnosticHelper.configureDiagnostic(this, configuration, "allowMagicIndexes"); + DiagnosticConfigurator.configureDiagnostic(this, configuration, "allowMagicIndexes"); String authorizedNumbersString = (String) configuration.getOrDefault("authorizedNumbers", DEFAULT_AUTHORIZED_NUMBERS); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MetadataObjectNameLengthDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MetadataObjectNameLengthDiagnostic.java index 793dfbeb1c5..5c0eff7ed13 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MetadataObjectNameLengthDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MetadataObjectNameLengthDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.bsl.languageserver.utils.BSLRanges; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.mdo.MDObjectBase; import org.eclipse.lsp4j.Range; @@ -56,7 +56,7 @@ public class MetadataObjectNameLengthDiagnostic extends AbstractDiagnostic { @Override protected void check() { - Optional range = Ranges.getFirstSignificantTokenRange(documentContext.getTokens()); + Optional range = BSLRanges.getFirstSignificantTokenRange(documentContext.getTokens()); if (range.isEmpty()) { return; } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MethodSizeDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MethodSizeDiagnostic.java index a1455d9031f..0a53f5859e6 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MethodSizeDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MethodSizeDiagnostic.java @@ -22,11 +22,11 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingCodeTryCatchExDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingCodeTryCatchExDiagnostic.java index 4f2e68c6c9c..d6c859233ca 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingCodeTryCatchExDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingCodeTryCatchExDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.Range; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingSpaceDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingSpaceDiagnostic.java index 2ad1680d0dc..8b5a004f9fc 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingSpaceDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingSpaceDiagnostic.java @@ -21,15 +21,15 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; import com.github._1c_syntax.bsl.parser.BSLLexer; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; import org.antlr.v4.runtime.Token; import org.apache.commons.lang3.StringUtils; import org.eclipse.lsp4j.CodeAction; @@ -182,7 +182,7 @@ public void configure(Map configuration) { public List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { List textEdits = new ArrayList<>(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingTemporaryFileDeletionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingTemporaryFileDeletionDiagnostic.java index 083890e7d07..9bbcb7ab01c 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingTemporaryFileDeletionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingTemporaryFileDeletionDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNodeImpl; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingVariablesDescriptionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingVariablesDescriptionDiagnostic.java index 42b3624b4e4..404c40983be 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingVariablesDescriptionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingVariablesDescriptionDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MultilingualStringHasAllDeclaredLanguagesDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MultilingualStringHasAllDeclaredLanguagesDiagnostic.java index ccab9b588c7..c312ff95722 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MultilingualStringHasAllDeclaredLanguagesDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MultilingualStringHasAllDeclaredLanguagesDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; @DiagnosticMetadata( type = DiagnosticType.ERROR, diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MultilingualStringUsingWithTemplateDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MultilingualStringUsingWithTemplateDiagnostic.java index 6d058e139d3..461c808f9dd 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MultilingualStringUsingWithTemplateDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MultilingualStringUsingWithTemplateDiagnostic.java @@ -23,9 +23,9 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; @DiagnosticMetadata( type = DiagnosticType.ERROR, diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedConstructorsInStructureDeclarationDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedConstructorsInStructureDeclarationDiagnostic.java index 14226d09969..7bea9dae209 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedConstructorsInStructureDeclarationDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedConstructorsInStructureDeclarationDiagnostic.java @@ -23,15 +23,15 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.utils.DiagnosticHelper; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParser.NewExpressionContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.DiagnosticRelatedInformation; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedFunctionInParametersDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedFunctionInParametersDiagnostic.java index 4a765ff2b2e..c43697d2b9e 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedFunctionInParametersDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedFunctionInParametersDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedStatementsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedStatementsDiagnostic.java index c58dde70f41..e5a0e5412d4 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedStatementsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedStatementsDiagnostic.java @@ -22,15 +22,15 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.DiagnosticRelatedInformation; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedTernaryOperatorDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedTernaryOperatorDiagnostic.java index 6fab8681876..c71df35798c 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedTernaryOperatorDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NestedTernaryOperatorDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; import java.util.Collection; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NonExportMethodsInApiRegionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NonExportMethodsInApiRegionDiagnostic.java index 784c2c39eac..39e5a6ff60b 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NonExportMethodsInApiRegionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NonExportMethodsInApiRegionDiagnostic.java @@ -24,10 +24,10 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.Symbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NonStandardRegionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NonStandardRegionDiagnostic.java index ab838f802a1..aa66b0e22bd 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NonStandardRegionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NonStandardRegionDiagnostic.java @@ -25,10 +25,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.utils.Regions; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import java.util.Collections; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfOptionalParamsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfOptionalParamsDiagnostic.java index 8b03f2b5d2d..57dbb5e39dd 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfOptionalParamsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfOptionalParamsDiagnostic.java @@ -22,11 +22,11 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfParamsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfParamsDiagnostic.java index 6b79797cbf2..79f979c2616 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfParamsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfParamsDiagnostic.java @@ -22,11 +22,11 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfValuesInStructureConstructorDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfValuesInStructureConstructorDiagnostic.java index 1ee2b4d5fad..7c66f03373f 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfValuesInStructureConstructorDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/NumberOfValuesInStructureConstructorDiagnostic.java @@ -22,13 +22,13 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.utils.DiagnosticHelper; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; /** diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OSUsersMethodDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OSUsersMethodDiagnostic.java index 7466e5e38c4..5f4ce9189a3 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OSUsersMethodDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OSUsersMethodDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import java.util.regex.Pattern; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OneStatementPerLineDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OneStatementPerLineDiagnostic.java index 1fbef3bb9f9..ca4a9dd82b3 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OneStatementPerLineDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OneStatementPerLineDiagnostic.java @@ -21,15 +21,15 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.CodeAction; @@ -117,7 +117,7 @@ public ParseTree visitFile(BSLParser.FileContext ctx) { public List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { List textEdits = new ArrayList<>(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OrderOfParamsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OrderOfParamsDiagnostic.java index 8f437dfd1b3..0f65c704b3b 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OrderOfParamsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/OrderOfParamsDiagnostic.java @@ -22,11 +22,11 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser.ParamContext; import com.github._1c_syntax.bsl.parser.BSLParser.ParamListContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; import java.util.Objects; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/PairingBrokenTransactionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/PairingBrokenTransactionDiagnostic.java index 46efc5e198c..83bdebe4a47 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/PairingBrokenTransactionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/PairingBrokenTransactionDiagnostic.java @@ -22,11 +22,11 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ParseErrorDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ParseErrorDiagnostic.java index 7a25b834ec4..bd022ec603d 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ParseErrorDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ParseErrorDiagnostic.java @@ -23,13 +23,13 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLLexer; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.misc.IntervalSet; import org.antlr.v4.runtime.tree.ErrorNode; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ProcedureReturnsValueDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ProcedureReturnsValueDiagnostic.java index c03b7b73ec4..eea7c024eb9 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ProcedureReturnsValueDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ProcedureReturnsValueDiagnostic.java @@ -22,11 +22,11 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; import java.util.Collection; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/PublicMethodsDescriptionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/PublicMethodsDescriptionDiagnostic.java index 74c952a0f75..bdf555f0e49 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/PublicMethodsDescriptionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/PublicMethodsDescriptionDiagnostic.java @@ -25,11 +25,11 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.RegionSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.Symbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/QuickFixProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/QuickFixProvider.java index b14552b11b1..73c1685be55 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/QuickFixProvider.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/QuickFixProvider.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionParams; import org.eclipse.lsp4j.Diagnostic; @@ -33,7 +33,7 @@ public interface QuickFixProvider { List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java index 3b07fc762c9..624c3dce3c7 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java @@ -23,13 +23,14 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; import com.github._1c_syntax.bsl.parser.SDBLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; +import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.ParseTree; import java.util.Collection; @@ -122,7 +123,7 @@ private String getTableNameOrAlias(ParseTree dataSource) { .map(optionalAlias -> Trees.getFirstChild(optionalAlias.get(), SDBLParser.RULE_identifier)) .filter(Optional::isPresent) .map(Optional::get) - .map(BSLParserRuleContext::getText) + .map(ParserRuleContext::getText) .orElse(""); if (!alias.isBlank()) { @@ -135,7 +136,7 @@ private String getTableNameOrAlias(ParseTree dataSource) { .map(optionalAlias -> Trees.getFirstChild(optionalAlias.get(), SDBLParser.RULE_identifier)) .filter(Optional::isPresent) .map(Optional::get) - .map(BSLParserRuleContext::getText) + .map(ParserRuleContext::getText) .orElse(""); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SelfAssignDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SelfAssignDiagnostic.java index 9448d0f1c5f..dfeca78660c 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SelfAssignDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SelfAssignDiagnostic.java @@ -22,11 +22,11 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNode; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SelfInsertionDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SelfInsertionDiagnostic.java index 1fd1580bb82..3c8131cb152 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SelfInsertionDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SelfInsertionDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SemicolonPresenceDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SemicolonPresenceDiagnostic.java index 0fa5620d2ef..684bf760ec6 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SemicolonPresenceDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SemicolonPresenceDiagnostic.java @@ -21,14 +21,14 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionParams; @@ -71,7 +71,7 @@ public ParseTree visitStatement(BSLParser.StatementContext ctx) { public List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { List textEdits = new ArrayList<>(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SeveralCompilerDirectivesDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SeveralCompilerDirectivesDiagnostic.java index c3f223570c5..51a8eaaa7d1 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SeveralCompilerDirectivesDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SeveralCompilerDirectivesDiagnostic.java @@ -23,11 +23,11 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SpaceAtStartCommentDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SpaceAtStartCommentDiagnostic.java index 7d2eca0b851..14ae05e2e07 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SpaceAtStartCommentDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SpaceAtStartCommentDiagnostic.java @@ -21,15 +21,15 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; import com.github._1c_syntax.bsl.languageserver.recognizer.BSLFootprint; import com.github._1c_syntax.bsl.languageserver.recognizer.CodeRecognizer; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.Token; import org.eclipse.lsp4j.CodeAction; @@ -107,7 +107,7 @@ public void check() { public List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { List textEdits = new ArrayList<>(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/StyleElementConstructorsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/StyleElementConstructorsDiagnostic.java index 23c42fca239..33d356eef98 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/StyleElementConstructorsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/StyleElementConstructorsDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TempFilesDirDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TempFilesDirDiagnostic.java index d3a35136510..bfc9f3c9820 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TempFilesDirDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TempFilesDirDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import java.util.regex.Pattern; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TernaryOperatorUsageDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TernaryOperatorUsageDiagnostic.java index b32516404a9..d7fa4a78693 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TernaryOperatorUsageDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TernaryOperatorUsageDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ThisObjectAssignDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ThisObjectAssignDiagnostic.java index 2a74f0d09b3..a8776d97bba 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ThisObjectAssignDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ThisObjectAssignDiagnostic.java @@ -24,10 +24,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TimeoutsInExternalResourcesDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TimeoutsInExternalResourcesDiagnostic.java index e0c21cc07de..586403574a8 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TimeoutsInExternalResourcesDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TimeoutsInExternalResourcesDiagnostic.java @@ -23,13 +23,13 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.utils.DiagnosticHelper; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.mdclasses.metadata.additional.CompatibilityMode; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.ParserRuleContext; @@ -231,8 +231,7 @@ public ParseTree visitCodeBlock(BSLParser.CodeBlockContext ctx) { @Override public ParseTree visitFile(BSLParser.FileContext ctx) { CompatibilityMode diagnosticCompatibility = documentContext - .getServerContext() - .getConfiguration() + .getMDConfiguration() .getCompatibilityMode(); if (diagnosticCompatibility != null diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TooManyReturnsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TooManyReturnsDiagnostic.java index 4701a44227b..5489e353188 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TooManyReturnsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TooManyReturnsDiagnostic.java @@ -23,14 +23,14 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.RelatedInformation; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.RelatedInformation; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.DiagnosticRelatedInformation; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TryNumberDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TryNumberDiagnostic.java index 6ab427d7f35..9a447220edc 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TryNumberDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TryNumberDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParser.GlobalMethodCallContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TypoDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TypoDiagnostic.java index 35698328f91..b051cfabbfe 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TypoDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TypoDiagnostic.java @@ -21,17 +21,17 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.languageserver.diagnostics.typo.JLanguageToolPool; import com.github._1c_syntax.bsl.languageserver.diagnostics.typo.JLanguageToolPoolEntry; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import lombok.AccessLevel; import lombok.Getter; import lombok.extern.slf4j.Slf4j; @@ -122,7 +122,7 @@ private static void releaseLanguageTool(String lang, JLanguageToolPoolEntry lang getLanguageToolPoolMap().get(lang).checkIn(languageToolPoolEntry); } - private String getTokenizedStringFromTokens(DocumentContext documentContext, Map> tokensMap) { + private String getTokenizedStringFromTokens(BSLDocumentContext documentContext, Map> tokensMap) { StringBuilder text = new StringBuilder(); Trees.findAllRuleNodes(documentContext.getAst(), rulesToFind).stream() diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnaryPlusInConcatenationDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnaryPlusInConcatenationDiagnostic.java index 116bd090d78..b6fc93ebe79 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnaryPlusInConcatenationDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnaryPlusInConcatenationDiagnostic.java @@ -22,11 +22,11 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnionAllDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnionAllDiagnostic.java index 75d4d5c5978..6c4440ea2e9 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnionAllDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnionAllDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.SDBLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnknownPreprocessorSymbolDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnknownPreprocessorSymbolDiagnostic.java index 68e7d7bbe29..59797e6b159 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnknownPreprocessorSymbolDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnknownPreprocessorSymbolDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnreachableCodeDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnreachableCodeDiagnostic.java index 4ee11c7a820..0225f942c03 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnreachableCodeDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnreachableCodeDiagnostic.java @@ -22,14 +22,15 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLLexer; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Trees; +import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; @@ -165,7 +166,7 @@ private void findAndAddDiagnostic(BSLParserRuleContext ctx) { return; } - List statements = Trees.getChildren(ppNodeParent, BSLParser.RULE_statement) + var statements = Trees.getChildren(ppNodeParent, BSLParser.RULE_statement) .stream() .filter(node -> node.getStart().getType() != BSLLexer.SEMICOLON @@ -180,7 +181,7 @@ private void findAndAddDiagnostic(BSLParserRuleContext ctx) { Collections.reverse(statements); // найдем последний блок - BSLParserRuleContext endCurrentBlockNode = getEndCurrentBlockNode(statements, pos); + var endCurrentBlockNode = getEndCurrentBlockNode(statements, pos); // если последний стейт не текущий, значит он будет недостижим if (!ppNode.equals(endCurrentBlockNode)) { @@ -194,7 +195,7 @@ private void findAndAddDiagnostic(BSLParserRuleContext ctx) { } } - private BSLParserRuleContext getEndCurrentBlockNode(List statements, Position pos) { + private ParserRuleContext getEndCurrentBlockNode(List statements, Position pos) { // найдем блок препроцессора, в котором лежит наш стейт Range preprocRange = null; @@ -205,12 +206,12 @@ private BSLParserRuleContext getEndCurrentBlockNode(List s } // т.к. список реверснут, берем первый элемент - BSLParserRuleContext endCurrentBlockNode = statements.get(0); + var endCurrentBlockNode = statements.get(0); if (preprocRange != null) { // пройдем по всем стейтам (с конца идем) и ищем первый, находящийся в том же блоке // препроцессора, что и стейт прерывания - for (BSLParserRuleContext statement : statements) { + for (ParserRuleContext statement : statements) { Position posStatement = new Position( statement.getStart().getLine(), statement.getStart().getCharPositionInLine()); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnsafeSafeModeMethodCallDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnsafeSafeModeMethodCallDiagnostic.java index 1313f68dc4b..46200bcefc3 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnsafeSafeModeMethodCallDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnsafeSafeModeMethodCallDiagnostic.java @@ -24,12 +24,12 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import java.util.Set; @@ -87,9 +87,9 @@ private static boolean nonValidExpression(BSLParser.MemberContext currentRootMem return true; } - BSLParserRuleContext rootExpressionNode = (BSLParserRuleContext) currentRootMember.getParent(); + var rootExpressionNode = (BSLParserRuleContext) currentRootMember.getParent(); - BSLParserRuleContext rootIfNode = Trees.getRootParent(rootExpressionNode, ROOT_LIST); + var rootIfNode = Trees.getRootParent(rootExpressionNode, ROOT_LIST); if (rootIfNode == null || rootIfNode.getRuleIndex() == BSLParser.RULE_codeBlock) { return false; } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedLocalMethodDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedLocalMethodDiagnostic.java index f380552ed17..c7f31b4f8a6 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedLocalMethodDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedLocalMethodDiagnostic.java @@ -26,10 +26,10 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.annotations.AnnotationKind; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedParametersDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedParametersDiagnostic.java index e19b4c8d178..27e8ef4c6e1 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedParametersDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedParametersDiagnostic.java @@ -23,11 +23,11 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UseLessForEachDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UseLessForEachDiagnostic.java index 8ea5b48dab7..b565b600867 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UseLessForEachDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UseLessForEachDiagnostic.java @@ -23,14 +23,14 @@ import com.github._1c_syntax.bsl.languageserver.context.symbol.variable.VariableKind; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParser.CallStatementContext; import com.github._1c_syntax.bsl.parser.BSLParser.ComplexIdentifierContext; import com.github._1c_syntax.bsl.parser.BSLParser.LValueContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNode; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingCancelParameterDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingCancelParameterDiagnostic.java index b9cc760f998..cb9846e5302 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingCancelParameterDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingCancelParameterDiagnostic.java @@ -22,13 +22,13 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLLexer; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingExternalCodeToolsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingExternalCodeToolsDiagnostic.java index a0afc786967..c2741ef1c17 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingExternalCodeToolsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingExternalCodeToolsDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNode; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingFindElementByStringDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingFindElementByStringDiagnostic.java index cfff6e44880..1bcf0e5c018 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingFindElementByStringDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingFindElementByStringDiagnostic.java @@ -23,10 +23,10 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingGotoDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingGotoDiagnostic.java index 6730328c180..dfe871b2e3f 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingGotoDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingGotoDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.tree.ParseTree; @DiagnosticMetadata( diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodeNetworkAddressDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodeNetworkAddressDiagnostic.java index c829b4f4143..81a857c9070 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodeNetworkAddressDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodeNetworkAddressDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodePathDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodePathDiagnostic.java index e824b0e6280..fc6a25f4993 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodePathDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodePathDiagnostic.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodeSecretInformationDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodeSecretInformationDiagnostic.java index 62b174a748f..ffe9bbd38ae 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodeSecretInformationDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingHardcodeSecretInformationDiagnostic.java @@ -22,14 +22,14 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.Token; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingModalWindowsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingModalWindowsDiagnostic.java index 9b7d8f3b3bd..a81a45e1ea1 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingModalWindowsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingModalWindowsDiagnostic.java @@ -23,12 +23,12 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.metadata.additional.UseMode; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; @@ -94,7 +94,7 @@ public UsingModalWindowsDiagnostic() { @Override public ParseTree visitFile(BSLParser.FileContext ctx) { - var configuration = documentContext.getServerContext().getConfiguration(); + var configuration = documentContext.getMDConfiguration(); // если использование модальных окон разрешено (без предупреждение) // и не установлен флаг игнорирования использования модальных окон, то // ничего не диагностируется diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingObjectNotAvailableUnixDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingObjectNotAvailableUnixDiagnostic.java index 6bbae1a45d0..11324c1d4f1 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingObjectNotAvailableUnixDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingObjectNotAvailableUnixDiagnostic.java @@ -23,11 +23,11 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.ParseTree; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingServiceTagDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingServiceTagDiagnostic.java index 4617abde0ec..b6bd939e89b 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingServiceTagDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingServiceTagDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameter; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.Token; import java.util.Map; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingSynchronousCallsDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingSynchronousCallsDiagnostic.java index b5fb46f7813..1c712365d71 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingSynchronousCallsDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingSynchronousCallsDiagnostic.java @@ -24,11 +24,11 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.mdclasses.metadata.additional.UseMode; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; @@ -125,7 +125,7 @@ public UsingSynchronousCallsDiagnostic() { @Override public ParseTree visitFile(BSLParser.FileContext ctx) { - var configuration = documentContext.getServerContext().getConfiguration(); + var configuration = documentContext.getMDConfiguration(); // если использование синхронных вызовов разрешено (без предупреждение), то // ничего не диагностируется if (configuration.getSynchronousExtensionAndAddInCallUseMode() == UseMode.USE) { diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingThisFormDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingThisFormDiagnostic.java index 1e0821097af..f65fc52bc4b 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingThisFormDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingThisFormDiagnostic.java @@ -21,17 +21,17 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.tree.ParseTree; @@ -133,7 +133,7 @@ public ParseTree visitComplexIdentifier(BSLParser.ComplexIdentifierContext ctx) public List getQuickFixes( List diagnostics, CodeActionParams params, - DocumentContext documentContext + BSLDocumentContext documentContext ) { List newTextEdits = new ArrayList<>(); @@ -160,7 +160,7 @@ public ParseTree visitLValue(BSLParser.LValueContext ctx) { return super.visitLValue(ctx); } - private static TextEdit getQuickFixText(Diagnostic diagnostic, DocumentContext documentContext) { + private static TextEdit getQuickFixText(Diagnostic diagnostic, BSLDocumentContext documentContext) { Range range = diagnostic.getRange(); String currentText = documentContext.getText(range); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/WrongUseOfRollbackTransactionMethodDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/WrongUseOfRollbackTransactionMethodDiagnostic.java index 50d2623e4ef..f3e343f1aff 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/WrongUseOfRollbackTransactionMethodDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/WrongUseOfRollbackTransactionMethodDiagnostic.java @@ -23,11 +23,11 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import java.util.regex.Pattern; @@ -41,7 +41,6 @@ tags = { DiagnosticTag.STANDARD } - ) public class WrongUseOfRollbackTransactionMethodDiagnostic extends AbstractFindMethodDiagnostic { diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/YoLetterUsageDiagnostic.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/YoLetterUsageDiagnostic.java index 2dc649d3504..632a1bc794e 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/YoLetterUsageDiagnostic.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/YoLetterUsageDiagnostic.java @@ -22,10 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.diagnostics; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.antlr.v4.runtime.Token; import java.util.Locale; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticBeanPostProcessor.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticBeanPostProcessor.java index 38a2a786b8a..57a16149b0c 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticBeanPostProcessor.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticBeanPostProcessor.java @@ -21,9 +21,10 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics.infrastructure; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; import com.github._1c_syntax.bsl.languageserver.diagnostics.BSLDiagnostic; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; +import com.github._1c_syntax.ls_core.diagnostics.CoreDiagnostic; +import com.github._1c_syntax.ls_core.diagnostics.metadata.CoreDiagnosticInfo; import lombok.RequiredArgsConstructor; import org.eclipse.lsp4j.jsonrpc.messages.Either; import org.springframework.beans.factory.config.BeanPostProcessor; @@ -35,8 +36,8 @@ @Component public class DiagnosticBeanPostProcessor implements BeanPostProcessor { - private final LanguageServerConfiguration configuration; - private final Map, DiagnosticInfo> diagnosticInfos; + private final BSLLanguageServerConfiguration configuration; + private final Map, CoreDiagnosticInfo> diagnosticInfos; @Override public Object postProcessBeforeInitialization(Object bean, String beanName) { @@ -44,7 +45,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) { return bean; } - BSLDiagnostic diagnostic = (BSLDiagnostic) bean; + var diagnostic = (BSLDiagnostic) bean; var info = diagnosticInfos.get(diagnostic.getClass()); diagnostic.setInfo(info); @@ -62,7 +63,7 @@ public Object postProcessAfterInitialization(Object bean, String beanName) { BSLDiagnostic diagnostic = (BSLDiagnostic) bean; Either> diagnosticConfiguration = - configuration.getDiagnosticsOptions().getParameters().get(diagnostic.getInfo().getCode().getStringValue()); + configuration.getDiagnosticsOptions().getParameters().get(diagnostic.getInfo().getDiagnosticCode().getStringValue()); if (diagnosticConfiguration != null && diagnosticConfiguration.isRight()) { diagnostic.configure(diagnosticConfiguration.getRight()); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticConfiguration.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticConfiguration.java deleted file mode 100644 index 3a04f9bb6f3..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticConfiguration.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.diagnostics.infrastructure; - -import com.github._1c_syntax.bsl.languageserver.diagnostics.BSLDiagnostic; -import lombok.RequiredArgsConstructor; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Scope; - -@Configuration -@RequiredArgsConstructor -public class DiagnosticConfiguration { - - private final ApplicationContext applicationContext; - - @Bean - @Scope("prototype") - public T diagnostic(Class clazz) { - return applicationContext.getBean(clazz); - } - -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticInfosConfiguration.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticInfosConfiguration.java index abec9defae2..503b90fbd19 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticInfosConfiguration.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticInfosConfiguration.java @@ -21,10 +21,12 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics.infrastructure; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; import com.github._1c_syntax.bsl.languageserver.diagnostics.BSLDiagnostic; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; +import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.BSLDiagnosticInfo; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata; +import com.github._1c_syntax.ls_core.diagnostics.CoreDiagnostic; +import com.github._1c_syntax.ls_core.diagnostics.metadata.CoreDiagnosticInfo; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; @@ -47,12 +49,12 @@ public class DiagnosticInfosConfiguration { private final ApplicationContext applicationContext; - private final LanguageServerConfiguration configuration; + private final BSLLanguageServerConfiguration configuration; @SuppressWarnings("unchecked") @Bean("diagnosticInfosByCode") @Role(BeanDefinition.ROLE_INFRASTRUCTURE) - public Map diagnosticInfosByCode() { + public Map diagnosticInfosByCode() { var beanNames = applicationContext.getBeanNamesForAnnotation(DiagnosticMetadata.class); return Arrays.stream(beanNames) @@ -61,31 +63,31 @@ public Map diagnosticInfosByCode() { .filter(BSLDiagnostic.class::isAssignableFrom) .map(aClass -> (Class) aClass) .map(this::createDiagnosticInfo) - .collect(Collectors.toMap(info -> info.getCode().getStringValue(), Function.identity())); + .collect(Collectors.toMap(info -> info.getDiagnosticCode().getStringValue(), Function.identity())); } @Bean("diagnosticInfosByDiagnosticClass") @Role(BeanDefinition.ROLE_INFRASTRUCTURE) - public Map, DiagnosticInfo> diagnosticInfosByDiagnosticClass() { + public Map, CoreDiagnosticInfo> diagnosticInfosByDiagnosticClass() { return diagnosticInfosByCode().values().stream() - .collect(Collectors.toMap(DiagnosticInfo::getDiagnosticClass, Function.identity())); + .collect(Collectors.toMap(CoreDiagnosticInfo::getDiagnosticClass, Function.identity())); } @Bean("diagnosticInfos") @Role(BeanDefinition.ROLE_INFRASTRUCTURE) - public Collection diagnosticInfos() { + public Collection diagnosticInfos() { return diagnosticInfosByCode().values(); } @Bean @Scope("prototype") - public DiagnosticInfo diagnosticInfo(@Autowired(required = false) Class diagnosticClass) { + public CoreDiagnosticInfo diagnosticInfo(@Autowired(required = false) Class diagnosticClass) { return diagnosticInfosByDiagnosticClass().get(diagnosticClass); } - private DiagnosticInfo createDiagnosticInfo( + private CoreDiagnosticInfo createDiagnosticInfo( @Autowired(required = false) Class diagnosticClass ) { - return new DiagnosticInfo(diagnosticClass, configuration); + return new BSLDiagnosticInfo(diagnosticClass, configuration); } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticsConfiguration.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticsConfiguration.java index 956978a38eb..ab96a297908 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticsConfiguration.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticsConfiguration.java @@ -21,16 +21,17 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics.infrastructure; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.DiagnosticsOptions; -import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.Mode; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.BSLDiagnosticsOptions; import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.SkipSupport; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.FileType; -import com.github._1c_syntax.bsl.languageserver.diagnostics.BSLDiagnostic; +import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.BSLDiagnosticInfo; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope; +import com.github._1c_syntax.ls_core.configuration.diagnostics.Mode; +import com.github._1c_syntax.ls_core.diagnostics.CoreDiagnostic; +import com.github._1c_syntax.ls_core.diagnostics.infrastructure.DiagnosticConfiguration; import com.github._1c_syntax.mdclasses.metadata.SupportConfiguration; import com.github._1c_syntax.mdclasses.metadata.additional.CompatibilityMode; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; @@ -53,22 +54,21 @@ @RequiredArgsConstructor public abstract class DiagnosticsConfiguration { - private final LanguageServerConfiguration configuration; + private final BSLLanguageServerConfiguration configuration; private final DiagnosticConfiguration diagnosticConfiguration; @Bean @Scope("prototype") - public List diagnostics(DocumentContext documentContext) { + public List diagnostics(BSLDocumentContext documentContext) { - Collection diagnosticInfos = diagnosticInfos(); + Collection diagnosticInfos = diagnosticInfos(); - DiagnosticsOptions diagnosticsOptions = configuration.getDiagnosticsOptions(); + BSLDiagnosticsOptions diagnosticsOptions = configuration.getDiagnosticsOptions(); if (needToComputeDiagnostics(documentContext, diagnosticsOptions)) { FileType fileType = documentContext.getFileType(); CompatibilityMode compatibilityMode = documentContext - .getServerContext() - .getConfiguration() + .getMDConfiguration() .getCompatibilityMode(); ModuleType moduleType = documentContext.getModuleType(); @@ -77,7 +77,7 @@ public List diagnostics(DocumentContext documentContext) { .filter(info -> inScope(info, fileType)) .filter(info -> correctModuleType(info, moduleType, fileType)) .filter(info -> passedCompatibilityMode(info, compatibilityMode)) - .map(DiagnosticInfo::getDiagnosticClass) + .map(BSLDiagnosticInfo::getDiagnosticClass) .map(diagnosticConfiguration::diagnostic) .collect(Collectors.toList()); } else { @@ -86,11 +86,11 @@ public List diagnostics(DocumentContext documentContext) { } @Lookup("diagnosticInfos") - protected abstract Collection diagnosticInfos(); + protected abstract Collection diagnosticInfos(); private static boolean needToComputeDiagnostics( - DocumentContext documentContext, - DiagnosticsOptions diagnosticsOptions + BSLDocumentContext documentContext, + BSLDiagnosticsOptions diagnosticsOptions ) { var configuredMode = diagnosticsOptions.getMode(); @@ -120,7 +120,7 @@ private static boolean needToComputeDiagnostics( return configuredSkipSupport != SkipSupport.WITH_SUPPORT; } - private boolean isEnabled(DiagnosticInfo diagnosticInfo, DiagnosticsOptions diagnosticsOptions) { + private boolean isEnabled(BSLDiagnosticInfo diagnosticInfo, BSLDiagnosticsOptions diagnosticsOptions) { var mode = diagnosticsOptions.getMode(); if (mode == Mode.OFF) { @@ -128,7 +128,7 @@ private boolean isEnabled(DiagnosticInfo diagnosticInfo, DiagnosticsOptions diag } Either> diagnosticParameters = - configuration.getDiagnosticsOptions().getParameters().get(diagnosticInfo.getCode().getStringValue()); + configuration.getDiagnosticsOptions().getParameters().get(diagnosticInfo.getDiagnosticCode().getStringValue()); boolean activatedByDefault = diagnosticParameters == null && diagnosticInfo.isActivatedByDefault(); boolean hasCustomConfiguration = diagnosticParameters != null && diagnosticParameters.isRight(); @@ -153,7 +153,7 @@ private boolean isEnabled(DiagnosticInfo diagnosticInfo, DiagnosticsOptions diag } - private static boolean inScope(DiagnosticInfo diagnosticInfo, FileType fileType) { + private static boolean inScope(BSLDiagnosticInfo diagnosticInfo, FileType fileType) { DiagnosticScope scope = diagnosticInfo.getScope(); DiagnosticScope fileScope; if (fileType == FileType.OS) { @@ -164,7 +164,7 @@ private static boolean inScope(DiagnosticInfo diagnosticInfo, FileType fileType) return scope == DiagnosticScope.ALL || scope == fileScope; } - private static boolean correctModuleType(DiagnosticInfo diagnosticInfo, ModuleType moduletype, FileType fileType) { + private static boolean correctModuleType(BSLDiagnosticInfo diagnosticInfo, ModuleType moduletype, FileType fileType) { if (fileType == FileType.OS) { return true; @@ -187,7 +187,7 @@ private static boolean correctModuleType(DiagnosticInfo diagnosticInfo, ModuleTy } private static boolean passedCompatibilityMode( - DiagnosticInfo diagnosticInfo, + BSLDiagnosticInfo diagnosticInfo, CompatibilityMode contextCompatibilityMode ) { DiagnosticCompatibilityMode compatibilityMode = diagnosticInfo.getCompatibilityMode(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/BSLDiagnosticInfo.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/BSLDiagnosticInfo.java new file mode 100644 index 00000000000..97a340935f7 --- /dev/null +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/BSLDiagnosticInfo.java @@ -0,0 +1,129 @@ +/* + * This file is a part of BSL Language Server. + * + * Copyright © 2018-2020 + * Alexey Sosnoviy , Nikita Gryzlov and contributors + * + * SPDX-License-Identifier: LGPL-3.0-or-later + * + * BSL Language Server is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3.0 of the License, or (at your option) any later version. + * + * BSL Language Server is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with BSL Language Server. + */ +package com.github._1c_syntax.bsl.languageserver.diagnostics.metadata; + +import com.github._1c_syntax.ls_core.configuration.LanguageServerConfiguration; +import com.github._1c_syntax.ls_core.diagnostics.CoreDiagnostic; +import com.github._1c_syntax.ls_core.diagnostics.metadata.CoreDiagnosticInfo; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameterInfo; +import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.lang.annotation.Annotation; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +@Slf4j +public class BSLDiagnosticInfo extends CoreDiagnosticInfo { + + private static final Map diagnosticTagMap = createDiagnosticTagMap(); + + public BSLDiagnosticInfo( + Class diagnosticClass, + LanguageServerConfiguration configuration + ) { + super(diagnosticClass, configuration); + + // переинициализация параметров из-за изменения класса аннотации + setDiagnosticMetadata(diagnosticClass.getAnnotation(annotationClass())); + setDiagnosticParameters(DiagnosticParameterInfo.createDiagnosticParameters(this)); + } + + /** + * Для переопределения класса аннотации-метаданных диагностики + * + * @return Класс аннотации + */ + @Override + protected Class annotationClass() { + return DiagnosticMetadata.class; + } + + public String getDescription() { + String langCode = getConfiguration().getLanguage().getLanguageCode(); + + String resourceName = langCode + "/" + getDiagnosticCode().getStringValue() + ".md"; + InputStream descriptionStream = getDiagnosticClass().getResourceAsStream(resourceName); + + if (descriptionStream == null) { + LOGGER.error("Can't find resource {}", resourceName); + return ""; + } + + try { + return IOUtils.toString(descriptionStream, StandardCharsets.UTF_8); + } catch (IOException e) { + LOGGER.error("Can't read diagnostic description", e); + return ""; + } + } + + + @SneakyThrows + public DiagnosticCompatibilityMode getCompatibilityMode() { + return (DiagnosticCompatibilityMode) getDiagnosticMetadata().getClass().getDeclaredMethod("compatibilityMode") + .invoke(getDiagnosticMetadata()); + } + + @SneakyThrows + public DiagnosticScope getScope() { + return (DiagnosticScope) getDiagnosticMetadata().getClass().getDeclaredMethod("scope") + .invoke(getDiagnosticMetadata()); + } + + @SneakyThrows + public ModuleType[] getModules() { + return (ModuleType[]) getDiagnosticMetadata().getClass().getDeclaredMethod("modules") + .invoke(getDiagnosticMetadata()); + } + + @SneakyThrows + public List getTags() { + return new ArrayList<>( + Arrays.asList((DiagnosticTag[]) getDiagnosticMetadata().getClass().getDeclaredMethod("tags") + .invoke(getDiagnosticMetadata()))); + } + + @Override + public List getLSPTags() { + return getTags().stream() + .map(diagnosticTag -> diagnosticTagMap.getOrDefault(diagnosticTag, null)) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } + + private static Map createDiagnosticTagMap() { + return Map.of( + DiagnosticTag.UNUSED, org.eclipse.lsp4j.DiagnosticTag.Unnecessary, + DiagnosticTag.DEPRECATED, org.eclipse.lsp4j.DiagnosticTag.Deprecated + ); + } +} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticCode.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticCode.java deleted file mode 100644 index b709f0c174d..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticCode.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.diagnostics.metadata; - -import org.eclipse.lsp4j.jsonrpc.messages.Either; - -public class DiagnosticCode extends Either { - - public DiagnosticCode(String code) { - super(code, null); - } - - public DiagnosticCode(String left, Number right) { - super(left, right); - } - - public String getStringValue() { - return isLeft() ? getLeft() : Integer.toString(getRight().intValue()); - } - - public static String getStringValue(Either diagnosticCode) { - return diagnosticCode.isLeft() ? diagnosticCode.getLeft() : Integer.toString(diagnosticCode.getRight().intValue()); - } - -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticInfo.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticInfo.java deleted file mode 100644 index e41cdac8c8e..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticInfo.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.diagnostics.metadata; - -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.diagnostics.BSLDiagnostic; -import com.github._1c_syntax.bsl.languageserver.utils.Resources; -import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.IOUtils; - -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.EnumMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.stream.Collectors; - -@Slf4j -public class DiagnosticInfo { - - private static final Map severityToLSPSeverityMap - = createSeverityToLSPSeverityMap(); - private static final Map diagnosticTagMap = createDiagnosticTagMap(); - - private final Class diagnosticClass; - private final LanguageServerConfiguration configuration; - - private final DiagnosticCode diagnosticCode; - private final DiagnosticMetadata diagnosticMetadata; - private final List diagnosticParameters; - - public DiagnosticInfo( - Class diagnosticClass, - LanguageServerConfiguration configuration - ) { - this.diagnosticClass = diagnosticClass; - this.configuration = configuration; - - diagnosticCode = createDiagnosticCode(); - diagnosticMetadata = diagnosticClass.getAnnotation(DiagnosticMetadata.class); - diagnosticParameters = DiagnosticParameterInfo.createDiagnosticParameters(this); - } - - public Class getDiagnosticClass() { - return diagnosticClass; - } - - public DiagnosticCode getCode() { - return diagnosticCode; - } - - public String getName() { - return getResourceString("diagnosticName"); - } - - public String getDescription() { - String langCode = configuration.getLanguage().getLanguageCode(); - - String resourceName = langCode + "/" + diagnosticCode.getStringValue() + ".md"; - InputStream descriptionStream = diagnosticClass.getResourceAsStream(resourceName); - - if (descriptionStream == null) { - LOGGER.error("Can't find resource {}", resourceName); - return ""; - } - - try { - return IOUtils.toString(descriptionStream, StandardCharsets.UTF_8); - } catch (IOException e) { - LOGGER.error("Can't read diagnostic description", e); - return ""; - } - } - - public String getMessage() { - return getResourceString("diagnosticMessage"); - } - - public String getMessage(Object... args) { - return String.format(getMessage(), args).intern(); - } - - public String getResourceString(String key) { - return Resources.getResourceString(configuration.getLanguage(), diagnosticClass, key); - } - - public String getResourceString(String key, Object... args) { - return Resources.getResourceString(configuration.getLanguage(), diagnosticClass, key, args); - } - - public DiagnosticType getType() { - return diagnosticMetadata.type(); - } - - public DiagnosticSeverity getSeverity() { - return diagnosticMetadata.severity(); - } - - public org.eclipse.lsp4j.DiagnosticSeverity getLSPSeverity() { - var type = getType(); - if (type == DiagnosticType.CODE_SMELL) { - return severityToLSPSeverityMap.get(getSeverity()); - } else if (type == DiagnosticType.SECURITY_HOTSPOT) { - return org.eclipse.lsp4j.DiagnosticSeverity.Warning; - } else { - return org.eclipse.lsp4j.DiagnosticSeverity.Error; - } - } - - public DiagnosticCompatibilityMode getCompatibilityMode() { - return diagnosticMetadata.compatibilityMode(); - } - - public DiagnosticScope getScope() { - return diagnosticMetadata.scope(); - } - - public ModuleType[] getModules() { - return diagnosticMetadata.modules(); - } - - public int getMinutesToFix() { - return diagnosticMetadata.minutesToFix(); - } - - public boolean isActivatedByDefault() { - return diagnosticMetadata.activatedByDefault(); - } - - public List getTags() { - return new ArrayList<>(Arrays.asList(diagnosticMetadata.tags())); - } - - public List getLSPTags() { - return getTags().stream() - .map(diagnosticTag -> diagnosticTagMap.getOrDefault(diagnosticTag, null)) - .filter(Objects::nonNull) - .collect(Collectors.toList()); - } - - public List getParameters() { - return new ArrayList<>(diagnosticParameters); - } - - public Optional getParameter(String parameterName) { - return diagnosticParameters.stream().filter(param -> param.getName().equals(parameterName)).findAny(); - } - - public Map getDefaultConfiguration() { - return diagnosticParameters.stream() - .collect(Collectors.toMap(DiagnosticParameterInfo::getName, DiagnosticParameterInfo::getDefaultValue)); - } - - private DiagnosticCode createDiagnosticCode() { - String simpleName = diagnosticClass.getSimpleName(); - if (simpleName.endsWith("Diagnostic")) { - simpleName = simpleName.substring(0, simpleName.length() - "Diagnostic".length()); - } - - return new DiagnosticCode(simpleName.intern()); - } - - private static Map createSeverityToLSPSeverityMap() { - Map map = new EnumMap<>(DiagnosticSeverity.class); - map.put(DiagnosticSeverity.INFO, org.eclipse.lsp4j.DiagnosticSeverity.Hint); - map.put(DiagnosticSeverity.MINOR, org.eclipse.lsp4j.DiagnosticSeverity.Information); - map.put(DiagnosticSeverity.MAJOR, org.eclipse.lsp4j.DiagnosticSeverity.Warning); - map.put(DiagnosticSeverity.CRITICAL, org.eclipse.lsp4j.DiagnosticSeverity.Warning); - map.put(DiagnosticSeverity.BLOCKER, org.eclipse.lsp4j.DiagnosticSeverity.Warning); - - return map; - } - - private static Map createDiagnosticTagMap() { - return Map.of( - DiagnosticTag.UNUSED, org.eclipse.lsp4j.DiagnosticTag.Unnecessary, - DiagnosticTag.DEPRECATED, org.eclipse.lsp4j.DiagnosticTag.Deprecated - ); - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticMetadata.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticMetadata.java index d47681eb7ba..01d6109ca67 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticMetadata.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticMetadata.java @@ -21,6 +21,8 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics.metadata; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Scope; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticParameter.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticParameter.java deleted file mode 100644 index 5d2247720cf..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticParameter.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.diagnostics.metadata; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.FIELD) -public @interface DiagnosticParameter { - Class type(); - - String defaultValue() default ""; -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticParameterInfo.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticParameterInfo.java deleted file mode 100644 index 326cc51abe7..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticParameterInfo.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.diagnostics.metadata; - -import java.lang.reflect.Field; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -public final class DiagnosticParameterInfo { - - private final Class type; - private final String name; - private final String description; - private final Object defaultValue; - - private DiagnosticParameterInfo(Field field, String description) { - - DiagnosticParameter diagnosticParameter = field.getAnnotation(DiagnosticParameter.class); - this.type = diagnosticParameter.type(); - this.name = field.getName(); - this.description = description; - this.defaultValue = castDiagnosticParameterValue(diagnosticParameter.defaultValue()); - - } - - public Class getType() { - return type; - } - - public String getName() { - return name; - } - - public String getDescription() { - return this.description; - } - - public Object getDefaultValue() { - return this.defaultValue; - } - - private Object castDiagnosticParameterValue(String valueToCast) { - Object value; - if (type == Integer.class) { - value = Integer.parseInt(valueToCast); - } else if (type == Boolean.class) { - value = Boolean.parseBoolean(valueToCast); - } else if (type == Float.class) { - value = Float.parseFloat(valueToCast); - } else if (type == String.class) { - value = valueToCast; - } else { - throw new IllegalArgumentException("Unsupported diagnostic parameter type " + type); - } - - return value; - } - - static List createDiagnosticParameters(DiagnosticInfo diagnosticInfo) { - var parameterInfos = getParameterByClass(diagnosticInfo.getDiagnosticClass(), diagnosticInfo); - - var superClass = diagnosticInfo.getDiagnosticClass().getSuperclass(); - if (superClass != null) { - parameterInfos.addAll(getParameterByClass(superClass, diagnosticInfo)); - } - - return parameterInfos; - } - - private static List getParameterByClass(Class clazz, DiagnosticInfo diagnosticInfo) { - return Arrays.stream(clazz.getDeclaredFields()) - .filter(field -> field.isAnnotationPresent(DiagnosticParameter.class)) - .map(field -> new DiagnosticParameterInfo(field, diagnosticInfo.getResourceString(field.getName()))) - .collect(Collectors.toList()); - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticSeverity.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticSeverity.java deleted file mode 100644 index b3fbb622d4a..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticSeverity.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.diagnostics.metadata; - -public enum DiagnosticSeverity { - INFO, - MINOR, - MAJOR, - CRITICAL, - BLOCKER -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticType.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticType.java deleted file mode 100644 index c064e1c5144..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticType.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.diagnostics.metadata; - -public enum DiagnosticType { - ERROR, - CODE_SMELL, - VULNERABILITY, - SECURITY_HOTSPOT -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/AbstractObjectPool.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/typo/AbstractObjectPool.java similarity index 97% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/AbstractObjectPool.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/typo/AbstractObjectPool.java index d8a8d11ec0d..962eef20f5f 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/AbstractObjectPool.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/typo/AbstractObjectPool.java @@ -43,7 +43,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package com.github._1c_syntax.bsl.languageserver.utils; +package com.github._1c_syntax.bsl.languageserver.diagnostics.typo; import java.util.HashSet; import java.util.Set; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/typo/JLanguageToolPool.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/typo/JLanguageToolPool.java index 578050f42ec..f7b9137ab44 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/typo/JLanguageToolPool.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/typo/JLanguageToolPool.java @@ -21,7 +21,6 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics.typo; -import com.github._1c_syntax.bsl.languageserver.utils.AbstractObjectPool; import lombok.AllArgsConstructor; import org.languagetool.Language; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/jsonrpc/DiagnosticParams.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/jsonrpc/DiagnosticParams.java deleted file mode 100644 index bc1a7196266..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/jsonrpc/DiagnosticParams.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.jsonrpc; - -import lombok.AllArgsConstructor; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import lombok.Setter; -import lombok.ToString; -import org.eclipse.lsp4j.Range; -import org.eclipse.lsp4j.TextDocumentIdentifier; - -import javax.annotation.Nullable; - -/** - * Параметры запроса textDocument/x-diagnostics. - *
- * См. {@link com.github._1c_syntax.bsl.languageserver.BSLTextDocumentService#diagnostics(DiagnosticParams)} - */ -@RequiredArgsConstructor -@AllArgsConstructor -@Getter -@ToString -@EqualsAndHashCode -public class DiagnosticParams { - /** - * Идентификатор текстового документа. - */ - private final TextDocumentIdentifier textDocument; - - /** - * Диапазон, для которого нужно получить список диагностик. - *
- * Если не передан, возвращается весь список диагностик документа. - */ - @Nullable - @Setter - private Range range; -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/jsonrpc/ProtocolExtension.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/jsonrpc/ProtocolExtension.java deleted file mode 100644 index db0547e46cd..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/jsonrpc/ProtocolExtension.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.jsonrpc; - -import org.eclipse.lsp4j.Diagnostic; -import org.eclipse.lsp4j.jsonrpc.services.JsonRequest; - -import java.util.List; -import java.util.concurrent.CompletableFuture; - -public interface ProtocolExtension { - - /** - * @param params Параметры запроса. - * @return Список диагностик. - */ - @JsonRequest( - value = "textDocument/x-diagnostics", - useSegment = false - ) - CompletableFuture> diagnostics(DiagnosticParams params); - -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/jsonrpc/package-info.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/jsonrpc/package-info.java deleted file mode 100644 index ffbbc6f4d94..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/jsonrpc/package-info.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -/** - * Кастомные расширения Language Server Protocol. - */ -@ParametersAreNonnullByDefault -package com.github._1c_syntax.bsl.languageserver.jsonrpc; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeActionProvider.java similarity index 58% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProvider.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeActionProvider.java index 441e4690ebc..b536b5d2709 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProvider.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeActionProvider.java @@ -22,68 +22,36 @@ package com.github._1c_syntax.bsl.languageserver.providers; import com.github._1c_syntax.bsl.languageserver.codeactions.CodeActionSupplier; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.providers.CodeActionProvider; import lombok.RequiredArgsConstructor; import org.eclipse.lsp4j.CodeAction; -import org.eclipse.lsp4j.CodeActionKind; import org.eclipse.lsp4j.CodeActionParams; import org.eclipse.lsp4j.Command; -import org.eclipse.lsp4j.Diagnostic; -import org.eclipse.lsp4j.TextEdit; -import org.eclipse.lsp4j.WorkspaceEdit; import org.eclipse.lsp4j.jsonrpc.messages.Either; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; -import java.net.URI; -import java.util.Collections; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.stream.Collectors; @Component @RequiredArgsConstructor -public final class CodeActionProvider { +@Primary +public final class BSLCodeActionProvider implements CodeActionProvider { private final List codeActionSuppliers; - public static List createCodeActions( - List textEdits, - String title, - URI uri, - List diagnostics - ) { - - if (diagnostics.isEmpty()) { - return Collections.emptyList(); - } - - WorkspaceEdit edit = new WorkspaceEdit(); - - Map> changes = new HashMap<>(); - changes.put(uri.toString(), textEdits); - edit.setChanges(changes); - - if (diagnostics.size() > 1) { - title = "Fix all: " + title; - } - - CodeAction codeAction = new CodeAction(title); - codeAction.setDiagnostics(diagnostics); - codeAction.setEdit(edit); - codeAction.setKind(CodeActionKind.QuickFix); - - return Collections.singletonList(codeAction); - - } - + @Override public List> getCodeActions( CodeActionParams params, DocumentContext documentContext ) { return codeActionSuppliers.stream() - .flatMap(codeActionSupplier -> codeActionSupplier.getCodeActions(params, documentContext).stream()) + .flatMap(codeActionSupplier -> codeActionSupplier + .getCodeActions(params, (BSLDocumentContext) documentContext).stream()) .map(Either::forRight) .collect(Collectors.toList()); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeLensProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeLensProvider.java similarity index 77% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeLensProvider.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeLensProvider.java index cc151602887..8d827f2ca0a 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeLensProvider.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeLensProvider.java @@ -22,9 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.providers; import com.github._1c_syntax.bsl.languageserver.codelenses.CodeLensSupplier; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.providers.CodeLensProvider; import lombok.RequiredArgsConstructor; import org.eclipse.lsp4j.CodeLens; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import java.util.Collection; @@ -33,12 +36,14 @@ @Component @RequiredArgsConstructor -public final class CodeLensProvider { +@Primary +public final class BSLCodeLensProvider implements CodeLensProvider { private final List codeLensSuppliers; + @Override public List getCodeLens(DocumentContext documentContext) { return codeLensSuppliers.stream() - .map(codeLensSupplier -> codeLensSupplier.getCodeLenses(documentContext)) + .map(codeLensSupplier -> codeLensSupplier.getCodeLenses((BSLDocumentContext) documentContext)) .flatMap(Collection::stream) .collect(Collectors.toList()); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentLinkProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentLinkProvider.java similarity index 79% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentLinkProvider.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentLinkProvider.java index ec8d053c976..268962e59ab 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentLinkProvider.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentLinkProvider.java @@ -21,14 +21,16 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.configuration.Language; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCode; -import com.github._1c_syntax.bsl.languageserver.utils.Resources; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.ls_core.configuration.Language; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticCode; +import com.github._1c_syntax.ls_core.providers.DocumentLinkProvider; +import com.github._1c_syntax.ls_core.utils.Resources; import lombok.RequiredArgsConstructor; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DocumentLink; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import java.util.List; @@ -39,9 +41,11 @@ */ @Component @RequiredArgsConstructor -public class DocumentLinkProvider { - private final LanguageServerConfiguration configuration; +@Primary +public class BSLDocumentLinkProvider implements DocumentLinkProvider { + private final BSLLanguageServerConfiguration configuration; + @Override public List getDocumentLinks(DocumentContext documentContext) { var linkOptions = configuration.getDocumentLinkOptions(); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentSymbolProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentSymbolProvider.java similarity index 82% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentSymbolProvider.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentSymbolProvider.java index cefe9c25009..29747644dcc 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentSymbolProvider.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentSymbolProvider.java @@ -21,26 +21,31 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.RegionSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.Symbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.VariableSymbol; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.providers.DocumentSymbolProvider; import org.eclipse.lsp4j.DocumentSymbol; import org.eclipse.lsp4j.Range; import org.eclipse.lsp4j.SymbolInformation; import org.eclipse.lsp4j.jsonrpc.messages.Either; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import java.util.List; import java.util.stream.Collectors; @Component -public final class DocumentSymbolProvider { +@Primary +public final class BSLDocumentSymbolProvider implements DocumentSymbolProvider { + @Override public List> getDocumentSymbols(DocumentContext documentContext) { - return documentContext.getSymbolTree().getChildren().stream() - .map(DocumentSymbolProvider::toDocumentSymbol) + return ((BSLDocumentContext) documentContext).getSymbolTree().getChildren().stream() + .map(BSLDocumentSymbolProvider::toDocumentSymbol) .map(Either::forRight) .collect(Collectors.toList()); } @@ -54,7 +59,7 @@ private static DocumentSymbol toDocumentSymbol(Symbol symbol) { ); List children = symbol.getChildren().stream() - .map(DocumentSymbolProvider::toDocumentSymbol) + .map(BSLDocumentSymbolProvider::toDocumentSymbol) .collect(Collectors.toList()); documentSymbol.setDeprecated(symbol.isDeprecated()); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/FoldingRangeProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFoldingRangeProvider.java similarity index 84% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/FoldingRangeProvider.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFoldingRangeProvider.java index d32f7bb7c70..91de18f2365 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/FoldingRangeProvider.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFoldingRangeProvider.java @@ -21,16 +21,19 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.RegionSymbol; -import com.github._1c_syntax.bsl.languageserver.utils.Trees; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.providers.FoldingRangeProvider; +import com.github._1c_syntax.ls_core.utils.Trees; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.TerminalNode; import org.eclipse.lsp4j.FoldingRange; import org.eclipse.lsp4j.FoldingRangeKind; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import java.util.ArrayDeque; @@ -40,26 +43,29 @@ import java.util.stream.Collectors; @Component -public final class FoldingRangeProvider { +@Primary +public final class BSLFoldingRangeProvider implements FoldingRangeProvider { + @Override public List getFoldingRange(DocumentContext documentContext) { - List foldingRanges = getCommentRanges(documentContext); + var bslDocumentContext = (BSLDocumentContext) documentContext; + var foldingRanges = getCommentRanges(bslDocumentContext); - CodeBlockRangeFinder codeBlockRangeFinder = new CodeBlockRangeFinder(); - codeBlockRangeFinder.visitFile(documentContext.getAst()); - List codeBlockRegionRanges = codeBlockRangeFinder.getRegionRanges(); + var codeBlockRangeFinder = new CodeBlockRangeFinder(); + codeBlockRangeFinder.visitFile(bslDocumentContext.getAst()); + var codeBlockRegionRanges = codeBlockRangeFinder.getRegionRanges(); - UseRangeFinder useRangeFinder = new UseRangeFinder(); - useRangeFinder.visitFile(documentContext.getAst()); - List useRegionRanges = useRangeFinder.getRegionRanges(); + var useRangeFinder = new UseRangeFinder(); + useRangeFinder.visitFile(bslDocumentContext.getAst()); + var useRegionRanges = useRangeFinder.getRegionRanges(); - RegionRangeFinder regionRangeFinder = new RegionRangeFinder(documentContext); - List regionRanges = regionRangeFinder.getRegionRanges(); + var regionRangeFinder = new RegionRangeFinder(bslDocumentContext); + var regionRanges = regionRangeFinder.getRegionRanges(); - PreprocIfRegionRangeFinder preprocIfRegionRangeFinder = new PreprocIfRegionRangeFinder(); - preprocIfRegionRangeFinder.visitFile(documentContext.getAst()); - List preprocRegionRanges = preprocIfRegionRangeFinder.getRegionRanges(); + var preprocIfRegionRangeFinder = new PreprocIfRegionRangeFinder(); + preprocIfRegionRangeFinder.visitFile(bslDocumentContext.getAst()); + var preprocRegionRanges = preprocIfRegionRangeFinder.getRegionRanges(); foldingRanges.addAll(codeBlockRegionRanges); foldingRanges.addAll(useRegionRanges); @@ -69,7 +75,7 @@ public List getFoldingRange(DocumentContext documentContext) { return foldingRanges; } - private List getCommentRanges(DocumentContext documentContext) { + private List getCommentRanges(BSLDocumentContext documentContext) { List foldingRanges = new ArrayList<>(); int lastRangeStart = -1; @@ -202,7 +208,7 @@ private static class RegionRangeFinder { private final List regionRanges; - RegionRangeFinder(DocumentContext documentContext) { + RegionRangeFinder(BSLDocumentContext documentContext) { regionRanges = documentContext.getSymbolTree().getRegionsFlat().stream() .map(RegionRangeFinder::toFoldingRange) .collect(Collectors.toList()); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/FormatProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFormatProvider.java similarity index 96% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/FormatProvider.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFormatProvider.java index 4da30581004..96d83ded01b 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/FormatProvider.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFormatProvider.java @@ -21,9 +21,10 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; import com.github._1c_syntax.bsl.parser.BSLLexer; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.providers.FormatProvider; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.antlr.v4.runtime.Token; import org.apache.commons.lang3.StringUtils; import org.eclipse.lsp4j.DocumentFormattingParams; @@ -32,6 +33,7 @@ import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; import org.eclipse.lsp4j.TextEdit; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -43,7 +45,8 @@ import java.util.stream.Collectors; @Component -public final class FormatProvider { +@Primary +public final class BSLFormatProvider implements FormatProvider { private static final Set incrementIndentTokens = new HashSet<>(Arrays.asList( BSLLexer.LPAREN, @@ -81,6 +84,7 @@ public final class FormatProvider { BSLLexer.STRING )); + @Override public List getFormatting(DocumentFormattingParams params, DocumentContext documentContext) { List tokens = documentContext.getTokens(); if (tokens.isEmpty()) { @@ -95,10 +99,8 @@ public List getFormatting(DocumentFormattingParams params, DocumentCon ); } - public List getRangeFormatting( - DocumentRangeFormattingParams params, - DocumentContext documentContext - ) { + @Override + public List getRangeFormatting(DocumentRangeFormattingParams params, DocumentContext documentContext) { Position start = params.getRange().getStart(); Position end = params.getRange().getEnd(); int startLine = start.getLine() + 1; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/HoverProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLHoverProvider.java similarity index 91% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/HoverProvider.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLHoverProvider.java index 9945cc9289e..febd6b68352 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/HoverProvider.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLHoverProvider.java @@ -21,9 +21,10 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; import com.github._1c_syntax.bsl.parser.BSLParser.SubNameContext; import com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.providers.HoverProvider; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.tree.ParseTree; import org.eclipse.lsp4j.Hover; @@ -31,13 +32,16 @@ import org.eclipse.lsp4j.MarkupContent; import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import java.util.Optional; @Component -public final class HoverProvider { +@Primary +public final class BSLHoverProvider implements HoverProvider { + @Override public Optional getHover(HoverParams params, DocumentContext documentContext) { SubNameFinder finder = new SubNameFinder(params.getPosition()); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/SymbolProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLSymbolProvider.java similarity index 82% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/SymbolProvider.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLSymbolProvider.java index acaa5e5e5af..6259d013360 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/SymbolProvider.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLSymbolProvider.java @@ -21,11 +21,12 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.Symbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.VariableSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.variable.VariableKind; +import com.github._1c_syntax.ls_core.providers.SymbolProvider; import com.github._1c_syntax.utils.CaseInsensitivePattern; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -33,6 +34,7 @@ import org.eclipse.lsp4j.Location; import org.eclipse.lsp4j.SymbolInformation; import org.eclipse.lsp4j.WorkspaceSymbolParams; +import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import java.net.URI; @@ -47,10 +49,12 @@ @Slf4j @Component @RequiredArgsConstructor -public class SymbolProvider { +@Primary +public class BSLSymbolProvider implements SymbolProvider { - private final ServerContext context; + private final BSLServerContext context; + @Override public List getSymbols(WorkspaceSymbolParams params) { var queryString = Optional.ofNullable(params.getQuery()) .orElse(""); @@ -64,15 +68,16 @@ public List getSymbols(WorkspaceSymbolParams params } return context.getDocuments().values().stream() - .flatMap(SymbolProvider::getSymbolPairs) + .map(documentContext -> (BSLDocumentContext) documentContext) + .flatMap(BSLSymbolProvider::getSymbolPairs) .filter(symbolPair -> queryString.isEmpty() || pattern.matcher(symbolPair.getValue().getName()).find()) - .map(SymbolProvider::createSymbolInformation) + .map(BSLSymbolProvider::createSymbolInformation) .collect(Collectors.toList()); } - private static Stream> getSymbolPairs(DocumentContext documentContext) { + private static Stream> getSymbolPairs(BSLDocumentContext documentContext) { return documentContext.getSymbolTree().getChildrenFlat().stream() - .filter(SymbolProvider::isSupported) + .filter(BSLSymbolProvider::isSupported) .map(symbol -> Pair.of(documentContext.getUri(), symbol)); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/DiagnosticProvider.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/DiagnosticProvider.java deleted file mode 100644 index b6626aebc9c..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/DiagnosticProvider.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.providers; - -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.eclipse.lsp4j.Diagnostic; -import org.eclipse.lsp4j.PublishDiagnosticsParams; -import org.eclipse.lsp4j.services.LanguageClient; -import org.eclipse.lsp4j.services.LanguageClientAware; -import org.springframework.stereotype.Component; - -import javax.annotation.CheckForNull; -import java.util.Collections; -import java.util.List; -import java.util.function.Supplier; - -@Slf4j -@Component -@RequiredArgsConstructor -public final class DiagnosticProvider implements LanguageClientAware { - - public static final String SOURCE = "bsl-language-server"; - - @CheckForNull - private LanguageClient client; - - public void computeAndPublishDiagnostics(DocumentContext documentContext) { - publishDiagnostics(documentContext, documentContext::getDiagnostics); - } - - public void publishEmptyDiagnosticList(DocumentContext documentContext) { - publishDiagnostics(documentContext, Collections::emptyList); - } - - private void publishDiagnostics(DocumentContext documentContext, Supplier> diagnostics) { - if (client == null) { - return; - } - - client.publishDiagnostics( - new PublishDiagnosticsParams(documentContext.getUri().toString(), diagnostics.get()) - ); - } - - @Override - public void connect(LanguageClient client) { - this.client = client; - } - -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericIssueReport.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericIssueReport.java index 6bbbcb56da8..ed3a7a0dae9 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericIssueReport.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericIssueReport.java @@ -22,11 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.reporters; import com.fasterxml.jackson.annotation.JsonProperty; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCode; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType; +import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.BSLDiagnosticInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.FileInfo; +import com.github._1c_syntax.ls_core.diagnostics.metadata.CoreDiagnosticInfo; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticCode; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import lombok.Getter; import lombok.Value; import org.eclipse.lsp4j.Diagnostic; @@ -60,14 +61,14 @@ public GenericIssueReport( this.issues = new ArrayList<>(issues); } - public GenericIssueReport(AnalysisInfo analysisInfo, Map diagnosticInfos) { + public GenericIssueReport(AnalysisInfo analysisInfo, Map diagnosticInfos) { issues = new ArrayList<>(); for (FileInfo fileInfo : analysisInfo.getFileinfos()) { for (Diagnostic diagnostic : fileInfo.getDiagnostics()) { GenericIssueEntry entry = new GenericIssueEntry( fileInfo.getPath().toString(), diagnostic, - diagnosticInfos.get(DiagnosticCode.getStringValue(diagnostic.getCode())) + (BSLDiagnosticInfo) diagnosticInfos.get(DiagnosticCode.getStringValue(diagnostic.getCode())) ); issues.add(entry); } @@ -103,9 +104,9 @@ public GenericIssueEntry( this.secondaryLocations = new ArrayList<>(secondaryLocations); } - public GenericIssueEntry(String fileName, Diagnostic diagnostic, DiagnosticInfo diagnosticInfo) { + public GenericIssueEntry(String fileName, Diagnostic diagnostic, BSLDiagnosticInfo diagnosticInfo) { engineId = diagnostic.getSource(); - ruleId = diagnosticInfo.getCode().getStringValue(); + ruleId = diagnosticInfo.getDiagnosticCode().getStringValue(); severity = diagnosticInfo.getSeverity().name(); type = diagnosticTypeRuleTypeMap.get(diagnosticInfo.getType()); primaryLocation = new Location(fileName, diagnostic); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericIssueReporter.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericIssueReporter.java index 7d81e5255e1..ebee9a16dde 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericIssueReporter.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericIssueReporter.java @@ -23,8 +23,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; +import com.github._1c_syntax.ls_core.diagnostics.metadata.CoreDiagnosticInfo; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -39,7 +39,7 @@ @RequiredArgsConstructor public class GenericIssueReporter implements DiagnosticReporter { - private final Map diagnosticInfos; + private final Map diagnosticInfos; @Override public String key() { diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/JUnitTestSuites.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/JUnitTestSuites.java index 3c0dc412a63..9c5e20b47f1 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/JUnitTestSuites.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/JUnitTestSuites.java @@ -32,9 +32,9 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlText; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCode; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.FileInfo; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticCode; import lombok.Getter; import lombok.Value; import org.eclipse.lsp4j.Diagnostic; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReportEntry.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReportEntry.java index 1841d773dd1..42394ae67b8 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReportEntry.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReportEntry.java @@ -22,7 +22,7 @@ package com.github._1c_syntax.bsl.languageserver.reporters; import com.fasterxml.jackson.annotation.JsonProperty; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCode; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticCode; import lombok.Getter; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticSeverity; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/data/FileInfo.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/data/FileInfo.java index 79764f41a67..d115b1bd189 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/data/FileInfo.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/data/FileInfo.java @@ -22,7 +22,7 @@ package com.github._1c_syntax.bsl.languageserver.reporters.data; import com.fasterxml.jackson.annotation.JsonInclude; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.MetricStorage; import com.github._1c_syntax.mdclasses.mdo.MDObjectBase; import com.github._1c_syntax.utils.Absolute; @@ -45,7 +45,7 @@ public class FileInfo { List diagnostics; MetricStorage metrics; - public FileInfo(String sourceDir, DocumentContext documentContext, List diagnostics) { + public FileInfo(String sourceDir, BSLDocumentContext documentContext, List diagnostics) { URI uri = documentContext.getUri(); path = Absolute.path(sourceDir).relativize(Absolute.path(uri)); this.diagnostics = new ArrayList<>(diagnostics); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/databind/DiagnosticCodeDeserializer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/databind/DiagnosticCodeDeserializer.java index afd9ca16519..4d4f0f13c8d 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/databind/DiagnosticCodeDeserializer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/databind/DiagnosticCodeDeserializer.java @@ -24,7 +24,6 @@ import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCode; import org.eclipse.lsp4j.jsonrpc.messages.Either; import java.io.IOException; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/databind/DiagnosticCodeSerializer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/databind/DiagnosticCodeSerializer.java index 5322dcc7163..607f1a44ebc 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/databind/DiagnosticCodeSerializer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/databind/DiagnosticCodeSerializer.java @@ -24,7 +24,7 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCode; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticCode; import org.eclipse.lsp4j.jsonrpc.messages.Either; import java.io.IOException; diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/RelatedInformation.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/BSLRanges.java similarity index 56% rename from src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/RelatedInformation.java rename to src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/BSLRanges.java index 5360331e2fd..2f551a6a717 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/RelatedInformation.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/BSLRanges.java @@ -21,20 +21,27 @@ */ package com.github._1c_syntax.bsl.languageserver.utils; -import org.eclipse.lsp4j.DiagnosticRelatedInformation; -import org.eclipse.lsp4j.Location; +import com.github._1c_syntax.bsl.parser.BSLLexer; +import com.github._1c_syntax.ls_core.utils.Ranges; +import lombok.experimental.UtilityClass; +import org.antlr.v4.runtime.Token; import org.eclipse.lsp4j.Range; -import java.net.URI; +import java.util.Collection; +import java.util.Optional; -public class RelatedInformation { - - private RelatedInformation() { - // Utility class - } +/** + * Вспомогательный класс для удобного использования Range + */ +@UtilityClass +public final class BSLRanges { - public static DiagnosticRelatedInformation create(URI uri, Range range, String message) { - Location location = new Location(uri.toString(), range); - return new DiagnosticRelatedInformation(location, message); + public static Optional getFirstSignificantTokenRange(Collection tokens) { + return tokens.stream() + .filter(token -> token.getType() != Token.EOF) + .filter(token -> token.getType() != BSLLexer.WHITE_SPACE) + .map(Ranges::create) + .filter(range -> (!range.getStart().equals(range.getEnd()))) + .findFirst(); } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/BSLTrees.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/BSLTrees.java new file mode 100644 index 00000000000..86461e0478d --- /dev/null +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/BSLTrees.java @@ -0,0 +1,122 @@ +/* + * This file is a part of BSL Language Server. + * + * Copyright © 2018-2020 + * Alexey Sosnoviy , Nikita Gryzlov and contributors + * + * SPDX-License-Identifier: LGPL-3.0-or-later + * + * BSL Language Server is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3.0 of the License, or (at your option) any later version. + * + * BSL Language Server is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with BSL Language Server. + */ +package com.github._1c_syntax.bsl.languageserver.utils; + +import com.github._1c_syntax.bsl.parser.BSLParser; +import lombok.experimental.UtilityClass; +import org.antlr.v4.runtime.Token; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +/** + * Вспомогательный класс для удобства работы с AST деревом. + */ +@UtilityClass +public final class BSLTrees { + + private static final Set VALID_TOKEN_TYPES_FOR_COMMENTS_SEARCH = Set.of( + BSLParser.ANNOTATION_ATCLIENT_SYMBOL, + BSLParser.ANNOTATION_ATSERVERNOCONTEXT_SYMBOL, + BSLParser.ANNOTATION_ATCLIENTATSERVERNOCONTEXT_SYMBOL, + BSLParser.ANNOTATION_ATCLIENTATSERVER_SYMBOL, + BSLParser.ANNOTATION_ATSERVER_SYMBOL, + BSLParser.ANNOTATION_CUSTOM_SYMBOL, + BSLParser.ANNOTATION_UKNOWN, + BSLParser.LINE_COMMENT, + BSLParser.WHITE_SPACE, + BSLParser.AMPERSAND + ); + + /** + * @param tokens - список токенов из BSLDocumentContext + * @param token - токен, на строке которого требуется найти висячий комментарий + * @return - токен с комментарием, если он найден + */ + public static Optional getTrailingComment(List tokens, Token token) { + int index = token.getTokenIndex(); + int size = tokens.size(); + int currentIndex = index + 1; + int line = token.getLine(); + + while (currentIndex < size) { + var nextToken = tokens.get(currentIndex); + if (nextToken.getLine() > line) { + break; + } + if (nextToken.getType() == BSLParser.LINE_COMMENT) { + return Optional.of(nextToken); + } + currentIndex++; + } + + return Optional.empty(); + + } + + /** + * Поиск комментариев назад от указанного токена + * + * @param tokens - список токенов BSLDocumentContext + * @param token - токен, для которого требуется найти комментарии + * @return - список найденных комментариев lines + */ + public static List getComments(List tokens, Token token) { + List comments = new ArrayList<>(); + fillCommentsCollection(tokens, token, comments); + return comments; + } + + private static void fillCommentsCollection(List tokens, Token currentToken, List lines) { + + int index = currentToken.getTokenIndex(); + + if (index == 0) { + return; + } + + Token previousToken = tokens.get(index - 1); + + if (abortSearchComments(previousToken, currentToken)) { + return; + } + + fillCommentsCollection(tokens, previousToken, lines); + int type = previousToken.getType(); + if (type == BSLParser.LINE_COMMENT) { + lines.add(previousToken); + } + } + + private static boolean abortSearchComments(Token previousToken, Token currentToken) { + int type = previousToken.getType(); + return !VALID_TOKEN_TYPES_FOR_COMMENTS_SEARCH.contains(type) || isBlankLine(previousToken, currentToken); + } + + private static boolean isBlankLine(Token previousToken, Token currentToken) { + return previousToken.getType() == BSLParser.WHITE_SPACE + && (previousToken.getTokenIndex() == 0 + || (previousToken.getLine() + 1) != currentToken.getLine()); + } +} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/DiagnosticHelper.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/DiagnosticHelper.java index f67b999d792..d833e8f12b0 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/DiagnosticHelper.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/DiagnosticHelper.java @@ -21,8 +21,6 @@ */ package com.github._1c_syntax.bsl.languageserver.utils; -import com.github._1c_syntax.bsl.languageserver.diagnostics.BSLDiagnostic; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameterInfo; import com.github._1c_syntax.bsl.parser.BSLParser; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -30,11 +28,6 @@ import org.antlr.v4.runtime.tree.TerminalNode; import org.antlr.v4.runtime.tree.Tree; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - @Slf4j @UtilityClass public final class DiagnosticHelper { @@ -89,43 +82,4 @@ public static boolean isInternetMailProfileType(ParseTree tnc) { return "ИнтернетПочтовыйПрофиль".equalsIgnoreCase(tnc.getText()) || "InternetMailProfile".equalsIgnoreCase(tnc.getText()); } - - public static void configureDiagnostic(BSLDiagnostic diagnostic, Map configuration) { - if (configuration == null || configuration.isEmpty()) { - return; - } - - Set> types = new HashSet<>(); - types.add(Integer.class); - types.add(Boolean.class); - types.add(Float.class); - types.add(String.class); - - diagnostic.getInfo().getParameters().stream() - .filter(diagnosticParameterInfo -> configuration.containsKey(diagnosticParameterInfo.getName()) - && types.contains(diagnosticParameterInfo.getType())) - .forEach((DiagnosticParameterInfo diagnosticParameterInfo) -> { - try { - var field = diagnostic.getClass().getDeclaredField(diagnosticParameterInfo.getName()); - if (field.trySetAccessible()) { - field.set(diagnostic, configuration.get(field.getName())); - } - } catch (NoSuchFieldException | IllegalAccessException e) { - LOGGER.error("Can't set param.", e); - } - }); - } - - public static void configureDiagnostic(BSLDiagnostic diagnostic, - Map configuration, - String... filter) { - Map newConfiguration = new HashMap<>(); - for (String name : filter) { - if (configuration.containsKey(name)) { - newConfiguration.put(name, configuration.get(name)); - } - } - - configureDiagnostic(diagnostic, newConfiguration); - } } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/MdoRefBuilder.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/MdoRefBuilder.java index b13c7af3867..fd97297fb65 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/MdoRefBuilder.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/MdoRefBuilder.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.utils; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.parser.BSLParser; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.MDOReference; @@ -41,16 +41,16 @@ @UtilityClass public class MdoRefBuilder { - public String getMdoRef(DocumentContext documentContext, BSLParser.CallStatementContext callStatement) { + public String getMdoRef(BSLDocumentContext documentContext, BSLParser.CallStatementContext callStatement) { return getMdoRef(documentContext, callStatement.IDENTIFIER(), callStatement.modifier()); } - public String getMdoRef(DocumentContext documentContext, BSLParser.ComplexIdentifierContext complexIdentifier) { + public String getMdoRef(BSLDocumentContext documentContext, BSLParser.ComplexIdentifierContext complexIdentifier) { return getMdoRef(documentContext, complexIdentifier.IDENTIFIER(), complexIdentifier.modifier()); } public String getMdoRef( - DocumentContext documentContext, + BSLDocumentContext documentContext, @Nullable TerminalNode identifier, List modifiers @@ -75,9 +75,8 @@ public String getMdoRef( return mdoRef.get(); } - private Optional getCommonModuleMdoRef(DocumentContext documentContext, String commonModuleName) { - return documentContext.getServerContext() - .getConfiguration() + private Optional getCommonModuleMdoRef(BSLDocumentContext documentContext, String commonModuleName) { + return documentContext.getMDConfiguration() .getCommonModule(commonModuleName) .map(CommonModule::getMdoReference) .map(MDOReference::getMdoRef); diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/MultilingualStringAnalyser.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/MultilingualStringAnalyser.java index b82329e2bf5..41f8b93f3fb 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/MultilingualStringAnalyser.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/MultilingualStringAnalyser.java @@ -22,6 +22,7 @@ package com.github._1c_syntax.bsl.languageserver.utils; import com.github._1c_syntax.bsl.parser.BSLParser; +import com.github._1c_syntax.ls_core.utils.Trees; import com.github._1c_syntax.utils.CaseInsensitivePattern; import org.antlr.v4.runtime.ParserRuleContext; @@ -196,5 +197,4 @@ private BSLParser.CodeBlockContext getCodeBlock() { BSLParser.RULE_codeBlock ); } - } diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Ranges.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Ranges.java deleted file mode 100644 index a0bb1c4ab84..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Ranges.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.utils; - -import com.github._1c_syntax.bsl.parser.BSLLexer; -import org.antlr.v4.runtime.ParserRuleContext; -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.tree.TerminalNode; -import org.eclipse.lsp4j.Position; -import org.eclipse.lsp4j.Range; - -import java.util.Collection; -import java.util.Optional; - -public final class Ranges { - - private Ranges() { - // Utility class - } - - public static Range create(int startLine, int startChar, int endLine, int endChar) { - return new Range(new Position(startLine, startChar), new Position(endLine, endChar)); - } - - /** - * Создание Range для линии - * - * @param lineNo - номер строки - * @param startChar - номер первого символа - * @param endChar - номер последнего символа - * @return - полученный Range - */ - public static Range create(int lineNo, int startChar, int endChar) { - return new Range(new Position(lineNo, startChar), new Position(lineNo, endChar)); - } - - public static Range create(ParserRuleContext ruleContext) { - return create(ruleContext.getStart(), ruleContext.getStop()); - } - - public static Range create(ParserRuleContext startCtx, ParserRuleContext endCtx) { - return create(startCtx.getStart(), endCtx.getStop()); - } - - public static Range create(Token startToken, Token endToken) { - int startLine = startToken.getLine() - 1; - int startChar = startToken.getCharPositionInLine(); - int endLine = endToken.getLine() - 1; - int endChar; - if (endToken.getType() == Token.EOF) { - endChar = endToken.getCharPositionInLine(); - } else { - endChar = endToken.getCharPositionInLine() + endToken.getText().length(); - } - - return create(startLine, startChar, endLine, endChar); - } - - public static Range create(TerminalNode terminalNode) { - return create(terminalNode.getSymbol()); - } - - public static Range create(TerminalNode startTerminalNode, TerminalNode stopTerminalNode) { - return create(startTerminalNode.getSymbol(), stopTerminalNode.getSymbol()); - } - - public static Range create(Token token) { - int startLine = token.getLine() - 1; - int startChar = token.getCharPositionInLine(); - int endLine = token.getLine() - 1; - int endChar = token.getCharPositionInLine() + token.getText().length(); - - return create(startLine, startChar, endLine, endChar); - } - - public static boolean containsRange(Range bigger, Range smaller) { - return org.eclipse.lsp4j.util.Ranges.containsRange(bigger, smaller); - } - - public static boolean containsPosition(Range range, Position position) { - return org.eclipse.lsp4j.util.Ranges.containsPosition(range, position); - } - - public static Optional getFirstSignificantTokenRange(Collection tokens) { - return tokens.stream() - .filter(token -> token.getType() != Token.EOF) - .filter(token -> token.getType() != BSLLexer.WHITE_SPACE) - .map(Ranges::create) - .filter(range -> (!range.getStart().equals(range.getEnd()))) - .findFirst(); - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Resources.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Resources.java deleted file mode 100644 index 710fe8b112c..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Resources.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.utils; - -import com.github._1c_syntax.bsl.languageserver.configuration.Language; -import lombok.experimental.UtilityClass; - -import java.util.Locale; -import java.util.ResourceBundle; - -/** - * Вспомогательный класс для оптимизированного чтения ресурсов прикладных классов с учетом {@link Language}. - */ -@UtilityClass -public class Resources { - - /** - * @param language Язык получения ресурсной строки. - * @param clazz Класс, ресурсы которого необходимо прочитать. - * @param key Ключ из {@link ResourceBundle}. - * @return Содержимое ресурса. - */ - public String getResourceString(Language language, Class clazz, String key) { - String languageCode = language.getLanguageCode(); - Locale locale = Locale.forLanguageTag(languageCode); - return ResourceBundle.getBundle(clazz.getName(), locale, new UTF8Control()).getString(key).intern(); - } - - /** - * @param language Язык получения ресурсной строки. - * @param clazz Класс, ресурсы которого необходимо прочитать. - * @param key Ключ из {@link ResourceBundle}. - * @param args Аргументы для форматирования ресурсной строки. - * @return Содержимое ресурса. - */ - public String getResourceString(Language language, Class clazz, String key, Object... args) { - return String.format(getResourceString(language, clazz, key), args).intern(); - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Trees.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Trees.java deleted file mode 100644 index 6e59899eb74..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Trees.java +++ /dev/null @@ -1,453 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.utils; - -import com.github._1c_syntax.bsl.parser.BSLParser; -import com.github._1c_syntax.bsl.parser.BSLParserRuleContext; -import lombok.experimental.UtilityClass; -import org.antlr.v4.runtime.ParserRuleContext; -import org.antlr.v4.runtime.Token; -import org.antlr.v4.runtime.tree.ParseTree; -import org.antlr.v4.runtime.tree.TerminalNode; -import org.antlr.v4.runtime.tree.Tree; - -import javax.annotation.CheckForNull; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.IntStream; -import java.util.stream.Stream; - -@UtilityClass -public final class Trees { - - private static final Set VALID_TOKEN_TYPES_FOR_COMMENTS_SEARCH = Set.of( - BSLParser.ANNOTATION_ATCLIENT_SYMBOL, - BSLParser.ANNOTATION_ATSERVERNOCONTEXT_SYMBOL, - BSLParser.ANNOTATION_ATCLIENTATSERVERNOCONTEXT_SYMBOL, - BSLParser.ANNOTATION_ATCLIENTATSERVER_SYMBOL, - BSLParser.ANNOTATION_ATSERVER_SYMBOL, - BSLParser.ANNOTATION_CUSTOM_SYMBOL, - BSLParser.ANNOTATION_UKNOWN, - BSLParser.LINE_COMMENT, - BSLParser.WHITE_SPACE, - BSLParser.AMPERSAND - ); - - /** - * Обертки Trees - */ - - public static Collection findAllRuleNodes(ParseTree t, int ruleIndex) { - return org.antlr.v4.runtime.tree.Trees.findAllRuleNodes(t, ruleIndex); - } - - public static List getChildren(Tree t) { - return org.antlr.v4.runtime.tree.Trees.getChildren(t); - } - - public static Collection findAllTokenNodes(ParseTree t, int ttype) { - return org.antlr.v4.runtime.tree.Trees.findAllTokenNodes(t, ttype); - } - - public static List getDescendants(ParseTree t) { - List nodes = new ArrayList<>(t.getChildCount()); - flatten(t, nodes); - return nodes; - } - - private static void flatten(ParseTree t, List flatList) { - flatList.add(t); - - int n = t.getChildCount(); - for (int i = 0; i < n; i++) { - flatten(t.getChild(i), flatList); - } - } - - /** - * Собственная реализация - */ - - private static int getRuleIndex(ParseTree node) { - if (node instanceof TerminalNode) { - return ((TerminalNode) node).getSymbol().getType(); - } else { - return ((BSLParserRuleContext) node).getRuleIndex(); - } - } - - private static List getDescendantsWithFilter(ParseTree parent, ParseTree tnc, int ruleindex) { - List descendants; - if (getRuleIndex(tnc) == ruleindex) { - descendants = new ArrayList<>(org.antlr.v4.runtime.tree.Trees.findAllRuleNodes(parent, ruleindex)); - } else { - descendants = org.antlr.v4.runtime.tree.Trees.getDescendants(parent) - .stream() - .filter(node -> node instanceof BSLParserRuleContext) - .filter(node -> (node.equals(tnc) - || getRuleIndex(node) == ruleindex)) - .collect(Collectors.toList()); - } - return descendants; - } - - /** - * Ищем предка элемента по указанному типу BSLParser - * Пример: - * ParserRuleContext parent = Trees.getAncestorByRuleIndex(ctx, BSLParser.RULE_statement); - */ - @CheckForNull - public static ParserRuleContext getAncestorByRuleIndex(ParserRuleContext element, int type) { - ParserRuleContext parent = element.getParent(); - if (parent == null) { - return null; - } - if (parent.getRuleIndex() == type) { - return parent; - } - return getAncestorByRuleIndex(parent, type); - } - - /** - * Проверяет среди всех дочерних элементов (рекурсивно) наличие узла с ошибкой - * - * @return true - если есть узел с ошибкой - */ - public static boolean treeContainsErrors(ParseTree tnc) { - return treeContainsErrors(tnc, true); - } - - /** - * Проверяет среди дочерних элементов узла наличие узла с ошибкой - * - * @return true - если есть узел с ошибкой - */ - public static boolean nodeContainsErrors(ParseTree tnc) { - return treeContainsErrors(tnc, false); - } - - /** - * Выполняет поиск предыдущей ноды нужного типа - * - * @param parent - родительская нода, среди дочерних которой производится поиск - * @param tnc - нода, для которой ищем предыдущую - * @param ruleindex - BSLParser.RULE_* - * @return tnc - если предыдущая нода не найдена, вернет текущую - */ - public static ParseTree getPreviousNode(ParseTree parent, ParseTree tnc, int ruleindex) { - - List descendants = getDescendantsWithFilter(parent, tnc, ruleindex); - - int pos = descendants.indexOf(tnc); - if (pos > 0) { - return descendants.get(pos - 1); - } - - return tnc; - } - - /** - * @param tokens - полный список токенов (см. {@link com.github._1c_syntax.bsl.languageserver.context.DocumentContext#getTokens()} - * @param tokenIndex - индекс текущего токена в переданном списке токенов - * @param tokenType - тип искомого токена (см. {@link com.github._1c_syntax.bsl.parser.BSLParser} - * @return предыдущий токен, если он был найден - */ - public Optional getPreviousTokenFromDefaultChannel(List tokens, int tokenIndex, int tokenType) { - while (true) { - if (tokenIndex == 0) { - return Optional.empty(); - } - Token token = tokens.get(tokenIndex); - if (token.getChannel() != Token.DEFAULT_CHANNEL - || token.getType() != tokenType) { - tokenIndex = tokenIndex - 1; - continue; - } - - return Optional.of(token); - } - } - - /** - * @param tokens - полный список токенов (см. {@link com.github._1c_syntax.bsl.languageserver.context.DocumentContext#getTokens()} - * @param tokenIndex - индекс текущего токена в переданном списке токенов - * @return предыдущий токен, если он был найден - */ - public static Optional getPreviousTokenFromDefaultChannel(List tokens, int tokenIndex) { - while (true) { - if (tokenIndex == 0) { - return Optional.empty(); - } - Token token = tokens.get(tokenIndex); - if (token.getChannel() != Token.DEFAULT_CHANNEL) { - tokenIndex = tokenIndex - 1; - continue; - } - - return Optional.of(token); - } - } - - /** - * Выполняет поиск следующей ноды нужного типа - * - * @param parent - родительская нода, среди дочерних которой производится поиск - * @param tnc - нода, для которой ищем следующую - * @param ruleindex - BSLParser.RULE_* - * @return tnc - если следующая нода не найдена, вернет текущую - */ - public static ParseTree getNextNode(ParseTree parent, ParseTree tnc, int ruleindex) { - - List descendants = getDescendantsWithFilter(parent, tnc, ruleindex); - - int pos = descendants.indexOf(tnc); - if (pos + 1 < descendants.size()) { - return descendants.get(pos + 1); - } - - return tnc; - } - - /** - * Рекурсивно находит самого верхнего родителя текущей ноды - */ - public static BSLParserRuleContext getRootParent(BSLParserRuleContext tnc) { - if (tnc.getParent() != null) { - return getRootParent((BSLParserRuleContext) tnc.getParent()); - } - - return tnc; - } - - /** - * Рекурсивно находит самого верхнего родителя текущей ноды нужного типа - * - * @param tnc - нода, для которой ищем родителя - * @param ruleindex - BSLParser.RULE_* - * @return tnc - если родитель не найден, вернет null - */ - public static BSLParserRuleContext getRootParent(BSLParserRuleContext tnc, int ruleindex) { - final var parent = tnc.getParent(); - if (parent == null) { - return null; - } - - if (getRuleIndex(parent) == ruleindex) { - return (BSLParserRuleContext) parent; - } else { - return getRootParent((BSLParserRuleContext) parent, ruleindex); - } - } - - /** - * Рекурсивно находит самого верхнего родителя текущей ноды одного из нужных типов - * - * @param tnc - нода, для которой ищем родителя - * @param indexes - Collection of BSLParser.RULE_* - * @return tnc - если родитель не найден, вернет null - */ - public static BSLParserRuleContext getRootParent(BSLParserRuleContext tnc, Collection indexes) { - final var parent = tnc.getParent(); - if (parent == null) { - return null; - } - - if (indexes.contains(getRuleIndex(parent))) { - return (BSLParserRuleContext) parent; - } else { - return getRootParent((BSLParserRuleContext) parent, indexes); - } - } - - /** - * Получает детей с нужными типами - */ - public static List getChildren(Tree t, Integer... ruleIndex) { - return getChildrenStream(t, ruleIndex) - .collect(Collectors.toList()); - } - - /** - * Получает первого ребенка с одним из нужных типов - * - * @param t - нода, для которой ищем ребенка - * @param ruleIndex - arrays of BSLParser.RULE_* - * @return child - если первый ребенок не найден, вернет Optional - */ - public static Optional getFirstChild(Tree t, Integer... ruleIndex) { - return getChildrenStream(t, ruleIndex) - .findFirst(); - } - - private static Stream getChildrenStream(Tree t, Integer[] ruleIndex) { - List indexes = Arrays.asList(ruleIndex); - return IntStream.range(0, t.getChildCount()) - .mapToObj(t::getChild) - .filter((Tree child) -> - child instanceof BSLParserRuleContext - && indexes.contains(((BSLParserRuleContext) child).getRuleIndex())) - .map(child -> (BSLParserRuleContext) child); - } - - /** - * Получает дочерние ноды с нужными типами - */ - public static Collection findAllRuleNodes(ParseTree t, Integer... index) { - List nodes = new ArrayList<>(); - List indexes = Arrays.asList(index); - - if (t instanceof ParserRuleContext - && indexes.contains(((ParserRuleContext) t).getRuleIndex())) { - nodes.add((ParserRuleContext) t); - } - - IntStream.range(0, t.getChildCount()) - .mapToObj(i -> findAllRuleNodes(t.getChild(i), index)) - .forEachOrdered(nodes::addAll); - - return nodes; - } - - /** - * Проверяет наличие дочерней ноды с указанным типом - */ - public static boolean nodeContains(ParseTree t, Integer... index) { - Set indexes = new HashSet<>(Arrays.asList(index)); - - if (t instanceof ParserRuleContext - && indexes.contains(((ParserRuleContext) t).getRuleIndex())) { - return true; - } - - return IntStream.range(0, t.getChildCount()) - .anyMatch(i -> nodeContains(t.getChild(i), index)); - } - - /** - * Проверяет наличие дочерней ноды с указанным типом исключая переданную - */ - public static boolean nodeContains(ParseTree t, ParseTree exclude, Integer... index) { - Set indexes = new HashSet<>(Arrays.asList(index)); - - if (t instanceof ParserRuleContext - && !t.equals(exclude) - && indexes.contains(((ParserRuleContext) t).getRuleIndex())) { - return true; - } - - return IntStream.range(0, t.getChildCount()) - .anyMatch(i -> nodeContains(t.getChild(i), exclude, index)); - } - - /** - * @param tokens - список токенов из DocumentContext - * @param token - токен, на строке которого требуется найти висячий комментарий - * @return - токен с комментарием, если он найден - */ - public static Optional getTrailingComment(List tokens, Token token) { - int index = token.getTokenIndex(); - int size = tokens.size(); - int currentIndex = index + 1; - int line = token.getLine(); - - while (currentIndex < size) { - var nextToken = tokens.get(currentIndex); - if (nextToken.getLine() > line) { - break; - } - if (nextToken.getType() == BSLParser.LINE_COMMENT) { - return Optional.of(nextToken); - } - currentIndex++; - } - - return Optional.empty(); - - } - - /** - * Поиск комментариев назад от указанного токена - * - * @param tokens - список токенов DocumentContext - * @param token - токен, для которого требуется найти комментарии - * @return - список найденных комментариев lines - */ - public static List getComments(List tokens, Token token) { - List comments = new ArrayList<>(); - fillCommentsCollection(tokens, token, comments); - return comments; - } - - private static void fillCommentsCollection(List tokens, Token currentToken, List lines) { - - int index = currentToken.getTokenIndex(); - - if (index == 0) { - return; - } - - Token previousToken = tokens.get(index - 1); - - if (abortSearchComments(previousToken, currentToken)) { - return; - } - - fillCommentsCollection(tokens, previousToken, lines); - int type = previousToken.getType(); - if (type == BSLParser.LINE_COMMENT) { - lines.add(previousToken); - } - } - - private static boolean abortSearchComments(Token previousToken, Token currentToken) { - int type = previousToken.getType(); - return !VALID_TOKEN_TYPES_FOR_COMMENTS_SEARCH.contains(type) || isBlankLine(previousToken, currentToken); - } - - private static boolean isBlankLine(Token previousToken, Token currentToken) { - return previousToken.getType() == BSLParser.WHITE_SPACE - && (previousToken.getTokenIndex() == 0 - || (previousToken.getLine() + 1) != currentToken.getLine()); - } - - private static boolean treeContainsErrors(ParseTree tnc, boolean recursive) { - if (!(tnc instanceof BSLParserRuleContext)) { - return false; - } - - BSLParserRuleContext ruleContext = (BSLParserRuleContext) tnc; - - if (ruleContext.exception != null) { - return true; - } - - return recursive - && ruleContext.children != null - && ruleContext.children.stream().anyMatch(Trees::treeContainsErrors); - } -} diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/UTF8Control.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/UTF8Control.java deleted file mode 100644 index 4e9eccbe169..00000000000 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/UTF8Control.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.utils; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.URL; -import java.net.URLConnection; -import java.nio.charset.StandardCharsets; -import java.util.Locale; -import java.util.PropertyResourceBundle; -import java.util.ResourceBundle; - -public class UTF8Control extends ResourceBundle.Control { - @Override - public ResourceBundle newBundle - (String baseName, Locale locale, String format, ClassLoader loader, boolean reload) throws IOException { - // The below is a copy of the default implementation. - String bundleName = toBundleName(baseName, locale); - String resourceName = toResourceName(bundleName, "properties"); - ResourceBundle bundle = null; - InputStream stream = null; - if (reload) { - URL url = loader.getResource(resourceName); - if (url != null) { - URLConnection connection = url.openConnection(); - if (connection != null) { - connection.setUseCaches(false); - stream = connection.getInputStream(); - } - } - } else { - stream = loader.getResourceAsStream(resourceName); - } - if (stream != null) { - try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { - // Only this line is changed to make it to read properties files as UTF-8. - bundle = new PropertyResourceBundle(reader); - } finally { - stream.close(); - } - } - return bundle; - } -} diff --git a/src/main/java/com/github/_1c_syntax/ls_core/LSLauncherConfiguration.java b/src/main/java/com/github/_1c_syntax/ls_core/LSLauncherConfiguration.java new file mode 100644 index 00000000000..86433db2618 --- /dev/null +++ b/src/main/java/com/github/_1c_syntax/ls_core/LSLauncherConfiguration.java @@ -0,0 +1,33 @@ +/* + * This file is a part of Gherkin Language server. + * + * Copyright © 2020-2020 + * Valery Maximov , 1c-syntax team and contributors + * + * SPDX-License-Identifier: LGPL-3.0-or-later + * + * Gherkin Language server is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3.0 of the License, or (at your option) any later version. + * + * Gherkin Language server is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Gherkin Language server. + */ +package com.github._1c_syntax.ls_core; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +/** + * Данный класс необходим spring boot'у для инжекта реализации + */ +@ComponentScan("com.github._1c_syntax.bsl.languageserver") +@Configuration +public class LSLauncherConfiguration { +} diff --git a/src/main/resources/com/github/_1c_syntax/bsl/languageserver/providers/DocumentLinkProvider_en.properties b/src/main/resources/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentLinkProvider_en.properties similarity index 100% rename from src/main/resources/com/github/_1c_syntax/bsl/languageserver/providers/DocumentLinkProvider_en.properties rename to src/main/resources/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentLinkProvider_en.properties diff --git a/src/main/resources/com/github/_1c_syntax/bsl/languageserver/providers/DocumentLinkProvider_ru.properties b/src/main/resources/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentLinkProvider_ru.properties similarity index 100% rename from src/main/resources/com/github/_1c_syntax/bsl/languageserver/providers/DocumentLinkProvider_ru.properties rename to src/main/resources/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentLinkProvider_ru.properties diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/AutoServerInfoTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/AutoServerInfoTest.java deleted file mode 100644 index 024cbe6f880..00000000000 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/AutoServerInfoTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest -class AutoServerInfoTest { - - @Autowired - private AutoServerInfo autoServerInfo; - - @Test - void testDataIsFilled() { - assertThat(autoServerInfo.getName()).isNotBlank(); - assertThat(autoServerInfo.getVersion()).isNotBlank(); - } -} \ No newline at end of file diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLLSPLauncherTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLLSPLauncherTest.java index cfa1738ebb6..ab462efd6a2 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLLSPLauncherTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLLSPLauncherTest.java @@ -22,6 +22,7 @@ package com.github._1c_syntax.bsl.languageserver; import com.ginsberg.junit.exit.ExpectSystemExitWithStatus; +import com.github._1c_syntax.ls_core.LSLauncher; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -56,23 +57,6 @@ void restoreStreams() { System.setErr(new PrintStream(new FileOutputStream(FileDescriptor.err))); } - @Test - @ExpectSystemExitWithStatus(2) - void testParseError() { - // given - String[] args = new String[]{"--error"}; - - // when - try { - BSLLSPLauncher.main(args); - } catch (RuntimeException ignored) { - // catch prevented system.exit call - } - - // then - assertThat(errContent.toString()).containsIgnoringCase("Unknown option: '--error'"); - } - @Test @ExpectSystemExitWithStatus(0) void testAnalyze() { @@ -81,7 +65,7 @@ void testAnalyze() { // when try { - BSLLSPLauncher.main(args); + LSLauncher.main(args); } catch (RuntimeException ignored) { // catch prevented system.exit call } @@ -101,7 +85,7 @@ void testAnalyzeSilent() { // when try { - BSLLSPLauncher.main(args); + LSLauncher.main(args); } catch (RuntimeException ignored) { // catch prevented system.exit call } @@ -120,7 +104,7 @@ void testAnalyzeError() { // when try { - BSLLSPLauncher.main(args); + LSLauncher.main(args); } catch (RuntimeException ignored) { // catch prevented system.exit call } @@ -139,7 +123,7 @@ void testFormat() { // when try { - BSLLSPLauncher.main(args); + LSLauncher.main(args); } catch (RuntimeException ignored) { // catch prevented system.exit call } @@ -159,7 +143,7 @@ void testFormatOneFile() { // when try { - BSLLSPLauncher.main(args); + LSLauncher.main(args); } catch (RuntimeException ignored) { // catch prevented system.exit call } @@ -179,7 +163,7 @@ void testFormatSilent() { // when try { - BSLLSPLauncher.main(args); + LSLauncher.main(args); } catch (RuntimeException ignored) { // catch prevented system.exit call } @@ -198,7 +182,7 @@ void testFormatError() { // when try { - BSLLSPLauncher.main(args); + LSLauncher.main(args); } catch (RuntimeException ignored) { // catch prevented system.exit call } @@ -208,70 +192,4 @@ void testFormatError() { assertThat(outContent.toString()).contains("is not exists"); assertThat(errContent.toString()).isEmpty(); } - - @Test - @ExpectSystemExitWithStatus(0) - void testVersion() { - // given - String[] args = {"-v"}; - - // when - try { - BSLLSPLauncher.main(args); - } catch (RuntimeException ignored) { - // catch prevented system.exit call - } - - // then - // main-method should runs without exceptions - assertThat(outContent.toString()).startsWith("version:"); - assertThat(errContent.toString()).isEmpty(); - } - - @Test - void testWithoutParameters() { - // given - String[] args = new String[]{}; - - // when - BSLLSPLauncher.main(args); - - // then - // main-method should runs without exceptions - assertThat(outContent.toString()).isEmpty(); - assertThat(errContent.toString()).isEmpty(); - } - - @Test - void testWithoutCommandWithConfig() { - // проверим, что перешли в команду lsp - - // given - String[] args = "-c .".split(" "); - - // when - try { - BSLLSPLauncher.main(args); - } catch (RuntimeException ignored) { - // catch prevented system.exit call - } - - // then - assertThat(outContent.toString()).contains("LanguageServerStartCommand"); - assertThat(errContent.toString()).isEmpty(); - } - - @Test - void testWithoutParametersErrorCfg() { - // given - String[] args = new String[]{"-c", "src/test/resources/cli/error-trace.json"}; - - // when - BSLLSPLauncher.main(args); - - // then - // main-method should runs without exceptions - assertThat(outContent.toString()).contains("Trace log setting must lead to file, not directory"); - assertThat(errContent.toString()).isEmpty(); - } } \ No newline at end of file diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLLanguageServerTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLLanguageServerTest.java deleted file mode 100644 index 458ebd1e2f4..00000000000 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLLanguageServerTest.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver; - -import com.ginsberg.junit.exit.ExpectSystemExitWithStatus; -import org.eclipse.lsp4j.InitializeParams; -import org.eclipse.lsp4j.InitializeResult; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.annotation.DirtiesContext; - -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; - -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest -@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) -class BSLLanguageServerTest { - - @Autowired - private BSLLanguageServer server; - - @Test - void initialize() { - // given - InitializeParams params = new InitializeParams(); - - // when - CompletableFuture initialize = server.initialize(params); - - // then - // TODO - //assertThat(initialize.get().getCapabilities()).extracting(ServerCapabilities::getCompletionProvider).isNotNull(); - } - - @Test - void shutdown() throws ExecutionException, InterruptedException { - CompletableFuture shutdown = server.shutdown(); - - assertThat(shutdown.get()).isEqualTo(true); - } - - @Test - @ExpectSystemExitWithStatus(1) - void exitWithoutShutdown() { - // when - server.exit(); - - // then ExpectSystemExitWithStatus should not throw exception - } - - @Test - @ExpectSystemExitWithStatus(0) - void exitWithShutdown() { - // given - server.shutdown(); - - // when - server.exit(); - - // then ExpectSystemExitWithStatus should not throw exception - } - -} diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLTextDocumentServiceTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLTextDocumentServiceTest.java index e5a0c9b503f..79877d3aba1 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLTextDocumentServiceTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/BSLTextDocumentServiceTest.java @@ -21,24 +21,18 @@ */ package com.github._1c_syntax.bsl.languageserver; -import com.github._1c_syntax.bsl.languageserver.jsonrpc.DiagnosticParams; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.CoreTextDocumentService; +import com.github._1c_syntax.ls_core.jsonrpc.DiagnosticParams; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.apache.commons.io.FileUtils; -import org.eclipse.lsp4j.CompletionItem; -import org.eclipse.lsp4j.CompletionList; -import org.eclipse.lsp4j.CompletionParams; import org.eclipse.lsp4j.DidChangeTextDocumentParams; import org.eclipse.lsp4j.DidCloseTextDocumentParams; import org.eclipse.lsp4j.DidOpenTextDocumentParams; import org.eclipse.lsp4j.DidSaveTextDocumentParams; -import org.eclipse.lsp4j.Hover; -import org.eclipse.lsp4j.HoverParams; -import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.TextDocumentContentChangeEvent; import org.eclipse.lsp4j.TextDocumentIdentifier; import org.eclipse.lsp4j.TextDocumentItem; import org.eclipse.lsp4j.VersionedTextDocumentIdentifier; -import org.eclipse.lsp4j.jsonrpc.messages.Either; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -48,154 +42,15 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.catchThrowable; @SpringBootTest class BSLTextDocumentServiceTest { @Autowired - private BSLTextDocumentService textDocumentService; - - @Test - void completion() throws ExecutionException, InterruptedException { - // given - CompletionParams position = new CompletionParams(); - - // when - CompletableFuture, CompletionList>> completion = textDocumentService.completion(position); - - // then - Either, CompletionList> listCompletionListEither = completion.get(); - List completionItems = listCompletionListEither.getLeft(); - - assertThat(completionItems) - .isNotEmpty() - .allMatch(completionItem -> "Hello World".equals(completionItem.getLabel())) - ; - } - - @Test - void resolveCompletionItem() { - Throwable thrown = catchThrowable(() -> textDocumentService.resolveCompletionItem(null)); - assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void hoverEmpty() throws IOException, ExecutionException, InterruptedException { - // given - doOpen(); - - HoverParams params = new HoverParams(); - params.setTextDocument(getTextDocumentIdentifier()); - params.setPosition(new Position(0, 0)); - - // when - CompletableFuture hover = textDocumentService.hover(params); - - // then - Hover hoverValue = hover.get(); - assertThat(hoverValue).isNull(); - } - - @Test - void hoverSubName() throws IOException, ExecutionException, InterruptedException { - // given - doOpen(); - - HoverParams params = new HoverParams(); - params.setTextDocument(getTextDocumentIdentifier()); - params.setPosition(new Position(0, 20)); - - // when - CompletableFuture hover = textDocumentService.hover(params); - - // then - Hover hoverValue = hover.get(); - assertThat(hoverValue.getContents().getRight().getValue()).isEqualTo("ИмяПроцедуры"); - assertThat(hoverValue.getRange().getStart()).isEqualTo(new Position(0, 10)); - assertThat(hoverValue.getRange().getEnd()).isEqualTo(new Position(0, 22)); - } - - @Test - void signatureHelp() { - Throwable thrown = catchThrowable(() -> textDocumentService.signatureHelp(null)); - assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void definition() { - Throwable thrown = catchThrowable(() -> textDocumentService.definition(null)); - assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void references() { - Throwable thrown = catchThrowable(() -> textDocumentService.references(null)); - assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void documentHighlight() { - Throwable thrown = catchThrowable(() -> textDocumentService.documentHighlight(null)); - assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void documentSymbol() { - // todo - // Throwable thrown = catchThrowable(() -> textDocumentService.documentSymbol(null)); - // assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void codeAction() { - // todo: -// Throwable thrown = catchThrowable(() -> textDocumentService.codeAction(null)); -// assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void codeLens() { - // TODO: - //Throwable thrown = catchThrowable(() -> textDocumentService.codeLens(null)); - //assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void resolveCodeLens() { - Throwable thrown = catchThrowable(() -> textDocumentService.resolveCodeLens(null)); - assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void formatting() { - // TODO: -// Throwable thrown = catchThrowable(() -> textDocumentService.formatting(null)); -// assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void rangeFormatting() { - // TODO: -// Throwable thrown = catchThrowable(() -> textDocumentService.rangeFormatting(null)); -// assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void onTypeFormatting() { - Throwable thrown = catchThrowable(() -> textDocumentService.onTypeFormatting(null)); - assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } - - @Test - void rename() { - Throwable thrown = catchThrowable(() -> textDocumentService.rename(null)); - assertThat(thrown).isInstanceOf(UnsupportedOperationException.class); - } + private CoreTextDocumentService textDocumentService; @Test void didOpen() throws IOException { diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/cli/VersionCommandTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/cli/VersionCommandTest.java deleted file mode 100644 index 042d8237bae..00000000000 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/cli/VersionCommandTest.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * This file is a part of BSL Language Server. - * - * Copyright © 2018-2020 - * Alexey Sosnoviy , Nikita Gryzlov and contributors - * - * SPDX-License-Identifier: LGPL-3.0-or-later - * - * BSL Language Server is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * BSL Language Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with BSL Language Server. - */ -package com.github._1c_syntax.bsl.languageserver.cli; - -import com.github._1c_syntax.bsl.languageserver.AutoServerInfo; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.annotation.DirtiesContext; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.when; - -@SpringBootTest -@DirtiesContext -class VersionCommandTest { - - @MockBean - private AutoServerInfo autoServerInfo; - - @Autowired - private VersionCommand command; - - @Test - void testFailedCall() { - // given - when(autoServerInfo.getVersion()).thenReturn(""); - - // when - var call = command.call(); - - // then - assertThat(call).isEqualTo(1); - } - - @Test - void testSuccessfulCall() { - // given - when(autoServerInfo.getVersion()).thenReturn("0.0.0"); - - // when - var call = command.call(); - - // then - assertThat(call).isZero(); - } -} \ No newline at end of file diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/codeactions/GenerateStandardRegionsSupplierTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/codeactions/GenerateStandardRegionsSupplierTest.java index 9c63e6bbb68..f49d7434d24 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/codeactions/GenerateStandardRegionsSupplierTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/codeactions/GenerateStandardRegionsSupplierTest.java @@ -21,8 +21,8 @@ */ package com.github._1c_syntax.bsl.languageserver.codeactions; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.providers.CodeActionProvider; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.providers.BSLCodeActionProvider; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionContext; @@ -47,14 +47,14 @@ class GenerateStandardRegionsSupplierTest { @Autowired - private CodeActionProvider codeActionProvider; + private BSLCodeActionProvider codeActionProvider; @Test void testGetCodeActions() { // given String filePath = "./src/test/resources/suppliers/generateRegion.bsl"; - DocumentContext documentContext = TestUtils.getDocumentContextFromFile(filePath); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile(filePath); List diagnostics = new ArrayList<>(); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixSupplierTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixSupplierTest.java index 3089c48b7f3..a79d61ad34e 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixSupplierTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/codeactions/QuickFixSupplierTest.java @@ -23,7 +23,7 @@ import com.github._1c_syntax.bsl.languageserver.diagnostics.CommentedCodeDiagnostic; import com.github._1c_syntax.bsl.languageserver.diagnostics.QuickFixProvider; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCode; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticCode; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/configuration/LanguageServerConfigurationTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/configuration/BSLLanguageServerConfigurationTest.java similarity index 85% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/configuration/LanguageServerConfigurationTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/configuration/BSLLanguageServerConfigurationTest.java index 17ba056a7e8..31552522206 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/configuration/LanguageServerConfigurationTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/configuration/BSLLanguageServerConfigurationTest.java @@ -22,9 +22,10 @@ package com.github._1c_syntax.bsl.languageserver.configuration; import com.github._1c_syntax.bsl.languageserver.configuration.codelens.CodeLensOptions; -import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.DiagnosticsOptions; -import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.Mode; +import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.BSLDiagnosticsOptions; import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.SkipSupport; +import com.github._1c_syntax.ls_core.configuration.Language; +import com.github._1c_syntax.ls_core.configuration.diagnostics.Mode; import com.github._1c_syntax.utils.Absolute; import org.eclipse.lsp4j.jsonrpc.messages.Either; import org.junit.jupiter.api.BeforeEach; @@ -41,12 +42,11 @@ import java.nio.file.Paths; import java.util.Map; -import static com.github._1c_syntax.bsl.languageserver.configuration.Language.DEFAULT_LANGUAGE; import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) -class LanguageServerConfigurationTest { +class BSLLanguageServerConfigurationTest { private static final String PATH_TO_CONFIGURATION_FILE = "./src/test/resources/.bsl-language-server.json"; private static final String PATH_TO_EMPTY_CONFIGURATION_FILE = "./src/test/resources/.empty-bsl-language-server.json"; @@ -55,7 +55,7 @@ class LanguageServerConfigurationTest { = "./src/test/resources/.partial-bsl-language-server.json"; @Autowired - private LanguageServerConfiguration configuration; + private BSLLanguageServerConfiguration configuration; @BeforeEach void startUp() throws IOException { @@ -83,7 +83,7 @@ void createFromFile() { configuration.update(configurationFile); // then - DiagnosticsOptions diagnosticsOptions = configuration.getDiagnosticsOptions(); + BSLDiagnosticsOptions diagnosticsOptions = configuration.getDiagnosticsOptions(); Language language = configuration.getLanguage(); Map>> parameters = diagnosticsOptions.getParameters(); @@ -118,11 +118,11 @@ void createFromEmptyFile() { configuration.update(configurationFile); // then - DiagnosticsOptions diagnosticsOptions = configuration.getDiagnosticsOptions(); + BSLDiagnosticsOptions diagnosticsOptions = configuration.getDiagnosticsOptions(); Language language = configuration.getLanguage(); Map>> parameters = diagnosticsOptions.getParameters(); - assertThat(language).isEqualTo(DEFAULT_LANGUAGE); + assertThat(language).isEqualTo(Language.DEFAULT_LANGUAGE); assertThat(parameters).isEmpty(); } @@ -131,12 +131,12 @@ void createFromEmptyFile() { void test_GetCustomConfigurationRoot() { Path path = Paths.get(PATH_TO_METADATA); - Path configurationRoot = LanguageServerConfiguration.getCustomConfigurationRoot(configuration, path); + Path configurationRoot = BSLLanguageServerConfiguration.getCustomConfigurationRoot(configuration, path); assertThat(configurationRoot).isEqualTo(Absolute.path(path)); File configurationFile = new File(PATH_TO_CONFIGURATION_FILE); configuration.update(configurationFile); - configurationRoot = LanguageServerConfiguration.getCustomConfigurationRoot(configuration, path); + configurationRoot = BSLLanguageServerConfiguration.getCustomConfigurationRoot(configuration, path); assertThat(configurationRoot).isEqualTo(Absolute.path(path)); } @@ -149,13 +149,13 @@ void testPartialInitialization() { // when CodeLensOptions codeLensOptions = configuration.getCodeLensOptions(); - DiagnosticsOptions diagnosticsOptions = configuration.getDiagnosticsOptions(); + BSLDiagnosticsOptions diagnosticsOptions = configuration.getDiagnosticsOptions(); // then assertThat(codeLensOptions.isShowCognitiveComplexity()).isTrue(); assertThat(codeLensOptions.isShowCyclomaticComplexity()).isFalse(); - assertThat(configuration.getLanguage()).isEqualTo(DEFAULT_LANGUAGE); + assertThat(configuration.getLanguage()).isEqualTo(Language.DEFAULT_LANGUAGE); assertThat(diagnosticsOptions.getMode()).isEqualTo(Mode.ON); assertThat(diagnosticsOptions.getSkipSupport()).isEqualTo(SkipSupport.NEVER); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileSystemWatcherTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileSystemWatcherTest.java index fdd3f327681..c729c6e4871 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileSystemWatcherTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/configuration/watcher/ConfigurationFileSystemWatcherTest.java @@ -21,8 +21,8 @@ */ package com.github._1c_syntax.bsl.languageserver.configuration.watcher; -import com.github._1c_syntax.bsl.languageserver.configuration.Language; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.ls_core.configuration.Language; import org.apache.commons.io.FileUtils; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -45,7 +45,7 @@ class ConfigurationFileSystemWatcherTest { private ConfigurationFileSystemWatcher watcher; @Autowired - private LanguageServerConfiguration configuration; + private BSLLanguageServerConfiguration configuration; @Test void test() throws IOException { diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/DocumentContextTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/BSLDocumentContextTest.java similarity index 84% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/context/DocumentContextTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/context/BSLDocumentContextTest.java index 41c9d1d3baf..7aac4b1b601 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/DocumentContextTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/BSLDocumentContextTest.java @@ -43,12 +43,12 @@ @SpringBootTest @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) -class DocumentContextTest { +class BSLDocumentContextTest { @Test void testRebuild() throws IOException { - DocumentContext documentContext = getDocumentContext("./src/test/resources/context/DocumentContextRebuildFirstTest.bsl"); + BSLDocumentContext documentContext = getDocumentContext("./src/test/resources/context/DocumentContextRebuildFirstTest.bsl"); assertThat(documentContext.getTokens()).hasSize(39); File file = new File("./src/test/resources/context/DocumentContextRebuildSecondTest.bsl"); @@ -60,7 +60,7 @@ void testRebuild() throws IOException { @Test void testClearASTData() throws IllegalAccessException { // given - DocumentContext documentContext = getDocumentContext(); + BSLDocumentContext documentContext = getDocumentContext(); // when documentContext.clearSecondaryData(); @@ -73,7 +73,7 @@ void testClearASTData() throws IllegalAccessException { @Test void testMethodCompute() { - DocumentContext documentContext = getDocumentContext(); + BSLDocumentContext documentContext = getDocumentContext(); assertThat(documentContext.getSymbolTree().getMethods().size()).isEqualTo(3); @@ -81,7 +81,7 @@ void testMethodCompute() { @Test void testMethodParametersComputesCorrectly() { - DocumentContext documentContext = getDocumentContext(); + BSLDocumentContext documentContext = getDocumentContext(); assertThat(documentContext.getSymbolTree().getMethods()) .filteredOn(methodSymbol -> methodSymbol.getName().equals("ФункцияСПараметрами")) .flatExtracting(MethodSymbol::getParameters) @@ -113,7 +113,7 @@ void testMethodParametersComputesCorrectly() { @Test void testMethodComputeParseError() throws IOException { - DocumentContext documentContext = + BSLDocumentContext documentContext = getDocumentContext("./src/test/resources/context/DocumentContextParseErrorTest.bsl"); assertThat(documentContext.getSymbolTree().getMethods().isEmpty()).isTrue(); @@ -122,7 +122,7 @@ void testMethodComputeParseError() throws IOException { @Test void testGetRegionsFlatComputesAllLevels() { - DocumentContext documentContext = getDocumentContext(); + BSLDocumentContext documentContext = getDocumentContext(); assertThat(documentContext.getSymbolTree().getModuleLevelRegions()).hasSize(2); assertThat(documentContext.getSymbolTree().getRegionsFlat()).hasSize(6); @@ -131,7 +131,7 @@ void testGetRegionsFlatComputesAllLevels() { @Test void testRegionsAdjustingCompute() { // given - DocumentContext documentContext = getDocumentContext(); + BSLDocumentContext documentContext = getDocumentContext(); // when List regions = documentContext.getSymbolTree().getModuleLevelRegions(); @@ -143,7 +143,7 @@ void testRegionsAdjustingCompute() { @Test void testMethodsAdjustingCompute() { // given - DocumentContext documentContext = getDocumentContext(); + BSLDocumentContext documentContext = getDocumentContext(); // when List methods = documentContext.getSymbolTree().getMethods(); @@ -165,7 +165,7 @@ void testUntitledSchema() { String fileContent = ""; // when - var documentContext = TestUtils.getDocumentContext(uri, fileContent); + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContext(uri, fileContent); // then assertThat(documentContext.getFileType()).isEqualTo(FileType.BSL); @@ -178,26 +178,26 @@ void testUntitledSchemaFromVSC() { String fileContent = ""; // when - var documentContext = TestUtils.getDocumentContext(uri, fileContent); + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContext(uri, fileContent); // then assertThat(documentContext.getFileType()).isEqualTo(FileType.BSL); } @SneakyThrows - public DocumentContext getDocumentContext() { + public BSLDocumentContext getDocumentContext() { return getDocumentContext("./src/test/resources/context/DocumentContextTest.bsl"); } - private DocumentContext getDocumentContext(String filePath) { - return TestUtils.getDocumentContextFromFile(filePath); + private BSLDocumentContext getDocumentContext(String filePath) { + return (BSLDocumentContext) TestUtils.getDocumentContextFromFile(filePath); } @Test void testComputeMetricsLocForCover() { - DocumentContext documentContext = + BSLDocumentContext documentContext = getDocumentContext("./src/test/resources/context/DocumentContextLocForCoverTest.bsl"); assertThat(documentContext.getMetrics().getCovlocData()).containsSequence(5, 6, 10, 11, 12, 18, 26, 28, 31, 32, 35, 37); @@ -207,7 +207,7 @@ void testComputeMetricsLocForCover() { @Test void testComputeMetricsComments() { - DocumentContext documentContext = + BSLDocumentContext documentContext = getDocumentContext("./src/test/resources/context/DocumentContextCommentsTest.bsl"); assertThat(documentContext.getMetrics().getComments()).isEqualTo(8); @@ -217,7 +217,7 @@ void testComputeMetricsComments() { @Test void testContentList() { // given - DocumentContext documentContext = getDocumentContext(); + BSLDocumentContext documentContext = getDocumentContext(); // when String[] contentList = documentContext.getContentList(); @@ -229,7 +229,7 @@ void testContentList() { @Test void testEOF() { // given - DocumentContext documentContext = getDocumentContext(); + BSLDocumentContext documentContext = getDocumentContext(); // when List tokens = documentContext.getTokens(); Token lastToken = tokens.get(tokens.size() - 1); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/ServerContextTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/BSLServerContextTest.java similarity index 90% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/context/ServerContextTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/context/BSLServerContextTest.java index 16d58c7be3c..a05b38b8465 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/ServerContextTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/BSLServerContextTest.java @@ -21,6 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.context; +import com.github._1c_syntax.ls_core.context.DocumentContext; import com.github._1c_syntax.mdclasses.metadata.Configuration; import com.github._1c_syntax.mdclasses.metadata.additional.ConfigurationSource; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; @@ -42,7 +43,7 @@ @SpringBootTest @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) -class ServerContextTest { +class BSLServerContextTest { private static final String PATH_TO_METADATA = "src/test/resources/metadata"; private static final String PATH_TO_MODULE_FILE = "CommonModules/ПервыйОбщийМодуль/Ext/Module.bsl"; @@ -50,13 +51,13 @@ class ServerContextTest { private static final String PATH_TO_CATALOG_MODULE_FILE = "Catalogs/Справочник1/Ext/ObjectModule.bsl"; @Autowired - private ServerContext serverContext; + private BSLServerContext serverContext; @Test void testConfigurationMetadata() { Path path = Absolute.path(PATH_TO_METADATA); - serverContext.setConfigurationRoot(path); + serverContext.setProjectRoot(path); Configuration configurationMetadata = serverContext.getConfiguration(); assertThat(configurationMetadata).isNotNull(); @@ -79,10 +80,10 @@ void testConfigurationMetadata() { void testMdoRefs() throws IOException { var path = Absolute.path(PATH_TO_METADATA); - serverContext.setConfigurationRoot(path); + serverContext.setProjectRoot(path); var mdoRefCommonModule = "CommonModule.ПервыйОбщийМодуль"; - DocumentContext documentContext = addDocumentContext(serverContext, PATH_TO_MODULE_FILE); + var documentContext = (BSLDocumentContext) addDocumentContext(serverContext, PATH_TO_MODULE_FILE); assertThat(serverContext.getDocument(mdoRefCommonModule, documentContext.getModuleType())) .isPresent() .get() @@ -111,7 +112,7 @@ void testMdoRefs() throws IOException { void testErrorConfigurationMetadata() { Path path = Absolute.path(Paths.get(PATH_TO_METADATA, "test")); - serverContext.setConfigurationRoot(path); + serverContext.setProjectRoot(path); Configuration configurationMetadata = serverContext.getConfiguration(); assertThat(configurationMetadata).isNotNull(); @@ -122,7 +123,7 @@ void testErrorConfigurationMetadata() { void testPopulateContext() { // given Path path = Absolute.path(PATH_TO_METADATA); - serverContext.setConfigurationRoot(path); + serverContext.setProjectRoot(path); assertThat(serverContext.getDocuments()).isEmpty(); @@ -133,7 +134,7 @@ void testPopulateContext() { assertThat(serverContext.getDocuments()).hasSizeGreaterThan(0); } - private DocumentContext addDocumentContext(ServerContext serverContext, String path) throws IOException { + private DocumentContext addDocumentContext(BSLServerContext serverContext, String path) throws IOException { var file = new File(PATH_TO_METADATA, path); var uri = Absolute.uri(file); return serverContext.addDocument(uri, FileUtils.readFileToString(file, StandardCharsets.UTF_8)); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/DiagnosticIgnoranceComputerTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/BSLDiagnosticIgnoranceComputerTest.java similarity index 82% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/DiagnosticIgnoranceComputerTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/BSLDiagnosticIgnoranceComputerTest.java index 0abc9c42276..00c7021587a 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/DiagnosticIgnoranceComputerTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/BSLDiagnosticIgnoranceComputerTest.java @@ -21,8 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.ls_core.context.computer.Computer; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.Diagnostic; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -34,14 +35,14 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest -class DiagnosticIgnoranceComputerTest { +class BSLDiagnosticIgnoranceComputerTest { @Test void testDiagnosticIgnorance() { // given String filePath = "./src/test/resources/context/computer/DiagnosticIgnoranceComputerTest.bsl"; - final DocumentContext documentContext = getDocumentContextFromFile(filePath); + final BSLDocumentContext documentContext = (BSLDocumentContext) getDocumentContextFromFile(filePath); List ignoredDiagnostics = new ArrayList<>(); @@ -59,9 +60,9 @@ void testDiagnosticIgnorance() { notIgnoredDiagnostics.add(createDiagnostic("SemicolonPresence", 29)); // when - Computer diagnosticIgnoranceComputer = - new DiagnosticIgnoranceComputer(documentContext); - DiagnosticIgnoranceComputer.Data data = diagnosticIgnoranceComputer.compute(); + Computer diagnosticIgnoranceComputer = + new BSLDiagnosticIgnoranceComputer(documentContext); + BSLDiagnosticIgnoranceComputer.Data data = diagnosticIgnoranceComputer.compute(); // then assertThat(ignoredDiagnostics).allMatch(data::diagnosticShouldBeIgnored); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CognitiveComplexityComputerTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CognitiveComplexityComputerTest.java index c4e6b5faf1a..6da23d1e217 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CognitiveComplexityComputerTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CognitiveComplexityComputerTest.java @@ -21,9 +21,10 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; +import com.github._1c_syntax.ls_core.context.computer.Computer; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -37,8 +38,8 @@ class CognitiveComplexityComputerTest { @Test void compute() { // given - DocumentContext documentContext - = TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/CognitiveComplexityComputerTest.bsl"); + BSLDocumentContext documentContext + = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/CognitiveComplexityComputerTest.bsl"); // when Computer cognitiveComplexityComputer = diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CyclomaticComplexityComputerTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CyclomaticComplexityComputerTest.java index b60d5447122..6ed2e6e1189 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CyclomaticComplexityComputerTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CyclomaticComplexityComputerTest.java @@ -21,9 +21,10 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; +import com.github._1c_syntax.ls_core.context.computer.Computer; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -38,8 +39,8 @@ class CyclomaticComplexityComputerTest { void compute() { // given - DocumentContext documentContext - = TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/CyclomaticComplexityComputerTest.bsl"); + BSLDocumentContext documentContext + = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/CyclomaticComplexityComputerTest.bsl"); // when Computer cyclomaticComplexityComputer = diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/MethodSymbolComputerTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/MethodSymbolComputerTest.java index 04a2641d23c..96abd3f219c 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/MethodSymbolComputerTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/MethodSymbolComputerTest.java @@ -21,14 +21,14 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.ParameterDefinition; import com.github._1c_syntax.bsl.languageserver.context.symbol.annotations.AnnotationKind; import com.github._1c_syntax.bsl.languageserver.context.symbol.annotations.CompilerDirectiveKind; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import com.github._1c_syntax.utils.Absolute; import org.apache.commons.io.FileUtils; import org.junit.jupiter.api.Test; @@ -53,12 +53,12 @@ class MethodSymbolComputerTest { private static final String PATH_TO_CATALOG_MODULE_FILE = "Catalogs/Справочник1/Ext/ObjectModule.bsl"; @Autowired - private ServerContext serverContext; + private BSLServerContext serverContext; @Test void testMethodSymbolComputer() { - DocumentContext documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/MethodSymbolComputerTest.bsl"); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/MethodSymbolComputerTest.bsl"); List methods = documentContext.getSymbolTree().getMethods(); assertThat(methods.size()).isEqualTo(23); @@ -151,7 +151,7 @@ void testMethodSymbolComputer() { @Test void testAnnotation() { - DocumentContext documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/MethodSymbolComputerTest.bsl"); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/MethodSymbolComputerTest.bsl"); List methods = documentContext.getSymbolTree().getMethods(); // CUSTOM @@ -201,7 +201,7 @@ void testAnnotation() { @Test void testParameters() { - DocumentContext documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/MethodSymbolComputerTest.bsl"); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/MethodSymbolComputerTest.bsl"); List methods = documentContext.getSymbolTree().getMethods(); List parameters = methods.get(2).getParameters(); @@ -226,7 +226,7 @@ void testParameters() { @Test void testDeprecated() { - DocumentContext documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/MethodSymbolComputerTest.bsl"); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/MethodSymbolComputerTest.bsl"); List methods = documentContext.getSymbolTree().getMethods(); MethodSymbol methodSymbol = methods.get(2); @@ -248,7 +248,7 @@ void testDeprecated() { void testMdoRef() throws IOException { var path = Absolute.path(PATH_TO_METADATA); - serverContext.setConfigurationRoot(path); + serverContext.setProjectRoot(path); checkModule(serverContext, PATH_TO_MODULE_FILE, "CommonModule.ПервыйОбщийМодуль", 5); checkModule(serverContext, PATH_TO_CATALOG_FILE, "Catalog.Справочник1", 1); checkModule(serverContext, PATH_TO_CATALOG_MODULE_FILE, "Catalog.Справочник1", 1); @@ -257,7 +257,7 @@ void testMdoRef() throws IOException { @Test void testParseError() { - DocumentContext documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/MethodSymbolComputerTestParseError.bsl"); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/MethodSymbolComputerTestParseError.bsl"); List methods = documentContext.getSymbolTree().getMethods(); assertThat(methods.get(0).getName()).isEqualTo("Выполнить"); @@ -273,14 +273,14 @@ private static void checkCompilerDirective_for_AtClient_AndAnnotation_After(Meth } private void checkModule( - ServerContext serverContext, + BSLServerContext serverContext, String path, String mdoRef, int methodsCount ) throws IOException { var file = new File(PATH_TO_METADATA, path); var uri = Absolute.uri(file); - var documentContext = serverContext.addDocument(uri, FileUtils.readFileToString(file, StandardCharsets.UTF_8)); + var documentContext = (BSLDocumentContext) serverContext.addDocument(uri, FileUtils.readFileToString(file, StandardCharsets.UTF_8)); List methods = documentContext.getSymbolTree().getMethods(); assertThat(methods.size()).isEqualTo(methodsCount); assertThat(methods.get(0).getName()).isEqualTo("Тест"); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputerTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputerTest.java index 71f1537ed08..3fe15ad4634 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputerTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputerTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -36,8 +36,8 @@ class QueryComputerTest { @Test void compute() { // given - DocumentContext documentContext - = TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/QueryComputerTest.bsl"); + BSLDocumentContext documentContext + = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/context/computer/QueryComputerTest.bsl"); // when var queries = documentContext.getQueries(); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/VariableSymbolTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/VariableSymbolTest.java index 6a3f0fa5470..296a425b3b8 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/VariableSymbolTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/context/computer/VariableSymbolTest.java @@ -21,12 +21,12 @@ */ package com.github._1c_syntax.bsl.languageserver.context.computer; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.VariableSymbol; import com.github._1c_syntax.bsl.languageserver.context.symbol.variable.VariableDescription; import com.github._1c_syntax.bsl.languageserver.context.symbol.variable.VariableKind; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -40,12 +40,12 @@ @SpringBootTest class VariableSymbolTest { - static DocumentContext documentContext; + static BSLDocumentContext documentContext; static List variableSymbols; @BeforeEach void setup() { - documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/context/symbol/variableSymbolTest.bsl"); + documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/context/symbol/variableSymbolTest.bsl"); variableSymbols = documentContext.getSymbolTree().getVariables(); } diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractDiagnosticTest.java index bf92905f291..c1f88ae7e41 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractDiagnosticTest.java @@ -21,11 +21,12 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; -import com.github._1c_syntax.bsl.languageserver.diagnostics.infrastructure.DiagnosticConfiguration; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.diagnostics.infrastructure.DiagnosticConfiguration; import com.github._1c_syntax.utils.Absolute; import lombok.SneakyThrows; import org.apache.commons.io.IOUtils; @@ -51,9 +52,9 @@ abstract class AbstractDiagnosticTest { @Autowired private DiagnosticConfiguration diagnosticConfiguration; @Autowired - protected ServerContext context; + protected BSLServerContext context; @Autowired - protected LanguageServerConfiguration configuration; + protected BSLLanguageServerConfiguration configuration; private final Class diagnosticClass; protected T diagnosticInstance; @@ -75,7 +76,7 @@ protected void initServerContext(String path) { } protected void initServerContext(Path configurationRoot) { - context.setConfigurationRoot(configurationRoot); + context.setProjectRoot(configurationRoot); context.populateContext(); } @@ -84,12 +85,12 @@ protected List getDiagnostics(DocumentContext documentContext) { } protected List getDiagnostics() { - DocumentContext documentContext = getDocumentContext(); + var documentContext = getDocumentContext(); return getDiagnostics(documentContext); } protected List getDiagnostics(String simpleFileName) { - DocumentContext documentContext = getDocumentContext(simpleFileName); + var documentContext = getDocumentContext(simpleFileName); return getDiagnostics(documentContext); } @@ -102,12 +103,12 @@ protected List getQuickFixes(Diagnostic diagnostic, DocumentContext } protected List getQuickFixes(Diagnostic diagnostic, Range range) { - DocumentContext documentContext = getDocumentContext(); + var documentContext = getDocumentContext(); return getQuickFixes(documentContext, Collections.singletonList(diagnostic), range); } protected List getQuickFixes(Range range) { - DocumentContext documentContext = getDocumentContext(); + var documentContext = getDocumentContext(); List diagnostics = this.diagnosticInstance.getDiagnostics(documentContext); return getQuickFixes(documentContext, diagnostics, range); @@ -125,7 +126,7 @@ private List getQuickFixes(DocumentContext documentContext, List diagnosticInfos; + private Map diagnosticInfos; @Autowired - private LanguageServerConfiguration configuration; + private BSLLanguageServerConfiguration configuration; @Test void testAllDiagnosticsHaveMetadataAnnotation() { // when - List> diagnosticClasses = diagnosticInfos.values().stream() - .map(DiagnosticInfo::getDiagnosticClass).collect(Collectors.toList()); + var diagnosticClasses = diagnosticInfos.values().stream() + .map(coreDiagnosticInfo -> (BSLDiagnosticInfo) coreDiagnosticInfo) + .map(BSLDiagnosticInfo::getDiagnosticClass).collect(Collectors.toList()); // then assertThat(diagnosticClasses) @@ -78,7 +79,7 @@ void testAllDiagnosticsHaveDiagnosticMessage() { @Test void testAllDiagnosticsHaveDescriptionResource() { assertThatCode(() -> diagnosticInfos.values().forEach(diagnosticInfo - -> assertThat(diagnosticInfo.getDescription()).isNotEmpty())) + -> assertThat(((BSLDiagnosticInfo) diagnosticInfo).getDescription()).isNotEmpty())) .doesNotThrowAnyException(); } @@ -86,8 +87,8 @@ void testAllDiagnosticsHaveDescriptionResource() { void testAllDiagnosticsHaveTags() { assertThatCode(() -> diagnosticInfos.values().forEach(diagnosticInfo -> assertThat( - diagnosticInfo.getTags().size() > 0 - && diagnosticInfo.getTags().size() <= 3) + ((BSLDiagnosticInfo) diagnosticInfo).getTags().size() > 0 + && ((BSLDiagnosticInfo) diagnosticInfo).getTags().size() <= 3) .isTrue())) .doesNotThrowAnyException(); } @@ -111,7 +112,7 @@ void allParametersHaveResources(Language language) { boolean allParametersHaveDescription; try { - var info = new DiagnosticInfo(diagnosticInfo.getDiagnosticClass(), config); + var info = new BSLDiagnosticInfo(diagnosticInfo.getDiagnosticClass(), config); allParametersHaveDescription = info.getParameters().stream() .map(DiagnosticParameterInfo::getDescription) .noneMatch(String::isEmpty); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CachedPublicDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CachedPublicDiagnosticTest.java index 317bef6c503..e9964c07b0d 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CachedPublicDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CachedPublicDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.mdclasses.metadata.additional.ReturnValueReuse; @@ -49,7 +49,7 @@ class CachedPublicDiagnosticTest extends AbstractDiagnosticTest diagnostics = getDiagnostics(); final Diagnostic firstDiagnostic = diagnostics.get(0); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeOutOfRegionDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeOutOfRegionDiagnosticTest.java index fbfad99173b..48a5335ab3f 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeOutOfRegionDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeOutOfRegionDiagnosticTest.java @@ -21,6 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import org.eclipse.lsp4j.Diagnostic; @@ -106,7 +107,7 @@ void testExecute() { } private List getDiagnostics(String fileName, ModuleType moduleType) { - var documentContext = spy(TestUtils.getDocumentContext(getText(fileName))); + var documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext(getText(fileName))); doReturn(moduleType).when(documentContext).getModuleType(); return getDiagnostics(documentContext); } diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnosticTest.java index 1012ebd065e..4e68cdc8b6f 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnosticTest.java @@ -21,6 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.Diagnostic; import org.junit.jupiter.api.Test; @@ -77,7 +78,7 @@ void testQuickFixRemoveCode() { .hasSize(1); final CodeAction fix = quickFixes.get(0); - assertThat(fix).of(diagnosticInstance).in(getDocumentContext()).fixes(diagnostics.get(0)); + assertThat(fix).of(diagnosticInstance).in((BSLDocumentContext) getDocumentContext()).fixes(diagnostics.get(0)); } } \ No newline at end of file diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleAssignDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleAssignDiagnosticTest.java index 8101a24d01c..bd3e9780010 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleAssignDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleAssignDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.metadata.Configuration; import com.github._1c_syntax.utils.Absolute; @@ -58,7 +58,7 @@ void test() { Path testFile = Paths.get(PATH_TO_MODULE_FILE).toAbsolutePath(); - DocumentContext documentContext = TestUtils.getDocumentContext( + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleInvalidTypeDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleInvalidTypeDiagnosticTest.java index ed835bc1cb0..c6397ba710f 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleInvalidTypeDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleInvalidTypeDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.utils.Absolute; @@ -49,7 +49,7 @@ class CommonModuleInvalidTypeDiagnosticTest extends AbstractDiagnosticTest { private CommonModule module; - private DocumentContext documentContext; + private BSLDocumentContext documentContext; CommonModuleNameCachedDiagnosticTest() { super(CommonModuleNameCachedDiagnostic.class); @@ -171,7 +171,7 @@ void getDocumentContextFromFile() { initServerContext(path); var configuration = context.getConfiguration(); - documentContext = spy(TestUtils.getDocumentContext( + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientDiagnosticTest.java index b950e941173..1dc43b4f342 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.utils.Absolute; @@ -43,7 +43,7 @@ @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS) class CommonModuleNameClientDiagnosticTest extends AbstractDiagnosticTest { - private DocumentContext documentContext; + private BSLDocumentContext documentContext; private CommonModule module; CommonModuleNameClientDiagnosticTest() { @@ -172,7 +172,7 @@ void getDocumentContextFromFile() { initServerContext(path); var configuration = context.getConfiguration(); - documentContext = spy(TestUtils.getDocumentContext( + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientServerDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientServerDiagnosticTest.java index eabbe097201..ed2ea7ac5d9 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientServerDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameClientServerDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.utils.Absolute; @@ -44,7 +44,7 @@ @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS) class CommonModuleNameClientServerDiagnosticTest extends AbstractDiagnosticTest { private CommonModule module; - private DocumentContext documentContext; + private BSLDocumentContext documentContext; CommonModuleNameClientServerDiagnosticTest() { super(CommonModuleNameClientServerDiagnostic.class); @@ -171,7 +171,7 @@ void getDocumentContextFromFile() { initServerContext(path); var configuration = context.getConfiguration(); - documentContext = spy(TestUtils.getDocumentContext( + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameFullAccessDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameFullAccessDiagnosticTest.java index dc33b08fe3a..2b92fecc670 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameFullAccessDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameFullAccessDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.utils.Absolute; @@ -43,7 +43,7 @@ @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS) class CommonModuleNameFullAccessDiagnosticTest extends AbstractDiagnosticTest { - private DocumentContext documentContext; + private BSLDocumentContext documentContext; private CommonModule module; CommonModuleNameFullAccessDiagnosticTest() { @@ -122,7 +122,7 @@ void getDocumentContextFromFile() { initServerContext(path); var configuration = context.getConfiguration(); - documentContext = spy(TestUtils.getDocumentContext( + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalClientDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalClientDiagnosticTest.java index b5e4f6c34c6..11a41fc5080 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalClientDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalClientDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.utils.Absolute; @@ -44,7 +44,7 @@ @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS) class CommonModuleNameGlobalClientDiagnosticTest extends AbstractDiagnosticTest { private CommonModule module; - private DocumentContext documentContext; + private BSLDocumentContext documentContext; CommonModuleNameGlobalClientDiagnosticTest() { super(CommonModuleNameGlobalClientDiagnostic.class); @@ -212,7 +212,7 @@ void getDocumentContextFromFile() { initServerContext(path); var configuration = context.getConfiguration(); - documentContext = spy(TestUtils.getDocumentContext( + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalDiagnosticTest.java index 0759084203a..161f32468cb 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameGlobalDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.utils.Absolute; @@ -43,7 +43,7 @@ @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS) class CommonModuleNameGlobalDiagnosticTest extends AbstractDiagnosticTest { - private DocumentContext documentContext; + private BSLDocumentContext documentContext; private CommonModule module; CommonModuleNameGlobalDiagnosticTest() { @@ -121,7 +121,7 @@ void getDocumentContextFromFile() { initServerContext(path); var configuration = context.getConfiguration(); - documentContext = spy(TestUtils.getDocumentContext( + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameServerCallDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameServerCallDiagnosticTest.java index 2a898e1fd3e..eed45b18777 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameServerCallDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameServerCallDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.utils.Absolute; @@ -45,7 +45,7 @@ class CommonModuleNameServerCallDiagnosticTest extends AbstractDiagnosticTest { private CommonModule module; - private DocumentContext documentContext; + private BSLDocumentContext documentContext; CommonModuleNameServerCallDiagnosticTest() { super(CommonModuleNameServerCallDiagnostic.class); @@ -152,7 +152,7 @@ void getDocumentContextFromFile() { initServerContext(path); var configuration = context.getConfiguration(); - documentContext = spy(TestUtils.getDocumentContext( + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameWordsDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameWordsDiagnosticTest.java index 665c35da71c..e7e0afa2ce1 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameWordsDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommonModuleNameWordsDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.utils.Absolute; @@ -46,7 +46,7 @@ class CommonModuleNameWordsDiagnosticTest extends AbstractDiagnosticTest { private CommonModule module; - private DocumentContext documentContext; + private BSLDocumentContext documentContext; CommonModuleNameWordsDiagnosticTest() { super(CommonModuleNameWordsDiagnostic.class); @@ -124,7 +124,7 @@ void getDocumentContextFromFile() { initServerContext(path); var configuration = context.getConfiguration(); - documentContext = spy(TestUtils.getDocumentContext( + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveLostDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveLostDiagnosticTest.java index b391381862e..828703ca5c6 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveLostDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CompilationDirectiveLostDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import org.eclipse.lsp4j.Diagnostic; import org.junit.jupiter.api.Test; @@ -37,7 +37,7 @@ class CompilationDirectiveLostDiagnosticTest extends AbstractDiagnosticTest diagnostics = getDiagnostics(documentContext); assertThat(diagnostics).hasSize(1); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ConsecutiveEmptyLinesDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ConsecutiveEmptyLinesDiagnosticTest.java index 72cccb07654..309266de74b 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ConsecutiveEmptyLinesDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ConsecutiveEmptyLinesDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.Diagnostic; @@ -259,7 +259,7 @@ void testQuickFix() { } private void checkQuickFixes(String module, boolean haveFix) { - final DocumentContext documentContext = TestUtils.getDocumentContext(module); + final BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContext(module); List diagnostics = getDiagnostics(documentContext); diagnostics.forEach(diagnostic -> checkFix(documentContext, diagnostic, haveFix)); @@ -284,7 +284,7 @@ void testQuickFixOneLine() { checkQuickFixes(module, true); } - private void checkFix(DocumentContext documentContext, Diagnostic diagnostic, boolean haveFix) { + private void checkFix(BSLDocumentContext documentContext, Diagnostic diagnostic, boolean haveFix) { List quickFixes = getQuickFixes(diagnostic, documentContext); assertThat(quickFixes).hasSize(1); @@ -304,7 +304,7 @@ private void checkFix(DocumentContext documentContext, Diagnostic diagnostic, bo } private List getDiagnosticsForText(String textDocumentContent) { - DocumentContext documentContext = TestUtils.getDocumentContext(textDocumentContent); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContext(textDocumentContent); return getDiagnostics(documentContext); } } diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DataExchangeLoadingDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DataExchangeLoadingDiagnosticTest.java index fa742f99ae5..e76a6b6b7a1 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DataExchangeLoadingDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DataExchangeLoadingDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.Diagnostic; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedTypeManagedFormDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedTypeManagedFormDiagnosticTest.java index dee160d7453..fe986da74d2 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedTypeManagedFormDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DeprecatedTypeManagedFormDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.Diagnostic; import org.junit.jupiter.api.Test; @@ -53,7 +53,7 @@ void test() { void testQuickFix() { - final DocumentContext documentContext = getDocumentContext(); + final BSLDocumentContext documentContext = (BSLDocumentContext) getDocumentContext(); List diagnostics = getDiagnostics(); final Diagnostic ruDiagnostic = diagnostics.get(0); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticsTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticsTest.java index 9dc5d4b5edc..10c7be084b2 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticsTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticsTest.java @@ -21,14 +21,15 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.Mode; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; import com.github._1c_syntax.bsl.languageserver.configuration.diagnostics.SkipSupport; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; import com.github._1c_syntax.bsl.languageserver.context.FileType; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.infrastructure.DiagnosticsConfiguration; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; +import com.github._1c_syntax.ls_core.configuration.diagnostics.Mode; +import com.github._1c_syntax.ls_core.diagnostics.CoreDiagnostic; import com.github._1c_syntax.mdclasses.metadata.SupportConfiguration; import com.github._1c_syntax.mdclasses.metadata.additional.CompatibilityMode; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; @@ -52,23 +53,23 @@ class DiagnosticsTest { @Autowired - private LanguageServerConfiguration configuration; + private BSLLanguageServerConfiguration configuration; @Autowired - protected ServerContext context; + protected BSLServerContext context; @Autowired protected DiagnosticsConfiguration diagnosticsConfiguration; - private DocumentContext documentContext; + private BSLDocumentContext documentContext; @BeforeEach void createDocumentContext() { - documentContext = TestUtils.getDocumentContext(""); + documentContext = (BSLDocumentContext) TestUtils.getDocumentContext(""); } @Test void testCompatibilityMode() { // given - documentContext = spy(TestUtils.getDocumentContext("")); + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext("")); var serverContext = spy(context); var bslConfiguration = spy(serverContext.getConfiguration()); @@ -94,7 +95,7 @@ void testCompatibilityMode() { @Test void testModuleType() { // given - documentContext = spy(TestUtils.getDocumentContext("")); + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext("")); // when-then pairs doReturn(ModuleType.CommandModule).when(documentContext).getModuleType(); @@ -117,7 +118,7 @@ void testModuleType() { @Test void testAllScope() { // given - documentContext = spy(TestUtils.getDocumentContext("")); + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext("")); // when-then pairs doReturn(ModuleType.CommonModule).when(documentContext).getModuleType(); @@ -140,7 +141,7 @@ void testAllScope() { void testSkipSupport() { // given - documentContext = spy(TestUtils.getDocumentContext("А = 0")); + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext("А = 0")); var supportConfiguration = mock(SupportConfiguration.class); // when-then pairs ComputeDiagnosticsSkipSupport.NEVER @@ -274,7 +275,7 @@ void testDiagnosticModeExcept() { configuration.getDiagnosticsOptions().setParameters(rules); assertThat(diagnosticsConfiguration.diagnostics(documentContext)) .hasSizeGreaterThan(10) - .flatExtracting(BSLDiagnostic::getClass) + .flatExtracting(CoreDiagnostic::getClass) .doesNotContain(TypoDiagnostic.class) .doesNotContain(TooManyReturnsDiagnostic.class) .contains(TernaryOperatorUsageDiagnostic.class) diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyCodeBlockDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyCodeBlockDiagnosticTest.java index 9ad189d6fcf..3c6fc68b9fb 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyCodeBlockDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyCodeBlockDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.Diagnostic; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyRegionDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyRegionDiagnosticTest.java index 35f170075a2..893bb3b6c34 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyRegionDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyRegionDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.Diagnostic; import org.junit.jupiter.api.Test; @@ -52,7 +52,7 @@ void test() { @Test void testQuickFix() { - final DocumentContext documentContext = getDocumentContext(); + var documentContext = (BSLDocumentContext) getDocumentContext(); List diagnostics = getDiagnostics(); final Diagnostic externalRegionDiagnostic = diagnostics.get(2); final Diagnostic internalRegionDiagnostic = diagnostics.get(1); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyStatementDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyStatementDiagnosticTest.java index 0a5e192b166..9c0987a0f2c 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyStatementDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyStatementDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionKind; import org.eclipse.lsp4j.Diagnostic; diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeInCommonModuleDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeInCommonModuleDiagnosticTest.java index a7a7d57f393..f1dff144f02 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeInCommonModuleDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ExecuteExternalCodeInCommonModuleDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.CommonModule; import com.github._1c_syntax.utils.Absolute; @@ -45,7 +45,7 @@ class ExecuteExternalCodeInCommonModuleDiagnosticTest extends AbstractDiagnostic private static final String PATH_TO_MODULE_FILE = "src/test/resources/metadata/CommonModules/ПервыйОбщийМодуль/Ext/Module.bsl"; private CommonModule module; - private DocumentContext documentContext; + private BSLDocumentContext documentContext; @Test void testIsServer() { @@ -121,7 +121,7 @@ private void getDocumentContextFromFile() { initServerContext(path); var configuration = spy(context.getConfiguration()); - documentContext = spy(TestUtils.getDocumentContext( + documentContext = spy((BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), getText(), context diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedCodeBlockDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedCodeBlockDiagnosticTest.java index 872d4352163..a6b5daabf47 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedCodeBlockDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedCodeBlockDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticRelatedInformation; import org.eclipse.lsp4j.Range; diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedConditionDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedConditionDiagnosticTest.java index d6f346aa7a3..f6d5e58103d 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedConditionDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedConditionDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticRelatedInformation; import org.eclipse.lsp4j.Range; diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MetadataObjectNameLengthDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MetadataObjectNameLengthDiagnosticTest.java index c0e71538b30..285f81cbc93 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MetadataObjectNameLengthDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MetadataObjectNameLengthDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.mdo.MDObjectBase; import lombok.SneakyThrows; @@ -49,7 +49,7 @@ class MetadataObjectNameLengthDiagnosticTest extends AbstractDiagnosticTest diagnosticInfos; + private Collection diagnosticInfos; @Test @ExpectSystemExitWithStatus(0) @@ -64,7 +65,7 @@ void test() { String[] args = new String[]{"--analyze", "--srcDir", "./src/test/resources/diagnostics"}; // when - BSLLSPLauncher.main(args); + LSLauncher.main(args); // then assertThat(true).isTrue(); @@ -104,7 +105,8 @@ void testIAllDiagnostics() { // получим все возможные коды диагностик и положим в мапу "включенным" Map>> diagnostics = diagnosticInfos.stream() - .map(DiagnosticInfo::getCode) + .map(coreDiagnosticInfo -> (BSLDiagnosticInfo) coreDiagnosticInfo) + .map(BSLDiagnosticInfo::getDiagnosticCode) .collect(Collectors.toMap( diagnosticCode -> diagnosticCode.getStringValue(), diagnosticCode -> Either.forLeft(true), diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SpaceAtStartCommentDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SpaceAtStartCommentDiagnosticTest.java index abefcdeb5c1..bdd2321afb3 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SpaceAtStartCommentDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SpaceAtStartCommentDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionKind; import org.eclipse.lsp4j.Diagnostic; diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ThisObjectAssignDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ThisObjectAssignDiagnosticTest.java index b8036d616dc..19367f2b086 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ThisObjectAssignDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ThisObjectAssignDiagnosticTest.java @@ -21,7 +21,8 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; import com.github._1c_syntax.mdclasses.metadata.additional.CompatibilityMode; import com.github._1c_syntax.mdclasses.metadata.additional.ModuleType; import org.junit.jupiter.api.Test; @@ -37,7 +38,7 @@ class ThisObjectAssignDiagnosticTest extends AbstractDiagnosticTest diagnostics = getDiagnosticsFiltered(documentContext); @@ -49,7 +50,7 @@ void test832() { @Test void test833() { - DocumentContext documentContext = setCompatibilityMode(new CompatibilityMode(3, 4)); + BSLDocumentContext documentContext = setCompatibilityMode(new CompatibilityMode(3, 4)); // List diagnostics = getDiagnosticsFiltered(documentContext); // assertThat(diagnostics).hasSize(1); @@ -61,7 +62,7 @@ void test833() { @Test void test836() { - DocumentContext documentContext = setCompatibilityMode(new CompatibilityMode(3, 14)); + BSLDocumentContext documentContext = setCompatibilityMode(new CompatibilityMode(3, 14)); // List diagnostics = getDiagnosticsFiltered(documentContext); // assertThat(diagnostics).hasSize(1); @@ -70,10 +71,10 @@ void test836() { } - private DocumentContext setCompatibilityMode(CompatibilityMode version) { + private BSLDocumentContext setCompatibilityMode(CompatibilityMode version) { - var documentContext = spy(getDocumentContext()); - var serverContext = spy(documentContext.getServerContext()); + var documentContext = spy((BSLDocumentContext) getDocumentContext()); + var serverContext = spy((BSLServerContext) documentContext.getServerContext()); var configuration = spy(serverContext.getConfiguration()); when(documentContext.getServerContext()).thenReturn(serverContext); @@ -85,7 +86,7 @@ private DocumentContext setCompatibilityMode(CompatibilityMode version) { return documentContext; } -// private List getDiagnosticsFiltered(DocumentContext documentContext) { +// private List getDiagnosticsFiltered(BSLDocumentContext documentContext) { //// DiagnosticSupplier diagnosticSupplier = new DiagnosticSupplier(LanguageServerConfiguration.create()); //// //// return diagnosticSupplier diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TimeoutsInExternalResourcesDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TimeoutsInExternalResourcesDiagnosticTest.java index 8de3f2b08eb..2a7ce152b20 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TimeoutsInExternalResourcesDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TimeoutsInExternalResourcesDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import com.github._1c_syntax.mdclasses.metadata.additional.CompatibilityMode; @@ -95,7 +95,7 @@ void testCompatibilityMode8310() { // when Path testFile = Paths.get("./src/test/resources/diagnostics/TimeoutsInExternalResourcesDiagnostic.bsl").toAbsolutePath(); initServerContext(Paths.get("./src/test/resources/metadata").toAbsolutePath()); - DocumentContext newDocumentContext = TestUtils.getDocumentContext( + var newDocumentContext = (BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context @@ -104,9 +104,9 @@ void testCompatibilityMode8310() { List diagnostics = getDiagnostics(newDocumentContext); // then - assertThat(newDocumentContext.getServerContext().getConfiguration().getCompatibilityMode()).isNotNull(); + assertThat(newDocumentContext.getMDConfiguration().getCompatibilityMode()).isNotNull(); assertThat(CompatibilityMode.compareTo( - newDocumentContext.getServerContext().getConfiguration().getCompatibilityMode(), + newDocumentContext.getMDConfiguration().getCompatibilityMode(), DiagnosticCompatibilityMode.COMPATIBILITY_MODE_8_3_10.getCompatibilityMode())).isZero(); assertThat(diagnostics).hasSize(9); @@ -139,7 +139,7 @@ void testCompatibilityMode836() { Path testFile = Paths.get("./src/test/resources/diagnostics/TimeoutsInExternalResourcesDiagnostic836.bsl").toAbsolutePath(); initServerContext(tempDir.toAbsolutePath()); - DocumentContext newDocumentContext = TestUtils.getDocumentContext( + var newDocumentContext = (BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context @@ -148,9 +148,9 @@ void testCompatibilityMode836() { List diagnostics = getDiagnostics(newDocumentContext); // then - assertThat(newDocumentContext.getServerContext().getConfiguration().getCompatibilityMode()).isNotNull(); + assertThat(newDocumentContext.getMDConfiguration().getCompatibilityMode()).isNotNull(); assertThat(CompatibilityMode.compareTo( - newDocumentContext.getServerContext().getConfiguration().getCompatibilityMode(), + newDocumentContext.getMDConfiguration().getCompatibilityMode(), DiagnosticCompatibilityMode.COMPATIBILITY_MODE_8_3_6.getCompatibilityMode())).isZero(); assertThat(diagnostics).hasSize(9); @@ -183,7 +183,7 @@ void testCompatibilityMode837() { Path testFile = Paths.get("./src/test/resources/diagnostics/TimeoutsInExternalResourcesDiagnostic837.bsl").toAbsolutePath(); initServerContext(tempDir.toAbsolutePath()); - DocumentContext newDocumentContext = TestUtils.getDocumentContext( + var newDocumentContext = (BSLDocumentContext) TestUtils.getDocumentContext( testFile.toUri(), FileUtils.readFileToString(testFile.toFile(), StandardCharsets.UTF_8), context @@ -192,9 +192,9 @@ void testCompatibilityMode837() { List diagnostics = getDiagnostics(newDocumentContext); // then - assertThat(newDocumentContext.getServerContext().getConfiguration().getCompatibilityMode()).isNotNull(); + assertThat(newDocumentContext.getMDConfiguration().getCompatibilityMode()).isNotNull(); assertThat(CompatibilityMode.compareTo( - newDocumentContext.getServerContext().getConfiguration().getCompatibilityMode(), + newDocumentContext.getMDConfiguration().getCompatibilityMode(), DiagnosticCompatibilityMode.COMPATIBILITY_MODE_8_3_7.getCompatibilityMode())).isZero(); assertThat(diagnostics).hasSize(9); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingModalWindowsDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingModalWindowsDiagnosticTest.java index 32a2e4763d5..8b6ba1ed7a7 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingModalWindowsDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingModalWindowsDiagnosticTest.java @@ -21,9 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.utils.Ranges; import com.github._1c_syntax.mdclasses.metadata.additional.UseMode; import com.github._1c_syntax.utils.Absolute; import org.eclipse.lsp4j.Diagnostic; @@ -40,7 +40,7 @@ class UsingModalWindowsDiagnosticTest extends AbstractDiagnosticTest { @SpyBean - private ServerContext context; + private BSLServerContext context; UsingModalWindowsDiagnosticTest() { super(UsingModalWindowsDiagnostic.class); @@ -61,7 +61,7 @@ void testDontUse() { @Test void testUse() { - DocumentContext documentContext = getDocumentContextWithUseFlag(UseMode.USE); + var documentContext = getDocumentContextWithUseFlag(UseMode.USE); List diagnostics = getDiagnostics(documentContext); assertThat(diagnostics).isEmpty(); } @@ -69,7 +69,7 @@ void testUse() { @Test void testUseWithForce() { - DocumentContext documentContext = getDocumentContextWithUseFlag(UseMode.USE); + var documentContext = getDocumentContextWithUseFlag(UseMode.USE); Map configuration = diagnosticInstance.getInfo().getDefaultConfiguration(); configuration.put("forceModalityMode", true); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingSynchronousCallsDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingSynchronousCallsDiagnosticTest.java index f798c5e29f8..f2c6230b2aa 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingSynchronousCallsDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingSynchronousCallsDiagnosticTest.java @@ -21,9 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.context.DocumentContext; +import com.github._1c_syntax.ls_core.utils.Ranges; import com.github._1c_syntax.mdclasses.metadata.additional.UseMode; import com.github._1c_syntax.utils.Absolute; import org.eclipse.lsp4j.Diagnostic; @@ -113,7 +113,7 @@ void testDontUse() { @Test void testUse() { - DocumentContext documentContext = getDocumentContextWithUseFlag(UseMode.USE); + var documentContext = getDocumentContextWithUseFlag(UseMode.USE); List diagnostics = getDiagnostics(documentContext); assertThat(diagnostics).isEmpty(); } diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingThisFormDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingThisFormDiagnosticTest.java index 640ec75f067..003a7f2bf04 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingThisFormDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingThisFormDiagnosticTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.Diagnostic; import org.junit.jupiter.api.Test; @@ -65,7 +65,7 @@ void runTest() { @Test void runQuickFixTest() { - final DocumentContext documentContext = getDocumentContext(); + var documentContext = (BSLDocumentContext) getDocumentContext(); List diagnostics = getDiagnostics(); final Diagnostic firstDiagnostic = diagnostics.get(0); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticInfoTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/BSLDiagnosticInfoTest.java similarity index 82% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticInfoTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/BSLDiagnosticInfoTest.java index 7d2c201bb7a..3de3cd3de58 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticInfoTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/BSLDiagnosticInfoTest.java @@ -21,12 +21,15 @@ */ package com.github._1c_syntax.bsl.languageserver.diagnostics.metadata; -import com.github._1c_syntax.bsl.languageserver.configuration.Language; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; import com.github._1c_syntax.bsl.languageserver.diagnostics.DeprecatedAttributes8312Diagnostic; import com.github._1c_syntax.bsl.languageserver.diagnostics.EmptyCodeBlockDiagnostic; import com.github._1c_syntax.bsl.languageserver.diagnostics.MultilingualStringHasAllDeclaredLanguagesDiagnostic; import com.github._1c_syntax.bsl.languageserver.diagnostics.UnusedLocalMethodDiagnostic; +import com.github._1c_syntax.ls_core.configuration.Language; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticParameterInfo; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticSeverity; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticType; import org.assertj.core.api.Assertions; import org.eclipse.lsp4j.DiagnosticTag; import org.eclipse.lsp4j.jsonrpc.messages.Either; @@ -39,17 +42,17 @@ import static com.github._1c_syntax.bsl.languageserver.util.Assertions.assertThat; @SpringBootTest -class DiagnosticInfoTest { +class BSLDiagnosticInfoTest { @Autowired - private LanguageServerConfiguration configuration; + private BSLLanguageServerConfiguration configuration; @Test void testParameter() { - DiagnosticInfo diagnosticInfo = new DiagnosticInfo(EmptyCodeBlockDiagnostic.class, configuration); + BSLDiagnosticInfo diagnosticInfo = new BSLDiagnosticInfo(EmptyCodeBlockDiagnostic.class, configuration); - Assertions.assertThat(diagnosticInfo.getCode()).isEqualTo(Either.forLeft("EmptyCodeBlock")); + Assertions.assertThat(diagnosticInfo.getDiagnosticCode()).isEqualTo(Either.forLeft("EmptyCodeBlock")); Assertions.assertThat(diagnosticInfo.getName()).isNotEmpty(); Assertions.assertThat(diagnosticInfo.getMessage()).isNotEmpty(); Assertions.assertThat(diagnosticInfo.getMessage("")).isNotEmpty(); @@ -86,13 +89,13 @@ void testParameter() { @Test void testLSPTags() { // given - var diagnosticInfo = new DiagnosticInfo(UnusedLocalMethodDiagnostic.class, configuration); + var diagnosticInfo = new BSLDiagnosticInfo(UnusedLocalMethodDiagnostic.class, configuration); // then assertThat(diagnosticInfo.getLSPTags()).contains(DiagnosticTag.Unnecessary); // given - diagnosticInfo = new DiagnosticInfo(DeprecatedAttributes8312Diagnostic.class, configuration); + diagnosticInfo = new BSLDiagnosticInfo(DeprecatedAttributes8312Diagnostic.class, configuration); // then assertThat(diagnosticInfo.getLSPTags()).contains(DiagnosticTag.Deprecated); @@ -100,9 +103,9 @@ void testLSPTags() { @Test void testParameterSuper() { - DiagnosticInfo diagnosticInfo = new DiagnosticInfo(MultilingualStringHasAllDeclaredLanguagesDiagnostic.class, configuration); + BSLDiagnosticInfo diagnosticInfo = new BSLDiagnosticInfo(MultilingualStringHasAllDeclaredLanguagesDiagnostic.class, configuration); - Assertions.assertThat(diagnosticInfo.getCode()).isEqualTo(Either.forLeft("MultilingualStringHasAllDeclaredLanguages")); + Assertions.assertThat(diagnosticInfo.getDiagnosticCode()).isEqualTo(Either.forLeft("MultilingualStringHasAllDeclaredLanguages")); Assertions.assertThat(diagnosticInfo.getName()).isNotEmpty(); Assertions.assertThat(diagnosticInfo.getMessage()).isNotEmpty(); Assertions.assertThat(diagnosticInfo.getMessage("")).isNotEmpty(); @@ -118,7 +121,6 @@ void testParameterSuper() { Assertions.assertThat(diagnosticInfo.getDefaultConfiguration().size()).isNotZero(); Assertions.assertThat(diagnosticInfo.getParameters().size()).isEqualTo(1); - DiagnosticParameterInfo parameter = diagnosticInfo.getParameters().get(0); assertThat(parameter.getDescription()) .isEqualTo("Заявленные языки"); @@ -142,7 +144,7 @@ void testParameterEn() { configuration.setLanguage(Language.EN); // when - DiagnosticInfo diagnosticEnInfo = new DiagnosticInfo(EmptyCodeBlockDiagnostic.class, configuration); + BSLDiagnosticInfo diagnosticEnInfo = new BSLDiagnosticInfo(EmptyCodeBlockDiagnostic.class, configuration); // then assertThat(diagnosticEnInfo.getParameters().get(0).getDescription()) diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProviderTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeActionProviderTest.java similarity index 85% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProviderTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeActionProviderTest.java index 489423afe0f..cc645b38b5e 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeActionProviderTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeActionProviderTest.java @@ -21,12 +21,12 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.CanonicalSpellingKeywordsDiagnostic; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCode; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; +import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.BSLDiagnosticInfo; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; +import com.github._1c_syntax.ls_core.diagnostics.metadata.DiagnosticCode; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.CodeActionContext; import org.eclipse.lsp4j.CodeActionKind; @@ -49,27 +49,27 @@ @SpringBootTest @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) -class CodeActionProviderTest { +class BSLCodeActionProviderTest { @Autowired - private CodeActionProvider codeActionProvider; + private BSLCodeActionProvider codeActionProvider; @Autowired - private LanguageServerConfiguration configuration; + private BSLLanguageServerConfiguration configuration; @Test void testGetCodeActions() { // given String filePath = "./src/test/resources/providers/codeAction.bsl"; - DocumentContext documentContext = TestUtils.getDocumentContextFromFile(filePath); + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile(filePath); List diagnostics = documentContext.getDiagnostics().stream() .filter(diagnostic -> { - DiagnosticInfo diagnosticInfo = new DiagnosticInfo( + BSLDiagnosticInfo diagnosticInfo = new BSLDiagnosticInfo( CanonicalSpellingKeywordsDiagnostic.class, configuration ); - DiagnosticCode diagnosticCode = diagnosticInfo.getCode(); + DiagnosticCode diagnosticCode = diagnosticInfo.getDiagnosticCode(); return diagnostic.getCode().equals(diagnosticCode); }) .collect(Collectors.toList()); @@ -102,7 +102,7 @@ void testGetCodeActions() { void testEmptyDiagnosticList() { // given String filePath = "./src/test/resources/providers/codeAction.bsl"; - DocumentContext documentContext = TestUtils.getDocumentContextFromFile(filePath); + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile(filePath); CodeActionParams params = new CodeActionParams(); TextDocumentIdentifier textDocumentIdentifier = new TextDocumentIdentifier(documentContext.getUri().toString()); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeLensProviderTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeLensProviderTest.java similarity index 92% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeLensProviderTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeLensProviderTest.java index d210788d306..35de037744a 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeLensProviderTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLCodeLensProviderTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import org.eclipse.lsp4j.CodeLens; @@ -37,17 +37,17 @@ @SpringBootTest @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) -class CodeLensProviderTest { +class BSLCodeLensProviderTest { @Autowired - private CodeLensProvider codeLensProvider; + private BSLCodeLensProvider codeLensProvider; @Test void testGetCodeLens() { // given String filePath = "./src/test/resources/providers/codeLens.bsl"; - DocumentContext documentContext = TestUtils.getDocumentContextFromFile(filePath); + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile(filePath); // when List codeLenses = codeLensProvider.getCodeLens(documentContext); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/DiagnosticProviderTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDiagnosticProviderTest.java similarity index 82% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/DiagnosticProviderTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDiagnosticProviderTest.java index 815e0dcc859..45de25c768f 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/DiagnosticProviderTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDiagnosticProviderTest.java @@ -21,8 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; +import com.github._1c_syntax.ls_core.providers.DiagnosticProvider; import org.eclipse.lsp4j.Diagnostic; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -33,7 +34,7 @@ import static org.assertj.core.api.AssertionsForClassTypes.assertThat; @SpringBootTest -class DiagnosticProviderTest { +class BSLDiagnosticProviderTest { @Autowired private DiagnosticProvider diagnosticProvider; @@ -43,8 +44,8 @@ void testComputeDiagnostics() { // given // TODO: это тест на новый getDiagnostics, а не на DiagnosticProvider - final DocumentContext documentContext - = TestUtils.getDocumentContextFromFile("./src/test/resources/providers/diagnosticProvider.bsl"); + final BSLDocumentContext documentContext + = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/providers/diagnosticProvider.bsl"); // when final List diagnostics = documentContext.getDiagnostics(); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentSymbolProviderTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentBSLSymbolProviderTest.java similarity index 93% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentSymbolProviderTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentBSLSymbolProviderTest.java index 80a2948130c..1839225089b 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentSymbolProviderTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentBSLSymbolProviderTest.java @@ -21,9 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.DocumentSymbol; import org.eclipse.lsp4j.SymbolInformation; import org.eclipse.lsp4j.SymbolKind; @@ -37,15 +37,15 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest -class DocumentSymbolProviderTest { +class BSLDocumentBSLSymbolProviderTest { @Autowired - private DocumentSymbolProvider documentSymbolProvider; + private BSLDocumentSymbolProvider documentSymbolProvider; @Test void testDocumentSymbol() { - DocumentContext documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/providers/documentSymbol.bsl"); + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/providers/documentSymbol.bsl"); List> documentSymbols = documentSymbolProvider.getDocumentSymbols(documentContext); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentLinkProviderTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentLinkProviderTest.java similarity index 91% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentLinkProviderTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentLinkProviderTest.java index 3cc19165a69..d0256f419dc 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentLinkProviderTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLDocumentLinkProviderTest.java @@ -21,10 +21,11 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.configuration.Language; -import com.github._1c_syntax.bsl.languageserver.configuration.LanguageServerConfiguration; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.configuration.BSLLanguageServerConfiguration; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; +import com.github._1c_syntax.ls_core.configuration.Language; +import com.github._1c_syntax.ls_core.providers.DocumentLinkProvider; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -35,10 +36,10 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest -class DocumentLinkProviderTest { +class BSLDocumentLinkProviderTest { @Autowired - private LanguageServerConfiguration configuration; + private BSLLanguageServerConfiguration configuration; @Autowired private DocumentLinkProvider documentLinkProvider; @@ -170,9 +171,9 @@ void testSiteRoot() { } @NotNull - private DocumentContext getDocumentContext() { + private BSLDocumentContext getDocumentContext() { var filePath = "./src/test/resources/providers/documentLinkProvider.bsl"; - var documentContext = TestUtils.getDocumentContextFromFile(filePath); + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile(filePath); documentContext.getDiagnostics(); return documentContext; } diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/FoldingRangeProviderTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFoldingRangeProviderTest.java similarity index 87% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/FoldingRangeProviderTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFoldingRangeProviderTest.java index ae05a6f075c..5524a059226 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/FoldingRangeProviderTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFoldingRangeProviderTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import org.eclipse.lsp4j.FoldingRange; import org.eclipse.lsp4j.FoldingRangeKind; @@ -34,15 +34,15 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest -class FoldingRangeProviderTest { +class BSLFoldingRangeProviderTest { @Autowired - private FoldingRangeProvider foldingRangeProvider; + private BSLFoldingRangeProvider foldingRangeProvider; @Test void testFoldingRange() { - DocumentContext documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/providers/foldingRange.bsl"); + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/providers/foldingRange.bsl"); List foldingRanges = foldingRangeProvider.getFoldingRange(documentContext); @@ -81,7 +81,7 @@ void testFoldingRange() { @Test void testFoldingRangeParseError() { - DocumentContext documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/providers/foldingRangeParseError.bsl"); + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/providers/foldingRangeParseError.bsl"); List foldingRanges = foldingRangeProvider.getFoldingRange(documentContext); assertThat(foldingRanges).isEmpty(); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/FormatProviderTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFormatProviderTest.java similarity index 91% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/FormatProviderTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFormatProviderTest.java index 5873b57d798..3098765ba37 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/FormatProviderTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLFormatProviderTest.java @@ -21,9 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.apache.commons.io.FileUtils; import org.eclipse.lsp4j.DocumentFormattingParams; import org.eclipse.lsp4j.DocumentRangeFormattingParams; @@ -45,10 +45,10 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest -class FormatProviderTest { +class BSLFormatProviderTest { @Autowired - private FormatProvider formatProvider; + private BSLFormatProvider formatProvider; @Test void testRangeFormat() throws IOException { @@ -74,7 +74,7 @@ void testRangeFormat() throws IOException { formattedFileContent = joiner.toString(); - DocumentContext documentContext = TestUtils.getDocumentContext( + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContext( URI.create(params.getTextDocument().getUri()), fileContent ); @@ -99,7 +99,7 @@ void testFormat() throws IOException { String fileContent = FileUtils.readFileToString(getTestFile(), StandardCharsets.UTF_8); String formattedFileContent = FileUtils.readFileToString(getFormattedTestFile(), StandardCharsets.UTF_8); - DocumentContext documentContext = TestUtils.getDocumentContext( + var documentContext = (BSLDocumentContext) TestUtils.getDocumentContext( URI.create(params.getTextDocument().getUri()), fileContent ); @@ -124,13 +124,13 @@ void testFormatUnaryMinus() { params.setOptions(new FormattingOptions(4, true)); String fileContent = "Возврат-1>-2"; - DocumentContext documentContext = TestUtils.getDocumentContext( + var documentContext = TestUtils.getDocumentContext( URI.create(params.getTextDocument().getUri()), fileContent ); // when - List textEdits = formatProvider.getFormatting(params, documentContext); + List textEdits = formatProvider.getFormatting(params, (BSLDocumentContext) documentContext); // then assertThat(textEdits).hasSize(1); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/HoverProviderTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLHoverProviderTest.java similarity index 83% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/HoverProviderTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLHoverProviderTest.java index 334a63318b5..289e494d3b0 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/HoverProviderTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLHoverProviderTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; import org.eclipse.lsp4j.Hover; import org.eclipse.lsp4j.HoverParams; @@ -35,17 +35,17 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest -class HoverProviderTest { +class BSLHoverProviderTest { @Autowired - private HoverProvider hoverProvider; + private BSLHoverProvider hoverProvider; @Test void getEmptyHover() { HoverParams params = new HoverParams(); params.setPosition(new Position(0, 0)); - DocumentContext documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/providers/hover.bsl"); + BSLDocumentContext documentContext =(BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/providers/hover.bsl"); Optional optionalHover = hoverProvider.getHover(params, documentContext); assertThat(optionalHover).isNotPresent(); @@ -56,7 +56,7 @@ void getHoverOverSubName() { HoverParams params = new HoverParams(); params.setPosition(new Position(0, 20)); - DocumentContext documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/providers/hover.bsl"); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile("./src/test/resources/providers/hover.bsl"); Optional optionalHover = hoverProvider.getHover(params, documentContext); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/SymbolProviderTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLSymbolProviderTest.java similarity index 95% rename from src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/SymbolProviderTest.java rename to src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLSymbolProviderTest.java index 3642c74bc91..2822af0a005 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/SymbolProviderTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/BSLSymbolProviderTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.providers; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; import com.github._1c_syntax.utils.Absolute; import lombok.SneakyThrows; import org.eclipse.lsp4j.SymbolKind; @@ -40,17 +40,17 @@ @SpringBootTest @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) -class SymbolProviderTest { +class BSLSymbolProviderTest { @Autowired - private ServerContext context; + private BSLServerContext context; @Autowired - private SymbolProvider symbolProvider; + private BSLSymbolProvider symbolProvider; @BeforeEach void before() { var configurationRoot = Absolute.path(PATH_TO_METADATA); - context.setConfigurationRoot(configurationRoot); + context.setProjectRoot(configurationRoot); context.populateContext(); } diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/ConsoleReporterTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/ConsoleReporterTest.java index 8dc3fbc556c..48a1bd41570 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/ConsoleReporterTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/ConsoleReporterTest.java @@ -21,11 +21,11 @@ */ package com.github._1c_syntax.bsl.languageserver.reporters; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.FileInfo; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticSeverity; import org.junit.jupiter.api.AfterEach; @@ -69,7 +69,7 @@ void report() { "test" ); - DocumentContext documentContext = TestUtils.getDocumentContext(""); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContext(""); String sourceDir = "."; FileInfo fileInfo = new FileInfo(sourceDir, documentContext, Collections.singletonList(diagnostic)); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericCoverageTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericCoverageTest.java index 7386a28fc69..64e4945b3e5 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericCoverageTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericCoverageTest.java @@ -23,7 +23,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.FileInfo; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; @@ -67,7 +67,7 @@ void report() throws IOException { String filePath = "./src/test/resources/context/DocumentContextLocForCoverTest.bsl"; // when - DocumentContext documentContext = TestUtils.getDocumentContextFromFile(filePath); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContextFromFile(filePath); FileInfo fileInfo = new FileInfo(sourceDir, documentContext, new ArrayList<>()); AnalysisInfo analysisInfo = new AnalysisInfo(LocalDateTime.now(), Collections.singletonList(fileInfo), sourceDir); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericReporterTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericReporterTest.java index cd18caab019..b572d588bb3 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericReporterTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericReporterTest.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.reporters; import com.fasterxml.jackson.databind.ObjectMapper; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticInfo; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.FileInfo; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.diagnostics.metadata.CoreDiagnosticInfo; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.apache.commons.io.FileUtils; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticRelatedInformation; @@ -59,7 +59,7 @@ class GenericReporterTest { private GenericIssueReporter reporter; @Autowired - private Map diagnosticInfos; + private Map diagnosticInfos; private final File file = new File("./bsl-generic-json.json"); @@ -86,7 +86,7 @@ void report() throws IOException { "message", DiagnosticSeverity.Error, "test-source", - firstInfo.getCode().getStringValue() + firstInfo.getDiagnosticCode().getStringValue() )); diagnostics.add(new Diagnostic( @@ -94,7 +94,7 @@ void report() throws IOException { "message4", DiagnosticSeverity.Error, "test-source2", - firstInfo.getCode().getStringValue() + firstInfo.getDiagnosticCode().getStringValue() )); diagnostics.add(new Diagnostic( @@ -102,10 +102,10 @@ void report() throws IOException { "message4", DiagnosticSeverity.Error, "test-source2", - secondInfo.getCode().getStringValue() + secondInfo.getDiagnosticCode().getStringValue() )); - DocumentContext documentContext = TestUtils.getDocumentContext(""); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContext(""); Location location = new Location("file:///fake-uri2.bsl", Ranges.create(0, 2, 2, 3)); diagnostics.get(0).setRelatedInformation(Collections.singletonList(new DiagnosticRelatedInformation(location, "message"))); @@ -125,7 +125,7 @@ void report() throws IOException { assertThat(report.getIssues().get(0).getPrimaryLocation()).isNotNull(); assertThat(report.getIssues().get(0).getSecondaryLocations()).isNotNull(); assertThat(report.getIssues().get(0).getSecondaryLocations().size()).isEqualTo(1); - assertThat(report.getIssues().get(2).getRuleId()).isEqualTo(secondInfo.getCode().getStringValue()); + assertThat(report.getIssues().get(2).getRuleId()).isEqualTo(secondInfo.getDiagnosticCode().getStringValue()); assertThat(report.getIssues().get(1).getSeverity()).isEqualTo(firstInfo.getSeverity().name()); } diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/JUnitReporterTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/JUnitReporterTest.java index 5f1d9598101..170e3bd7692 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/JUnitReporterTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/JUnitReporterTest.java @@ -23,11 +23,11 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.FileInfo; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.apache.commons.io.FileUtils; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticSeverity; @@ -93,7 +93,7 @@ void report() throws IOException { "test3" )); - DocumentContext documentContext = TestUtils.getDocumentContext( + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContext( Paths.get("./src/test/java/diagnostics/CanonicalSpellingKeywordsDiagnostic.bsl").toUri(), "" ); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/JsonReporterTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/JsonReporterTest.java index e0e339480b8..254e447dd2b 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/JsonReporterTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/JsonReporterTest.java @@ -22,12 +22,12 @@ package com.github._1c_syntax.bsl.languageserver.reporters; import com.fasterxml.jackson.databind.ObjectMapper; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.FileInfo; import com.github._1c_syntax.bsl.languageserver.reporters.databind.AnalysisInfoObjectMapper; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.apache.commons.io.FileUtils; import org.assertj.core.api.Assertions; import org.eclipse.lsp4j.Diagnostic; @@ -72,7 +72,7 @@ void report() throws IOException { "test" ); - DocumentContext documentContext = TestUtils.getDocumentContext(""); + BSLDocumentContext documentContext =(BSLDocumentContext) TestUtils.getDocumentContext(""); String sourceDir = "."; FileInfo fileInfo = new FileInfo(sourceDir, documentContext, Collections.singletonList(diagnostic)); AnalysisInfo analysisInfo = new AnalysisInfo(LocalDateTime.now(), Collections.singletonList(fileInfo), sourceDir); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/ReportersAggregatorTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/ReportersAggregatorTest.java index 1b7ae196c1d..38f53c97e72 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/ReportersAggregatorTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/ReportersAggregatorTest.java @@ -21,11 +21,11 @@ */ package com.github._1c_syntax.bsl.languageserver.reporters; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.FileInfo; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticSeverity; import org.junit.jupiter.api.AfterEach; @@ -77,7 +77,7 @@ void report() { "test" ); - DocumentContext documentContext = TestUtils.getDocumentContext(""); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContext(""); String sourceDir = "."; FileInfo fileInfo = new FileInfo(sourceDir, documentContext, Collections.singletonList(diagnostic)); AnalysisInfo analysisInfo = new AnalysisInfo(LocalDateTime.now(), Collections.singletonList(fileInfo), sourceDir); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReportEntryTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReportEntryTest.java index 48ae9db828f..e215494f1cd 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReportEntryTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReportEntryTest.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.reporters; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticSeverity; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReporterTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReporterTest.java index 24a2c0019e8..42623d157fe 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReporterTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReporterTest.java @@ -23,11 +23,11 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.reporters.data.AnalysisInfo; import com.github._1c_syntax.bsl.languageserver.reporters.data.FileInfo; import com.github._1c_syntax.bsl.languageserver.util.TestUtils; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.apache.commons.io.FileUtils; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.DiagnosticSeverity; @@ -75,7 +75,7 @@ void report() throws IOException { "test" ); - DocumentContext documentContext = TestUtils.getDocumentContext(""); + BSLDocumentContext documentContext = (BSLDocumentContext) TestUtils.getDocumentContext(""); String sourceDir = "."; FileInfo fileInfo = new FileInfo(sourceDir, documentContext, Collections.singletonList(diagnostic)); AnalysisInfo analysisInfo = new AnalysisInfo(LocalDateTime.now(), Collections.singletonList(fileInfo), sourceDir); diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/TestUtils.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/TestUtils.java index 63264704d48..935fa5c70da 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/TestUtils.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/TestUtils.java @@ -21,8 +21,8 @@ */ package com.github._1c_syntax.bsl.languageserver.util; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; -import com.github._1c_syntax.bsl.languageserver.context.ServerContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLServerContext; +import com.github._1c_syntax.ls_core.context.DocumentContext; import com.github._1c_syntax.utils.Absolute; import lombok.SneakyThrows; import org.apache.commons.io.FileUtils; @@ -52,23 +52,23 @@ public static DocumentContext getDocumentContextFromFile(String filePath) { } public static DocumentContext getDocumentContext(URI uri, String fileContent) { - return getDocumentContext(uri, fileContent, TestApplicationContext.getBean(ServerContext.class)); + return getDocumentContext(uri, fileContent, TestApplicationContext.getBean(BSLServerContext.class)); } public static DocumentContext getDocumentContext(String fileContent) { return getDocumentContext(FAKE_DOCUMENT_URI, fileContent); } - public static DocumentContext getDocumentContext(String fileContent, @Nullable ServerContext context) { - ServerContext passedContext = context; + public static DocumentContext getDocumentContext(String fileContent, @Nullable BSLServerContext context) { + BSLServerContext passedContext = context; if (passedContext == null) { - passedContext = TestApplicationContext.getBean(ServerContext.class); + passedContext = TestApplicationContext.getBean(BSLServerContext.class); } return getDocumentContext(FAKE_DOCUMENT_URI, fileContent, passedContext); } - public static DocumentContext getDocumentContext(URI uri, String fileContent, ServerContext context) { + public static DocumentContext getDocumentContext(URI uri, String fileContent, BSLServerContext context) { return context.addDocument(uri, fileContent); } } diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/assertions/CodeActionAssert.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/assertions/CodeActionAssert.java index 5006d35a951..a898e0ed492 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/assertions/CodeActionAssert.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/assertions/CodeActionAssert.java @@ -21,9 +21,9 @@ */ package com.github._1c_syntax.bsl.languageserver.util.assertions; -import com.github._1c_syntax.bsl.languageserver.context.DocumentContext; +import com.github._1c_syntax.bsl.languageserver.context.BSLDocumentContext; import com.github._1c_syntax.bsl.languageserver.diagnostics.BSLDiagnostic; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.assertj.core.api.AbstractAssert; import org.assertj.core.api.Assertions; import org.eclipse.lsp4j.CodeAction; @@ -39,7 +39,7 @@ public class CodeActionAssert extends AbstractAssert { - private DocumentContext documentContext; + private BSLDocumentContext documentContext; private BSLDiagnostic bslDiagnostic; public CodeActionAssert(CodeAction actual) { @@ -55,7 +55,7 @@ public CodeActionAssert of(BSLDiagnostic diagnostic) { return this; } - public CodeActionAssert in(DocumentContext documentContext) { + public CodeActionAssert in(BSLDocumentContext documentContext) { this.documentContext = documentContext; return this; } diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/assertions/DiagnosticAssert.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/assertions/DiagnosticAssert.java index 16f867794f9..6e036ea8700 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/assertions/DiagnosticAssert.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/util/assertions/DiagnosticAssert.java @@ -21,7 +21,7 @@ */ package com.github._1c_syntax.bsl.languageserver.util.assertions; -import com.github._1c_syntax.bsl.languageserver.utils.Ranges; +import com.github._1c_syntax.ls_core.utils.Ranges; import org.assertj.core.api.AbstractAssert; import org.eclipse.lsp4j.Diagnostic; import org.eclipse.lsp4j.Range;