Class FormatProvider

java.lang.Object
com.github._1c_syntax.bsl.languageserver.providers.FormatProvider

@Component public final class FormatProvider extends Object
Провайдер для форматирования исходного кода.

Обрабатывает запросы textDocument/formatting, textDocument/rangeFormatting и textDocument/rangesFormatting.

See Also:
  • Constructor Details

  • Method Details

    • getFormatting

      public List<TextEdit> getFormatting(DocumentFormattingParams params, DocumentContext documentContext)
    • getOnTypeFormatting

      public List<TextEdit> getOnTypeFormatting(DocumentOnTypeFormattingParams params, DocumentContext documentContext)
      Возвращает правки форматирования при наборе указанного символа.

      Поддерживаются триггеры:

      • "\n" (Enter) — переформатирование предыдущей строки;
      • ";" — переформатирование завершённого оператора текущей строки до позиции курсора.
      Диапазон правки никогда не пересекает позицию ввода, чтобы не «дёргать» курсор пользователя.
      Parameters:
      params - параметры запроса onTypeFormatting
      documentContext - контекст текущего документа
      Returns:
      список правок (одна-единственная замена соответствующего диапазона) или пустой список, если форматировать нечего
    • getRangeFormatting

      public List<TextEdit> getRangeFormatting(DocumentRangeFormattingParams params, DocumentContext documentContext)
    • getRangesFormatting

      public List<TextEdit> getRangesFormatting(DocumentRangesFormattingParams params, DocumentContext documentContext)
      Возвращает правки форматирования сразу для нескольких диапазонов документа.

      Обрабатывает запрос textDocument/rangesFormatting (LSP 3.18): каждый диапазон из DocumentRangesFormattingParams.getRanges() форматируется независимо тем же алгоритмом, что и одиночный textDocument/rangeFormatting, с одними и теми же протокольными FormattingOptions. Правки от всех диапазонов объединяются в общий список.

      Parameters:
      params - параметры запроса rangesFormatting с набором диапазонов и опциями
      documentContext - контекст текущего документа
      Returns:
      объединённый список правок по всем переданным диапазонам; пустой, если форматировать нечего
    • handleEvent

    • getNewText

      public String getNewText(List<Token> tokens, Locale languageLocale, Range range, int startCharacter, FormattingOptions options)