Class KeywordReferenceFinder
java.lang.Object
com.github._1c_syntax.bsl.languageserver.references.KeywordReferenceFinder
- All Implemented Interfaces:
ReferenceFinder
@Component
@Order(190)
public class KeywordReferenceFinder
extends Object
implements ReferenceFinder
Поиск ссылок на BSL-keyword'ы (
Если, Истина, Цикл…).
Keyword'ы не являются source-defined-символами и не попадают в общий
symbol-tree модуля, поэтому для их hover-обработки строится синтетический
KeywordSymbol на лету — по позиции курсора находится keyword-токен,
по его тексту и AST-контексту использования (Функция/Процедура/Перем для
body-keyword'ов вида Знач/Возврат/Экспорт) выбирается
описание из GlobalScopeProvider.findKeywordDescription(String). Полученный
KeywordSymbol проходит дальше через обычный
HoverProvider-flow
и попадает в KeywordSymbolMarkupContentBuilder.
Аналогично паттерну AnnotationReferenceFinder: оба создают
synthetic-символы on-the-fly без регистрации в symbol-tree.
-
Constructor Summary
ConstructorsConstructorDescriptionKeywordReferenceFinder(ServerContextProvider serverContextProvider, GlobalScopeProvider globalScopeProvider, LanguageServerConfiguration configuration) -
Method Summary
Modifier and TypeMethodDescriptionfindReference(URI uri, Position position) Поиск символа по позиции курсора.
-
Constructor Details
-
KeywordReferenceFinder
@ConstructorProperties({"serverContextProvider","globalScopeProvider","configuration"}) public KeywordReferenceFinder(ServerContextProvider serverContextProvider, GlobalScopeProvider globalScopeProvider, LanguageServerConfiguration configuration)
-
-
Method Details
-
findReference
Description copied from interface:ReferenceFinderПоиск символа по позиции курсора.- Specified by:
findReferencein interfaceReferenceFinder- Parameters:
uri- URI документа, в котором необходимо осуществить поиск.position- позиция курсора.- Returns:
- данные ссылки.
-