2010-03-29 3 views
2

Как читать текст текущей строки (где курсор находится) из макросов?Текущая строка для макросов Visual Studio

Я собираюсь использовать такую ​​функцию:

Public Sub AddTextToChangeLogFile() 
    Dim textOnACurrentLine As ??? 
    textOnACurrentLine = ??? 

    If textOnACurrentLine.Text <> String.Empty Then 
     Dim sw As New StreamWriter("C:\###\Changes.txt", True) 
     sw.WriteLine(textOnACurrentLine + ". file: " + DTE.ActiveDocument.Name) 
     sw.Close() 
    End If 
End Sub 

ответ

4

Вы можете использовать что-то вроде:

Dim textOnACurrentLine As String 
DTE.ActiveDocument.Selection.StartOfLine(0) 
DTE.ActiveDocument.Selection.EndOfLine(True) 
textOnACurrentLine = DTE.ActiveDocument.Selection.Text 
+0

Отличная идея! Прекрасно работает – Vadim

+1

, это имеет побочный эффект от выбора выбранной линии. Лучшим вариантом является использование na EditPoint –

3

Получить индекс строки из выбора и использовать EditPoint, как это:

TextSelection text_selection = (TextSelection)m_DTE.ActiveDocument.Selection; 
int line_index = text_selection.ActivePoint.Line; 
TextDocument text_doc = (TextDocument)m_DTE.ActiveDocument.Object(""); 
EditPoint edit_point = text_doc.CreateEditPoint(); 
string line = edit_point.GetLines(line_index, line_index+1); 
+0

Спасибо за этот улучшенный ответ, работает с удовольствием. –

Смежные вопросы