Class LocationRepository

java.lang.Object
com.github._1c_syntax.bsl.languageserver.references.model.LocationRepository

@Component @WorkspaceScope public class LocationRepository extends Object
Хранилище расположений обращений к символам.
  • Constructor Details

    • LocationRepository

      public LocationRepository()
  • Method Details

    • getSymbolOccurrencesByLocationUri

      public Stream<SymbolOccurrence> getSymbolOccurrencesByLocationUri(URI uri)
      Получить все обращения к символам в указанном URI.
      Parameters:
      uri - URI документа, в котором необходимо найти обращения к символам.
      Returns:
      Список найденных обращений к символам.
    • findByPosition

      public Optional<SymbolOccurrence> findByPosition(URI uri, Position position)
      Найти вхождение к символу, чей диапазон накрывает позицию. Бинарный поиск по отсортированному снимку вхождений документа: диапазоны вхождений непересекающиеся, поэтому единственный кандидат — вхождение с наибольшим началом диапазона, не превосходящим позицию.
      Parameters:
      uri - URI документа.
      position - позиция.
      Returns:
      вхождение в позиции либо empty.
    • replaceOccurrences

      public void replaceOccurrences(URI uri, Collection<SymbolOccurrence> occurrences)
      Заменить полный набор вхождений документа. Основной путь записи: перестроение документа собирает набор в буфер и заменяет его целиком одним атомарным swap-ом.
      Parameters:
      uri - URI документа.
      occurrences - Новый набор вхождений документа (без дубликатов).
    • delete

      public void delete(URI uri)
      Удалить сохраненные расположения обращений к символам в указанном URI.
      Parameters:
      uri - URI документа для удаления расположений.