diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionDataFactory.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionDataFactory.cs index e810b5b456..8d25706d93 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionDataFactory.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpCompletionDataFactory.cs @@ -11,10 +11,9 @@ using ICSharpCode.NRefactory.CSharp.Resolver; using ICSharpCode.NRefactory.Completion; using ICSharpCode.NRefactory.CSharp; using ICSharpCode.NRefactory.CSharp.Completion; -using ICSharpCode.NRefactory.CSharp.TypeSystem; using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.SharpDevelop; -using ICSharpCode.SharpDevelop.Editor; +using ICSharpCode.SharpDevelop.Editor.CodeCompletion; namespace CSharpBinding.Completion { @@ -127,7 +126,8 @@ namespace CSharpBinding.Completion IEnumerable ICompletionDataFactory.CreateCodeTemplateCompletionData() { - yield break; + return completionContext.Editor.GetSnippets().OfType() + .Select(snippet => new SnippetCompletionData(snippet)); } IEnumerable ICompletionDataFactory.CreatePreProcessorDefinesCompletionData() diff --git a/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditContainer.Designer.cs b/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditContainer.Designer.cs index 01873c638d..9f6d60d5ef 100644 --- a/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditContainer.Designer.cs +++ b/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditContainer.Designer.cs @@ -36,7 +36,7 @@ namespace HexEditor.View System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(HexEditContainer)); this.tbSizeToFit = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.tCBViewMode = new System.Windows.Forms.DomainUpDown(); + this.tCBViewMode = new System.Windows.Forms.ToolStripComboBox(); this.toolStrip1 = new System.Windows.Forms.ToolStrip(); this.tSTBCharsPerLine = new System.Windows.Forms.NumericUpDown(); this.toolStripProgressBar1 = new System.Windows.Forms.ToolStripProgressBar(); @@ -69,7 +69,8 @@ namespace HexEditor.View "Decimal"}); this.tCBViewMode.Name = "tCBViewMode"; this.tCBViewMode.Size = new System.Drawing.Size(121, 25); - this.tCBViewMode.SelectedItemChanged += new System.EventHandler(this.TCBViewModeSelectedIndexChanged); + this.tCBViewMode.SelectedIndexChanged += new System.EventHandler(this.TCBViewModeSelectedIndexChanged); + this.tCBViewMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; // // toolStrip1 // @@ -129,7 +130,7 @@ namespace HexEditor.View } private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar1; internal HexEditor.Editor hexEditControl; - private System.Windows.Forms.DomainUpDown tCBViewMode; + private System.Windows.Forms.ToolStripComboBox tCBViewMode; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripButton tbSizeToFit; private System.Windows.Forms.ToolStrip toolStrip1; diff --git a/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditContainer.cs b/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditContainer.cs index a7ab920c49..146ab87868 100644 --- a/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditContainer.cs +++ b/src/AddIns/DisplayBindings/HexEditor/Project/Src/View/HexEditContainer.cs @@ -51,8 +51,7 @@ namespace HexEditor.View ToolStripControlHost bytesPerLine = new ToolStripControlHost(tSTBCharsPerLine); this.toolStrip1.Items.Insert(1, bytesPerLine); - ToolStripControlHost viewMode = new ToolStripControlHost(tCBViewMode); - this.toolStrip1.Items.Insert(3, viewMode); + this.toolStrip1.Items.Insert(3, tCBViewMode); hexEditControl.BytesPerLine = Settings.BytesPerLine; tSTBCharsPerLine.Text = hexEditControl.BytesPerLine.ToString(); diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs index 9b3f1a76f9..5e1f073eea 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs @@ -239,11 +239,20 @@ namespace ICSharpCode.TreeView } break; case Key.Return: - case Key.Space: if (container != null && Keyboard.Modifiers == ModifierKeys.None && this.SelectedItems.Count == 1 && this.SelectedItem == container.Node) { container.Node.ActivateItem(e); } break; + case Key.Space: + if (container != null && Keyboard.Modifiers == ModifierKeys.None && this.SelectedItems.Count == 1 && this.SelectedItem == container.Node) { + if(container.Node.IsCheckable) { + if(container.Node.IsChecked == null) // If partially selected, we want to select everything + container.Node.IsChecked = true; + else + container.Node.IsChecked = !container.Node.IsChecked; + } + } + break; case Key.Add: if (container != null && ItemsControl.ItemsControlFromItemContainer(container) == this) { container.Node.IsExpanded = true; diff --git a/src/Main/Base/Project/Editor/CodeCompletion/SnippetCompletionData.cs b/src/Main/Base/Project/Editor/CodeCompletion/SnippetCompletionData.cs new file mode 100644 index 0000000000..97758c305e --- /dev/null +++ b/src/Main/Base/Project/Editor/CodeCompletion/SnippetCompletionData.cs @@ -0,0 +1,110 @@ +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using ICSharpCode.NRefactory; +using ICSharpCode.NRefactory.Completion; +using ICSharpCode.SharpDevelop.Editor.CodeCompletion; + +namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion +{ + /// + /// Code completion data for snippets. + /// + public class SnippetCompletionData : IFancyCompletionItem, ISnippetCompletionItem, ICompletionData, ICompletionItem + { + #region ICompletionData implementation + + void ICompletionData.AddOverload(ICompletionData data) { } + + CompletionCategory category; + CompletionCategory ICompletionData.CompletionCategory { + get { return category; } + set { category = value; } + } + + string ICompletionData.DisplayText { + get { return snippet.Text; } + set { } + } + + string ICompletionData.Description { + get { return snippet.Description; } + set { } + } + + string ICompletionData.CompletionText { + get { return snippet.Text; } + set { } + } + + DisplayFlags displayFlags; + DisplayFlags ICompletionData.DisplayFlags { + get { return displayFlags; } + set { displayFlags = value; } + } + + bool ICompletionData.HasOverloads { + get { return false; } + } + + System.Collections.Generic.IEnumerable ICompletionData.OverloadedData { + get { return EmptyList.Instance; } + } + + #endregion + + ISnippetCompletionItem snippet; + + public SnippetCompletionData(ISnippetCompletionItem completionItem) + { + snippet = completionItem; + } + + #region ISnippetCompletionItem implementation + + public string Keyword { + get { return snippet.Keyword; } + } + + #endregion + + #region ICompletionItem implementation + + public void Complete(CompletionContext context) + { + snippet.Complete(context); + } + + public string Text { + get { return snippet.Text; } + } + + string ICompletionItem.Description { + get { return snippet.Description; } + } + + public ICSharpCode.SharpDevelop.IImage Image { + get { return snippet.Image; } + } + + public double Priority { + get { return snippet.Priority; } + } + + #endregion + + #region IFancyCompletionItem implementation + + public object Content { + get { return snippet.Text; } + } + + public object Description { + get { return snippet.Description; } + } + + #endregion + + } +} diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj index e859ed1fc5..c787f8550f 100644 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj @@ -126,6 +126,7 @@ +