ViewFilter Class

This class handles various editing and IntelliSense commands for a language service.

This API is not CLS-compliant. 

Inheritance Hierarchy

System.Object
  Microsoft.VisualStudio.Package.ViewFilter

Namespace:  Microsoft.VisualStudio.Package
Assemblies:   Microsoft.VisualStudio.Package.LanguageService.10.0 (in Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
  Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)
  Microsoft.VisualStudio.Package.LanguageService.9.0 (in Microsoft.VisualStudio.Package.LanguageService.9.0.dll)

Syntax

'Declaration
<CLSCompliantAttribute(False)> _
<ComVisibleAttribute(True)> _
Public Class ViewFilter _
    Implements IVsTextViewFilter, IVsTextViewEvents, IOleCommandTarget, IDisposable,  _
    IVsExpansionEvents
[CLSCompliantAttribute(false)]
[ComVisibleAttribute(true)]
public class ViewFilter : IVsTextViewFilter, IVsTextViewEvents, 
    IOleCommandTarget, IDisposable, IVsExpansionEvents
[CLSCompliantAttribute(false)]
[ComVisibleAttribute(true)]
public ref class ViewFilter : IVsTextViewFilter, 
    IVsTextViewEvents, IOleCommandTarget, IDisposable, IVsExpansionEvents
[<CLSCompliantAttribute(false)>]
[<ComVisibleAttribute(true)>]
type ViewFilter =  
    class
        interface IVsTextViewFilter
        interface IVsTextViewEvents
        interface IOleCommandTarget
        interface IDisposable
        interface IVsExpansionEvents
    end
public class ViewFilter implements IVsTextViewFilter, IVsTextViewEvents, IOleCommandTarget, IDisposable, IVsExpansionEvents

The ViewFilter type exposes the following members.

Constructors

  Name Description
Public method ViewFilter Initializes a new instance of the ViewFilter class.

Top

Properties

  Name Description
Public property CodeWindowManager Gets the CodeWindowManager that owns this ViewFilter.
Public propertyStatic member IsExecutingCommand
Public property IsExpansionUIActive Determines if the code snippet expansion user interface (UI) is active.
Protected property SnippetBound Gets or sets whether or not a key has been bound to the Invoke Snippet From Shortcut command.
Public property Source Gets the Source associated with this ViewFilter.
Public property TextTipData Gets or sets the TextTipData associated with this view.
Public property TextView Gets the IVsTextView object associated with this ViewFilter object.

Top

Methods

  Name Description
Public method CanReformat Determines whether the source can be reformatted by the language service.
Public method Close Closes down the view filter, releasing any allocated resources.
Public method CommentSelection Handles the COMMENT_BLOCK command to comment out the current selection in the view.
Public method CreateTextTipData Creates a new instance of the TextTipData class.
Public method Dispose Frees up any resources allocated when the ViewFilter class was created.
Public method Equals Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method ExecCommand Executes the specified command.
Protected method Finalize Performs final clean up just before the ViewFilter object is destroyed. (Overrides Object.Finalize().)
Public method GetDataTipText Returns text about the given span that can be shown in a tool tip.
Public method GetExpansionProvider Returns an ExpansionProvider object.
Public method GetFullDataTipText Returns a string that can be used in a tool tip, taking into account additional sources of text such as a debugger.
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetPairExtents Returns the extent of the innermost matching pair of language elements that contains the given location.
Public method GetSelection Returns the extent of the currently selected text.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method GetWordExtent Returns the extent of the word or expression that contains the given location.
Public method HandleGoto Processes the specified "go to" command.
Public method HandlePostExec Handles post-processing after a command has been executed.
Public method HandlePreExec Handles pre-processing before a command is executed.
Public method HandleQuickInfo Handles the QUICKINFO command to show tool tip information about the selected identifier or expression.
Public method HandleSmartIndent Handles smart indentation.
Protected method InnerExec Executes an IOleCommandTarget command.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method OnAfterSnippetsKeyBindingChange Called after there has been a change in the key binding for the Invoke Snippet From Shortcut command.
Public method OnAfterSnippetsUpdate Called whenever a folder that contains snippets has been updated and the snippets from that folder have been read in.
Public method OnAutoComplete Called when the AUTOCOMPLETE command is received.
Public method OnChangeCaretLine Called when the caret moves to another line.
Public method OnChangeScrollInfo Called when the scroll information for the specified scroll bar has changed.
Public method OnKillFocus Called when the specified view loses focus.
Public method OnSetBuffer Called when the buffer of lines is being set or changed in the given view.
Public method OnSetFocus Called when the specified view gains focus.
Protected method QueryCommandStatus Determines if the specified command is supported.
Protected method QueryParameterList Called to obtain the parameter for the specified command.
Public method ReformatDocument Handles the FORMATDOCUMENT command to reformat the entire document.
Public method ReformatSelection Handles the FORMATSELECTION command to reformat a selection.
Public method RegisterExpansionManagerEventHandlers
Public method RegisterTextViewEventHandlers
Public method ShowContextMenu(Int32, Guid, IOleCommandTarget) Handles the SHOWCONTEXTMENU command to show a context menu.
Public method ShowContextMenu(Int32, Guid, IOleCommandTarget, Int32, Int32)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Public method TypeChar Executes a TYPECHAR on the current command target chain.
Public method UncommentSelection Handles the UNCOMMENTBLOCK command to uncomment the current selection in the current view.

Top

Explicit Interface Implementations

  Name Description
Explicit interface implemetationPrivate method IOleCommandTarget.Exec Handles execution of a supported command.
Explicit interface implemetationPrivate method IOleCommandTarget.QueryStatus Determines if the specified commands in the given command group are supported.

Top

Remarks

In addition to the cursor, Enter, Backspace, and Delete key commands, this base class provides support for the following commands:

Command

Description

AUTOCOMPLETE

IntelliSense: select member from member list.

SHOWMEMBERLIST

IntelliSense: show member list.

COMPLETEWORD

IntelliSense: complete word being typed.

PARAMINFO

IntelliSense: show parameter information.

QUICKINFO

IntelliSense: show information about an identifier.

GotoDefn

Editing (advanced): go to definition.

GotoDecl

Editing (advanced): go to declaration.

GotoRef

Editing (advanced): go to a reference.

COMMENT_BLOCK

Editing (advanced): comment a span of code.

UNCOMMENT_BLOCK

Editing (Advanced): uncomment a span of code.

OUTLN_STOP_HIDING_ALL

Editing (outlining): stop outlining.

OUTLN_START_AUTOHIDING

Editing (outlining): toggle outlining.

SHOWCONTEXTMENU

Editing: show a context menu.

Notes to Implementers

This class already implements all of the support for IntelliSense as well as various advanced editing features. However, if you want to support additional commands in your language service, then you must derive a class from this class and override the appropriate methods:

  • QueryCommandStatus (to indicate support for your commands)

  • QueryParameterList (if your commands require parameters)

  • HandlePreExec (if your commands require some set up)

  • HandlePostExec(Guid%, UInt32, UInt32, IntPtr, IntPtr) (if your commands require clean up after execution).

  • ExecCommand (to execute the command).

In addition, you must override the CreateViewFilter method in the LanguageService class to create an instance of your version of the ViewFilter class.

Notes to Callers

This class is instantiated in the CreateViewFilter method of the LanguageService class that is in turn called from the OnNewView method in the CodeWindowManager class when a view is attached to a source file.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

Microsoft.VisualStudio.Package Namespace