Vadim
Vadim

Reputation: 83

Current Line For Visual Studio Macros

How can I read text of a current line (where cursor is situated) from Macros?

I'm going to use such a function:

 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

Upvotes: 2

Views: 1547

Answers (2)

Stewart Lynch
Stewart Lynch

Reputation: 129

Get the line index from the Selection and use an EditPoint, like this:

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);

Upvotes: 3

Brian Schmitt
Brian Schmitt

Reputation: 6068

You can use something like:

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

Upvotes: 4

Related Questions