I develop a Visual studio extension where I need to process 'Edit.CompleteWord' command in a custom way. In my code, I have 'MyCommandFilter' which I add to the VS filter chain using 'AddCommandFilter'.
The 'MyCommandFilter' looks like this:
public class MyCommandFilter : IOleCommandTarget { public IOleCommandTarget Next { get; set; } public int Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut) { if (pguidCmdGroup == VsMenus.guidStandardCommandSet2K && nCmdID == (uint)VSConstants.VSStd2KCmdID.COMPLETEWORD) { { // Do something } return Next.Exec(ref pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut); } public int QueryStatus(ref Guid pguidCmdGroup, uint cCmds, OLECMD[] prgCmds, IntPtr pCmdText) { if (pguidCmdGroup == VsMenus.guidStandardCommandSet2K && prgCmds[0].cmdID == (uint)VSConstants.VSStd2KCmdID.COMPLETEWORD) { prgCmds[0].cmdf = (uint)OLECMDF.OLECMDF_SUPPORTED; prgCmds[0].cmdf |= (uint)OLECMDF.OLECMDF_ENABLED; return VSConstants.S_OK; } return Next.QueryStatus(ref pguidCmdGroup, cCmds, prgCmds, pCmdText); } }Command 'COMPLETEWORD' does not arrive to the 'MyCommandFilter'. Apparently, not all commands are arriving to 'MyCommandFilter'.
How can I catch those commands? Maybe Visual Studio has another mechanism that will help me to catch those commands or to catch pressed hotkey combinations?