Implementation:
- added bool ICompletionItemList.ContainsAllAvailableItems - the list tells if it could contain even more items and anyone displaying it (SharpDevelopCompletionWindow) can handle this
- bool ContainsAllAvailableItems is always true except for NRefactoryCompletionItemList returned by NRefactoryCtrlSpaceCompletionItemProvider, where it can be set to false
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5906 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
Original Ctrl+Space (types shown when user starts typing in the editor) still always shows types from all referenced projects. Maybe we could change this to show only items from imported namespaces by default, and all items for Ctrl+Space press, for consistency (ReSharper-like). If we want this, NRefactoryResolver.CtrlSpace() method is ready for this change. I am not sure yet, I quite like current state (all types shown in CC don't bother me), but it is a little inconsistent.
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5845 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
How I did this (please Daniel check if it's OK):
- added new method CtrlSpaceResolveHelper.AddReferencedProjectsContents()
- use this method in NRefactoryResolver.CtrlSpaceInternal() instead of CtrlSpaceResolveHelper.AddImportedNamespaceContents(), that means this will work for NRefactory languages. I believe there is no simple way to make it work for XAML, F#, Boo and Python at the same time, as they have different IResolvers that don't share any code, (although they maybe could?)
-> that means CC list always contains all referenced APIs
- Extend CodeCompletionItem.Complete() method to look if IClass being completed can be resolved in current context, and if not, add the using
The CC list gets larger now - I am profiling this to achieve the best speed possible.
Minor CC improvement:
- if there are more types with the same name, all of them are shown in CC. If user selects type which is not the one closest to current scope, CC inserts full name (e.g. if user has his own XmlNode class in current namespace, he can still choose to insert "System.Xml.XmlNode" from CC). TODO show fully qualified name in CC tooltips.
- compare to VS 2010 behavior: shows only the type that is closest to current scope (i.e. only shows user's XmlNode)
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5753 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
Please provide feedback (usefulness, performance, highlight color, ...)
It should have no effect on editor performance - when moving caret by holding an arrow in the editor, nothing gets executed. After the caret stops for 100ms at one place, expression under caret is resolved to e.g. hide current highlight if no expression is under caret. Then, if the caret stays in place for 1000ms, "Find references in current document" is executed (on the main thread, but it's quite fast, maybe could be moved to background thread).
The timeouts are done using two DispatcherTimers.
Added "Find references in given document" (RefactoringService.FindReferencesLocal) to RefactoringService.
Refactored RefactoringService a bit, but public API and its behavior stays unchanged.
Fixed comment of DebuggerService.HandleToolTipRequest.
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5725 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
Close code completion window after '.'-completion when deleting the dot with backspace.
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5674 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
Remove WPF designer's copy of NumericUpDown and ZoomControl and use SD.Widgets instead.
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5659 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61