TypeAndMemberDropdownBars.OnSynchronizeDropdowns 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.
This method is called to update the drop down bars to match the current contents of the text editor window. It is called during OnIdle when the caret position changes. You can provide new drop down members here. It is up to you to sort the ArrayLists if you want them sorted in any particular order.
public:
abstract bool OnSynchronizeDropdowns(Microsoft::VisualStudio::Package::LanguageService ^ languageService, Microsoft::VisualStudio::TextManager::Interop::IVsTextView ^ textView, int line, int col, System::Collections::ArrayList ^ dropDownTypes, System::Collections::ArrayList ^ dropDownMembers, int % selectedType, int % selectedMember);
public abstract bool OnSynchronizeDropdowns (Microsoft.VisualStudio.Package.LanguageService languageService, Microsoft.VisualStudio.TextManager.Interop.IVsTextView textView, int line, int col, System.Collections.ArrayList dropDownTypes, System.Collections.ArrayList dropDownMembers, ref int selectedType, ref int selectedMember);
abstract member OnSynchronizeDropdowns : Microsoft.VisualStudio.Package.LanguageService * Microsoft.VisualStudio.TextManager.Interop.IVsTextView * int * int * System.Collections.ArrayList * System.Collections.ArrayList * int * int -> bool
Public MustOverride Function OnSynchronizeDropdowns (languageService As LanguageService, textView As IVsTextView, line As Integer, col As Integer, dropDownTypes As ArrayList, dropDownMembers As ArrayList, ByRef selectedType As Integer, ByRef selectedMember As Integer) As Boolean
Parameters
- languageService
- LanguageService
The language service
- textView
- IVsTextView
The editor window
- line
- Int32
The line on which the cursor is now positioned
- col
- Int32
The column on which the cursor is now position
- dropDownTypes
- ArrayList
The current list of types (you can update this)
- dropDownMembers
- ArrayList
The current list of members (you can update this)
- selectedType
- Int32
The selected type (you can update this)
- selectedMember
- Int32
The selected member (you can update this)
Returns
true if something was updated
Remarks
This method must be implemented in a class derived from the TypeAndMemberDropdownBars class.
This method does whatever is necessary to populate the two lists supplied in the dropDownTypes
and dropDownMembers
parameters. How this is done is entirely up to you. One possible approach is to implement a custom method on the Source class to return a list filled with all methods, their location and their containing types obtained from the last full parse. A second custom method on the Source class could return a list of all types (classes and structures) obtained from the last full parse. These two lists could be added to a derived version of the AuthoringSink class which is used to gather information during a parsing operation.
Then, to implement the OnSynchronizeDropdowns method, you would obtain the Source object from the LanguageService object by calling the GetSource method with the IVsTextView object. Call your two custom methods on the Source object to obtain the lists of types and members and use those lists to create the DropDownMember objects for the dropDownTypes
and dropDownMembers
lists.