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, по нему функция ищется в глобальной области видимости. Поля типа-владельца при этом не используются; - контракт события (no-dot completion, заглушка обработчика): заполнено
eventContractName, по нему контракт ищется среди событий owner-типа документа.
-
Constructor Summary
ConstructorsConstructorDescriptionCompletionData(URI uri, @Nullable TypeKind typeKind, @Nullable String typeQualifiedName, @Nullable String memberName, FileType fileType, Language scriptVariant, @Nullable String functionName, @Nullable String eventContractName, @Nullable com.github._1c_syntax.bsl.types.ModuleType moduleType) Creates a newCompletionDatainstance. -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanbooleanstatic CompletionDataforEventContract(URI uri, com.github._1c_syntax.bsl.types.ModuleType moduleType, @Nullable TypeRef ownerTypeRef, String eventContractName, FileType fileType, Language scriptVariant) Создаёт ключ восстановления документации контракта платформенного события (no-dot completion, заглушка ещё не объявленного обработчика).static 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).Каноническое имя контракта платформенного события, для которого нужно восстановить документацию (no-dot completion, заглушка ещё не объявленного обработчика).Тип файла-потребителя (BSL/OS) — влияет на набор членов типа и набор глобальных функций.Имя глобальной функции, для которой нужно восстановить документацию.Имя члена (метода/свойства), для которого нужно восстановить документацию.@Nullable com.github._1c_syntax.bsl.types.ModuleTypeВид модуля документа (вариант event-контракта): по нему и owner-типу (typeKind/typeQualifiedName) в resolve восстанавливается набор событий без обращения к документу.Локаль скрипта (ru/en) для отбора написаний и языка описания.Вид типа-владельца члена (часть идентичностиTypeRef).Каноническое полное имя типа-владельца члена (часть идентичности TypeRef).getUri()URI документа, в контексте которого item был построен.inthashCode()voidsetEventContractName(@Nullable String eventContractName) Каноническое имя контракта платформенного события, для которого нужно восстановить документацию (no-dot completion, заглушка ещё не объявленного обработчика).voidsetFileType(FileType fileType) Тип файла-потребителя (BSL/OS) — влияет на набор членов типа и набор глобальных функций.voidsetFunctionName(@Nullable String functionName) Имя глобальной функции, для которой нужно восстановить документацию.voidsetMemberName(@Nullable String memberName) Имя члена (метода/свойства), для которого нужно восстановить документацию.voidsetModuleType(@Nullable com.github._1c_syntax.bsl.types.ModuleType moduleType) Вид модуля документа (вариант event-контракта): по нему и owner-типу (typeKind/typeQualifiedName) в resolve восстанавливается набор событий без обращения к документу.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","eventContractName","moduleType"}) public CompletionData(URI uri, @Nullable TypeKind typeKind, @Nullable String typeQualifiedName, @Nullable String memberName, FileType fileType, Language scriptVariant, @Nullable String functionName, @Nullable String eventContractName, @Nullable com.github._1c_syntax.bsl.types.ModuleType moduleType) 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.eventContractName- Каноническое имя контракта платформенного события, для которого нужно восстановить документацию (no-dot completion, заглушка ещё не объявленного обработчика). Заполнено только для варианта event-контракта; для члена типа и глобальной функции —null.moduleType- Вид модуля документа (вариант event-контракта): по нему и owner-типу (typeKind/typeQualifiedName) в resolve восстанавливается набор событий без обращения к документу. Заполнено только для варианта event-контракта.
-
-
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:
- ключ восстановления глобальной функции.
-
forEventContract
public static CompletionData forEventContract(URI uri, com.github._1c_syntax.bsl.types.ModuleType moduleType, @Nullable TypeRef ownerTypeRef, String eventContractName, FileType fileType, Language scriptVariant) Создаёт ключ восстановления документации контракта платформенного события (no-dot completion, заглушка ещё не объявленного обработчика). Набор событий восстанавливается по паре(moduleType, ownerTypeRef)без обращения к документу.- Parameters:
uri- URI документа, в контексте которого построен item.moduleType- вид модуля документа.ownerTypeRef- owner-тип событий (nullдля .os-класса и глобальных модулей).eventContractName- каноническое имя контракта события.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
-
getEventContractName
-
getModuleType
Вид модуля документа (вариант event-контракта): по нему и owner-типу (typeKind/typeQualifiedName) в resolve восстанавливается набор событий без обращения к документу. Заполнено только для варианта event-контракта. -
setUri
URI документа, в контексте которого item был построен.Нужен для
completionItem/resolve: запрос приходит без позиции и без текстового документа, аtypeService/globalScopeProvider— workspace-scoped бины. По этому URI восстанавливается документ и его workspace, чтобы установить workspace-контекст перед резолвом documentation. -
setTypeKind
-
setTypeQualifiedName
-
setMemberName
-
setFileType
Тип файла-потребителя (BSL/OS) — влияет на набор членов типа и набор глобальных функций. -
setScriptVariant
Локаль скрипта (ru/en) для отбора написаний и языка описания. -
setFunctionName
-
setEventContractName
Каноническое имя контракта платформенного события, для которого нужно восстановить документацию (no-dot completion, заглушка ещё не объявленного обработчика). Заполнено только для варианта event-контракта; для члена типа и глобальной функции —null. -
setModuleType
Вид модуля документа (вариант event-контракта): по нему и owner-типу (typeKind/typeQualifiedName) в resolve восстанавливается набор событий без обращения к документу. Заполнено только для варианта event-контракта. -
equals
-
canEqual
-
hashCode
-
toString
-