C# Class Vim.VisualStudio.VsVimHost

Inheritance: Vim.UI.Wpf.VimHost, IVsSelectionEvents
Show file Open project: jaredpar/VsVim

Private Properties

Property Type Description
GetCPlusPlusIdentifier string
GoToDefinitionCPlusPlus bool
GoToDefinitionCore bool
IVsSelectionEvents int
IVsSelectionEvents int
IVsSelectionEvents int
InitTelemetry void
MoveFocusHorizontally bool
SafeExecuteCommand bool
VsVimHost System

Public Methods

Method Description
BeginBulkOperation ( ) : void

Treat a bulk operation just like a macro replay. They have similar semantics like we don't want intellisense to be displayed during the operation.

Close ( ITextView textView ) : void
CloseAllOtherTabs ( ITextView textView ) : void
CloseAllOtherWindows ( ITextView textView ) : void
EndBulkOperation ( ) : void
FormatLines ( ITextView textView, SnapshotLineRange range ) : void

Format the specified line range. There is no inherent operation to do this in Visual Studio. Instead we leverage the FormatSelection command. Need to be careful to reset the selection after a format

GetName ( ITextBuffer buffer ) : string
GetNewLineIndent ( ITextView textView, ITextSnapshotLine contextLine, ITextSnapshotLine newLine ) : FSharpOption
GetTabIndex ( ITextView textView ) : int
GetWordWrapStyle ( ITextView textView ) : WordWrapStyles
GoToDefinition ( ) : bool
GoToGlobalDeclaration ( ITextView textView, string target ) : bool
GoToLocalDeclaration ( ITextView textView, string target ) : bool
GoToQuickFix ( QuickFix quickFix, int count, bool hasBang ) : bool
GoToTab ( int index ) : void
IsReadOnly ( ITextBuffer textBuffer ) : bool
LoadFileIntoExistingWindow ( string filePath, ITextView textView ) : bool

In a perfect world this would replace the contents of the existing ITextView with those of the specified file. Unfortunately this causes problems in Visual Studio when the file is of a different content type. Instead we mimic the behavior by opening the document in a new window and closing the existing one

LoadFileIntoNewWindow ( string filePath ) : bool

Open up a new document window with the specified file

Make ( bool jumpToFirstError, string arguments ) : void
MoveFocus ( ITextView textView, Direction direction ) : void
NavigateTo ( VirtualSnapshotPoint point ) : bool
Quit ( ) : void
RunHostCommand ( ITextView textView, string command, string argument ) : void
Save ( ITextBuffer textBuffer ) : bool
SaveTextAs ( string text, string fileName ) : bool
ShouldCreateVimBuffer ( ITextView textView ) : bool
ShouldIncludeRcFile ( VimRcPath vimRcPath ) : bool
ShouldKeepSelectionAfterHostCommand ( string command, string argument ) : bool
SplitViewHorizontally ( ITextView textView ) : void

Perform a horizontal window split

SplitViewVertically ( ITextView value ) : void

Perform a vertical buffer split, which is essentially just another window in a different tab group.

TryCustomProcess ( ITextView textView, InsertCommand command ) : bool

Custom process the insert command if possible. This is handled by VsCommandTarget

TryGetFocusedTextView ( ITextView &textView ) : bool
VimCreated ( IVim vim ) : void
VimRcLoaded ( VimRcState vimRcState, IVimLocalSettings localSettings, IVimWindowSettings windowSettings ) : void

Private Methods

Method Description
GetCPlusPlusIdentifier ( ITextView textView ) : string

Get the C++ identifier which exists under the caret

GoToDefinitionCPlusPlus ( ITextView textView, string target ) : bool

The C++ project system requires that the target of GoToDefinition be passed as an argument to the command.

GoToDefinitionCore ( ITextView textView, string target ) : bool
IVsSelectionEvents ( IVsHierarchy pHierOld, uint itemidOld, IVsMultiItemSelect pMISOld, ISelectionContainer pSCOld, IVsHierarchy pHierNew, uint itemidNew, IVsMultiItemSelect pMISNew, ISelectionContainer pSCNew ) : int
IVsSelectionEvents ( uint dwCmdUICookie, int fActive ) : int
IVsSelectionEvents ( uint elementid, object varValueOld, object varValueNew ) : int
InitTelemetry ( ITelemetry telemetry, IVimApplicationSettings vimApplicationSettings ) : void
MoveFocusHorizontally ( int indexDelta ) : bool
SafeExecuteCommand ( ITextView contextTextView, string command, string args = "" ) : bool
VsVimHost ( IVsAdapter adapter, ITextBufferFactoryService textBufferFactoryService, ITextEditorFactoryService textEditorFactoryService, ITextDocumentFactoryService textDocumentFactoryService, ITextBufferUndoManagerProvider undoManagerProvider, IVsEditorAdaptersFactoryService editorAdaptersFactoryService, IEditorOperationsFactoryService editorOperationsFactoryService, ISmartIndentationService smartIndentationService, ITextManager textManager, ISharedServiceFactory sharedServiceFactory, IVimApplicationSettings vimApplicationSettings, IExtensionAdapterBroker extensionAdapterBroker, SVsServiceProvider serviceProvider, ITelemetryProvider telemetryProvider ) : System

