FileCodeModel2.CodeElementFromPoint(TextPoint, vsCMElement) Method

Definition

Returns a code element at a specific ___location in a source file.

public:
 EnvDTE::CodeElement ^ CodeElementFromPoint(EnvDTE::TextPoint ^ Point, EnvDTE::vsCMElement Scope);
public:
 EnvDTE::CodeElement ^ CodeElementFromPoint(EnvDTE::TextPoint ^ Point, EnvDTE::vsCMElement Scope);
EnvDTE::CodeElement CodeElementFromPoint(EnvDTE::TextPoint const & Point, EnvDTE::vsCMElement Scope);
[System.Runtime.InteropServices.DispId(5)]
public EnvDTE.CodeElement CodeElementFromPoint(EnvDTE.TextPoint Point, EnvDTE.vsCMElement Scope);
[<System.Runtime.InteropServices.DispId(5)>]
abstract member CodeElementFromPoint : EnvDTE.TextPoint * EnvDTE.vsCMElement -> EnvDTE.CodeElement
Public Function CodeElementFromPoint (Point As TextPoint, Scope As vsCMElement) As CodeElement

Parameters

Point
TextPoint

Required. A TextPoint object representing the editor ___location for which you want a code element.

Scope
vsCMElement

Required. A vsCMElement value representing the code element of the specified type that contains the editor ___location.

Returns

A CodeElement object.

Implements

Attributes

Examples

Sub CodeElementFromPointExample(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.  
    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 fcm As FileCodeModel = _  
        dte.ActiveDocument.ProjectItem.FileCodeModel  
    Dim elems As String  
    Dim elem As CodeElement  
    Dim scope As vsCMElement  
    For Each scope In [Enum].GetValues(scope.GetType())  
        Try  
            elem = fcm.CodeElementFromPoint(pnt, scope)  
            elems &= elem.Name & " (" & scope.ToString() & ")" & vbCrLf  
       Catch ex As Exception  
            ‘don’t do anything -  
            ‘this is expected when no code elements are in scope  
       End Try  
    Next  
    MsgBox("The following elements contain the insertion point:" _  
            & vbCrLf & vbCrLf & elems)  
End Sub  
public void CodeElementFromPointExample(DTE2 dte)  
{  
    // Before running this example, open a code document from a project  
    // and place the insertion point anywhere inside the source code.  
    TextSelection sel =   
        (TextSelection)dte.ActiveDocument.Selection;  
    TextPoint pnt = (TextPoint)sel.ActivePoint;  
    // Discover every code element containing the insertion point.  
    FileCodeModel fcm =   
    dte.ActiveDocument.ProjectItem.FileCodeModel;  
    string elems = "";  
    vsCMElement scopes = 0;  
    foreach (vsCMElement scope in Enum.GetValues(scopes.GetType()))  
    {  
        try  
        {  
            CodeElement elem = fcm.CodeElementFromPoint(pnt, scope);  
            elems += elem.Name + " (" + scope.ToString() + ")\n";  
        }  
        catch (COMException ex)  
        {  
            //don’t do anything – this is expected if there is   
            //no code element in the scope  
        }  
    }  
    MessageBox.Show(  
        "The following elements contain the insertion point:\n\n" +   
        elems);  
}  

Remarks

CodeElementFromPoint returns the code element associated with the TextPoint based on the specified scope or granularity of containment. If no code element of the specified type contains the editor ___location, then CodeElementFromPoint fails.

Applies to