Class CompletionData

java.lang.Object
com.github._1c_syntax.bsl.languageserver.completion.CompletionData

public class CompletionData extends Object
DTO для хранения промежуточных данных completion item между его созданием (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 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 new CompletionData instance.
      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

      public URI getUri()
      URI документа, в контексте которого item был построен.

      Нужен для completionItem/resolve: запрос приходит без позиции и без текстового документа, а typeService/globalScopeProvider — workspace-scoped бины. По этому URI восстанавливается документ и его workspace, чтобы установить workspace-контекст перед резолвом documentation.

    • getTypeKind

      public @Nullable TypeKind getTypeKind()
      Вид типа-владельца члена (часть идентичности TypeRef). null для варианта глобальной функции.
    • getTypeQualifiedName

      public @Nullable String getTypeQualifiedName()
      Каноническое полное имя типа-владельца члена (часть идентичности TypeRef). null для варианта глобальной функции.
    • getMemberName

      public @Nullable String getMemberName()
      Имя члена (метода/свойства), для которого нужно восстановить документацию. null для варианта глобальной функции.
    • getFileType

      public FileType getFileType()
      Тип файла-потребителя (BSL/OS) — влияет на набор членов типа и набор глобальных функций.
    • getScriptVariant

      public Language getScriptVariant()
      Локаль скрипта (ru/en) для отбора написаний и языка описания.
    • getFunctionName

      public @Nullable String getFunctionName()
      Имя глобальной функции, для которой нужно восстановить документацию. Заполнено только для варианта глобальной функции; для члена типа — null.
    • setUri

      public void setUri(URI uri)
      URI документа, в контексте которого item был построен.

      Нужен для completionItem/resolve: запрос приходит без позиции и без текстового документа, а typeService/globalScopeProvider — workspace-scoped бины. По этому URI восстанавливается документ и его workspace, чтобы установить workspace-контекст перед резолвом documentation.

    • setTypeKind

      public void setTypeKind(@Nullable TypeKind typeKind)
      Вид типа-владельца члена (часть идентичности TypeRef). null для варианта глобальной функции.
    • setTypeQualifiedName

      public void setTypeQualifiedName(@Nullable String typeQualifiedName)
      Каноническое полное имя типа-владельца члена (часть идентичности TypeRef). null для варианта глобальной функции.
    • setMemberName

      public void setMemberName(@Nullable String memberName)
      Имя члена (метода/свойства), для которого нужно восстановить документацию. null для варианта глобальной функции.
    • setFileType

      public void setFileType(FileType fileType)
      Тип файла-потребителя (BSL/OS) — влияет на набор членов типа и набор глобальных функций.
    • setScriptVariant

      public void setScriptVariant(Language scriptVariant)
      Локаль скрипта (ru/en) для отбора написаний и языка описания.
    • setFunctionName

      public void setFunctionName(@Nullable String functionName)
      Имя глобальной функции, для которой нужно восстановить документацию. Заполнено только для варианта глобальной функции; для члена типа — null.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • canEqual

      protected boolean canEqual(Object other)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object