Method Details

BeginBulkOperation() public method

Treat a bulk operation just like a macro replay. They have similar semantics like we don't want intellisense to be displayed during the operation.
public BeginBulkOperation ( ) : void
return void

Close() public method

public Close ( ITextView textView ) : void
textView ITextView
return void

CloseAllOtherTabs() public method

public CloseAllOtherTabs ( ITextView textView ) : void
textView ITextView
return void

CloseAllOtherWindows() public method

public CloseAllOtherWindows ( ITextView textView ) : void
textView ITextView
return void

EndBulkOperation() public method

public EndBulkOperation ( ) : void
return void

FormatLines() public method

Format the specified line range. There is no inherent operation to do this in Visual Studio. Instead we leverage the FormatSelection command. Need to be careful to reset the selection after a format
public FormatLines ( ITextView textView, SnapshotLineRange range ) : void
textView ITextView
range SnapshotLineRange
return void

GetName() public method

public GetName ( ITextBuffer buffer ) : string
buffer ITextBuffer
return string

GetNewLineIndent() public method

public GetNewLineIndent ( ITextView textView, ITextSnapshotLine contextLine, ITextSnapshotLine newLine ) : FSharpOption
textView ITextView
contextLine ITextSnapshotLine
newLine ITextSnapshotLine
return FSharpOption

GetTabIndex() public method

public GetTabIndex ( ITextView textView ) : int
textView ITextView
return int

GetWordWrapStyle() public method

public GetWordWrapStyle ( ITextView textView ) : WordWrapStyles
textView ITextView
return WordWrapStyles

GoToDefinition() public method

public GoToDefinition ( ) : bool
return bool

GoToGlobalDeclaration() public method

public GoToGlobalDeclaration ( ITextView textView, string target ) : bool
textView ITextView
target string
return bool

GoToLocalDeclaration() public method

public GoToLocalDeclaration ( ITextView textView, string target ) : bool
textView ITextView
target string
return bool

GoToQuickFix() public method

public GoToQuickFix ( QuickFix quickFix, int count, bool hasBang ) : bool
quickFix QuickFix
count int
hasBang bool
return bool

GoToTab() public method

public GoToTab ( int index ) : void
index int
return void

IsReadOnly() public method

public IsReadOnly ( ITextBuffer textBuffer ) : bool
textBuffer ITextBuffer
return bool

LoadFileIntoExistingWindow() public method

In a perfect world this would replace the contents of the existing ITextView with those of the specified file. Unfortunately this causes problems in Visual Studio when the file is of a different content type. Instead we mimic the behavior by opening the document in a new window and closing the existing one
public LoadFileIntoExistingWindow ( string filePath, ITextView textView ) : bool
filePath string
textView ITextView
return bool

LoadFileIntoNewWindow() public method

Open up a new document window with the specified file
public LoadFileIntoNewWindow ( string filePath ) : bool
filePath string
return bool

Make() public method

public Make ( bool jumpToFirstError, string arguments ) : void
jumpToFirstError bool
arguments string
return void

MoveFocus() public method

public MoveFocus ( ITextView textView, Direction direction ) : void
textView ITextView
direction Direction
return void

NavigateTo() public method

public NavigateTo ( VirtualSnapshotPoint point ) : bool
point VirtualSnapshotPoint
return bool

Quit() public method

public Quit ( ) : void
return void

RunHostCommand() public method

public RunHostCommand ( ITextView textView, string command, string argument ) : void
textView ITextView
command string
argument string
return void

Save() public method

public Save ( ITextBuffer textBuffer ) : bool
textBuffer ITextBuffer
return bool

SaveTextAs() public method

public SaveTextAs ( string text, string fileName ) : bool
text string
fileName string
return bool

ShouldCreateVimBuffer() public method

public ShouldCreateVimBuffer ( ITextView textView ) : bool
textView ITextView
return bool

ShouldIncludeRcFile() public method

public ShouldIncludeRcFile ( VimRcPath vimRcPath ) : bool
vimRcPath VimRcPath
return bool

ShouldKeepSelectionAfterHostCommand() public method

public ShouldKeepSelectionAfterHostCommand ( string command, string argument ) : bool
command string
argument string
return bool

SplitViewHorizontally() public method

Perform a horizontal window split
public SplitViewHorizontally ( ITextView textView ) : void
textView ITextView
return void

SplitViewVertically() public method

Perform a vertical buffer split, which is essentially just another window in a different tab group.
public SplitViewVertically ( ITextView value ) : void
value ITextView
return void

TryCustomProcess() public method

Custom process the insert command if possible. This is handled by VsCommandTarget
public TryCustomProcess ( ITextView textView, InsertCommand command ) : bool
textView ITextView
command InsertCommand
return bool

TryGetFocusedTextView() public method

public TryGetFocusedTextView ( ITextView &textView ) : bool
textView ITextView
return bool

VimCreated() public method

public VimCreated ( IVim vim ) : void
vim IVim
return void

VimRcLoaded() public method

public VimRcLoaded ( VimRcState vimRcState, IVimLocalSettings localSettings, IVimWindowSettings windowSettings ) : void
vimRcState VimRcState
localSettings IVimLocalSettings
windowSettings IVimWindowSettings
return void