diff options
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs | 60 |
1 files changed, 34 insertions, 26 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs index 0b607df034..72367422a9 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeCompletion/ListWidget.cs @@ -30,12 +30,14 @@ using System.Linq; using Gdk; using Gtk; using Pango; -using ICSharpCode.NRefactory.Completion; -using Mono.TextEditor; -using Mono.TextEditor.Highlighting; +using ICSharpCode.NRefactory6.CSharp.Completion; using MonoDevelop.Components; using MonoDevelop.Ide.Fonts; -using MonoDevelop.Ide.Gui.Content;
+using MonoDevelop.Ide.Gui.Content; +using MonoDevelop.Ide.Editor; +using System.ComponentModel.Design; +using MonoDevelop.Ide.Editor.Highlighting; +using MonoDevelop.Ide.Editor.Extension; using MonoDevelop.Core; namespace MonoDevelop.Ide.CodeCompletion @@ -95,26 +97,27 @@ namespace MonoDevelop.Ide.CodeCompletion public bool CloseOnSquareBrackets { get; set; - }
-
- public readonly static PropertyWrapper<bool> EnableCompletionCategoryMode = PropertyService.Wrap("EnableCompletionCategoryMode", false);
-
+ } + + public readonly static PropertyWrapper<bool> EnableCompletionCategoryMode = PropertyService.Wrap("EnableCompletionCategoryMode", false); + public bool InCategoryMode { - get { return EnableCompletionCategoryMode; } - set { - EnableCompletionCategoryMode.Set(value); + get { return EnableCompletionCategoryMode && categories.Count > 1; } + } - CalcVisibleRows (); - if (value) - SelectFirstItemInCategory (); - } + internal void UpdateCategoryMode () + { + CalcVisibleRows (); + if (InCategoryMode) + SelectFirstItemInCategory (); } + public int CategoryCount { get { return this.categories.Count; } } ICompletionWidget completionWidget; - public ICompletionWidget CompletionWidget { + internal ICompletionWidget CompletionWidget { get { return completionWidget; } @@ -141,14 +144,11 @@ namespace MonoDevelop.Ide.CodeCompletion // TODO: Add font property to ICompletionWidget; if (itemFont != null) itemFont.Dispose (); - itemFont = FontService.GetFontDescription ("Editor").Copy (); - var provider = CompletionWidget as ITextEditorDataProvider; - if (provider != null) { - var newSize = (itemFont.Size * provider.GetTextEditorData ().Options.Zoom); - if (newSize > 0) { - itemFont.Size = (int)newSize; - layout.FontDescription = itemFont; - } + itemFont = FontService.MonospaceFont.Copy (); + var newSize = (itemFont.Size * (completionWidget != null ? this.completionWidget.ZoomLevel : 1)); + if (newSize > 0) { + itemFont.Size = (int)newSize; + layout.FontDescription = itemFont; } } @@ -380,9 +380,17 @@ namespace MonoDevelop.Ide.CodeCompletion public bool SelectionEnabled { get { - return AutoSelect && (AutoCompleteEmptyMatch || !string.IsNullOrEmpty (CompletionString)); + return AutoSelect && (AutoCompleteEmptyMatch || !IsEmptyMatch (CompletionString)); } } + + static bool IsEmptyMatch (string completionString) + { + if (string.IsNullOrEmpty (completionString)) + return true; + var ch = completionString [0]; + return char.IsDigit (ch); + } protected override bool OnButtonPressEvent (EventButton e) { @@ -656,7 +664,7 @@ namespace MonoDevelop.Ide.CodeCompletion }); categories = newCategories; - SelectFirstItemInCategory (); + //SelectFirstItemInCategory (); CalcVisibleRows (); SetAdjustments (); |