Class CompletionContextRanker

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

public final class CompletionContextRanker extends Object
Приоритеты доступности и подписи контекстов для одного запроса completion.

Общая оценка используется для отбора и сортировки: частично доступные следуют за обычными, полностью недоступные — последними, если пользователь включил их показ. Недостаток сведений не понижает приоритет. Исходные корзины, признак устаревания и порядок имён сохраняются внутри этих групп. Приписка к документации описывает компиляцию метода, а стрелка — серверный переход именно из запрошенной позиции. Смешанные или неполные сведения о вызове дают условную стрелку. Все кеши ограничены запросом; объект нельзя сохранять в провайдере между запросами.

  • Constructor Details

    • CompletionContextRanker

      public CompletionContextRanker(DocumentContext document, Position position, CompilationContextResolver resolver, TypeService types)
      Подготовить контекст один раз для всех предлагаемых имён.
      Parameters:
      document - документ запроса.
      position - позиция курсора, в том числе после незавершённой точки.
      resolver - общая модель компиляции и серверных переходов.
      types - служба вывода типов и поиска членов.
  • Method Details

    • rankMember

      public void rankMember(CompletionItem item, MemberDescriptor member)
      Оценить член без уточнения получателя: глобальную функцию, свойство или неявный self-член.
      Parameters:
      item - сформированный пункт completion.
      member - предлагаемый член.
    • rankLocalMethod

      public void rankLocalMethod(CompletionItem item, MethodSymbol method)
      Оценить конкретное локальное объявление, сохраняя различие одноимённых веток.
      Parameters:
      item - пункт локального метода.
      method - объявление, чья сигнатура вставляется этим пунктом.
    • rankType

      public void rankType(CompletionItem item, String name)
      Оценить тип после «Новый» либо составное имя метаданных.
      Parameters:
      item - пункт типа или имени конфигурации.
      name - имя, разрешаемое службой типов.
    • rankDotPropertyMember

      public void rankDotPropertyMember(CompletionItem item, MemberDescriptor member)
      Приоритет свойства с учётом всех выбранных режимов и альтернатив получателя.
    • rankDotMember

      public void rankDotMember(CompletionItem item, MemberDescriptor member)
      Оценить член после точки по типам получателя в каждом актуальном режиме.
      Parameters:
      item - пункт dot-completion.
      member - член из исходного объединения типов.
    • isUnavailable

      public boolean isUnavailable(CompletionItem item)
      Заведомо ли пункт недоступен во всех проверенных контекстах и для всех известных целей.

      Частичная доступность и недостаток сведений не дают основания скрывать предложение. Используется уже рассчитанная оценка; дополнительного разрешения типов не выполняется.

      Parameters:
      item - ранее оценённый пункт либо пункт без ограничений, например ключевое слово.
      Returns:
      true, если пункт можно исключить из списка по контексту компиляции.