Как получить символ слева от курсора в расширении Visual Studio? - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь получить символ слева от курсора. У меня есть обработчик, который перехватывает событие LineChanged.

OnLineChanged(TextPoint startPoint, TextPoint endPoint, int Hint)

Я не смог найти какой-либо встроенный метод, чтобы получить это из TextPoint s.

Какой лучший способ сделать это?

Кроме того, есть ли способ проверить, открыто ли окно IntelliSense в активном окне? Я хочу прервать выполнение обработчика событий, если IntelliSense открыт.

1 Ответ

2 голосов
/ 11 июля 2019

Чтобы получить символ слева от EnvDTE.TextPoint:

string CharacterToTheLeft(EnvDTE.TextPoint p)
{
    EnvDTE.EditPoint editPoint = p.CreateEditPoint();
    editPoint.CharLeft();
    return editPoint.GetText(1);
}

Чтобы создать точку редактирования в текущей позиции курсора из EnvDTE.TextPoint startPoint:

    EnvDTE.TextSelection ts = startPoint.Parent.Selection;
    EnvDTE.EditPoint editPoint = ts.ActivePoint.CreateEditPoint();
...