Class CompletionData
textDocument/completion) и отложенным разрешением документации
(completionItem/resolve).
Кладётся в CompletionItem.setData(Object) вместо
жадно построенной documentation, чтобы тяжёлые описания членов
широкого типа (Глобальный контекст, union типов) не путешествовали в каждом
ответе completion. По этому ключу провайдер восстанавливает член типа и
собирает documentation только для выбранного клиентом item.
Сериализуется клиентом в JSON и приходит обратно как JsonObject/Map —
поля сделаны bean-style (Lombok @Data) для round-trip через Jackson.
Поддерживаются два вида ключа восстановления:
- член типа (dot-completion): заполнены
typeKind/typeQualifiedNameиmemberName, по ним восстанавливается член типа-владельца; - глобальная функция (no-dot completion): заполнено
functionName, по нему функция ищется в глобальной области видимости. Поля типа-владельца при этом не используются.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanbooleanstatic CompletionDataforFunction(URI uri, String functionName, FileType fileType, Language scriptVariant) Создаёт ключ восстановления документации глобальной функции (no-dot completion).static CompletionDataforMember(URI uri, TypeKind typeKind, String typeQualifiedName, String memberName, FileType fileType, Language scriptVariant) Создаёт ключ восстановления документации члена типа (dot-completion).Тип файла-потребителя (BSL/OS) — влияет на набор членов типа и набор глобальных функций.Имя глобальной функции, для которой нужно восстановить документацию.Имя члена (метода/свойства), для которого нужно восстановить документацию.Локаль скрипта (ru/en) для отбора написаний и языка описания.Вид типа-владельца члена (часть идентичностиTypeRef).Каноническое полное имя типа-владельца члена (часть идентичности TypeRef).getUri()URI документа, в контексте которого item был построен.inthashCode()voidsetFileType(FileType fileType) Тип файла-потребителя (BSL/OS) — влияет на набор членов типа и набор глобальных функций.voidsetFunctionName(@Nullable String functionName) Имя глобальной функции, для которой нужно восстановить документацию.voidsetMemberName(@Nullable String memberName) Имя члена (метода/свойства), для которого нужно восстановить документацию.voidsetScriptVariant(Language scriptVariant) Локаль скрипта (ru/en) для отбора написаний и языка описания.voidsetTypeKind(@Nullable TypeKind typeKind) Вид типа-владельца члена (часть идентичностиTypeRef).voidsetTypeQualifiedName(@Nullable String typeQualifiedName) Каноническое полное имя типа-владельца члена (часть идентичности TypeRef).voidURI документа, в контексте которого item был построен.toString()
-
Constructor Details
-
CompletionData
public CompletionData() -
CompletionData
@ConstructorProperties({"uri","typeKind","typeQualifiedName","memberName","fileType","scriptVariant","functionName"}) public CompletionData(URI uri, @Nullable TypeKind typeKind, @Nullable String typeQualifiedName, @Nullable String memberName, FileType fileType, Language scriptVariant, @Nullable String functionName) Creates a newCompletionDatainstance.- Parameters:
uri- URI документа, в контексте которого item был построен.Нужен для
completionItem/resolve: запрос приходит без позиции и без текстового документа, аtypeService/globalScopeProvider— workspace-scoped бины. По этому URI восстанавливается документ и его workspace, чтобы установить workspace-контекст перед резолвом documentation.typeKind- Вид типа-владельца члена (часть идентичностиTypeRef).nullдля варианта глобальной функции.typeQualifiedName- Каноническое полное имя типа-владельца члена (часть идентичности TypeRef).nullдля варианта глобальной функции.memberName- Имя члена (метода/свойства), для которого нужно восстановить документацию.nullдля варианта глобальной функции.fileType- Тип файла-потребителя (BSL/OS) — влияет на набор членов типа и набор глобальных функций.scriptVariant- Локаль скрипта (ru/en) для отбора написаний и языка описания.functionName- Имя глобальной функции, для которой нужно восстановить документацию. Заполнено только для варианта глобальной функции; для члена типа —null.
-
-
Method Details
-
forMember
public static CompletionData forMember(URI uri, TypeKind typeKind, String typeQualifiedName, String memberName, FileType fileType, Language scriptVariant) Создаёт ключ восстановления документации члена типа (dot-completion).- Parameters:
uri- URI документа, в контексте которого построен item.typeKind- вид типа-владельца члена.typeQualifiedName- каноническое полное имя типа-владельца.memberName- имя члена (метода/свойства).fileType- тип файла-потребителя (BSL/OS).scriptVariant- локаль скрипта (ru/en).- Returns:
- ключ восстановления члена типа.
-
forFunction
public static CompletionData forFunction(URI uri, String functionName, FileType fileType, Language scriptVariant) Создаёт ключ восстановления документации глобальной функции (no-dot completion).- Parameters:
uri- URI документа, в контексте которого построен item.functionName- имя глобальной функции.fileType- тип файла-потребителя (BSL/OS).scriptVariant- локаль скрипта (ru/en).- Returns:
- ключ восстановления глобальной функции.
-
getUri
URI документа, в контексте которого item был построен.Нужен для
completionItem/resolve: запрос приходит без позиции и без текстового документа, аtypeService/globalScopeProvider— workspace-scoped бины. По этому URI восстанавливается документ и его workspace, чтобы установить workspace-контекст перед резолвом documentation. -
getTypeKind
-
getTypeQualifiedName
-
getMemberName
-
getFileType
Тип файла-потребителя (BSL/OS) — влияет на набор членов типа и набор глобальных функций. -
getScriptVariant
Локаль скрипта (ru/en) для отбора написаний и языка описания. -
getFunctionName
-
setUri
URI документа, в контексте которого item был построен.Нужен для
completionItem/resolve: запрос приходит без позиции и без текстового документа, аtypeService/globalScopeProvider— workspace-scoped бины. По этому URI восстанавливается документ и его workspace, чтобы установить workspace-контекст перед резолвом documentation. -
setTypeKind
-
setTypeQualifiedName
-
setMemberName
-
setFileType
Тип файла-потребителя (BSL/OS) — влияет на набор членов типа и набор глобальных функций. -
setScriptVariant
Локаль скрипта (ru/en) для отбора написаний и языка описания. -
setFunctionName
-
equals
-
canEqual
-
hashCode
-
toString
-