From 9206e9345136f1b4b30976ed543bdad7e920eb2d Mon Sep 17 00:00:00 2001 From: Patryk Mikos Date: Sat, 21 Dec 2013 13:21:23 +0100 Subject: [PATCH 01/26] Highlight current line added in AvalonEdit --- .../AvalonEdit.AddIn/AvalonEdit.AddIn.csproj | 1 + .../AvalonEdit.AddIn/Src/CodeEditorView.cs | 19 +++- .../Src/CurrentLineHighlightRenderer.cs | 101 ++++++++++++++++++ .../Src/Options/HighlightingOptions.xaml.cs | 23 ++++ 4 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CurrentLineHighlightRenderer.cs diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj index 76cd5ff985..768084692a 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj @@ -109,6 +109,7 @@ + diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs index a49d7eab11..4e9b806dc5 100755 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs @@ -48,6 +48,7 @@ namespace ICSharpCode.AvalonEdit.AddIn public ITextEditor Adapter { get; set; } BracketHighlightRenderer bracketRenderer; + CurrentLineHighlightRenderer currentLineRenderer; //CaretReferencesRenderer caretReferencesRenderer; ContextActionsRenderer contextActionsRenderer; HiddenDefinition.HiddenDefinitionRenderer hiddenDefinitionRenderer; @@ -57,6 +58,7 @@ namespace ICSharpCode.AvalonEdit.AddIn this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Help, OnHelpExecuted)); this.bracketRenderer = new BracketHighlightRenderer(this.TextArea.TextView); + this.currentLineRenderer = new CurrentLineHighlightRenderer(this.TextArea.TextView); //this.caretReferencesRenderer = new CaretReferencesRenderer(this); this.contextActionsRenderer = new ContextActionsRenderer(this); this.hiddenDefinitionRenderer = new HiddenDefinition.HiddenDefinitionRenderer(this); @@ -71,6 +73,7 @@ namespace ICSharpCode.AvalonEdit.AddIn this.TextArea.TextView.MouseDown += TextViewMouseDown; this.TextArea.TextView.MouseUp += TextViewMouseUp; this.TextArea.Caret.PositionChanged += HighlightBrackets; + this.TextArea.Caret.PositionChanged += HighlightCurrentLine; this.TextArea.TextView.VisualLinesChanged += CodeEditorView_VisualLinesChanged; SetupTabSnippetHandler(); @@ -104,6 +107,9 @@ namespace ICSharpCode.AvalonEdit.AddIn case "HighlightBrackets": HighlightBrackets(null, e); break; + case "HighlightCurrentLine": + HighlightCurrentLine(null, e); + break; case "EnableFolding": UpdateParseInformationForFolding(); break; @@ -114,7 +120,8 @@ namespace ICSharpCode.AvalonEdit.AddIn } } - #region CaretPositionChanged - Bracket Highlighting + #region CaretPositionChanged - Bracket Highlighting and current line highlighting + /// /// Highlights matching brackets. /// @@ -145,6 +152,15 @@ namespace ICSharpCode.AvalonEdit.AddIn } } } + + /// + /// Highlights current line + /// + void HighlightCurrentLine(object sender, EventArgs e) + { + this.currentLineRenderer.SetHighlight(this.TextArea.Caret.Line); + } + #endregion #region Custom Tab command (code snippet expansion) @@ -512,6 +528,7 @@ namespace ICSharpCode.AvalonEdit.AddIn var customizations = CustomizedHighlightingColor.FetchCustomizations(language); CustomizingHighlighter.ApplyCustomizationsToDefaultElements(this, customizations); BracketHighlightRenderer.ApplyCustomizationsToRendering(this.bracketRenderer, customizations); + CurrentLineHighlightRenderer.ApplyCustomizationsToRendering(this.currentLineRenderer, customizations); HighlightingOptions.ApplyToRendering(this, customizations); this.TextArea.TextView.Redraw(); // manually redraw if default elements didn't change but customized highlightings did } diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CurrentLineHighlightRenderer.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CurrentLineHighlightRenderer.cs new file mode 100644 index 0000000000..87527653c4 --- /dev/null +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CurrentLineHighlightRenderer.cs @@ -0,0 +1,101 @@ +// 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 System.Collections.Generic; +using System.Diagnostics; +using System.Windows; +using System.Windows.Media; + +using ICSharpCode.AvalonEdit.Document; +using ICSharpCode.AvalonEdit.Rendering; +using ICSharpCode.SharpDevelop.Editor; + +namespace ICSharpCode.AvalonEdit.AddIn +{ + public class CurrentLineHighlightRenderer : IBackgroundRenderer + { + int line; + Pen borderPen; + Brush backgroundBrush; + TextView textView; + + public static readonly Color DefaultBackground = Color.FromArgb(22, 20, 220, 224); + public static readonly Color DefaultBorder = Color.FromArgb(52, 0, 255, 110); + + public const string CurrentLineHighlight = "Current line highlight"; + + public CurrentLineHighlightRenderer(TextView textView) + { + if (textView == null) + throw new ArgumentNullException("textView"); + + this.textView = textView; + this.textView.BackgroundRenderers.Add(this); + this.line = -1; + } + + public void SetHighlight(int caretLine) + { + this.line = caretLine; + this.textView.InvalidateLayer(this.Layer); + } + + void UpdateColors(Color background, Color foreground) + { + this.borderPen = new Pen(new SolidColorBrush(foreground), 1); + this.borderPen.Freeze(); + + this.backgroundBrush = new SolidColorBrush(background); + this.backgroundBrush.Freeze(); + } + + public KnownLayer Layer + { + get + { + return KnownLayer.Selection; + } + } + + public void Draw(TextView textView, DrawingContext drawingContext) + { + BackgroundGeometryBuilder builder = new BackgroundGeometryBuilder(); + + builder.CornerRadius = 1; + builder.AlignToMiddleOfPixels = true; + + var visualLine = this.textView.GetVisualLine(line); + if(visualLine == null) return; + + var textViewPos = visualLine.GetTextViewPosition(0); + if(textViewPos == null) return; + + var position = this.textView.GetVisualPosition(textViewPos, VisualYPosition.LineTop); + if(position == null) return; + + var lineWidth = this.textView.ActualWidth; + var lineHeigth = visualLine.Height; + var linePosX = position.X - this.textView.ScrollOffset.X; + var linePosY = position.Y - this.textView.ScrollOffset.Y; + + builder.AddRectangle(textView, new Rect(linePosX, linePosY, lineWidth, lineHeigth)); + + Geometry geometry = builder.CreateGeometry(); + if (geometry != null) { + drawingContext.DrawGeometry(backgroundBrush, borderPen, geometry); + } + } + + public static void ApplyCustomizationsToRendering(CurrentLineHighlightRenderer renderer, IEnumerable customizations) + { + renderer.UpdateColors(DefaultBackground, DefaultBorder); + foreach (CustomizedHighlightingColor color in customizations) { + if (color.Name == CurrentLineHighlight) { + renderer.UpdateColors(color.Background ?? Colors.Pink, color.Foreground ?? Colors.Pink); + break; + } + } + } + } +} diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml.cs index c4f594d4c9..1fb14485b1 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml.cs @@ -40,6 +40,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options CodeEditorOptions.Instance.BindToTextEditor(textEditor); textEditor.Options = new TextEditorOptions(CodeEditorOptions.Instance); bracketHighlighter = new BracketHighlightRenderer(textEditor.TextArea.TextView); + currentLineHighlighter = new CurrentLineHighlightRenderer(textEditor.TextArea.TextView); foldingManager = FoldingManager.Install(textEditor.TextArea); textMarkerService = new TextMarkerService(textEditor.Document); textEditor.TextArea.TextView.BackgroundRenderers.Add(textMarkerService); @@ -48,6 +49,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options } BracketHighlightRenderer bracketHighlighter; + CurrentLineHighlightRenderer currentLineHighlighter; FoldingManager foldingManager; TextMarkerService textMarkerService; List customizationList; @@ -351,6 +353,26 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options bracketHighlight.PropertyChanged += item_PropertyChanged; items.Add(bracketHighlight); + // Create entry for "Current Line highlight" + IHighlightingItem currentLineHighlight = new SimpleHighlightingItem( + CurrentLineHighlightRenderer.CurrentLineHighlight, + ta => { + ta.Document.Text = "example text line"; + XshdSyntaxDefinition xshd = (XshdSyntaxDefinition)languageComboBox.SelectedItem; + if (xshd == null) + return; + var customizationsForCurrentLanguage = customizationList.Where(c => c.Language == null || c.Language == xshd.Name); + CurrentLineHighlightRenderer.ApplyCustomizationsToRendering(currentLineHighlighter, customizationsForCurrentLanguage); + currentLineHighlighter.SetHighlight(0); + }) + { + Foreground = CurrentLineHighlightRenderer.DefaultBorder, + Background = CurrentLineHighlightRenderer.DefaultBackground + }; + currentLineHighlight = new CustomizedHighlightingItem(customizationList, currentLineHighlight, language, canSetFont: false); + currentLineHighlight.PropertyChanged += item_PropertyChanged; + items.Add(currentLineHighlight); + // Create entry for "Folding controls" IHighlightingItem foldingControls = new SimpleHighlightingItem( FoldingControls, @@ -565,6 +587,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options } textEditor.Select(0, 0); bracketHighlighter.SetHighlight(null); + currentLineHighlighter.SetHighlight(0); item.ShowExample(textEditor.TextArea); ITextMarker m = textMarkerService.TextMarkers.SingleOrDefault(); if (m != null && m.Tag != null) { From e16558b94a0e9553ae533328b0ce5543682ad818 Mon Sep 17 00:00:00 2001 From: Patryk Mikos Date: Sat, 21 Dec 2013 18:44:46 +0100 Subject: [PATCH 02/26] Add Highlight current line option to Tools->Options memu --- data/resources/StringResources.resx | 5 ++++- .../AvalonEdit.AddIn/Src/CodeEditorView.cs | 8 +++++++- .../Src/Options/CodeEditorOptions.cs | 13 +++++++++++++ .../Src/Options/TextViewOptions.xaml | 5 ++++- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx index fcea373641..8225b90b7b 100644 --- a/data/resources/StringResources.resx +++ b/data/resources/StringResources.resx @@ -2425,9 +2425,12 @@ system. I don't think that it needs translation. Highlight symbols - + Highlight &matching bracket + + Highlight current line + Show &horizontal ruler diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs index 4e9b806dc5..23e9994e84 100755 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs @@ -158,7 +158,13 @@ namespace ICSharpCode.AvalonEdit.AddIn /// void HighlightCurrentLine(object sender, EventArgs e) { - this.currentLineRenderer.SetHighlight(this.TextArea.Caret.Line); + if(this.Adapter.Language != null) { + if(CodeEditorOptions.Instance.HighlightCurrentLine) { + this.currentLineRenderer.SetHighlight(this.TextArea.Caret.Line); + } else { + this.currentLineRenderer.SetHighlight(-1); + } + } } #endregion diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/CodeEditorOptions.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/CodeEditorOptions.cs index 02cec38543..5ac86e3d07 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/CodeEditorOptions.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/CodeEditorOptions.cs @@ -153,6 +153,19 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options } } + bool highlightCurrentLine = true; + + [DefaultValueAttribute(true)] + public bool HighlightCurrentLine { + get { return highlightCurrentLine; } + set { + if(highlightCurrentLine != value) { + highlightCurrentLine = value; + OnPropertyChanged("HighlightCurrentLine"); + } + } + } + bool highlightSymbol = true; [DefaultValue(true)] diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/TextViewOptions.xaml b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/TextViewOptions.xaml index 1239bbcfd4..b7eb434149 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/TextViewOptions.xaml +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/TextViewOptions.xaml @@ -20,7 +20,10 @@ Content="{core:Localize Dialog.Options.IDEOptions.TextEditor.Markers.UnderLineErrorsCheckBox}" /> + Content="{core:Localize Dialog.Options.IDEOptions.TextEditor.Markers.HighlightBracketCheckBox}" /> + From 138e5e0add42bd11121282c6c97bcae4bf1167cc Mon Sep 17 00:00:00 2001 From: Patryk Mikos Date: Sun, 22 Dec 2013 21:02:55 +0100 Subject: [PATCH 03/26] Remove Text: prefix and item duplications from clipboard ring --- .../Src/ContextActions/ClipboardRing.cs | 22 +++++++++++++++++++ .../Components/SideBar/TextEditorSideBar.cs | 19 +++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ClipboardRing.cs diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ClipboardRing.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ClipboardRing.cs new file mode 100644 index 0000000000..0015a26541 --- /dev/null +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ClipboardRing.cs @@ -0,0 +1,22 @@ +/* + * Created by SharpDevelop. + * User: hp + * Date: 2013-12-22 + * Time: 16:09 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.AvalonEdit.AddIn.ContextActions +{ + /// + /// Description of ClipboardRing. + /// + public class ClipboardRing + { + public ClipboardRing() + { + } + } +} diff --git a/src/Main/Base/Project/Src/Gui/Components/SideBar/TextEditorSideBar.cs b/src/Main/Base/Project/Src/Gui/Components/SideBar/TextEditorSideBar.cs index 5a0794aa04..4b8374bda6 100644 --- a/src/Main/Base/Project/Src/Gui/Components/SideBar/TextEditorSideBar.cs +++ b/src/Main/Base/Project/Src/Gui/Components/SideBar/TextEditorSideBar.cs @@ -84,7 +84,9 @@ namespace ICSharpCode.SharpDevelop.Gui string shortenedText = text.Trim(); if (shortenedText.Length > 50) shortenedText = shortenedText.Substring(0, 47) + "..."; - clipboardRing.Items.Add("Text:" + shortenedText, text); + + RemoveFromClipboardRing(text); + clipboardRing.Items.Add(shortenedText, text); if (clipboardRing.Items.Count > 20) { clipboardRing.Items.RemoveAt(0); } @@ -92,6 +94,21 @@ namespace ICSharpCode.SharpDevelop.Gui Refresh(); } + void RemoveFromClipboardRing(string text) + { + int pos = 0; + foreach (var item in clipboardRing.Items) { + string itemData = item.Tag as string; + if(itemData != null && itemData.Equals(text)) + break; + pos++; + } + + if (pos < clipboardRing.Items.Count) { + clipboardRing.Items.RemoveAt(pos); + } + } + public void SaveSideBarViewConfig() { XmlDocument doc = new XmlDocument(); From 581a9cf281b0f1d757ad43e8b6a3a7a7a7c0be6a Mon Sep 17 00:00:00 2001 From: Patryk Mikos Date: Mon, 23 Dec 2013 13:36:26 +0100 Subject: [PATCH 04/26] Clipboard Ring popup context menu added --- .../AvalonEdit.AddIn/AvalonEdit.AddIn.csproj | 1 + .../Src/ContextActions/ClipboardRing.cs | 94 ++++++++++++++++--- .../Components/SideBar/TextEditorSideBar.cs | 13 +++ 3 files changed, 95 insertions(+), 13 deletions(-) diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj index 768084692a..0ca5cdeebf 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj @@ -87,6 +87,7 @@ + ContextActionOptions.xaml diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ClipboardRing.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ClipboardRing.cs index 0015a26541..a47657b084 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ClipboardRing.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ClipboardRing.cs @@ -1,22 +1,90 @@ -/* - * Created by SharpDevelop. - * User: hp - * Date: 2013-12-22 - * Time: 16:09 - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ +// 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 System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Windows; + +using ICSharpCode.Core; +using ICSharpCode.Core.Presentation; +using ICSharpCode.NRefactory.Semantics; +using ICSharpCode.NRefactory.TypeSystem; +using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Editor; +using ICSharpCode.SharpDevelop.Editor.Commands; +using ICSharpCode.SharpDevelop.Editor.ContextActions; +using ICSharpCode.SharpDevelop.Refactoring; namespace ICSharpCode.AvalonEdit.AddIn.ContextActions { - /// - /// Description of ClipboardRing. - /// - public class ClipboardRing + public class ClipboardRing : ResolveResultMenuCommand + { + public override void Run(ResolveResult symbol) + { + ITextEditor editor = SD.GetActiveViewContentService(); + EditorRefactoringContext context = new EditorRefactoringContext(editor); + MakePopupWithClipboardOptions(context).OpenAtCaretAndFocus(); + } + + static ContextActionsPopup MakePopupWithClipboardOptions(EditorRefactoringContext context) + { + var popupViewModel = new ContextActionsPopupViewModel(); + popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse("${res:SharpDevelop.Refactoring.ClipboardRing}")); + popupViewModel.Actions = BuildClipboardRingData(context); + return new ContextActionsPopup { Actions = popupViewModel }; + } + + static ObservableCollection BuildClipboardRingData(EditorRefactoringContext context) + { + var clipboardRing = ICSharpCode.SharpDevelop.Gui.TextEditorSideBar.Instance; + var clipboardRingItems = clipboardRing.GetClipboardRingItems(); + + var list = new ObservableCollection(); + foreach (var item in clipboardRingItems) { + list.Add(new ContextActionViewModel(new ClipboardRingAction(item), context)); + } + + return list; + } + } + + public class ClipboardRingAction : IContextAction { - public ClipboardRing() + string Text; + + public string DisplayName { get; private set; } + + public IEntity Entity { get; private set; } + + public ClipboardRingAction(string text) + { + string entry = text.Trim(); + if(entry.Length > 50) + entry = entry.Substring(0,47) + "..."; + + this.DisplayName = entry; + this.Text = text; + } + + public IContextActionProvider Provider + { + get { return null; } + } + + public string GetDisplayName(EditorRefactoringContext context) + { + return DisplayName; + } + + public void Execute(EditorRefactoringContext context) { + /* + if(context == null) + MessageBox.Show("null context :" + Text); + else + MessageBox.Show(context.CaretLocation + " : " + Text);*/ } } } diff --git a/src/Main/Base/Project/Src/Gui/Components/SideBar/TextEditorSideBar.cs b/src/Main/Base/Project/Src/Gui/Components/SideBar/TextEditorSideBar.cs index 4b8374bda6..e5090d3596 100644 --- a/src/Main/Base/Project/Src/Gui/Components/SideBar/TextEditorSideBar.cs +++ b/src/Main/Base/Project/Src/Gui/Components/SideBar/TextEditorSideBar.cs @@ -2,6 +2,8 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; +using System.Collections; +using System.Collections.Generic; using System.IO; using System.Xml; @@ -78,6 +80,17 @@ namespace ICSharpCode.SharpDevelop.Gui this.ActiveTab = clipboardRing; } + public List GetClipboardRingItems() + { + var list = new List(); + foreach (var item in clipboardRing.Items) { + string itemData = item.Tag as string; + if (itemData != null) + list.Add(itemData); + } + return list; + } + public void PutInClipboardRing(string text) { if (clipboardRing != null) { From 7a4a2e19034c806bc2dfbbca1e4fdc17810aec57 Mon Sep 17 00:00:00 2001 From: Patryk Mikos Date: Mon, 23 Dec 2013 14:23:36 +0100 Subject: [PATCH 05/26] Add clipboard ring to menu --- data/resources/StringResources.resx | 6 ++++++ .../AvalonEdit.AddIn/AvalonEdit.AddIn.addin | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx index 8225b90b7b..9dcde783ec 100644 --- a/data/resources/StringResources.resx +++ b/data/resources/StringResources.resx @@ -6434,6 +6434,12 @@ Removed the end part of the original message ", reason '${Message}'" since this Classes deriving from ${Name} Title for search results for derived classes + + Clipboard ring + + + From clipboard ring + Convert to automatic property diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.addin b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.addin index 948128e530..6b5ad0be4a 100755 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.addin +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.addin @@ -42,6 +42,14 @@ class = "ICSharpCode.AvalonEdit.AddIn.TextMarkerToolTipProvider"/> + + + + + + -