ExpansionProvider.FindExpansionByShortcut Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns S_OK if match found, S_FALSE if expansion UI is shown, and error otherwise
public:
virtual int FindExpansionByShortcut(Microsoft::VisualStudio::TextManager::Interop::IVsTextView ^ view, System::String ^ shortcut, Microsoft::VisualStudio::TextManager::Interop::TextSpan span, bool showDisambiguationUI, [Runtime::InteropServices::Out] System::String ^ % title, [Runtime::InteropServices::Out] System::String ^ % path);
virtual int FindExpansionByShortcut(Microsoft::VisualStudio::TextManager::Interop::IVsTextView const & view, std::wstring const & shortcut, Microsoft::VisualStudio::TextManager::Interop::TextSpan span, bool showDisambiguationUI, [Runtime::InteropServices::Out] std::wstring const & & title, [Runtime::InteropServices::Out] std::wstring const & & path);
public virtual int FindExpansionByShortcut (Microsoft.VisualStudio.TextManager.Interop.IVsTextView view, string shortcut, Microsoft.VisualStudio.TextManager.Interop.TextSpan span, bool showDisambiguationUI, out string title, out string path);
abstract member FindExpansionByShortcut : Microsoft.VisualStudio.TextManager.Interop.IVsTextView * string * Microsoft.VisualStudio.TextManager.Interop.TextSpan * bool * string * string -> int
override this.FindExpansionByShortcut : Microsoft.VisualStudio.TextManager.Interop.IVsTextView * string * Microsoft.VisualStudio.TextManager.Interop.TextSpan * bool * string * string -> int
Public Overridable Function FindExpansionByShortcut (view As IVsTextView, shortcut As String, span As TextSpan, showDisambiguationUI As Boolean, ByRef title As String, ByRef path As String) As Integer
Parameters
- view
- IVsTextView
[in] An IVsTextView object representing the view in which the snippet is to be inserted.
- shortcut
- String
[in] A string containing the shortcut name of the snippet.
- showDisambiguationUI
- Boolean
[in] This is true
if a user interface can be shown to resolve duplicate names; otherwise, false
means to select the first expansion found that matches the shortcut name.
- title
- String
[out] Returns the title of the snippet found.
- path
- String
[out] Returns the path to the snippet template file.
Returns
If an expansion template was found, returns S_OK; otherwise, returns an error code from the VSConstants enumeration.
Remarks
This helper method is called by your language service code. An expansion can occur because the user selected an expansion shortcut from a list (see the DisplayExpansionBrowser method) or a particular character is typed that triggers an expansion. For example, typing a space after typing "if" might trigger an expansion into "if () { }
" where the cursor is positioned between the parentheses (this is also known as auto-completion). In this case, the word "if" is the shortcut for the snippet. If you handle auto-completions such as this, you would call the FindExpansionByShortcut method when a space or tab is typed. If the FindExpansionByShortcut method returns a path, then the snippet can be expanded by a call to the InsertNamedExpansion method.
See the example in the ExpansionProvider class to see how this method is used.
When a shortcut matches more than one snippet and showDisambiguationUI
is true, then a list of possible choices displaying the snippet's title can be displayed to have the user resolve the conflict.
The base method obtains an IVsTextManager object from the SVsTextManager service and calls the GetExpansionByShortcut method on the IVsTextManager object. The GetExpansionByShortcut method does all the work. The base method returns true
if the GetExpansionByShortcut method returns a success code.