ProjectItem.FileCodeModel Property

Gets the FileCodeModel object for the project item.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Syntax

'Declaration
ReadOnly Property FileCodeModel As FileCodeModel
FileCodeModel FileCodeModel { get; }
property FileCodeModel^ FileCodeModel {
    FileCodeModel^ get ();
}
abstract FileCodeModel : FileCodeModel with get
function get FileCodeModel () : FileCodeModel

Property Value

Type: EnvDTE.FileCodeModel
A FileCodeModel object.

Remarks

A FileCodeModel object is returned only for project items that are code files and in projects that implement the Visual Studio code model.

Examples

Sub FileCodeModelExample()
   ' This goes through the current document using the Visual Studio 
   ' Code Model to add documentation style comments to each function 
   ' similar to  the Visual C# documenation comments.
   Dim projitem As ProjectItem = DTE.ActiveDocument.ProjectItem
   Dim filecm As FileCodeModel = projitem.FileCodeModel
   Dim celt As CodeElement = filecm.CodeElements.Item(1)
   Dim celttype As CodeType = CType(celt, CodeType)
   Dim ep As EditPoint = celttype.GetStartPoint(vsCMPart.vsCMPartHeader).CreateEditPoint()

   For Each celt In celttype.Members
      If (celt.Kind = vsCMElement.vsCMElementFunction) Then
         ' Get Params.
         Dim codefun As CodeFunction = celt
         ep.MoveToPoint(codefun.GetStartPoint(vsCMPart.vsCMPartHeader))
         Dim params As CodeElements = codefun.Parameters

         ' Do comment.
         ep.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
         ep.LineUp()
         ' ep.Indent(Nothing) ' shouldn't need to pass Nothing.
         ep.Insert(Microsoft.VisualBasic.Constants.vbTab & "''' <summary>")
         ep.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
         ep.Insert(Microsoft.VisualBasic.Constants.vbTab & "''' Summary of this sub.")
         ep.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
         ep.Insert(Microsoft.VisualBasic.Constants.vbTab & "''' <summary>")
         ep.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
         ep.Insert(Microsoft.VisualBasic.Constants.vbTab & "''' ")

         Dim celt2 As CodeElement
         Dim cp As CodeParameter
         For Each celt2 In params
            cp = celt2
            ep.Insert("<param name=" & cp.Name & "></param>")
            ep.Insert(Microsoft.VisualBasic.Constants.vbCrLf)
            ep.Insert(Microsoft.VisualBasic.Constants.vbTab & "''' ")
         Next
      End If
   Next
End Sub

.NET Framework Security

See Also

Reference

ProjectItem Interface

EnvDTE Namespace

Other Resources

Controlling Projects and Solutions