Как получить номер строки на IClassifier.GetClassificationSpans? - PullRequest
1 голос
/ 18 июня 2019

Я разрабатываю расширение Visual Studio на C # и хочу добавить классификации в файл на основе анализа этого файла, который уже предоставлен.Я получил результаты анализа с набором местоположений (файл, строка, столбец) для каждого дефекта.

На основе MS doc я увидел, что мы должны реализовать метод IClassifier.GetClassificationSpans.Я вижу, что нам дан набор SnapshotSpan.Похоже, что эти отрезки в основном представляют собой полные строки из открытого файла: видимые строки, показанные в данный момент, и строки, редактируемые в настоящее время.

Однако, как уже было сказано ранее, у меня уже есть ряд дефектов с их расположением.Я хотел бы получить текущий номер строки диапазона, чтобы я мог проверить, зарегистрирован ли дефект в этой строке.Я просмотрел всю структуру SnapshotSpan с помощью отладчика, и я не смог найти ничего, просматривая номер строки.

Как получить текущий номер строки SnapshotSpan?

Какова логика фреймворка, когдаУ меня уже есть результаты, полученные с их местоположением, и я хочу разместить глифы / классификации / всплывающие подсказки / выделение областей / и т. Д. В редакторе на основе этих расположений?

1 Ответ

0 голосов
/ 21 июня 2019

Я наконец узнал, что могу получить номер строки следующим образом:

var lineNumber= span.Snapshot.GetLineNumberFromPosition(span.Start.Position) + 1;

+ 1, потому что внутренние значения начинаются с 0, а видимые строки в редакторе начинаются с 1 (или потому что мой анализ файлов дает мне строки, начинающиеся с 1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...