Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im folgenden Beispiel wird ein TextDocument-Objekt erstellt und diesem Text hinzugefügt. Dann wird ein Teil der Funktionalität des EditPoint-Objekts demonstriert.
Beispiel
Beschreibung
Diese Funktionen sind bei Zeichenoffsets einsbasiert, während IVsTextView und ähnliche Schnittstellen nullbasiert sind.EditPoint ist einsbasiert, da es für die Unterstützung der VB-Automatisierung ausgelegt ist.
Erstellen Sie zum Ausführen dieses Beispiels ein Visual Studio-Add-In-Projekt, und geben Sie im Assistenten an, dass ein Menüelement Extras erstellt werden soll.Wenn Sie das Add-In erstellen und ausführen, klicken Sie auf den entsprechenden Befehl im Menü Extras, um den Code auszuführen.
Code
[Visual Basic]
Public Sub Exec(ByVal commandName As String, ByVal executeOption As vsCommandExecOption, ByRef varIn As Object, ByRef varOut As Object, ByRef handled As Boolean) Implements IDTCommandTarget.Exec
handled = False
If executeOption = vsCommandExecOption.vsCommandExecOptionDoDefault Then
If commandName = "EditPoint.Connect.EditPoint" Then
EditPointExample1(CType(_applicationObject, DTE))
handled = True
Exit Sub
End If
End If
End Sub
Sub EditPointExample1(ByVal dte As DTE)
Dim objTextDoc As TextDocument
Dim objEditPt As EditPoint, iCtr As Integer
' Create a new text file.
applicationObject.ItemOperations.NewFile("General\Text File")
' Get a handle to the new document and create an EditPoint.
objTextDoc = applicationObject.ActiveDocument.Object("TextDocument")
objEditPt = objTextDoc.StartPoint.CreateEditPoint
' Insert ten lines of text.
For iCtr = 1 To 10
objEditPt.Insert("This is a test." & Chr(13))
Next iCtr
' Replace the eighth word on the third line with a new word.
objEditPt.StartOfDocument()
objEditPt.LineDown(3)
objEditPt.WordRight(3)
objEditPt.Delete(4)
objEditPt.Insert("raid")
' Indent a line.
objEditPt.LineDown(2)
objEditPt.StartOfLine()
objEditPt.Indent()
' Set some bookmarks.
objEditPt.LineDown(1)
' Set the first bookmark.
objEditPt.SetBookmark()
' Set the second bookmark on the next line.
objEditPt.LineDown(1)
objEditPt.SetBookmark()
' Go back to the first bookmark.
objEditPt.PreviousBookmark()
' Add some text there.
objEditPt.Insert("BOOKMARK 1: ")
' Do the same thing at the next bookmark.
objEditPt.NextBookmark()
objEditPt.Insert("BOOKMARK 2: ")
' Print the current line and character offset in the buffer.
MsgBox("Line and offset: " & objEditPt.Line, _
objEditPt.LineCharOffset())
' Capitalize the third word of the second line.
objEditPt.StartOfDocument()
objEditPt.LineDown(2)
objEditPt.WordRight(3)
objEditPt.ChangeCase(4, vsCaseOptions.vsCaseOptionsCapitalize)
' Remove the spaces between the words.
objEditPt.DeleteWhitespace(vsWhitespaceOptions. _
vsWhitespaceOptionsHorizontal)
End Sub
Using System.Windows.Forms;
public void EditPointExample1( DTE dte )
{
TextDocument objTextDoc = null;
EditPoint objEditPt = null; int iCtr = 0;
// Create a new text file.
applicationObject.ItemOperations.NewFile( @"General\Text File",
"", "{00000000-0000-0000-0000-000000000000}" );
// Get a handle to the new document and create an EditPoint.
objTextDoc = ( ( EnvDTE.TextDocument )(
applicationObject.ActiveDocument.Object( "TextDocument" ) ) );
objEditPt = objTextDoc.StartPoint.CreateEditPoint();
// Insert ten lines of text.
for ( iCtr=1; iCtr<=10; iCtr++ )
{
objEditPt.Insert( "This is a test." + "\n");
}
// Replace the eighth word on the third line with a new word.
objEditPt.StartOfDocument();
objEditPt.LineDown( 3 );
objEditPt.WordRight( 3 );
objEditPt.Delete( 4 );
objEditPt.Insert( "raid" );
// Indent a line.
objEditPt.LineDown( 2 );
objEditPt.StartOfLine();
objEditPt.Indent( null, 1 );
// Set some bookmarks.
objEditPt.LineDown( 1 );
// Set the first bookmark.
objEditPt.SetBookmark();
// Set the second bookmark on the next line.
objEditPt.LineDown( 1 );
objEditPt.SetBookmark();
// Go back to the first bookmark.
objEditPt.PreviousBookmark();
// Add some text there.
objEditPt.Insert( "BOOKMARK 1: " );
// Do the same thing at the next bookmark.
objEditPt.NextBookmark();
objEditPt.Insert( "BOOKMARK 2: " );
// Print the current line and character offset in the buffer.
MessageBox.Show( "Line and offset: " + objEditPt.Line);
// Capitalize the third word of the second line.
objEditPt.StartOfDocument();
objEditPt.LineDown( 2 );
objEditPt.WordRight( 3 );
objEditPt.ChangeCase( 4, vsCaseOptions.vsCaseOptionsCapitalize );
// Remove the spaces between the words.
objEditPt.DeleteWhitespace( vsWhitespaceOptions.vsWhitespaceOptionsHorizontal );
}