Como: controlar o Editor de códigos (Visual Basic)
O editor de códigos de Visual Studio é um editor de texto que acomode serviços de idioma como Visual Basic, Visual C++, e Visual C#.O texto escrito em um buffer que exibe em um documento de texto.Usando o modelo de automação do editor de Visual Studio objetos; você pode manipular texto nos bastidores no buffer de texto ou.
Os quatro objetos principais usadas para o texto do controle no editor de códigos são:
Nome do objeto |
Descrição |
---|---|
Usado para manipular texto no modo.O objeto de TextSelection representa o ponto de inserção (ou sinal de intercalação) ou o texto selecionado no documento visível. |
|
Um de posição fixa no buffer de texto. |
|
Semelhante ao objeto de TextPoint , mas a ele pode ser movido e pode alterar o texto no buffer. |
|
Semelhante ao objeto de TextPoint , exceto que ela contém a funcionalidade adicional para localizar posições de texto no espaço virtual. |
Os dois objetos chave que você usa para manipular o editor de códigos são objetos de TextSelection e de EditPoint2 .As principais diferenças entre eles são:
TextSelection representa a seleção visível de texto.Alterar sua posição altera a seleção na exibição.EditPoint2 não está vinculado a qualquer componente de (UI) de interface do usuário, o que alterar sua posição não altera nada no modo.
Porque TextSelection representa a seleção visível, há apenas um objeto de TextSelection pelo documento.Enquanto você pode ter vários TextSelection objetos em um documento, todos eles referem-se à mesma seleção visível e todos têm a mesma posição.Você pode ter tantas objetos de EditPoint2 como desejar, e todos podem ter diferentes posições.
Os métodos do objeto de TextSelection são criados para ter uma correspondência um-para-um às ações do usuário quando os métodos de EditPoint2 não são.Como resultado, alguns métodos de EditPoint2 tornam as coisas que nenhum método de TextSelection pode fazer, enquanto outros métodos de EditPoint2 são mais granularidade na função de quais métodos de TextSelection .Isso também é o motivo é que TextSelection mais sofisticado nas propriedades e os métodos que EditPoint2.
Usando esses objetos, você pode:
Selecione, adicionar, excluir, mover e o texto no buffer ou.
Mova o ponto de inserção em torno do buffer ou modo de exibição.
Recuar o texto no buffer ou.
Inserção, remover, e navega indexadores.
Adicione ou remova o texto, incluindo o espaço em branco.
Localizar ou substituir texto com base em um padrão especificado.
Crie uma seção da estrutura de tópicos no código e texto.
Consultar informações sobre o texto, como a posição de texto, a parte superior e inferior de documento, intervalos selecionados de texto, e assim por diante.
Os exemplos a seguir demonstram como referenciar e usar vários membros do modelo de automação do editor.Para obter mais informações sobre como executar o código de exemplo, consulte Como: compilar e executar os exemplos de código de modelo de objeto de automação.
Para outros exemplos que demonstram o uso do modelo de automação do editor, consulte os exemplos nos exemplos de automação do site da web do Visual Studio (https://msdn2.microsoft.com/en-us/vstudio/aa718336.aspx).
Observação |
---|
As caixas de diálogo e comandos de menu você vê podem diferir daquelas descritas na ajuda dependendo de suas configurações ativas ou versão. Esses procedimentos foram desenvolvidos com as configurações gerais de desenvolvimento ativos.Para alterar as configurações, escolha Importar e ExportarConfigurações no menu de Ferramentas .Para obter mais informações, consulte Configurações de Visual Studio. |
HTMLWindow3, vsHTMLPanes e vsHTMLViews foram adicionados com a entrada de exibição de divisão no editor de HTML de Visual Studio 2008 .A divisão de separar a guia e elementos de exibição de HTML editar a janela.Alterne para o modo design ou (a origem) não significa necessariamente alternar a guia (design/separação/origem).Por exemplo, quando você clica na guia, alternar entre modos de exibição de divisão o design e a fonte não altera a guia, somente ativar ou desativar as partes de design e de origem na exibição de divisão.
Exemplo
Exemplo de ActivePoint.Este exemplo também ilustra o uso de StartOfLine, de DisplayColumn, e de EndOfLine.Antes de executar esse exemplo, abrir um arquivo de código ou um documento de texto em Visual Studio, adicione um texto, e selecione qualquer de texto.
' Example for TextSelection.ActivePoint.
'
Sub ActivePointExample()
' Before running this example, open a text document.
Dim objSel As TextSelection = DTE.ActiveDocument.Selection
Dim objActive As VirtualPoint = objSel.ActivePoint
' Collapse the selection to the beginning of the line.
objSel.StartOfLine()
' objActive is "live", tied to the position of the actual
' selection, so it will reflect the new position.
Dim iCol As Long = objActive.DisplayColumn
' Move the selection to the end of the line.
objSel.EndOfLine()
MsgBox("The length of the insertion point line is " & _
(objActive.DisplayColumn - iCol) & " display characters.")
End Sub
Exemplo de AnchorPoint.Este exemplo também ilustra o uso de DisplayColumn, de Line, de StartOfDocument e de EndOfDocument.Antes de executar esse exemplo, abrir um arquivo de código ou um documento de texto em Visual Studio, adicione um texto, e selecione qualquer de texto.
' Example for TextSelection.AnchorPoint.
'
Sub AnchorPointExample()
' Before running this example, open a text document.
Dim objSel As TextSelection = DTE.ActiveDocument.Selection
Dim objAnchor As VirtualPoint = objSel.AnchorPoint
' objAnchor is "live", tied to the position of the actual
' selection, so it will reflect changes. iCol and iRow are created
' here to save a "snapshot" of the anchor point's position at this
' time.
Dim iCol As Long = objAnchor.DisplayColumn
Dim iRow As Long = objAnchor.Line
' As the selection is extended, the active point moves but the
' anchor point remains in place.
objSel.StartOfDocument(True)
objSel.EndOfDocument(True)
If (iCol = objAnchor.DisplayColumn And iRow = objAnchor.Line) Then
MsgBox("The anchor point has remained in place at row " & _
iRow & ", display column " & iCol)
End If
End Sub
Exemplo de Insert.Este exemplo também ilustra o uso de IsEmpty, de WordLeft, de WordRight, de Text, de Delete, e de MoveToPoint.Antes de executar esse exemplo, você abre um arquivo de código ou um documento de texto em Visual Studio e adicionar algum texto.
' Example for TextSelection.Insert.
'
Sub InsertExample()
' Before running this example, open a text document.
Dim objSel As TextSelection = DTE.ActiveDocument.Selection
If objSel.IsEmpty Then
' If there is no text selected, swap the words before and after
' the insertion point. We begin by selecting the word before
' the insertion point.
objSel.WordLeft(True)
If Not objSel.IsEmpty Then
' We can continue only if the selection was not already at
' the beginning of the document.
Dim strBefore As String = objSel.Text
' The text is saved in strBefore; now delete it and move
' past the following word.
objSel.Delete()
objSel.WordRight(True)
If objSel.Text.StartsWith(" ") Or _
objSel.Text.StartsWith(Microsoft.VisualBasic. _
ControlChars.Tab) Then
' The previous call to WordRight may have skipped some
' white space instead of an actual word. In that case,
' we should call it again.
objSel.WordRight(True)
End If
' Insert the new text at the end of the selection.
objSel.Insert(strBefore, _
vsInsertFlags.vsInsertFlagsInsertAtEnd)
End If
Else
' If some text is selected, replace the following word with the
' selected text.
Dim strSelected As String = objSel.Text
objSel.MoveToPoint(objSel.BottomPoint)
objSel.WordRight(True)
If objSel.Text.StartsWith(" ") Or _
objSel.Text.StartsWith(Microsoft.VisualBasic. _
ControlChars.Tab) Then
' The previous call to WordRight may have skipped some
' white space instead of an actual word. In that case, we
' should call it again.
objSel.WordRight(True)
End If
' Insert the text, overwriting the existing text and leaving
' the selection containing the inserted text.
objSel.Insert(strSelected, _
vsInsertFlags.vsInsertFlagsContainNewText)
End If
End Sub
Exemplo de FindPattern.Este exemplo também ilustra o uso de SelectLine.Antes de executar esse exemplo, você precisa abrir um documento de texto ou um arquivo de código em Visual Studio e adicionar algum texto.
' Example for TextSelection.FindPattern.
'
Sub FindPatternExample()
' Before running this example, open a text document.
Dim objSel As TextSelection = DTE.ActiveDocument.Selection
' Advance to the next Visual Basic function beginning or end by
' searching for "Sub" with white space before and after it.
If objSel.FindPattern(":WhSub:Wh", _
vsFindOptions.vsFindOptionsRegularExpression) Then
' Select the entire line.
objSel.SelectLine()
End If
End Sub
Exemplo de OutlineSection.Este exemplo também ilustra o uso de StartOfDocument, de Line, de LineCharOffset, de FindPattern, de SwapAnchor, de MoveToLineAndOffset e de LineDown.Antes de executar esse exemplo, abrir um documento de código em Visual Studio que contém um bloco de #if _DEBUG…#endif .
' Example for TextSelection.OutlineSection.
'
Sub OutlineSectionExample()
' Before running this example, open a code document
' containing a #if _DEBUG…#endif block.
Dim objSel As TextSelection = DTE.ActiveDocument.Selection
' Move to the beginning of the document so we can iterate over the
' whole thing.
objSel.StartOfDocument()
While objSel.FindPattern("#if _DEBUG")
' If we found the beginning of a debug-only section, save the
' position.
Dim lStartLine As Long = objSel.TopPoint.Line
Dim lStartColumn As Long = objSel.TopPoint.LineCharOffset
' Look for the end.
If objSel.FindPattern("#endif") Then
' Select the entire section and outline it.
objSel.SwapAnchor()
objSel.MoveToLineAndOffset(lStartLine, lStartColumn, True)
objSel.OutlineSection()
objSel.LineDown()
End If
End While
End Sub
O exemplo abre um documento de texto e gera uma lista de todos os comandos disponíveis no documento.
' This generates a text document listing all available command names.
Sub CommandNamesCollapseExample()
Dim Cmd As Command
Dim Commands As Commands = DTE.Commands
Dim PrjItem As ProjectItem
Dim Doc As Document
Dim TxtDoc As TextDocument
DTE.ItemOperations.NewFile ("General\Text File")
Set Doc = ActiveDocument
Set TxtDoc = Doc.Object("TextDocument")
For Each Cmd In Commands
If (Cmd.Name <> "") Then
TxtDoc.Selection.Text = Cmd.Name & vbLF
TxtDoc.Selection.Collapse
End If
Next
End Sub
Exemplo do objeto de HTMLWindow .Este exemplo também ilustra o uso de ActiveDocument, de ActiveWindow, de Window, de CurrentTab, de CurrentTabObject, de ActivePane, de StartPoint, de CreateEditPoint, de FindPattern e de InsertFromFile.Antes de executar esse exemplo, abrir um documento HTML em Visual Studio.
' Example for HTMLWindow object
Sub HTMLWindowExample()
' Open an HTML document before running this sample.
If TypeOf ActiveDocument.ActiveWindow.Object Is HTMLWindow Then
' Ask the user for a file to insert into the body of the HTML
' document. This file should be an HTML fragment.
Dim strFile As String = InputBox("Enter the name of a file to _
insert at the end of the HTML document:")
' Get the HTMLWindow object and determin which tab is currently
' active.
Dim objHTMLWin As HTMLWindow = ActiveDocument.ActiveWindow.Object
Dim Tab As vsHTMLTabs = objHTMLWin.CurrentTab
' Switch to the "source" tab.
objHTMLWin.CurrentTab = vsHTMLTabs.vsHTMLTabsSource
' Get an EditPoint at the start of the text.
Dim objTextWin As TextWindow = objHTMLWin.CurrentTabObject
Dim objEP As EditPoint = _
objTextWin.ActivePane.StartPoint.CreateEditPoint
' Look for the end of the document body.
If objEP.FindPattern("</body>") Then
' Insert the contents of the file.
objEP.InsertFromFile(strFile)
End If
' Switch back to the original view of the HTML file.
objHTMLWin.CurrentTab = Tab
Else
MsgBox("You must open an HTML document.")
End If
End Sub
Consulte também
Tarefas
Como: alterar as características da janela
Passo a passo: Criando um assistente
Conceitos
Gráfico de modelo de objeto de automação
Outros recursos
Criar e controlar o ambiente Windows