Class BSLTextDocumentService
java.lang.Object
com.github._1c_syntax.bsl.languageserver.BSLTextDocumentService
- All Implemented Interfaces:
ProtocolExtension, TextDocumentService
@Component
public class BSLTextDocumentService
extends Object
implements TextDocumentService, ProtocolExtension
Сервис обработки запросов, связанных с текстовым документом.
Реализует интерфейс TextDocumentService из LSP4J и обрабатывает
все запросы, связанные с открытием, изменением, закрытием документов,
а также предоставляет функции навигации, редактирования и анализа кода.
-
Constructor Summary
ConstructorsConstructorDescriptionBSLTextDocumentService(ServerContext context, LanguageServerConfiguration configuration, DiagnosticProvider diagnosticProvider, CodeActionProvider codeActionProvider, CodeLensProvider codeLensProvider, DocumentLinkProvider documentLinkProvider, DocumentSymbolProvider documentSymbolProvider, FoldingRangeProvider foldingRangeProvider, FormatProvider formatProvider, HoverProvider hoverProvider, ReferencesProvider referencesProvider, DefinitionProvider definitionProvider, CallHierarchyProvider callHierarchyProvider, SelectionRangeProvider selectionRangeProvider, ColorProvider colorProvider, RenameProvider renameProvider, InlayHintProvider inlayHintProvider, ClientCapabilitiesHolder clientCapabilitiesHolder, SemanticTokensProvider semanticTokensProvider) -
Method Summary
Modifier and TypeMethodDescriptionprotected static StringapplyIncrementalChange(String content, TextDocumentContentChangeEvent change) Применяет одно инкрементальное изменение к содержимому документа.protected static StringapplyTextDocumentChanges(String content, List<TextDocumentContentChangeEvent> changes) Применяет список изменений текста к исходному содержимому документа.codeAction(CodeActionParams params) CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams params) CompletableFuture<Either<List<? extends Location>, List<? extends LocationLink>>> definition(DefinitionParams params) diagnostic(DocumentDiagnosticParams params) diagnostics(DiagnosticParams params) Запрос на вычисление диагностик для документа (расширение протокола).voiddidChange(DidChangeTextDocumentParams params) voiddidClose(DidCloseTextDocumentParams params) voiddidOpen(DidOpenTextDocumentParams params) voiddidSave(DidSaveTextDocumentParams params) documentColor(DocumentColorParams params) documentLink(DocumentLinkParams params) documentSymbol(DocumentSymbolParams params) CompletableFuture<List<? extends TextEdit>> formatting(DocumentFormattingParams params) protected static intВычисляет абсолютную позицию символа в тексте по номеру строки и позиции в строке.voidОбработчик событияLanguageServerInitializeRequestReceivedEvent.hover(HoverParams params) inlayHint(InlayHintParams params) prepareRename(PrepareRenameParams params) CompletableFuture<List<? extends TextEdit>> CompletableFuture<List<? extends Location>> references(ReferenceParams params) rename(RenameParams params) voidreset()resolveCodeLens(CodeLens unresolved) selectionRange(SelectionRangeParams params) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface TextDocumentService
completion, declaration, documentHighlight, documentLinkResolve, implementation, inlineValue, linkedEditingRange, moniker, onTypeFormatting, prepareTypeHierarchy, resolveCodeAction, resolveCompletionItem, resolveInlayHint, semanticTokensFullDelta, semanticTokensRange, signatureHelp, typeDefinition, typeHierarchySubtypes, typeHierarchySupertypes, willSave, willSaveWaitUntil
-
Constructor Details
-
BSLTextDocumentService
@ConstructorProperties({"context","configuration","diagnosticProvider","codeActionProvider","codeLensProvider","documentLinkProvider","documentSymbolProvider","foldingRangeProvider","formatProvider","hoverProvider","referencesProvider","definitionProvider","callHierarchyProvider","selectionRangeProvider","colorProvider","renameProvider","inlayHintProvider","clientCapabilitiesHolder","semanticTokensProvider"}) public BSLTextDocumentService(ServerContext context, LanguageServerConfiguration configuration, DiagnosticProvider diagnosticProvider, CodeActionProvider codeActionProvider, CodeLensProvider codeLensProvider, DocumentLinkProvider documentLinkProvider, DocumentSymbolProvider documentSymbolProvider, FoldingRangeProvider foldingRangeProvider, FormatProvider formatProvider, HoverProvider hoverProvider, ReferencesProvider referencesProvider, DefinitionProvider definitionProvider, CallHierarchyProvider callHierarchyProvider, SelectionRangeProvider selectionRangeProvider, ColorProvider colorProvider, RenameProvider renameProvider, InlayHintProvider inlayHintProvider, ClientCapabilitiesHolder clientCapabilitiesHolder, SemanticTokensProvider semanticTokensProvider)
-
-
Method Details
-
hover
- Specified by:
hoverin interfaceTextDocumentService
-
definition
public CompletableFuture<Either<List<? extends Location>, List<? extends LocationLink>>> definition(DefinitionParams params) - Specified by:
definitionin interfaceTextDocumentService
-
references
- Specified by:
referencesin interfaceTextDocumentService
-
documentSymbol
public CompletableFuture<List<Either<SymbolInformation, DocumentSymbol>>> documentSymbol(DocumentSymbolParams params) - Specified by:
documentSymbolin interfaceTextDocumentService
-
codeAction
- Specified by:
codeActionin interfaceTextDocumentService
-
codeLens
- Specified by:
codeLensin interfaceTextDocumentService
-
resolveCodeLens
- Specified by:
resolveCodeLensin interfaceTextDocumentService
-
formatting
- Specified by:
formattingin interfaceTextDocumentService
-
rangeFormatting
public CompletableFuture<List<? extends TextEdit>> rangeFormatting(DocumentRangeFormattingParams params) - Specified by:
rangeFormattingin interfaceTextDocumentService
-
foldingRange
- Specified by:
foldingRangein interfaceTextDocumentService
-
prepareCallHierarchy
public CompletableFuture<@Nullable List<CallHierarchyItem>> prepareCallHierarchy(CallHierarchyPrepareParams params) - Specified by:
prepareCallHierarchyin interfaceTextDocumentService
-
semanticTokensFull
- Specified by:
semanticTokensFullin interfaceTextDocumentService
-
callHierarchyIncomingCalls
public CompletableFuture<List<CallHierarchyIncomingCall>> callHierarchyIncomingCalls(CallHierarchyIncomingCallsParams params) - Specified by:
callHierarchyIncomingCallsin interfaceTextDocumentService
-
callHierarchyOutgoingCalls
public CompletableFuture<List<CallHierarchyOutgoingCall>> callHierarchyOutgoingCalls(CallHierarchyOutgoingCallsParams params) - Specified by:
callHierarchyOutgoingCallsin interfaceTextDocumentService
-
selectionRange
public CompletableFuture<List<@Nullable SelectionRange>> selectionRange(SelectionRangeParams params) - Specified by:
selectionRangein interfaceTextDocumentService
-
documentColor
- Specified by:
documentColorin interfaceTextDocumentService
-
colorPresentation
- Specified by:
colorPresentationin interfaceTextDocumentService
-
inlayHint
- Specified by:
inlayHintin interfaceTextDocumentService
-
didOpen
- Specified by:
didOpenin interfaceTextDocumentService
-
didChange
- Specified by:
didChangein interfaceTextDocumentService
-
didClose
- Specified by:
didClosein interfaceTextDocumentService
-
didSave
- Specified by:
didSavein interfaceTextDocumentService
-
documentLink
- Specified by:
documentLinkin interfaceTextDocumentService
-
diagnostics
Description copied from interface:ProtocolExtensionЗапрос на вычисление диагностик для документа (расширение протокола).- Specified by:
diagnosticsin interfaceProtocolExtension- Parameters:
params- Параметры запроса.- Returns:
- Список рассчитанных диагностик.
-
diagnostic
- Specified by:
diagnosticin interfaceTextDocumentService
-
prepareRename
public CompletableFuture<Either3<Range, PrepareRenameResult, PrepareRenameDefaultBehavior>> prepareRename(PrepareRenameParams params) - Specified by:
prepareRenamein interfaceTextDocumentService
-
rename
- Specified by:
renamein interfaceTextDocumentService
-
reset
public void reset() -
handleInitializeEvent
@EventListener public void handleInitializeEvent(LanguageServerInitializeRequestReceivedEvent ignored) Обработчик событияLanguageServerInitializeRequestReceivedEvent.Проверяет поддержку клиентом pull-модели диагностик.
- Parameters:
ignored- Событие
-
applyTextDocumentChanges
protected static String applyTextDocumentChanges(String content, List<TextDocumentContentChangeEvent> changes) Применяет список изменений текста к исходному содержимому документа. Поддерживает как полные обновления (без range), так и инкрементальные изменения (с range).- Parameters:
content- текущее содержимое документаchanges- список изменений для применения- Returns:
- обновленное содержимое документа
-
applyIncrementalChange
protected static String applyIncrementalChange(String content, TextDocumentContentChangeEvent change) Применяет одно инкрементальное изменение к содержимому документа. Использует прямую замену по позициям символов для оптимизации и сохранения оригинальных переносов строк.- Parameters:
content- текущее содержимое документаchange- изменение для применения- Returns:
- обновленное содержимое документа
-
getOffset
Вычисляет абсолютную позицию символа в тексте по номеру строки и позиции в строке. Использует indexOf для быстрого поиска переносов строк.- Parameters:
content- содержимое документаline- номер строки (0-based)character- позиция символа в строке (0-based)- Returns:
- абсолютная позиция символа в тексте
-