TextPoint.CodeElement Property
Returns the code element at the TextPoint location.
Namespace: EnvDTE
Assembly: EnvDTE (in EnvDTE.dll)
Syntax
'Declaration
ReadOnly Property CodeElement ( _
Scope As vsCMElement _
) As CodeElement
CodeElement this[
vsCMElement Scope
] { get; }
property CodeElement^ CodeElement[[InAttribute] vsCMElement Scope] {
CodeElement^ get ([InAttribute] vsCMElement Scope);
}
abstract CodeElement : CodeElement
JScript does not support indexed properties.
Parameters
- Scope
Type: EnvDTE.vsCMElement
Required. A vsCMElement constant indicating the code element with the specified kind that contains the editor location.
Property Value
Type: EnvDTE.CodeElement
A CodeElement object.
Remarks
If the specified code element type is not at the TextPoint location, then CodeElement returns Nothing. CodeElement is a shortcut for TextPoint.Parent.Parent.ProjectItem.CodeModel.CodeElementFromPoint(TextPoint, <scope>).
Examples
Sub CodeElementExample(ByVal dte As DTE2)
' Before running this example, open a code document from a project
' and place the insertion point anywhere inside the source code.
Try
Dim sel As TextSelection = _
CType(dte.ActiveDocument.Selection, TextSelection)
Dim pnt As TextPoint = CType(sel.ActivePoint, TextPoint)
' Discover every code element containing the insertion point.
Dim elems As String
Dim elem As CodeElement
Dim scope As vsCMElement
For Each scope In [Enum].GetValues(scope.GetType())
elem = pnt.CodeElement(scope)
If IsNothing(elem) = False Then
elems &= elem.Name & _
" (" & scope.ToString() & ")" & vbCrLf
End If
Next
MsgBox("The following elements contain the insertion point:" _
& vbCrLf & vbCrLf & elems)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
public void CodeElementExample(DTE2 dte)
{
// Before running this example, open a code document from a project
// and place the insertion point anywhere inside the source code.
try
{
TextSelection sel =
(TextSelection)dte.ActiveDocument.Selection;
TextPoint pnt = (TextPoint)sel.ActivePoint;
// Discover every code element containing the insertion point.
string elems = "";
vsCMElement scopes = 0;
foreach (vsCMElement scope in Enum.GetValues(scopes.GetType()))
{
CodeElement elem = pnt.get_CodeElement(scope);
if (elem != null)
elems += elem.Name +
" (" + scope.ToString() + ")\n";
}
MessageBox.Show(
"The following elements contain the insertion point:\n\n"
+ elems);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
See Also
Reference
Other Resources
How to: Compile and Run the Automation Object Model Code Examples