Visual Studio 2010 SDK, колонка Get Caret - PullRequest
1 голос
/ 02 апреля 2011

Довольно очевидно, но я пытаюсь выяснить, как далеко от левой каретки. В настоящее время у меня есть следующая строка

var caret = m_doc.Caret.Position.BufferPosition;
return doc.GetTextViewLineContainingBufferPosition(caret).Start.Difference(caret);

где doc - это IWpfTextView.

Проблема в том, что если у вас есть вкладка, она считается вкладкой, а не количеством пробелов, составляющих вкладку.

ПРИМЕР - | представляет, где находится курсор, \ t вкладка размером 4, charNo - это то, что мой код в настоящее время возвращает, col - это то, что я хочу:

|var a  //col:0 charNo:0
\t|var  //col:4 charNo:1
 \t|var //col:4 charNo:2
 \tv|ar //col:5 charNo:3

Спасибо.

1 Ответ

0 голосов
/ 03 апреля 2011

Почему бы вам не использовать .Left вместо .Start?Возвращает текущую позицию слева от координатной плоскости независимо от вкладок.

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