From 718696da2ed477a946b7b16d864035b326e4ecd0 Mon Sep 17 00:00:00 2001 From: Inkathu Date: Fri, 16 Apr 2021 12:52:24 +0300 Subject: [PATCH 1/6] fix menu position to avoid text overlapping --- FastColoredTextBox/AutocompleteMenu.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/FastColoredTextBox/AutocompleteMenu.cs b/FastColoredTextBox/AutocompleteMenu.cs index 829783ac..c930f86b 100644 --- a/FastColoredTextBox/AutocompleteMenu.cs +++ b/FastColoredTextBox/AutocompleteMenu.cs @@ -431,6 +431,7 @@ internal void DoAutocomplete(bool forced) { CancelEventArgs args = new CancelEventArgs(); Menu.OnOpening(args); + point = FixIfPointIsCloseToTheBottom(point); if(!args.Cancel) Menu.Show(tb, point); } @@ -442,6 +443,22 @@ internal void DoAutocomplete(bool forced) Menu.Close(); } + private Point FixIfPointIsCloseToTheBottom(Point point) + { + var tbCoordinates = tb.PointToScreen(new Point(0, 0)); // checking left upper corner of the TB + var requestedPoint = tb.PointToScreen(point); + var currentScreen = Screen.FromControl(tb); + if (requestedPoint.Y > currentScreen.Bounds.Height / 2) + { + // in case if current position is higher than half of the screen - show menu over the caret + return new Point(point.X, // get the same X + tb.PointToClient(new Point(tbCoordinates.X, + tbCoordinates.Y - Size.Height - ItemHeight + point.Y)).Y); // calc current Y Position + } + + return point; + } + void tb_SelectionChanged(object sender, EventArgs e) { /* From b0e7ca76abf51dd61a5426112129f48b791409d6 Mon Sep 17 00:00:00 2001 From: Inkathu Date: Fri, 16 Apr 2021 13:05:11 +0300 Subject: [PATCH 2/6] converted to .net core 3.1 and .net5 PowerfulCSharpEditor - is broken and excluded --- FastColoredTextBox.sln | 3 +- FastColoredTextBox/FastColoredTextBox.csproj | 151 +----- Tester/AutocompleteSample2.cs | 1 + Tester/ConsoleSample.cs | 1 + Tester/DiffMergeSample.cs | 2 +- Tester/DynamicSyntaxHighlighting.cs | 1 + Tester/GifImageDrawingSample.cs | 1 + Tester/JokeSample.cs | 1 + Tester/LazyLoadingSample.cs | 2 +- Tester/MainForm.cs | 2 +- Tester/MarkerToolSample.cs | 1 + Tester/OpenTypeFontSample.cs | 1 + Tester/PowerfulCSharpEditor.cs | 1 + Tester/PowerfulSample.cs | 1 + Tester/PredefinedStylesSample.cs | 1 + Tester/Sandbox.cs | 1 + Tester/Tester.csproj | 536 +------------------ Tester/VisibleRangeChangedDelayedSample.cs | 1 + 18 files changed, 38 insertions(+), 670 deletions(-) diff --git a/FastColoredTextBox.sln b/FastColoredTextBox.sln index 17b7d834..c8db7e86 100644 --- a/FastColoredTextBox.sln +++ b/FastColoredTextBox.sln @@ -17,7 +17,6 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EBE443EE-F4C7-49E6-AC22-959CA62FAA05}.Debug|Any CPU.ActiveCfg = Debug|x86 {EBE443EE-F4C7-49E6-AC22-959CA62FAA05}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 {EBE443EE-F4C7-49E6-AC22-959CA62FAA05}.Debug|Mixed Platforms.Build.0 = Debug|x86 {EBE443EE-F4C7-49E6-AC22-959CA62FAA05}.Debug|x86.ActiveCfg = Debug|x86 @@ -27,6 +26,8 @@ Global {EBE443EE-F4C7-49E6-AC22-959CA62FAA05}.Release|Mixed Platforms.Build.0 = Release|x86 {EBE443EE-F4C7-49E6-AC22-959CA62FAA05}.Release|x86.ActiveCfg = Release|x86 {EBE443EE-F4C7-49E6-AC22-959CA62FAA05}.Release|x86.Build.0 = Release|x86 + {EBE443EE-F4C7-49E6-AC22-959CA62FAA05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBE443EE-F4C7-49E6-AC22-959CA62FAA05}.Debug|Any CPU.Build.0 = Debug|Any CPU {6DD14A85-CCFC-4774-BD26-0F5772512319}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6DD14A85-CCFC-4774-BD26-0F5772512319}.Debug|Any CPU.Build.0 = Debug|Any CPU {6DD14A85-CCFC-4774-BD26-0F5772512319}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU diff --git a/FastColoredTextBox/FastColoredTextBox.csproj b/FastColoredTextBox/FastColoredTextBox.csproj index 0707e4e2..a2476eb1 100644 --- a/FastColoredTextBox/FastColoredTextBox.csproj +++ b/FastColoredTextBox/FastColoredTextBox.csproj @@ -1,148 +1,9 @@ - - + + - Debug - AnyCPU - 9.0.21022 - 2.0 - {6DD14A85-CCFC-4774-BD26-0F5772512319} - Library - Properties - FastColoredTextBoxNS - FastColoredTextBox - v2.0 - 512 - + true + false + net5.0-windows;netcoreapp3.1 - - true - full - false - bin\Debug\ - TRACE;DEBUG - prompt - 4 - bin\Debug\FastColoredTextBox.XML - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - - - FCTB_key.snk - - - - - - - - - - - - - Component - - - - - Component - - - - - - Form - - - GoToForm.cs - - - - Form - - - HotkeysEditorForm.cs - - - - - - - - UserControl - - - Ruler.cs - - - - - Form - - - ReplaceForm.cs - - - UserControl - - - - - Form - - - FindForm.cs - - - - - - - - - - - - UserControl - - - - - - FastColoredTextBox.cs - - - FindForm.cs - - - GoToForm.cs - - - HotkeysEditorForm.cs - - - ReplaceForm.cs - Designer - - - - - - - + \ No newline at end of file diff --git a/Tester/AutocompleteSample2.cs b/Tester/AutocompleteSample2.cs index 43538b53..a50acc0f 100644 --- a/Tester/AutocompleteSample2.cs +++ b/Tester/AutocompleteSample2.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Collections.Generic; using System.Text.RegularExpressions; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/ConsoleSample.cs b/Tester/ConsoleSample.cs index 4238074f..692a03b0 100644 --- a/Tester/ConsoleSample.cs +++ b/Tester/ConsoleSample.cs @@ -5,6 +5,7 @@ using System.Threading; using System.Windows.Forms; using FastColoredTextBoxNS; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/DiffMergeSample.cs b/Tester/DiffMergeSample.cs index 21a30e75..b4cfa755 100644 --- a/Tester/DiffMergeSample.cs +++ b/Tester/DiffMergeSample.cs @@ -68,7 +68,7 @@ void UpdateScroll(FastColoredTextBox tb, int vPos, int curLine) } if (curLine < tb.LinesCount) - tb.Selection = new Range(tb, 0, curLine, 0, curLine); + tb.Selection = new FastColoredTextBoxNS.Range(tb, 0, curLine, 0, curLine); // EndUpdate(); } diff --git a/Tester/DynamicSyntaxHighlighting.cs b/Tester/DynamicSyntaxHighlighting.cs index 972b0f2f..da0789a8 100644 --- a/Tester/DynamicSyntaxHighlighting.cs +++ b/Tester/DynamicSyntaxHighlighting.cs @@ -7,6 +7,7 @@ using System.Text; using System.Windows.Forms; using FastColoredTextBoxNS; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/GifImageDrawingSample.cs b/Tester/GifImageDrawingSample.cs index df319bba..cb001062 100644 --- a/Tester/GifImageDrawingSample.cs +++ b/Tester/GifImageDrawingSample.cs @@ -10,6 +10,7 @@ using System.Text.RegularExpressions; using System.Drawing.Imaging; using System.Timers; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/JokeSample.cs b/Tester/JokeSample.cs index dde48417..95c752e9 100644 --- a/Tester/JokeSample.cs +++ b/Tester/JokeSample.cs @@ -7,6 +7,7 @@ using System.Text; using System.Windows.Forms; using FastColoredTextBoxNS; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/LazyLoadingSample.cs b/Tester/LazyLoadingSample.cs index 8abf2c53..e60a61ea 100644 --- a/Tester/LazyLoadingSample.cs +++ b/Tester/LazyLoadingSample.cs @@ -49,7 +49,7 @@ private void HighlightVisibleRange() //expand visible range (+- margin) var startLine = Math.Max(0, fctb.VisibleRange.Start.iLine - margin); var endLine = Math.Min(fctb.LinesCount - 1, fctb.VisibleRange.End.iLine + margin); - var range = new Range(fctb, 0, startLine, 0, endLine); + var range = new FastColoredTextBoxNS.Range(fctb, 0, startLine, 0, endLine); //clear folding markers range.ClearFoldingMarkers(); //set markers for folding diff --git a/Tester/MainForm.cs b/Tester/MainForm.cs index 71fdacb5..7d1d9fb1 100644 --- a/Tester/MainForm.cs +++ b/Tester/MainForm.cs @@ -75,7 +75,7 @@ private void button11_Click(object sender, EventArgs e) private void button12_Click(object sender, EventArgs e) { - new PowerfulCSharpEditor().Show(); + //new PowerfulCSharpEditor().Show(); } private void button13_Click(object sender, EventArgs e) diff --git a/Tester/MarkerToolSample.cs b/Tester/MarkerToolSample.cs index 5c6bd65f..bc87afd2 100644 --- a/Tester/MarkerToolSample.cs +++ b/Tester/MarkerToolSample.cs @@ -3,6 +3,7 @@ using System.Windows.Forms; using FastColoredTextBoxNS; using System.Drawing.Drawing2D; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/OpenTypeFontSample.cs b/Tester/OpenTypeFontSample.cs index bd74b364..7402546b 100644 --- a/Tester/OpenTypeFontSample.cs +++ b/Tester/OpenTypeFontSample.cs @@ -8,6 +8,7 @@ using System.Text; using System.Windows.Forms; using FastColoredTextBoxNS; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/PowerfulCSharpEditor.cs b/Tester/PowerfulCSharpEditor.cs index af7fa332..b869fcae 100644 --- a/Tester/PowerfulCSharpEditor.cs +++ b/Tester/PowerfulCSharpEditor.cs @@ -12,6 +12,7 @@ using System.Text.RegularExpressions; using System.Threading; using System.Drawing.Drawing2D; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/PowerfulSample.cs b/Tester/PowerfulSample.cs index d103c0a2..122b439e 100644 --- a/Tester/PowerfulSample.cs +++ b/Tester/PowerfulSample.cs @@ -11,6 +11,7 @@ using System.Collections.Generic; using System.Runtime.Serialization.Formatters.Binary; using System.Text; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/PredefinedStylesSample.cs b/Tester/PredefinedStylesSample.cs index b992dca6..4f8bb2de 100644 --- a/Tester/PredefinedStylesSample.cs +++ b/Tester/PredefinedStylesSample.cs @@ -4,6 +4,7 @@ using System.Drawing; using System.Windows.Forms; using FastColoredTextBoxNS; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/Sandbox.cs b/Tester/Sandbox.cs index 4e19f2a3..19ddd1b3 100644 --- a/Tester/Sandbox.cs +++ b/Tester/Sandbox.cs @@ -6,6 +6,7 @@ using System.Windows.Forms; using FastColoredTextBoxNS; using System.Linq; +using Range = FastColoredTextBoxNS.Range; namespace Tester { diff --git a/Tester/Tester.csproj b/Tester/Tester.csproj index 455d7028..f47ec4f1 100644 --- a/Tester/Tester.csproj +++ b/Tester/Tester.csproj @@ -1,533 +1,27 @@ - - + + - Debug - x86 - 9.0.21022 - 2.0 - {EBE443EE-F4C7-49E6-AC22-959CA62FAA05} WinExe - Properties - Tester - Tester - v3.5 - 512 + netcoreapp3.1 + true + false - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - x86 - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - False - .\TabStrip.dll - - - - - Form - - - AutocompleteSample.cs - - - Form - - - AutocompleteSample2.cs - - - Form - - - AutoIndentSample.cs - - - Form - - - BilingualHighlighterSample.cs - - - Form - - - ConsoleSample.cs - - - Form - - - AutocompleteSample3.cs - - - Form - - - AutocompleteSample4.cs - - - Form - - - AutoIndentCharsSample.cs - - - Form - - - CustomTextSourceSample2.cs - - - Form - - - CustomWordWrapSample.cs - - - Form - - - CustomScrollBarsSample.cs - - - Form - - - DiffMergeSample.cs - - - Form - - - DocumentMapSample.cs - - - Form - - - RulerSample.cs - - - Form - - - OpenTypeFontSample.cs - - - Form - - - MacrosSample.cs - - - Form - - - PredefinedStylesSample.cs - - - Form - - - ReadOnlyBlocksSample.cs - - - UserControl - - - CustomHint.cs - - - Form - - - CustomTextSourceSample.cs - - - Form - - - CustomFoldingSample.cs - - - Form - - - HintSample.cs - - - Form - - - HyperlinkSample.cs - - - Form - - - LazyLoadingSample.cs - - - Form - - - Sandbox.cs - - - Form - - - SplitSample.cs - - - Form - - - TooltipSample.cs - - - Form - - - GifImageDrawingSample.cs - - - Form - - - LoggerSample.cs - - - Form - - - MarkerToolSample.cs - - - Form - - - CustomStyleSample.cs - - - Form - - - DynamicSyntaxHighlighting.cs - - - Form - - - IMEsample.cs - - - Form - - - JokeSample.cs - - - Form - - - PowerfulCSharpEditor.cs - - - Form - - - SimplestCodeFoldingSample.cs - - - Form - - - SimplestSyntaxHighlightingSample.cs - - - Form - - - SyntaxHighlightingByXmlDescription.cs - - - Form - - - VisibleRangeChangedDelayedSample.cs - - - Form - - - MainForm.cs - - - Form - - - PowerfulSample.cs - - - Form - - - BookmarksSample.cs - - - - - AutocompleteSample.cs - - - AutocompleteSample2.cs - - - AutoIndentSample.cs - - - BilingualHighlighterSample.cs - - - ConsoleSample.cs - Designer - - - AutocompleteSample3.cs - - - AutocompleteSample4.cs - - - AutoIndentCharsSample.cs - - - CustomTextSourceSample2.cs - - - CustomWordWrapSample.cs - Designer - - - CustomScrollBarsSample.cs - Designer - - - DiffMergeSample.cs - - - DocumentMapSample.cs - - - RulerSample.cs - - - OpenTypeFontSample.cs - - - MacrosSample.cs - - - PredefinedStylesSample.cs - - - ReadOnlyBlocksSample.cs - - - CustomHint.cs - - - CustomTextSourceSample.cs - - - CustomFoldingSample.cs - Designer - - - CustomStyleSample.cs - - - DynamicSyntaxHighlighting.cs - - - GifImageDrawingSample.cs - - - HintSample.cs - - - HyperlinkSample.cs - - - IMEsample.cs - Designer - - - JokeSample.cs - - - LazyLoadingSample.cs - - - LoggerSample.cs - - - MarkerToolSample.cs - - - PowerfulCSharpEditor.cs - - - Sandbox.cs - - - SimplestCodeFoldingSample.cs - - - SimplestSyntaxHighlightingSample.cs - - - SplitSample.cs - - - SyntaxHighlightingByXmlDescription.cs - Designer - - - TooltipSample.cs - - - VisibleRangeChangedDelayedSample.cs - - - MainForm.cs - - - PowerfulSample.cs - - - BookmarksSample.cs - Designer - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - - - - - - - - - - - - - - - + - + + - + + - - {6DD14A85-CCFC-4774-BD26-0F5772512319} - FastColoredTextBox - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - Always - - - - - - copy "$(TargetDir)Tester.exe" "$(SolutionDir)Binary" -copy "$(TargetDir)*.dll" "$(SolutionDir)Binary" -copy "$(TargetDir)*.xml" "$(SolutionDir)Binary" - - - + \ No newline at end of file diff --git a/Tester/VisibleRangeChangedDelayedSample.cs b/Tester/VisibleRangeChangedDelayedSample.cs index d5a6f772..ae4c2b68 100644 --- a/Tester/VisibleRangeChangedDelayedSample.cs +++ b/Tester/VisibleRangeChangedDelayedSample.cs @@ -7,6 +7,7 @@ using System.Text; using System.Windows.Forms; using FastColoredTextBoxNS; +using Range = FastColoredTextBoxNS.Range; namespace Tester { From ae1d844f448446800487f4d49cabdb71d4326e9e Mon Sep 17 00:00:00 2001 From: Inkathu Date: Fri, 16 Apr 2021 15:28:34 +0300 Subject: [PATCH 3/6] fix menu position to avoid text overlapping - additional fix for resized menu --- FastColoredTextBox/AutocompleteListView.cs | 642 +++++++++++++++++++++ FastColoredTextBox/AutocompleteMenu.cs | 610 +------------------- 2 files changed, 656 insertions(+), 596 deletions(-) create mode 100644 FastColoredTextBox/AutocompleteListView.cs diff --git a/FastColoredTextBox/AutocompleteListView.cs b/FastColoredTextBox/AutocompleteListView.cs new file mode 100644 index 00000000..db5bfdbd --- /dev/null +++ b/FastColoredTextBox/AutocompleteListView.cs @@ -0,0 +1,642 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Text.RegularExpressions; +using System.Windows.Forms; + +namespace FastColoredTextBoxNS +{ + [System.ComponentModel.ToolboxItem(false)] + public class AutocompleteListView : UserControl, IDisposable + { + public event EventHandler FocussedItemIndexChanged; + + internal List visibleItems; + IEnumerable sourceItems = new List(); + int focussedItemIndex = 0; + int hoveredItemIndex = -1; + + private int ItemHeight + { + get { return Font.Height + 2; } + } + + AutocompleteMenu Menu { get { return Parent as AutocompleteMenu; } } + int oldItemCount = 0; + FastColoredTextBox tb; + internal ToolTip toolTip = new ToolTip(); + System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); + + internal bool AllowTabKey { get; set; } + public ImageList ImageList { get; set; } + internal int AppearInterval { get { return timer.Interval; } set { timer.Interval = value; } } + internal int ToolTipDuration { get; set; } + internal Size MaxToolTipSize { get; set; } + internal bool AlwaysShowTooltip + { + get { return toolTip.ShowAlways; } + set { toolTip.ShowAlways = value; } + } + + public Color SelectedColor { get; set; } + public Color HoveredColor { get; set; } + public int FocussedItemIndex + { + get { return focussedItemIndex; } + set + { + if (focussedItemIndex != value) + { + focussedItemIndex = value; + if (FocussedItemIndexChanged != null) + FocussedItemIndexChanged(this, EventArgs.Empty); + } + } + } + + public AutocompleteItem FocussedItem + { + get + { + if (FocussedItemIndex >= 0 && focussedItemIndex < visibleItems.Count) + return visibleItems[focussedItemIndex]; + return null; + } + set + { + FocussedItemIndex = visibleItems.IndexOf(value); + } + } + + internal AutocompleteListView(FastColoredTextBox tb) + { + SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint, true); + base.Font = new Font(FontFamily.GenericSansSerif, 9); + visibleItems = new List(); + VerticalScroll.SmallChange = ItemHeight; + MaximumSize = new Size(Size.Width, 180); + toolTip.ShowAlways = false; + AppearInterval = 500; + timer.Tick += new EventHandler(timer_Tick); + SelectedColor = Color.Orange; + HoveredColor = Color.Red; + ToolTipDuration = 3000; + toolTip.Popup += ToolTip_Popup; + + this.tb = tb; + + tb.KeyDown += new KeyEventHandler(tb_KeyDown); + tb.SelectionChanged += new EventHandler(tb_SelectionChanged); + tb.KeyPressed += new KeyPressEventHandler(tb_KeyPressed); + + Form form = tb.FindForm(); + if (form != null) + { + form.LocationChanged += delegate { SafetyClose(); }; + form.ResizeBegin += delegate { SafetyClose(); }; + form.FormClosing += delegate { SafetyClose(); }; + form.LostFocus += delegate { SafetyClose(); }; + } + + tb.LostFocus += (o, e) => + { + if (Menu != null && !Menu.IsDisposed) + if (!Menu.Focused) + SafetyClose(); + }; + + tb.Scroll += delegate { SafetyClose(); }; + + this.VisibleChanged += (o, e) => + { + if (this.Visible) + DoSelectedVisible(); + }; + + } + + protected override void OnParentChanged(EventArgs e) + { + if (Menu != null) + { + Menu.SizeChanged += MenuOnSizeChanged; + } + + } + + private void MenuOnSizeChanged(object? sender, EventArgs e) + { + Range fragment = tb.Selection.GetFragment(Menu.SearchPattern); + string text = fragment.Text; + //calc screen point for popup menu + Point point = tb.PlaceToPoint(fragment.End); + + Menu.Location = tb.PointToScreen(FixIfPointIsCloseToTheBottom(point)); + } + + private void ToolTip_Popup(object sender, PopupEventArgs e) + { + if (MaxToolTipSize.Height > 0 && MaxToolTipSize.Width > 0) + e.ToolTipSize = MaxToolTipSize; + } + + protected override void Dispose(bool disposing) + { + if (toolTip != null) + { + toolTip.Popup -= ToolTip_Popup; + toolTip.Dispose(); + } + if (tb != null) + { + tb.KeyDown -= tb_KeyDown; + tb.KeyPressed -= tb_KeyPressed; + tb.SelectionChanged -= tb_SelectionChanged; + } + + if (timer != null) + { + timer.Stop(); + timer.Tick -= timer_Tick; + timer.Dispose(); + } + + if (Menu != null) + { + Menu.SizeChanged -= MenuOnSizeChanged; + } + + base.Dispose(disposing); + } + + void SafetyClose() + { + if (Menu != null && !Menu.IsDisposed) + Menu.Close(); + } + + void tb_KeyPressed(object sender, KeyPressEventArgs e) + { + bool backspaceORdel = e.KeyChar == '\b' || e.KeyChar == 0xff; + + /* + if (backspaceORdel) + prevSelection = tb.Selection.Start;*/ + + if (Menu.Visible && !backspaceORdel) + DoAutocomplete(false); + else + ResetTimer(timer); + } + + void timer_Tick(object sender, EventArgs e) + { + timer.Stop(); + DoAutocomplete(false); + } + + void ResetTimer(System.Windows.Forms.Timer timer) + { + timer.Stop(); + timer.Start(); + } + + internal void DoAutocomplete() + { + DoAutocomplete(false); + } + + internal void DoAutocomplete(bool forced) + { + if (!Menu.Enabled) + { + Menu.Close(); + return; + } + + visibleItems.Clear(); + FocussedItemIndex = 0; + VerticalScroll.Value = 0; + //some magic for update scrolls + AutoScrollMinSize -= new Size(1, 0); + AutoScrollMinSize += new Size(1, 0); + //get fragment around caret + Range fragment = tb.Selection.GetFragment(Menu.SearchPattern); + string text = fragment.Text; + //calc screen point for popup menu + Point point = tb.PlaceToPoint(fragment.End); + point.Offset(2, tb.CharHeight); + // + if (forced || (text.Length >= Menu.MinFragmentLength + && tb.Selection.IsEmpty /*pops up only if selected range is empty*/ + && (tb.Selection.Start > fragment.Start || text.Length == 0/*pops up only if caret is after first letter*/))) + { + Menu.Fragment = fragment; + bool foundSelected = false; + //build popup menu + foreach (var item in sourceItems) + { + item.Parent = Menu; + CompareResult res = item.Compare(text); + if(res != CompareResult.Hidden) + visibleItems.Add(item); + if (res == CompareResult.VisibleAndSelected && !foundSelected) + { + foundSelected = true; + FocussedItemIndex = visibleItems.Count - 1; + } + } + + if (foundSelected) + { + AdjustScroll(); + DoSelectedVisible(); + } + } + + //show popup menu + if (Count > 0) + { + if (!Menu.Visible) + { + CancelEventArgs args = new CancelEventArgs(); + Menu.OnOpening(args); + if (!args.Cancel) + { + Menu.CalcSize(); + Trace.WriteLine($"Original point: {point}"); + var fixedPoint = FixIfPointIsCloseToTheBottom(point); + Trace.WriteLine($"Fixed point before on show: {fixedPoint}"); + Menu.Show(tb, fixedPoint); + } + } + + Menu.Location = tb.PointToScreen(FixIfPointIsCloseToTheBottom(point)); + Trace.WriteLine($"Menu location: {Menu.Location}"); + DoSelectedVisible(); + Invalidate(); + } + else + Menu.Close(); + } + + private Point FixIfPointIsCloseToTheBottom(Point point) + { + var tbCoordinates = tb.PointToScreen(new Point(0, 0)); // checking left upper corner of the TB + var requestedPoint = tb.PointToScreen(point); + var currentScreen = Screen.FromControl(tb); + if (requestedPoint.Y > currentScreen.Bounds.Height / 2) + { + Trace.WriteLine("Point FIXED."); + // in case if current position is higher than half of the screen - show menu over the caret + Trace.WriteLine($"tbCoordinates.Y: {tbCoordinates.Y} Size.Height:{Size.Height} - ItemHeight: {ItemHeight} + point.Y:{point.Y}"); + return new Point(point.X, // get the same X + tb.PointToClient(new Point(point.X, + tbCoordinates.Y - Menu.Height - ItemHeight + point.Y)).Y); // calc current Y Position + } + + Trace.WriteLine("Point NOT fixed."); + return point; + } + + void tb_SelectionChanged(object sender, EventArgs e) + { + /* + FastColoredTextBox tb = sender as FastColoredTextBox; + + if (Math.Abs(prevSelection.iChar - tb.Selection.Start.iChar) > 1 || + prevSelection.iLine != tb.Selection.Start.iLine) + Menu.Close(); + prevSelection = tb.Selection.Start;*/ + if (Menu.Visible) + { + bool needClose = false; + + if (!tb.Selection.IsEmpty) + needClose = true; + else + if (!Menu.Fragment.Contains(tb.Selection.Start)) + { + if (tb.Selection.Start.iLine == Menu.Fragment.End.iLine && tb.Selection.Start.iChar == Menu.Fragment.End.iChar + 1) + { + //user press key at end of fragment + char c = tb.Selection.CharBeforeStart; + if (!Regex.IsMatch(c.ToString(), Menu.SearchPattern))//check char + needClose = true; + } + else + needClose = true; + } + + if (needClose) + Menu.Close(); + } + + } + + void tb_KeyDown(object sender, KeyEventArgs e) + { + var tb = sender as FastColoredTextBox; + + if (Menu.Visible) + { + if (ProcessKey(e.KeyCode, e.Modifiers)) + { + e.Handled = true; + } + } + + if (!Menu.Visible) + { + if (tb.HotkeysMapping.ContainsKey(e.KeyData) && tb.HotkeysMapping[e.KeyData] == FCTBAction.AutocompleteMenu) + { + DoAutocomplete(); + e.Handled = true; + } + else + { + if (e.KeyCode == Keys.Escape && timer.Enabled) + timer.Stop(); + } + } + } + + void AdjustScroll() + { + if (oldItemCount == visibleItems.Count) + return; + + int needHeight = ItemHeight * visibleItems.Count + 1; + Height = Math.Min(needHeight, MaximumSize.Height); + Menu.CalcSize(); + + AutoScrollMinSize = new Size(0, needHeight); + oldItemCount = visibleItems.Count; + } + + protected override void OnPaint(PaintEventArgs e) + { + AdjustScroll(); + + var itemHeight = ItemHeight; + int startI = VerticalScroll.Value / itemHeight - 1; + int finishI = (VerticalScroll.Value + ClientSize.Height) / itemHeight + 1; + startI = Math.Max(startI, 0); + finishI = Math.Min(finishI, visibleItems.Count); + int y = 0; + int leftPadding = 18; + for (int i = startI; i < finishI; i++) + { + y = i * itemHeight - VerticalScroll.Value; + + var item = visibleItems[i]; + + if(item.BackColor != Color.Transparent) + using (var brush = new SolidBrush(item.BackColor)) + e.Graphics.FillRectangle(brush, 1, y, ClientSize.Width - 1 - 1, itemHeight - 1); + + if (ImageList != null && visibleItems[i].ImageIndex >= 0) + e.Graphics.DrawImage(ImageList.Images[item.ImageIndex], 1, y); + + if (i == FocussedItemIndex) + using (var selectedBrush = new LinearGradientBrush(new Point(0, y - 3), new Point(0, y + itemHeight), Color.Transparent, SelectedColor)) + using (var pen = new Pen(SelectedColor)) + { + e.Graphics.FillRectangle(selectedBrush, leftPadding, y, ClientSize.Width - 1 - leftPadding, itemHeight - 1); + e.Graphics.DrawRectangle(pen, leftPadding, y, ClientSize.Width - 1 - leftPadding, itemHeight - 1); + } + + if (i == hoveredItemIndex) + using(var pen = new Pen(HoveredColor)) + e.Graphics.DrawRectangle(pen, leftPadding, y, ClientSize.Width - 1 - leftPadding, itemHeight - 1); + + using (var brush = new SolidBrush(item.ForeColor != Color.Transparent ? item.ForeColor : ForeColor)) + e.Graphics.DrawString(item.ToString(), Font, brush, leftPadding, y); + } + } + + protected override void OnScroll(ScrollEventArgs se) + { + base.OnScroll(se); + Invalidate(); + } + + protected override void OnMouseClick(MouseEventArgs e) + { + base.OnMouseClick(e); + + if (e.Button == System.Windows.Forms.MouseButtons.Left) + { + FocussedItemIndex = PointToItemIndex(e.Location); + DoSelectedVisible(); + Invalidate(); + } + } + + protected override void OnMouseDoubleClick(MouseEventArgs e) + { + base.OnMouseDoubleClick(e); + FocussedItemIndex = PointToItemIndex(e.Location); + Invalidate(); + OnSelecting(); + } + + internal virtual void OnSelecting() + { + if (FocussedItemIndex < 0 || FocussedItemIndex >= visibleItems.Count) + return; + tb.TextSource.Manager.BeginAutoUndoCommands(); + try + { + AutocompleteItem item = FocussedItem; + SelectingEventArgs args = new SelectingEventArgs() + { + Item = item, + SelectedIndex = FocussedItemIndex + }; + + Menu.OnSelecting(args); + + if (args.Cancel) + { + FocussedItemIndex = args.SelectedIndex; + Invalidate(); + return; + } + + if (!args.Handled) + { + var fragment = Menu.Fragment; + DoAutocomplete(item, fragment); + } + + Menu.Close(); + // + SelectedEventArgs args2 = new SelectedEventArgs() + { + Item = item, + Tb = Menu.Fragment.tb + }; + item.OnSelected(Menu, args2); + Menu.OnSelected(args2); + } + finally + { + tb.TextSource.Manager.EndAutoUndoCommands(); + } + } + + private void DoAutocomplete(AutocompleteItem item, Range fragment) + { + string newText = item.GetTextForReplace(); + + //replace text of fragment + var tb = fragment.tb; + + tb.BeginAutoUndo(); + tb.TextSource.Manager.ExecuteCommand(new SelectCommand(tb.TextSource)); + if (tb.Selection.ColumnSelectionMode) + { + var start = tb.Selection.Start; + var end = tb.Selection.End; + start.iChar = fragment.Start.iChar; + end.iChar = fragment.End.iChar; + tb.Selection.Start = start; + tb.Selection.End = end; + } + else + { + tb.Selection.Start = fragment.Start; + tb.Selection.End = fragment.End; + } + tb.InsertText(newText); + tb.TextSource.Manager.ExecuteCommand(new SelectCommand(tb.TextSource)); + tb.EndAutoUndo(); + tb.Focus(); + } + + int PointToItemIndex(Point p) + { + return (p.Y + VerticalScroll.Value) / ItemHeight; + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) + { + ProcessKey(keyData, Keys.None); + + return base.ProcessCmdKey(ref msg, keyData); + } + + private bool ProcessKey(Keys keyData, Keys keyModifiers) + { + if (keyModifiers == Keys.None) + switch (keyData) + { + case Keys.Down: + SelectNext(+1); + return true; + case Keys.PageDown: + SelectNext(+10); + return true; + case Keys.Up: + SelectNext(-1); + return true; + case Keys.PageUp: + SelectNext(-10); + return true; + case Keys.Enter: + OnSelecting(); + return true; + case Keys.Tab: + if (!AllowTabKey) + break; + OnSelecting(); + return true; + case Keys.Escape: + Menu.Close(); + return true; + } + + return false; + } + + public void SelectNext(int shift) + { + FocussedItemIndex = Math.Max(0, Math.Min(FocussedItemIndex + shift, visibleItems.Count - 1)); + DoSelectedVisible(); + // + Invalidate(); + } + + private void DoSelectedVisible() + { + if (FocussedItem != null) + SetToolTip(FocussedItem); + + var y = FocussedItemIndex * ItemHeight - VerticalScroll.Value; + if (y < 0) + VerticalScroll.Value = FocussedItemIndex * ItemHeight; + if (y > ClientSize.Height - ItemHeight) + VerticalScroll.Value = Math.Min(VerticalScroll.Maximum, FocussedItemIndex * ItemHeight - ClientSize.Height + ItemHeight); + //some magic for update scrolls + AutoScrollMinSize -= new Size(1, 0); + AutoScrollMinSize += new Size(1, 0); + } + + private void SetToolTip(AutocompleteItem autocompleteItem) + { + var title = autocompleteItem.ToolTipTitle; + var text = autocompleteItem.ToolTipText; + + if (string.IsNullOrEmpty(title)) + { + toolTip.ToolTipTitle = null; + toolTip.SetToolTip(this, null); + return; + } + + if (this.Parent != null) + { + IWin32Window window = this.Parent ?? this; + Point location; + + if ((this.PointToScreen(this.Location).X + MaxToolTipSize.Width + 105) < Screen.FromControl(this.Parent).WorkingArea.Right) + location = new Point(Right + 5, 0); + else + location = new Point(Left - 105 - MaximumSize.Width, 0); + + if (string.IsNullOrEmpty(text)) + { + toolTip.ToolTipTitle = null; + toolTip.Show(title, window, location.X, location.Y, ToolTipDuration); + } + else + { + toolTip.ToolTipTitle = title; + toolTip.Show(text, window, location.X, location.Y, ToolTipDuration); + } + } + } + + public int Count + { + get { return visibleItems.Count; } + } + + public void SetAutocompleteItems(ICollection items) + { + List list = new List(items.Count); + foreach (var item in items) + list.Add(new AutocompleteItem(item)); + SetAutocompleteItems(list); + } + + public void SetAutocompleteItems(IEnumerable items) + { + sourceItems = items; + } + } +} \ No newline at end of file diff --git a/FastColoredTextBox/AutocompleteMenu.cs b/FastColoredTextBox/AutocompleteMenu.cs index c930f86b..19ded4d0 100644 --- a/FastColoredTextBox/AutocompleteMenu.cs +++ b/FastColoredTextBox/AutocompleteMenu.cs @@ -1,10 +1,8 @@ using System; -using System.Collections.Generic; using System.Windows.Forms; using System.Drawing; using System.ComponentModel; -using System.Drawing.Drawing2D; -using System.Text.RegularExpressions; +using System.Diagnostics; namespace FastColoredTextBoxNS { @@ -38,6 +36,8 @@ public class AutocompleteMenu : ToolStripDropDown, IDisposable /// Occurs when popup menu is opening /// public new event EventHandler Opening; + + private event Action SizeChanged = () => { }; /// /// Allow TAB for select menu item /// @@ -55,6 +55,17 @@ public class AutocompleteMenu : ToolStripDropDown, IDisposable /// public bool AlwaysShowTooltip { get { return listView.AlwaysShowTooltip; } set { listView.AlwaysShowTooltip = value; } } + private new Size Size + { + get => base.Size; + set + { + Trace.WriteLine($"Size changed from {base.Size} to {value}"); + base.Size = value; + SizeChanged(); + } + } + /// /// Back color of selected item /// @@ -94,7 +105,6 @@ public AutocompleteMenu(FastColoredTextBox tb) listView.Parent = this; SearchPattern = @"[\w\.]"; MinFragmentLength = 2; - } public new Font Font @@ -201,598 +211,6 @@ protected override void Dispose(bool disposing) } } - [System.ComponentModel.ToolboxItem(false)] - public class AutocompleteListView : UserControl, IDisposable - { - public event EventHandler FocussedItemIndexChanged; - - internal List visibleItems; - IEnumerable sourceItems = new List(); - int focussedItemIndex = 0; - int hoveredItemIndex = -1; - - private int ItemHeight - { - get { return Font.Height + 2; } - } - - AutocompleteMenu Menu { get { return Parent as AutocompleteMenu; } } - int oldItemCount = 0; - FastColoredTextBox tb; - internal ToolTip toolTip = new ToolTip(); - System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); - - internal bool AllowTabKey { get; set; } - public ImageList ImageList { get; set; } - internal int AppearInterval { get { return timer.Interval; } set { timer.Interval = value; } } - internal int ToolTipDuration { get; set; } - internal Size MaxToolTipSize { get; set; } - internal bool AlwaysShowTooltip - { - get { return toolTip.ShowAlways; } - set { toolTip.ShowAlways = value; } - } - - public Color SelectedColor { get; set; } - public Color HoveredColor { get; set; } - public int FocussedItemIndex - { - get { return focussedItemIndex; } - set - { - if (focussedItemIndex != value) - { - focussedItemIndex = value; - if (FocussedItemIndexChanged != null) - FocussedItemIndexChanged(this, EventArgs.Empty); - } - } - } - - public AutocompleteItem FocussedItem - { - get - { - if (FocussedItemIndex >= 0 && focussedItemIndex < visibleItems.Count) - return visibleItems[focussedItemIndex]; - return null; - } - set - { - FocussedItemIndex = visibleItems.IndexOf(value); - } - } - - internal AutocompleteListView(FastColoredTextBox tb) - { - SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint, true); - base.Font = new Font(FontFamily.GenericSansSerif, 9); - visibleItems = new List(); - VerticalScroll.SmallChange = ItemHeight; - MaximumSize = new Size(Size.Width, 180); - toolTip.ShowAlways = false; - AppearInterval = 500; - timer.Tick += new EventHandler(timer_Tick); - SelectedColor = Color.Orange; - HoveredColor = Color.Red; - ToolTipDuration = 3000; - toolTip.Popup += ToolTip_Popup; - - this.tb = tb; - - tb.KeyDown += new KeyEventHandler(tb_KeyDown); - tb.SelectionChanged += new EventHandler(tb_SelectionChanged); - tb.KeyPressed += new KeyPressEventHandler(tb_KeyPressed); - - Form form = tb.FindForm(); - if (form != null) - { - form.LocationChanged += delegate { SafetyClose(); }; - form.ResizeBegin += delegate { SafetyClose(); }; - form.FormClosing += delegate { SafetyClose(); }; - form.LostFocus += delegate { SafetyClose(); }; - } - - tb.LostFocus += (o, e) => - { - if (Menu != null && !Menu.IsDisposed) - if (!Menu.Focused) - SafetyClose(); - }; - - tb.Scroll += delegate { SafetyClose(); }; - - this.VisibleChanged += (o, e) => - { - if (this.Visible) - DoSelectedVisible(); - }; - } - - private void ToolTip_Popup(object sender, PopupEventArgs e) - { - if (MaxToolTipSize.Height > 0 && MaxToolTipSize.Width > 0) - e.ToolTipSize = MaxToolTipSize; - } - - protected override void Dispose(bool disposing) - { - if (toolTip != null) - { - toolTip.Popup -= ToolTip_Popup; - toolTip.Dispose(); - } - if (tb != null) - { - tb.KeyDown -= tb_KeyDown; - tb.KeyPressed -= tb_KeyPressed; - tb.SelectionChanged -= tb_SelectionChanged; - } - - if (timer != null) - { - timer.Stop(); - timer.Tick -= timer_Tick; - timer.Dispose(); - } - - base.Dispose(disposing); - } - - void SafetyClose() - { - if (Menu != null && !Menu.IsDisposed) - Menu.Close(); - } - - void tb_KeyPressed(object sender, KeyPressEventArgs e) - { - bool backspaceORdel = e.KeyChar == '\b' || e.KeyChar == 0xff; - - /* - if (backspaceORdel) - prevSelection = tb.Selection.Start;*/ - - if (Menu.Visible && !backspaceORdel) - DoAutocomplete(false); - else - ResetTimer(timer); - } - - void timer_Tick(object sender, EventArgs e) - { - timer.Stop(); - DoAutocomplete(false); - } - - void ResetTimer(System.Windows.Forms.Timer timer) - { - timer.Stop(); - timer.Start(); - } - - internal void DoAutocomplete() - { - DoAutocomplete(false); - } - - internal void DoAutocomplete(bool forced) - { - if (!Menu.Enabled) - { - Menu.Close(); - return; - } - - visibleItems.Clear(); - FocussedItemIndex = 0; - VerticalScroll.Value = 0; - //some magic for update scrolls - AutoScrollMinSize -= new Size(1, 0); - AutoScrollMinSize += new Size(1, 0); - //get fragment around caret - Range fragment = tb.Selection.GetFragment(Menu.SearchPattern); - string text = fragment.Text; - //calc screen point for popup menu - Point point = tb.PlaceToPoint(fragment.End); - point.Offset(2, tb.CharHeight); - // - if (forced || (text.Length >= Menu.MinFragmentLength - && tb.Selection.IsEmpty /*pops up only if selected range is empty*/ - && (tb.Selection.Start > fragment.Start || text.Length == 0/*pops up only if caret is after first letter*/))) - { - Menu.Fragment = fragment; - bool foundSelected = false; - //build popup menu - foreach (var item in sourceItems) - { - item.Parent = Menu; - CompareResult res = item.Compare(text); - if(res != CompareResult.Hidden) - visibleItems.Add(item); - if (res == CompareResult.VisibleAndSelected && !foundSelected) - { - foundSelected = true; - FocussedItemIndex = visibleItems.Count - 1; - } - } - - if (foundSelected) - { - AdjustScroll(); - DoSelectedVisible(); - } - } - - //show popup menu - if (Count > 0) - { - if (!Menu.Visible) - { - CancelEventArgs args = new CancelEventArgs(); - Menu.OnOpening(args); - point = FixIfPointIsCloseToTheBottom(point); - if(!args.Cancel) - Menu.Show(tb, point); - } - - DoSelectedVisible(); - Invalidate(); - } - else - Menu.Close(); - } - - private Point FixIfPointIsCloseToTheBottom(Point point) - { - var tbCoordinates = tb.PointToScreen(new Point(0, 0)); // checking left upper corner of the TB - var requestedPoint = tb.PointToScreen(point); - var currentScreen = Screen.FromControl(tb); - if (requestedPoint.Y > currentScreen.Bounds.Height / 2) - { - // in case if current position is higher than half of the screen - show menu over the caret - return new Point(point.X, // get the same X - tb.PointToClient(new Point(tbCoordinates.X, - tbCoordinates.Y - Size.Height - ItemHeight + point.Y)).Y); // calc current Y Position - } - - return point; - } - - void tb_SelectionChanged(object sender, EventArgs e) - { - /* - FastColoredTextBox tb = sender as FastColoredTextBox; - - if (Math.Abs(prevSelection.iChar - tb.Selection.Start.iChar) > 1 || - prevSelection.iLine != tb.Selection.Start.iLine) - Menu.Close(); - prevSelection = tb.Selection.Start;*/ - if (Menu.Visible) - { - bool needClose = false; - - if (!tb.Selection.IsEmpty) - needClose = true; - else - if (!Menu.Fragment.Contains(tb.Selection.Start)) - { - if (tb.Selection.Start.iLine == Menu.Fragment.End.iLine && tb.Selection.Start.iChar == Menu.Fragment.End.iChar + 1) - { - //user press key at end of fragment - char c = tb.Selection.CharBeforeStart; - if (!Regex.IsMatch(c.ToString(), Menu.SearchPattern))//check char - needClose = true; - } - else - needClose = true; - } - - if (needClose) - Menu.Close(); - } - - } - - void tb_KeyDown(object sender, KeyEventArgs e) - { - var tb = sender as FastColoredTextBox; - - if (Menu.Visible) - if (ProcessKey(e.KeyCode, e.Modifiers)) - e.Handled = true; - - if (!Menu.Visible) - { - if (tb.HotkeysMapping.ContainsKey(e.KeyData) && tb.HotkeysMapping[e.KeyData] == FCTBAction.AutocompleteMenu) - { - DoAutocomplete(); - e.Handled = true; - } - else - { - if (e.KeyCode == Keys.Escape && timer.Enabled) - timer.Stop(); - } - } - } - - void AdjustScroll() - { - if (oldItemCount == visibleItems.Count) - return; - - int needHeight = ItemHeight * visibleItems.Count + 1; - Height = Math.Min(needHeight, MaximumSize.Height); - Menu.CalcSize(); - - AutoScrollMinSize = new Size(0, needHeight); - oldItemCount = visibleItems.Count; - } - - protected override void OnPaint(PaintEventArgs e) - { - AdjustScroll(); - - var itemHeight = ItemHeight; - int startI = VerticalScroll.Value / itemHeight - 1; - int finishI = (VerticalScroll.Value + ClientSize.Height) / itemHeight + 1; - startI = Math.Max(startI, 0); - finishI = Math.Min(finishI, visibleItems.Count); - int y = 0; - int leftPadding = 18; - for (int i = startI; i < finishI; i++) - { - y = i * itemHeight - VerticalScroll.Value; - - var item = visibleItems[i]; - - if(item.BackColor != Color.Transparent) - using (var brush = new SolidBrush(item.BackColor)) - e.Graphics.FillRectangle(brush, 1, y, ClientSize.Width - 1 - 1, itemHeight - 1); - - if (ImageList != null && visibleItems[i].ImageIndex >= 0) - e.Graphics.DrawImage(ImageList.Images[item.ImageIndex], 1, y); - - if (i == FocussedItemIndex) - using (var selectedBrush = new LinearGradientBrush(new Point(0, y - 3), new Point(0, y + itemHeight), Color.Transparent, SelectedColor)) - using (var pen = new Pen(SelectedColor)) - { - e.Graphics.FillRectangle(selectedBrush, leftPadding, y, ClientSize.Width - 1 - leftPadding, itemHeight - 1); - e.Graphics.DrawRectangle(pen, leftPadding, y, ClientSize.Width - 1 - leftPadding, itemHeight - 1); - } - - if (i == hoveredItemIndex) - using(var pen = new Pen(HoveredColor)) - e.Graphics.DrawRectangle(pen, leftPadding, y, ClientSize.Width - 1 - leftPadding, itemHeight - 1); - - using (var brush = new SolidBrush(item.ForeColor != Color.Transparent ? item.ForeColor : ForeColor)) - e.Graphics.DrawString(item.ToString(), Font, brush, leftPadding, y); - } - } - - protected override void OnScroll(ScrollEventArgs se) - { - base.OnScroll(se); - Invalidate(); - } - - protected override void OnMouseClick(MouseEventArgs e) - { - base.OnMouseClick(e); - - if (e.Button == System.Windows.Forms.MouseButtons.Left) - { - FocussedItemIndex = PointToItemIndex(e.Location); - DoSelectedVisible(); - Invalidate(); - } - } - - protected override void OnMouseDoubleClick(MouseEventArgs e) - { - base.OnMouseDoubleClick(e); - FocussedItemIndex = PointToItemIndex(e.Location); - Invalidate(); - OnSelecting(); - } - - internal virtual void OnSelecting() - { - if (FocussedItemIndex < 0 || FocussedItemIndex >= visibleItems.Count) - return; - tb.TextSource.Manager.BeginAutoUndoCommands(); - try - { - AutocompleteItem item = FocussedItem; - SelectingEventArgs args = new SelectingEventArgs() - { - Item = item, - SelectedIndex = FocussedItemIndex - }; - - Menu.OnSelecting(args); - - if (args.Cancel) - { - FocussedItemIndex = args.SelectedIndex; - Invalidate(); - return; - } - - if (!args.Handled) - { - var fragment = Menu.Fragment; - DoAutocomplete(item, fragment); - } - - Menu.Close(); - // - SelectedEventArgs args2 = new SelectedEventArgs() - { - Item = item, - Tb = Menu.Fragment.tb - }; - item.OnSelected(Menu, args2); - Menu.OnSelected(args2); - } - finally - { - tb.TextSource.Manager.EndAutoUndoCommands(); - } - } - - private void DoAutocomplete(AutocompleteItem item, Range fragment) - { - string newText = item.GetTextForReplace(); - - //replace text of fragment - var tb = fragment.tb; - - tb.BeginAutoUndo(); - tb.TextSource.Manager.ExecuteCommand(new SelectCommand(tb.TextSource)); - if (tb.Selection.ColumnSelectionMode) - { - var start = tb.Selection.Start; - var end = tb.Selection.End; - start.iChar = fragment.Start.iChar; - end.iChar = fragment.End.iChar; - tb.Selection.Start = start; - tb.Selection.End = end; - } - else - { - tb.Selection.Start = fragment.Start; - tb.Selection.End = fragment.End; - } - tb.InsertText(newText); - tb.TextSource.Manager.ExecuteCommand(new SelectCommand(tb.TextSource)); - tb.EndAutoUndo(); - tb.Focus(); - } - - int PointToItemIndex(Point p) - { - return (p.Y + VerticalScroll.Value) / ItemHeight; - } - - protected override bool ProcessCmdKey(ref Message msg, Keys keyData) - { - ProcessKey(keyData, Keys.None); - - return base.ProcessCmdKey(ref msg, keyData); - } - - private bool ProcessKey(Keys keyData, Keys keyModifiers) - { - if (keyModifiers == Keys.None) - switch (keyData) - { - case Keys.Down: - SelectNext(+1); - return true; - case Keys.PageDown: - SelectNext(+10); - return true; - case Keys.Up: - SelectNext(-1); - return true; - case Keys.PageUp: - SelectNext(-10); - return true; - case Keys.Enter: - OnSelecting(); - return true; - case Keys.Tab: - if (!AllowTabKey) - break; - OnSelecting(); - return true; - case Keys.Escape: - Menu.Close(); - return true; - } - - return false; - } - - public void SelectNext(int shift) - { - FocussedItemIndex = Math.Max(0, Math.Min(FocussedItemIndex + shift, visibleItems.Count - 1)); - DoSelectedVisible(); - // - Invalidate(); - } - - private void DoSelectedVisible() - { - if (FocussedItem != null) - SetToolTip(FocussedItem); - - var y = FocussedItemIndex * ItemHeight - VerticalScroll.Value; - if (y < 0) - VerticalScroll.Value = FocussedItemIndex * ItemHeight; - if (y > ClientSize.Height - ItemHeight) - VerticalScroll.Value = Math.Min(VerticalScroll.Maximum, FocussedItemIndex * ItemHeight - ClientSize.Height + ItemHeight); - //some magic for update scrolls - AutoScrollMinSize -= new Size(1, 0); - AutoScrollMinSize += new Size(1, 0); - } - - private void SetToolTip(AutocompleteItem autocompleteItem) - { - var title = autocompleteItem.ToolTipTitle; - var text = autocompleteItem.ToolTipText; - - if (string.IsNullOrEmpty(title)) - { - toolTip.ToolTipTitle = null; - toolTip.SetToolTip(this, null); - return; - } - - if (this.Parent != null) - { - IWin32Window window = this.Parent ?? this; - Point location; - - if ((this.PointToScreen(this.Location).X + MaxToolTipSize.Width + 105) < Screen.FromControl(this.Parent).WorkingArea.Right) - location = new Point(Right + 5, 0); - else - location = new Point(Left - 105 - MaximumSize.Width, 0); - - if (string.IsNullOrEmpty(text)) - { - toolTip.ToolTipTitle = null; - toolTip.Show(title, window, location.X, location.Y, ToolTipDuration); - } - else - { - toolTip.ToolTipTitle = title; - toolTip.Show(text, window, location.X, location.Y, ToolTipDuration); - } - } - } - - public int Count - { - get { return visibleItems.Count; } - } - - public void SetAutocompleteItems(ICollection items) - { - List list = new List(items.Count); - foreach (var item in items) - list.Add(new AutocompleteItem(item)); - SetAutocompleteItems(list); - } - - public void SetAutocompleteItems(IEnumerable items) - { - sourceItems = items; - } - } - public class SelectingEventArgs : EventArgs { public AutocompleteItem Item { get; internal set; } From d1b2d1ef60c7338fe169e6ddbebdbcba5609d82d Mon Sep 17 00:00:00 2001 From: Inkathu Date: Tue, 20 Apr 2021 11:59:07 +0300 Subject: [PATCH 4/6] digits included into howered tooltip --- FastColoredTextBox/FastColoredTextBox.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FastColoredTextBox/FastColoredTextBox.cs b/FastColoredTextBox/FastColoredTextBox.cs index d7e2a1e9..dc8ab426 100644 --- a/FastColoredTextBox/FastColoredTextBox.cs +++ b/FastColoredTextBox/FastColoredTextBox.cs @@ -1784,7 +1784,7 @@ protected virtual void OnToolTip() return; //get word under mouse var r = new Range(this, place, place); - string hoveredWord = r.GetFragment("[a-zA-Z]").Text; + string hoveredWord = r.GetFragment("[a-zA-Z0-9]").Text; //event handler var ea = new ToolTipNeededEventArgs(place, hoveredWord); ToolTipNeeded(this, ea); From b7e8b034061458d978c9d3c273282ba680fad987 Mon Sep 17 00:00:00 2001 From: Inkathu Date: Tue, 11 Jan 2022 16:22:54 +0300 Subject: [PATCH 5/6] =?UTF-8?q?=D0=95=D1=81=D0=BB=D0=B8=20=D0=BF=D0=BE=20c?= =?UTF-8?q?trl+space=20=D0=B2=D0=BE=20=D0=B2=D1=81=D0=BF=D0=BB=D1=8B=D0=B2?= =?UTF-8?q?=D0=B0=D1=8E=D1=89=D0=B5=D0=B9=20=D0=BF=D0=BE=D0=B4=D1=81=D0=BA?= =?UTF-8?q?=D0=B0=D0=B7=D0=BA=D0=B5=20=D0=B2=D1=81=D0=B5=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BE=D0=B4=D0=B8=D0=BD=20=D0=B2=D0=B0=D1=80=D0=B8=D0=B0=D0=BD?= =?UTF-8?q?=D1=82,=20=D1=82=D0=BE=20=D0=BE=D0=BD=20=D0=B8=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B1=D0=B8=D1=80=D0=B0=D0=B5=D1=82=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 216 +- Binary/FastColoredTextBox.dll | Bin 332800 -> 0 bytes Binary/FastColoredTextBox.xml | 3280 --- Binary/TabStrip.dll | Bin 45056 -> 0 bytes Binary/Tester.exe | Bin 299008 -> 0 bytes Binary/htmlDesc.xml | 18 - FastColoredTextBox.sln | 110 +- FastColoredTextBox/AutocompleteItem.cs | 532 +- FastColoredTextBox/AutocompleteListView.cs | 1289 +- FastColoredTextBox/AutocompleteMenu.cs | 454 +- FastColoredTextBox/Bookmarks.cs | 512 +- FastColoredTextBox/Char.cs | 52 +- FastColoredTextBox/CommandManager.cs | 488 +- FastColoredTextBox/Commands.cs | 1618 +- FastColoredTextBox/DocumentMap.cs | 500 +- FastColoredTextBox/EncodingDetector.cs | 726 +- FastColoredTextBox/ExportToHTML.cs | 444 +- FastColoredTextBox/ExportToRTF.cs | 434 +- FastColoredTextBox/FastColoredTextBox.cs | 17286 ++++++++-------- FastColoredTextBox/FastColoredTextBox.csproj | 16 +- FastColoredTextBox/FastColoredTextBox.resx | 238 +- FastColoredTextBox/FileTextSource.cs | 984 +- FastColoredTextBox/FindForm.Designer.cs | 290 +- FastColoredTextBox/FindForm.cs | 258 +- FastColoredTextBox/FindForm.resx | 238 +- FastColoredTextBox/GoToForm.Designer.cs | 218 +- FastColoredTextBox/GoToForm.cs | 106 +- FastColoredTextBox/GoToForm.resx | 238 +- FastColoredTextBox/Hints.cs | 776 +- FastColoredTextBox/Hotkeys.cs | 502 +- .../HotkeysEditorForm.Designer.cs | 418 +- FastColoredTextBox/HotkeysEditorForm.cs | 358 +- FastColoredTextBox/HotkeysEditorForm.resx | 256 +- FastColoredTextBox/LimitedStack.cs | 208 +- FastColoredTextBox/Line.cs | 578 +- FastColoredTextBox/LineNumberFormatting.cs | 44 +- FastColoredTextBox/LinesAccessor.cs | 196 +- FastColoredTextBox/MacrosManager.cs | 364 +- FastColoredTextBox/Place.cs | 198 +- FastColoredTextBox/PlatformType.cs | 150 +- FastColoredTextBox/Properties/AssemblyInfo.cs | 72 +- FastColoredTextBox/Range.cs | 3474 ++-- FastColoredTextBox/ReplaceForm.Designer.cs | 390 +- FastColoredTextBox/ReplaceForm.cs | 374 +- FastColoredTextBox/ReplaceForm.resx | 238 +- FastColoredTextBox/Ruler.Designer.cs | 74 +- FastColoredTextBox/Ruler.cs | 276 +- FastColoredTextBox/Style.cs | 860 +- FastColoredTextBox/SyntaxDescriptor.cs | 102 +- FastColoredTextBox/SyntaxHighlighter.cs.old | 1018 +- FastColoredTextBox/TextSource.cs | 676 +- FastColoredTextBox/TypeDescriptor.cs | 192 +- FastColoredTextBox/UnfocusablePanel.cs | 82 +- FastColoredTextBox/VisualMarker.cs | 212 +- FastColoredTextBoxVS2008.sln | 84 +- README.md | 28 +- Tester/AutoIndentCharsSample.Designer.cs | 214 +- Tester/AutoIndentCharsSample.cs | 28 +- Tester/AutoIndentCharsSample.resx | 238 +- Tester/AutoIndentSample.Designer.cs | 278 +- Tester/AutoIndentSample.cs | 188 +- Tester/AutoIndentSample.resx | 328 +- Tester/AutocompleteSample.Designer.cs | 218 +- Tester/AutocompleteSample.cs | 94 +- Tester/AutocompleteSample.resx | 294 +- Tester/AutocompleteSample2.Designer.cs | 198 +- Tester/AutocompleteSample2.cs | 364 +- Tester/AutocompleteSample2.resx | 392 +- Tester/AutocompleteSample3.Designer.cs | 184 +- Tester/AutocompleteSample3.cs | 204 +- Tester/AutocompleteSample3.resx | 238 +- Tester/AutocompleteSample4.Designer.cs | 186 +- Tester/AutocompleteSample4.cs | 232 +- Tester/AutocompleteSample4.resx | 274 +- Tester/BilingualHighlighterSample.Designer.cs | 142 +- Tester/BilingualHighlighterSample.cs | 80 +- Tester/BilingualHighlighterSample.resx | 238 +- Tester/BookmarksSample.Designer.cs | 300 +- Tester/BookmarksSample.cs | 94 +- Tester/BookmarksSample.resx | 850 +- Tester/ConsoleSample.Designer.cs | 224 +- Tester/ConsoleSample.cs | 316 +- Tester/ConsoleSample.resx | 284 +- Tester/CustomFoldingSample.Designer.cs | 186 +- Tester/CustomFoldingSample.cs | 98 +- Tester/CustomFoldingSample.resx | 284 +- Tester/CustomHint.Designer.cs | 168 +- Tester/CustomHint.cs | 38 +- Tester/CustomHint.resx | 238 +- Tester/CustomScrollBarsSample.Designer.cs | 364 +- Tester/CustomScrollBarsSample.cs | 364 +- Tester/CustomScrollBarsSample.resx | 320 +- Tester/CustomStyleSample.Designer.cs | 194 +- Tester/CustomStyleSample.cs | 92 +- Tester/CustomStyleSample.resx | 248 +- Tester/CustomTextSourceSample.Designer.cs | 184 +- Tester/CustomTextSourceSample.cs | 432 +- Tester/CustomTextSourceSample.resx | 246 +- Tester/CustomTextSourceSample2.Designer.cs | 256 +- Tester/CustomTextSourceSample2.cs | 282 +- Tester/CustomTextSourceSample2.resx | 274 +- Tester/CustomWordWrapSample.Designer.cs | 196 +- Tester/CustomWordWrapSample.cs | 54 +- Tester/CustomWordWrapSample.resx | 258 +- Tester/DiffMergeSample.Designer.cs | 594 +- Tester/DiffMergeSample.resx | 316 +- Tester/DocumentMapSample.Designer.cs | 202 +- Tester/DocumentMapSample.cs | 32 +- Tester/DocumentMapSample.resx | 960 +- Tester/DynamicSyntaxHighlighting.Designer.cs | 174 +- Tester/DynamicSyntaxHighlighting.cs | 70 +- Tester/DynamicSyntaxHighlighting.resx | 238 +- Tester/GifImageDrawingSample.Designer.cs | 176 +- Tester/GifImageDrawingSample.cs | 246 +- Tester/GifImageDrawingSample.resx | 238 +- Tester/HintSample.Designer.cs | 388 +- Tester/HintSample.cs | 68 +- Tester/HintSample.resx | 314 +- Tester/HyperlinkSample.Designer.cs | 144 +- Tester/HyperlinkSample.cs | 106 +- Tester/HyperlinkSample.resx | 238 +- Tester/IMEsample.Designer.cs | 184 +- Tester/IMEsample.cs | 38 +- Tester/JokeSample.Designer.cs | 162 +- Tester/JokeSample.cs | 114 +- Tester/JokeSample.resx | 256 +- Tester/LazyLoadingSample.Designer.cs | 450 +- Tester/LazyLoadingSample.cs | 258 +- Tester/LazyLoadingSample.resx | 304 +- Tester/LoggerSample.Designer.cs | 236 +- Tester/LoggerSample.cs | 130 +- Tester/LoggerSample.resx | 244 +- Tester/MacrosSample.Designer.cs | 182 +- Tester/MacrosSample.cs | 28 +- Tester/MacrosSample.resx | 296 +- Tester/MainForm.Designer.cs | 2224 +- Tester/MainForm.cs | 442 +- Tester/MainForm.resx | 238 +- Tester/MarkerToolSample.Designer.cs | 352 +- Tester/MarkerToolSample.cs | 230 +- Tester/MarkerToolSample.resx | 296 +- Tester/OpenTypeFontSample.Designer.cs | 360 +- Tester/OpenTypeFontSample.cs | 538 +- Tester/OpenTypeFontSample.resx | 250 +- Tester/PowerfulCSharpEditor.Designer.cs | 1680 +- Tester/PowerfulCSharpEditor.cs | 1890 +- Tester/PowerfulCSharpEditor.resx | 706 +- Tester/PowerfulSample.Designer.cs | 1130 +- Tester/PowerfulSample.cs | 842 +- Tester/PowerfulSample.resx | 322 +- Tester/PredefinedStylesSample.Designer.cs | 166 +- Tester/PredefinedStylesSample.cs | 334 +- Tester/PredefinedStylesSample.resx | 238 +- Tester/Program.cs | 42 +- Tester/Properties/AssemblyInfo.cs | 72 +- Tester/Properties/Resources.Designer.cs | 378 +- Tester/Properties/Resources.resx | 350 +- Tester/Properties/Settings.Designer.cs | 60 +- Tester/Properties/Settings.settings | 14 +- Tester/ReadOnlyBlocksSample.Designer.cs | 182 +- Tester/ReadOnlyBlocksSample.cs | 58 +- Tester/ReadOnlyBlocksSample.resx | 238 +- Tester/RulerSample.Designer.cs | 184 +- Tester/RulerSample.cs | 32 +- Tester/RulerSample.resx | 282 +- Tester/Sandbox.Designer.cs | 224 +- Tester/Sandbox.cs | 118 +- Tester/Sandbox.resx | 274 +- Tester/SimplestCodeFoldingSample.Designer.cs | 178 +- Tester/SimplestCodeFoldingSample.cs | 44 +- Tester/SimplestCodeFoldingSample.resx | 274 +- ...mplestSyntaxHighlightingSample.Designer.cs | 204 +- Tester/SimplestSyntaxHighlightingSample.cs | 52 +- Tester/SimplestSyntaxHighlightingSample.resx | 274 +- Tester/SplitSample.Designer.cs | 360 +- Tester/SplitSample.cs | 38 +- Tester/SplitSample.resx | 398 +- ...axHighlightingByXmlDescription.Designer.cs | 178 +- Tester/SyntaxHighlightingByXmlDescription.cs | 38 +- .../SyntaxHighlightingByXmlDescription.resx | 254 +- Tester/Tester.csproj | 52 +- Tester/TooltipSample.Designer.cs | 176 +- Tester/TooltipSample.cs | 66 +- Tester/TooltipSample.resx | 280 +- ...sibleRangeChangedDelayedSample.Designer.cs | 170 +- Tester/VisibleRangeChangedDelayedSample.cs | 130 +- Tester/VisibleRangeChangedDelayedSample.resx | 238 +- Tester/htmlDesc.xml | 34 +- TesterVB/App.config | 12 +- TesterVB/AutoIndentSample.Designer.vb | 152 +- TesterVB/AutoIndentSample.resx | 238 +- TesterVB/AutoIndentSample.vb | 54 +- TesterVB/AutocompleteSample.Designer.vb | 160 +- TesterVB/AutocompleteSample.resx | 252 +- TesterVB/AutocompleteSample.vb | 58 +- TesterVB/AutocompleteSample2.Designer.vb | 174 +- TesterVB/AutocompleteSample2.resx | 392 +- TesterVB/AutocompleteSample2.vb | 358 +- TesterVB/BookmarksSample.Designer.vb | 226 +- TesterVB/BookmarksSample.resx | 506 +- TesterVB/BookmarksSample.vb | 44 +- TesterVB/ConsoleSample.resx | 248 +- TesterVB/ConsoleSample.vb | 216 +- TesterVB/ConsoleTextBox.vb | 158 +- TesterVB/CustomFoldingSample.vb | 184 +- TesterVB/CustomStyleSample.resx | 246 +- TesterVB/CustomStyleSample.vb | 186 +- TesterVB/DynamicSyntaxHighlighting.vb | 172 +- TesterVB/EllipseStyle.vb | 36 +- TesterVB/GifImageDrawingSample.vb | 144 +- TesterVB/GifImageStyle.vb | 140 +- TesterVB/InvisibleCharsRenderer.vb | 82 +- TesterVB/JokeSample.resx | 256 +- TesterVB/JokeSample.vb | 132 +- TesterVB/JokeStyle.vb | 64 +- TesterVB/LazyLoadingSample.resx | 266 +- TesterVB/LazyLoadingSample.vb | 468 +- TesterVB/LoggerSample.vb | 234 +- TesterVB/MainForm.Designer.vb | 318 +- TesterVB/MainForm.resx | 238 +- TesterVB/MainForm.vb | 1476 +- TesterVB/MarkerToolSample.vb | 404 +- TesterVB/My Project/Application.Designer.vb | 76 +- TesterVB/My Project/Application.myapp | 18 +- TesterVB/My Project/AssemblyInfo.vb | 70 +- TesterVB/My Project/Resources.Designer.vb | 378 +- TesterVB/My Project/Resources.resx | 348 +- TesterVB/My Project/Settings.Designer.vb | 146 +- TesterVB/My Project/Settings.settings | 14 +- TesterVB/PowerfulCSharpEditor.designer.vb | 516 +- TesterVB/PowerfulCSharpEditor.resx | 678 +- TesterVB/PowerfulCSharpEditor.vb | 3122 +-- TesterVB/PowerfulSample.Designer.vb | 360 +- TesterVB/PowerfulSample.resx | 250 +- TesterVB/PowerfulSample.vb | 286 +- TesterVB/SimplestCodeFoldingSample.vb | 144 +- TesterVB/SimplestSyntaxHighlightingSample.vb | 142 +- TesterVB/SplitSample.resx | 326 +- TesterVB/SplitSample.vb | 240 +- .../SyntaxHighlightingByXmlDescription.vb | 138 +- TesterVB/TbInfo.vb | 26 +- TesterVB/TesterVB.vbproj | 638 +- TesterVB/TooltipSample.resx | 276 +- TesterVB/TooltipSample.vb | 176 +- TesterVB/VisibleRangeChangedDelayedSample.vb | 186 +- TesterVB/htmlDesc.xml | 34 +- license.txt | 20 +- 247 files changed, 46691 insertions(+), 49982 deletions(-) delete mode 100644 Binary/FastColoredTextBox.dll delete mode 100644 Binary/FastColoredTextBox.xml delete mode 100644 Binary/TabStrip.dll delete mode 100644 Binary/Tester.exe delete mode 100644 Binary/htmlDesc.xml diff --git a/.gitignore b/.gitignore index bdc3535f..28b806ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,108 +1,108 @@ -# Build Folders (you can keep bin if you'd like, to store dlls and pdbs) -[Bb]in/ -[Oo]bj/ - -# mstest test results -TestResults - -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.sln.docstates - -# Build results -[Dd]ebug/ -[Rr]elease/ -x64/ -*_i.c -*_p.c -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.log -*.vspscc -*.vssscc -.builds - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf - -# Visual Studio profiler -*.psess -*.vsp -*.vspx - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper* - -# NCrunch -*.ncrunch* -.*crunch*.local.xml - -# Installshield output folder -[Ee]xpress - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish - -# Publish Web Output -*.Publish.xml - -# NuGet Packages Directory -packages - -# Windows Azure Build Output -csx -*.build.csdef - -# Windows Store app package directory -AppPackages/ - -# Others -[Bb]in -[Oo]bj -sql -TestResults -[Tt]est[Rr]esult* -*.Cache -ClientBin -[Ss]tyle[Cc]op.* -~$* -*.dbmdl -Generated_Code #added for RIA/Silverlight projects - -# Backup & report files from converting an old project file to a newer -# Visual Studio version. Backup files are not needed, because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML +# Build Folders (you can keep bin if you'd like, to store dlls and pdbs) +[Bb]in/ +[Oo]bj/ + +# mstest test results +TestResults + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +x64/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.log +*.vspscc +*.vssscc +.builds + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper* + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Publish Web Output +*.Publish.xml + +# NuGet Packages Directory +packages + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +[Bb]in +[Oo]bj +sql +TestResults +[Tt]est[Rr]esult* +*.Cache +ClientBin +[Ss]tyle[Cc]op.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML diff --git a/Binary/FastColoredTextBox.dll b/Binary/FastColoredTextBox.dll deleted file mode 100644 index 4c89533411d1d61b115745a867097937fe65721b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332800 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 AC#!z#nqX!xzr$M8BWR?1x% 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%0AEaQO4++nQ=@}9`j;^NM#zFW7OhatJEO!fQ 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 G4E%rlHs3D* diff --git a/Binary/FastColoredTextBox.xml b/Binary/FastColoredTextBox.xml deleted file mode 100644 index d9852c9c..00000000 --- a/Binary/FastColoredTextBox.xml +++ /dev/null @@ -1,3280 +0,0 @@ - - - - FastColoredTextBox - - - - - Item of autocomplete menu - - - - - Returns text for inserting into Textbox - - - - - Compares fragment text with this item - - - - - Returns text for display into popup menu - - - - - This method is called after item inserted into text - - - - - Title for tooltip. - - Return null for disable tooltip for this item - - - - Tooltip text. - - For display tooltip text, ToolTipTitle must be not null - - - - Menu text. This text is displayed in the drop-down menu. - - - - - Fore color of text of item - - - - - Back color of item - - - - - Item do not appears - - - - - Item appears - - - - - Item appears and will selected - - - - - Autocomplete item for code snippets - - Snippet can contain special char ^ for caret position. - - - - Compares fragment text with this item - - - - - This autocomplete item appears after dot - - - - - This Item does not check correspondence to current text fragment. - SuggestItem is intended for dynamic menus. - - - - - Popup menu for autocomplete - - - - - Regex pattern for serach fragment around caret - - - - - Minimum fragment length for popup - - - - - User selects item - - - - - It fires after item inserting - - - - - Occurs when popup menu is opening - - - - - Allow TAB for select menu item - - - - - Interval of menu appear (ms) - - - - - Sets the max tooltip window size - - - - - Tooltip will perm show and duration will be ignored - - - - - Back color of selected item - - - - - Border color of hovered item - - - - - Shows popup menu immediately - - If True - MinFragmentLength will be ignored - - - - Minimal size of menu - - - - - Image list of menu - - - - - Tooltip duration (ms) - - - - - Tooltip - - - - - Base class for bookmark collection - - - - - Collection of bookmarks - - - - - Removes bookmark by line index - - - - - Returns Bookmark by index. - - - - - Bookmark of FastColoredTextbox - - - - - Name of bookmark - - - - - Line index - - - - - Color of bookmark sign - - - - - Scroll textbox to the bookmark - - - - - Char and style - - - - - Unicode character - - - - - Style bit mask - - Bit 1 in position n means that this char will rendering by FastColoredTextBox.Styles[n] - - - - Shows document map of FCTB - - - - - Scale - - - - - Scrollbar visibility - - - - - Exports colored text as HTML - - At this time only TextStyle renderer is supported. Other styles is not exported. - - - - Use nbsp; instead space - - - - - Use nbsp; instead space in beginning of line - - - - - Use original font - - - - - Use style tag instead style attribute - - - - - Use 'br' tag instead of '\n' - - - - - Includes line numbers - - - - - Exports colored text as RTF - - At this time only TextStyle renderer is supported. Other styles are not exported. - - - - Includes line numbers - - - - - Use original font - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Collection of Hints. - This is temporary buffer for currently displayed hints. - - - - - Clears all displayed hints - - - - - Add and shows the hint - - - - - - Is collection contains the hint? - - - - - Count of hints - - - - - Hint of FastColoredTextbox - - - - - Text of simple hint - - - - - Linked range - - - - - Backcolor - - - - - Second backcolor - - - - - Border color - - - - - Fore color - - - - - Text alignment - - - - - Font - - - - - Occurs when user click on simple hint - - - - - Inner control - - - - - Docking (allows None and Fill only) - - - - - Width of hint (if Dock is None) - - - - - Height of hint - - - - - Host panel - - - - - Tag - - - - - Cursor - - - - - Inlining. If True then hint will moves apart text. - - - - - Scroll textbox to the hint - - - - - Creates Hint - - Linked range - Text for simple hint - Inlining. If True then hint will moves apart text - Docking. If True then hint will fill whole line - - - - Creates Hint - - Linked range - Text for simple hint - - - - Creates Hint - - Linked range - Inner control - Inlining. If True then hint will moves apart text - Docking. If True then hint will fill whole line - - - - Creates Hint - - Linked range - Inner control - - - - Returns edited hotkey map - - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Customize how we display the line numbers - - - - - Defines how line number is displayed - - - - - - - Recover the line number from the formatted string - - - - - - - - This class records, stores and executes the macros. - - - - - Allows to user to record macros - - - - - Returns current recording state. Set to True/False to start/stop recording programmatically. - - - - - FCTB - - - - - Executes recorded macro - - - - - - Adds the char to current macro - - - - - Adds keyboard key to current macro - - - - - Clears last recorded macro - - - - - Returns True if last macro is empty - - - - - Macros as string. - - - - - Dictionary of shortcuts for FCTB - - - - - Actions for shortcuts - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Highlights syntax for given language - - - - - Highlights syntax for given XML description file - - - - - Uses the given to parse a XML description and adds it as syntax descriptor. - The syntax descriptor is used for highlighting when - - Language property of FCTB is set to - DescriptionFile property of FCTB has the same value as the method parameter - - - Name of the description file - XmlDocument to parse - - - - Adds the given as resilient style. A resilient style is additionally available when highlighting is - based on a syntax descriptor that has been derived from a XML description file. In the run of the highlighting routine - the styles used by the FCTB are always dropped and replaced with the (initial) ones from the syntax descriptor. Resilient styles are - added afterwards and can be used anyway. - - Style to add - - - - Highlights C# code - - - - - - Highlights VB code - - - - - - Highlights HTML code - - - - - - Highlights XML code - - - - - - Highlights SQL code - - - - - - Highlights PHP code - - - - - - Highlights JavaScript code - - - - - - Highlights Lua code - - - - - - Highlights JSON code - - - - - - String style - - - - - Comment style - - - - - Number style - - - - - C# attribute style - - - - - Class name style - - - - - Keyword style - - - - - Style of tags in comments of C# - - - - - HTML attribute value style - - - - - HTML tag brackets style - - - - - HTML tag name style - - - - - HTML Entity style - - - - - XML attribute style - - - - - XML attribute value style - - - - - XML tag brackets style - - - - - XML tag name style - - - - - XML Entity style - - - - - XML CData style - - - - - Variable style - - - - - Specific PHP keyword style - - - - - Specific PHP keyword style - - - - - SQL Statements style - - - - - SQL Functions style - - - - - SQL Types style - - - - - Language - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Fast colored textbox - - - - - Constructor - - - - - AutoComplete brackets - - - - - Colors of some service visual markers - - - - - Contains UniqueId of start lines of folded blocks - - This dictionary remembers folding state of blocks. - It is needed to restore child folding after user collapsed/expanded top-level folding block. - - - - Strategy of search of brackets to highlighting - - - - - Automatically shifts secondary wordwrap lines on the shift amount of the first line - - - - - Indent of secondary wordwrap lines (in chars) - - - - - MacrosManager records, stores and executes the macroses - - - - - Allows drag and drop - - - - - Collection of Hints. - This is temporary buffer for currently displayed hints. - - You can asynchronously add, remove and clear hints. Appropriate hints will be shown or hidden from the screen. - - - - Delay (ms) of ToolTip - - - - - ToolTip component - - - - - Color of bookmarks - - - - - Bookmarks - - - - - Enables virtual spaces - - - - - Strategy of search of end of folding block - - - - - Indicates if tab characters are accepted as input - - - - - Indicates if return characters are accepted as input - - - - - Shows or hides the caret - - - - - Enables caret blinking - - - - - Draw caret when the control is not focused - - - - - Color of border of text area - - - - - Type of border of text area - - - - - Background color for current line - - - - - Background color for highlighting of changed lines - - - - - Fore color (default style color) - - - - - Height of char in pixels (includes LineInterval) - - - - - Interval between lines (in pixels) - - - - - Width of char in pixels - - - - - Spaces count for tab - - - - - Text was changed - - - - - Text version - - This counter is incremented each time changes the text - - - - Read only - - - - - Shows line numbers. - - - - - Shows vertical lines between folding start line and folding end line. - - - - - Rectangle where located text - - - - - Color of line numbers. - - - - - Start value of first line number. - - - - - To create your own line number formatting, you have to implement the abstract LineNumberFormatting class - - - - - Background color of indent area - - - - - Background color of padding area - - - - - Color of disabled component - - - - - Color of caret - - - - - Wide caret - - - - - Color of service lines (folding lines, borders of blocks etc.) - - - - - Padings of text area - - - - - --Do not use this property-- - - - - - Color of folding area indicator - - - - - Enables folding indicator (left vertical line between folding bounds) - - - - - Left distance to text beginning - - - - - Left padding in pixels - - - - - This property draws vertical line after defined char position. - Set to 0 for disable drawing of vertical line. - - - - - Styles - - - - - Hotkeys. Do not use this property in your code, use HotkeysMapping property. - - - - - Hotkeys mapping - - - - - Default text style - This style is using when no one other TextStyle is not defined in Char.style - - - - - Style for rendering Selection area - - - - - Style for folded block rendering - - - - - Style for brackets highlighting - - - - - Style for alternative brackets highlighting - - - - - Opening bracket for brackets highlighting. - Set to '\x0' for disable brackets highlighting. - - - - - Closing bracket for brackets highlighting. - Set to '\x0' for disable brackets highlighting. - - - - - Alternative opening bracket for brackets highlighting. - Set to '\x0' for disable brackets highlighting. - - - - - Alternative closing bracket for brackets highlighting. - Set to '\x0' for disable brackets highlighting. - - - - - Comment line prefix. - - - - - This property specifies which part of the text will be highlighted as you type (by built-in highlighter). - - When a user enters text, a component refreshes highlighting (because the text was changed). - This property specifies exactly which section of the text will be re-highlighted. - This can be useful to highlight multi-line comments, for example. - - - - Is keyboard in replace mode (wide caret) ? - - - - - Allows text rendering several styles same time. - - - - - Allows to record macros. - - - - - Allows AutoIndent. Inserts spaces before new line. - - - - - Does autoindenting in existing lines. It works only if AutoIndent is True. - - - - - Minimal delay(ms) for delayed events (except TextChangedDelayed). - - - - - Minimal delay(ms) for TextChangedDelayed event. - - - - - Language for highlighting by built-in highlighter. - - - - - Syntax Highlighter - - - - - XML file with description of syntax highlighting. - This property works only with Language == Language.Custom. - - - - - Position of left highlighted bracket. - - - - - Position of right highlighted bracket. - - - - - Position of left highlighted alternative bracket. - - - - - Position of right highlighted alternative bracket. - - - - - Start line index of current highlighted folding area. Return -1 if start of area is not found. - - - - - End line index of current highlighted folding area. Return -1 if end of area is not found. - - - - - TextSource - - - - - The source of the text. - Allows to get text from other FastColoredTextBox. - - - - - Returns current visible range of text - - - - - Current selection range - - - - - Background color. - It is used if BackBrush is null. - - - - - Background brush. - If Null then BackColor is used. - - - - - Multiline - - - - - WordWrap. - - - - - WordWrap mode. - - - - - If true then line breaks included into the selection will be selected too. - Then line breaks will be shown as selected blank character. - - - - - Do not change this property - - - - - Count of lines - - - - - Gets or sets char and styleId for given place - This property does not fire OnTextChanged event - - - - - Gets Line - - - - - Text of control - - - - - Text lines - - - - - Gets colored text as HTML - - For more flexibility you can use ExportToHTML class also - - - - Gets colored text as RTF - - For more flexibility you can use ExportToRTF class also - - - - Text of current selection - - - - - Start position of selection - - - - - Length of selected text - - - - - Font - - Use only monospaced font - - - - Font - - Use only monospaced font - - - - Indicates that IME is allowed (for CJK language entering) - - - - - Is undo enabled? - - - - - Is redo enabled? - - - - - Range of all text - - - - - Color of selected area - - - - - Reserved space for line number characters. - If smaller than needed (e. g. line count >= 10 and this value set to 1) this value will have no impact. - If you want to reserve space, e. g. for line numbers >= 10 or >= 100 than you can set this value to 2 or 3 or higher. - - - - - Occurs when mouse is moving over text and tooltip is needed - - - - - Removes all hints - - - - - Add and shows the hint - - Linked range - Inner control - Scrolls textbox to the hint - Inlining. If True then hint will moves apart text - Docking. If True then hint will fill whole line - - - - Add and shows the hint - - Linked range - Inner control - - - - Add and shows simple text hint - - Linked range - Text of simple hint - Scrolls textbox to the hint - Inlining. If True then hint will moves apart text - Docking. If True then hint will fill whole line - - - - Add and shows simple text hint - - Linked range - Text of simple hint - - - - Occurs when user click on the hint - - - - - - Occurs when VisibleRange is changed - - - - - Invalidates the entire surface of the control and causes the control to be redrawn. - This method is thread safe and does not require Invoke. - - - - - HintClick event. - It occurs if user click on the hint. - - - - - TextChanged event. - It occurs after insert, delete, clear, undo and redo operations. - - - - - Fake event for correct data binding - - - - - Occurs when user paste text from clipboard - - - - - TextChanging event. - It occurs before insert, delete, clear, undo and redo operations. - - - - - SelectionChanged event. - It occurs after changing of selection. - - - - - VisibleRangeChanged event. - It occurs after changing of visible range. - - - - - TextChangedDelayed event. - It occurs after insert, delete, clear, undo and redo operations. - This event occurs with a delay relative to TextChanged, and fires only once. - - - - - SelectionChangedDelayed event. - It occurs after changing of selection. - This event occurs with a delay relative to SelectionChanged, and fires only once. - - - - - VisibleRangeChangedDelayed event. - It occurs after changing of visible range. - This event occurs with a delay relative to VisibleRangeChanged, and fires only once. - - - - - It occurs when user click on VisualMarker. - - - - - It occurs when visible char is enetering (alphabetic, digit, punctuation, DEL, BACKSPACE) - - Set Handle to True for cancel key - - - - It occurs when visible char is enetered (alphabetic, digit, punctuation, DEL, BACKSPACE) - - - - - It occurs when calculates AutoIndent for new line - - - - - It occurs when line background is painting - - - - - Occurs when line was inserted/added - - - - - Occurs when line was removed - - - - - Occurs when current highlighted folding area is changed. - Current folding area see in StartFoldingLine and EndFoldingLine. - - - - - - Occurs when undo/redo stack is changed - - - - - - Occurs when component was zoomed - - - - - Occurs when user pressed key, that specified as CustomAction - - - - - Occurs when scroolbars are updated - - - - - Occurs when custom wordwrap is needed - - - - - Returns list of styles of given place - - - - - Call this method if the recalc of the position of lines is needed. - - - - - Call this method if the recalc of the position of lines is needed. - - - - - Call this method if the recalc of the position of lines is needed. - - - - - Navigates forward (by Line.LastVisit property) - - - - - Navigates backward (by Line.LastVisit property) - - - - - Navigates to defined line, without Line.LastVisit reseting - - - - - Add new style - - Layer index of this style - - - - Checks if the styles buffer has enough space to add one - more element. If not, an exception is thrown. Otherwise, - the index of a free slot is returned. - - Index of free styles buffer slot - If maximum count of styles is exceeded - - - - Shows find dialog - - - - - Shows find dialog - - - - - Shows replace dialog - - - - - Shows replace dialog - - - - - Gets length of given line - - Line index - Length of line - - - - Get range of line - - Line index - - - - Copy selected text into Clipboard - - - - - Cut selected text into Clipboard - - - - - Paste text from clipboard into selected position - - - - - Select all chars of text - - - - - Move caret to end of text - - - - - Move caret to first position - - - - - Clear text, styles, history, caches - - - - - Clear buffer of styles - - - - - Clear style of all text - - - - - Clears undo and redo stacks - - - - - Insert text into current selected position - - - - - Insert text into current selected position - - - - - - Insert text into current selection position (with predefined style) - - - - - - Insert text into current selection position (with predefined style) - - - - - Insert text into replaceRange and restore previous selection - - - - - Append string to end of the Text - - - - - Append string to end of the Text - - - - - Returns index of the style in Styles - -1 otherwise - - - Index of the style in Styles - - - - Returns StyleIndex mask of given styles - - - StyleIndex mask of given styles - - - - Deletes selected chars - - - - - Deletes current line(s) - - - - - Calculates wordwrap cutoffs - - - - - Scroll control for display defined rectangle - - - - - - Updates scrollbar position after Value changed - - - - - Scroll control for display caret - - - - - Scroll control left - - - - - Scroll control for display selection area - - - - - Scroll control for display given range - - - - - Scroll control for display given range - - - - - Process control keys - - - - - Scrolls to nearest bookmark or to first bookmark - - Current bookmark line index - - - - Scrolls to nearest previous bookmark or to last bookmark - - Current bookmark line index - - - - Bookmarks line - - - - - Unbookmarks current line - - - - - Moves selected lines down - - - - - Moves selected lines up - - - - - Convert selected text to upper case - - - - - Convert selected text to lower case - - - - - Convert selected text to title case - - - - - Convert selected text to sentence case - - - - - Insert/remove comment prefix into selected lines - - - - - Insert/remove comment prefix into selected lines - - - - - Process "real" keys (no control) - - - - - Enables AutoIndentChars mode - - - - - Regex patterns for AutoIndentChars (one regex per line) - - - - - Do AutoIndentChars - - - - - Finds given char after current caret position, moves the caret to found pos. - - - - - - Inserts autoindent's spaces in the line - - - - - Returns needed start space count for the line - - - - - Undo last operation - - - - - Redo - - - - - Draws text to given Graphics - - - Start place of drawing text - Size of drawing - - - - Draw control - - - - - Gets the value for the system control panel mouse wheel scroll settings. - The value returns the number of lines that shall be scolled if the user turns the mouse wheet one step. - - - This methods gets the "WheelScrollLines" value our from the registry key "HKEY_CURRENT_USER\Control Panel\Desktop". - If the value of this option is 0, the screen will not scroll when the mouse wheel is turned. - If the value of this option is -1 or is greater than the number of lines visible in the window, - the screen will scroll up or down by one page. - - - Number of lines to scrol l when the mouse wheel is turned - - - - - Zooming (in percentages) - - - - - Gets nearest line and char position from coordinates - - Point - Line and char position - - - - Gets nearest absolute text position for given point - - Point - Position - - - - Fires TextChanging event - - - - - Fires TextChanged event - - - - - Fires TextChanged event - - - - - Fires TextChanged event - - - - - Call this method before multiple text changing - - - - - Call this method after multiple text changing - - - - - Fires TextChanged event - - - - - Clears folding state for range of text - - - - - Fires SelectionChanged event - - - - - Gets absolute text position from line and char position - - Line and char position - Point of char - - - - Gets line and char position from absolute text position - - - - - Gets absolute char position from char position - - - - - Gets point for given line and char position - - Line and char position - Coordiantes - - - - Get range of text - - Absolute start position - Absolute finish position - Range - - - - Get range of text - - Line and char position - Line and char position - Range - - - - Finds ranges for given regex pattern - - Regex pattern - Enumeration of ranges - - - - Finds ranges for given regex pattern - - Regex pattern - Enumeration of ranges - - - - Get text of given line - - Line index - Text - - - - Exapnds folded block - - Start line - - - - Collapse folding blocks using FoldedBlocks dictionary. - - - - - Expand collapsed block - - - - - Expand collapsed block - - Any line inside collapsed block - - - - Collapses all folding blocks - - - - - Exapnds all folded blocks - - - - - - Collapses folding block - - Start folding line - - - - Start foilding marker for the line - - - - - End foilding marker for the line - - - - - Collapse text block - - - - - Insert TAB into front of seletcted lines. - - - - - Remove TAB from front of seletcted lines. - - - - - Remove TAB in front of the caret ot the selected line. - - - - - Insert autoindents into selected lines - - - - - Insert prefix into front of seletcted lines - - - - - Remove prefix from front of selected lines - This method ignores forward spaces of the line - - - - - Begins AutoUndo block. - All changes of text between BeginAutoUndo() and EndAutoUndo() will be canceled in one operation Undo. - - - - - Ends AutoUndo block. - All changes of text between BeginAutoUndo() and EndAutoUndo() will be canceled in one operation Undo. - - - - - Highlights brackets around caret - - - - - Returns range between brackets (or null if not found) - - - - - Selectes next fragment for given regex. - - - - - Prints range of text - - - - - Prints all text - - - - - Prints all text, without any dialog windows - - - - - Open text file - - - - - Open text file (with automatic encoding detector) - - - - - Open file binding mode - - - - - - - Close file binding mode - - - - - Save text to the file - - - - - - - Set VisibleState of line - - - - - Returns VisibleState of the line - - - - - Shows Goto dialog form - - - - - Set current line number and make it visible - - - - - - Occurs when undo/redo stack is changed - - - - - Search lines by regex pattern - - - - - Removes given lines - - - - - Activates the scrolling mode (middle click button). - - MouseEventArgs - - - - Deactivates the scrolling mode (middle click button). - - - - - Restore scrolls - - - - - Inserted line index - - - - - Count of inserted lines - - - - - Removed line index - - - - - Count of removed lines - - - - - UniqueIds of removed lines - - - - - TextChanged event argument - - - - - Constructor - - - - - This range contains changed area of text - - - - - Set to true if you want to cancel text inserting - - - - - Word wrapping by control width - - - - - Word wrapping by preferred line width (PreferredLineWidth) - - - - - Char wrapping by control width - - - - - Char wrapping by preferred line width (PreferredLineWidth) - - - - - Custom wrap (by event WordWrapNeeded) - - - - - Title of page. If you want to print Title on the page, insert code &w in Footer or Header. - - - - - Footer of page. - Here you can use special codes: &w (Window title), &D, &d (Date), &t(), &4 (Time), &p (Current page number), &P (Total number of pages), && (A single ampersand), &b (Right justify text, Center text. If &b occurs once, then anything after the &b is right justified. If &b occurs twice, then anything between the two &b is centered, and anything after the second &b is right justified). - More detailed see here - - - - - Header of page - Here you can use special codes: &w (Window title), &D, &d (Date), &t(), &4 (Time), &p (Current page number), &P (Total number of pages), && (A single ampersand), &b (Right justify text, Center text. If &b occurs once, then anything after the &b is right justified. If &b occurs twice, then anything between the two &b is centered, and anything after the second &b is right justified). - More detailed see here - - - - - Prints line numbers - - - - - Additional spaces count for this line, relative to previous line - - - - - Additional spaces count for next line, relative to previous line - - - - - Absolute indentation of current line. You can change this property if you want to set absolute indentation. - - - - - Type of highlighting - - - - - Highlight only changed range of text. Highest performance. - - - - - Highlight visible range of text. Middle performance. - - - - - Highlight all (visible and invisible) text. Lowest performance. - - - - - Strategy of search of end of folding block - - - - - Strategy of search of brackets to highlighting - - - - - ToolTipNeeded event args - - - - - HintClick event args - - - - - CustomAction event args - - - - - Style index mask (16 styles) - - - - - Insert single char - - This operation includes also insertion of new line and removing char by backspace - - - - Constructor - - Underlaying textbox - Inserting char - - - - Undo operation - - - - - Execute operation - - - - - Merge lines i and i+1 - - - - - Insert text - - - - - Constructor - - Underlaying textbox - Text for inserting - - - - Undo operation - - - - - Execute operation - - - - - Insert text into given ranges - - - - - Constructor - - Underlaying textbox - List of ranges for replace - Text for inserting - - - - Undo operation - - - - - Execute operation - - - - - Clear selected text - - - - - Construstor - - Underlaying textbox - - - - Undo operation - - - - - Execute operation - - - - - Replaces text - - - - - Constructor - - Underlaying textsource - List of ranges for replace - - - - Undo operation - - - - - Execute operation - - - - - Removes lines - - - - - Constructor - - Underlaying textbox - List of ranges for replace - Text for inserting - - - - Undo operation - - - - - Execute operation - - - - - Wrapper for multirange commands - - - - - Remembers current selection and restore it after Undo - - - - - Required designer variable. - - - - - Clean up any resources being used. - - true if managed resources should be disposed; otherwise, false. - - - - Required method for Designer support - do not modify - the contents of this method with the code editor. - - - - - Limited stack - - - - - Max stack length - - - - - Current length of stack - - - - - Constructor - - Maximum length of stack - - - - Pop item - - - - - Peek item - - - - - Push item - - - - - Clear stack - - - - - Line of text - - - - - Text of line was changed - - - - - Time of last visit of caret in this line - - This property can be used for forward/backward navigating - - - - Background brush. - - - - - Unique ID - - - - - Count of needed start spaces for AutoIndent - - - - - Clears style of chars, delete folding markers - - - - - Text of the line - - - - - Clears folding markers - - - - - Count of start spaces - - - - - Chars count - - - - - Visible state - - - - - Positions for wordwrap cutoffs - - - - - Count of wordwrap string count for this line - - - - - Gets index of wordwrap string for given char position - - - - - Line index and char index - - - - - Diapason of text chars - - - - - Constructor - - - - - Return true if no selected text - - - - - Column selection mode - - - - - Constructor - - - - - Constructor - - - - - Constructor. Creates range of the line - - - - - Returns intersection with other range, - empty range returned otherwise - - - - - - - Returns union with other range. - - - - - - - Select all chars of control - - - - - Start line and char position - - - - - Finish line and char position - - - - - Text of range - - This property has not 'set' accessor because undo/redo stack works only with - FastColoredTextBox.Selection range. So, if you want to set text, you need to use FastColoredTextBox.Selection - and FastColoredTextBox.InsertText() mehtod. - - - - - Returns first char after Start place - - - - - Returns first char before Start place - - - - - Returns required char's number before start of the Range - - - - - Returns required char's number after start of the Range - - - - - Clone range - - - - - - Return minimum of end.X and start.X - - - - - Return maximum of end.X and start.X - - - - - Move range right - - This method jump over folded blocks - - - - Move range left - - This method can to go inside folded blocks - - - - Move range left - - This method jump over folded blocks - - - - Move range left - - This method can to go inside folded blocks - - - - Set style for range - - - - - Set style for given regex pattern - - - - - Set style for given regex - - - - - Set style for given regex pattern - - - - - Set style for given regex pattern - - - - - Set style for given regex pattern - - - - - Appends style to chars of range - - - - - Sets folding markers - - Pattern for start folding line - Pattern for finish folding line - - - - Sets folding markers - - Pattern for start folding line - Pattern for finish folding line - - - - Sets folding markers - - Pattern for start and end folding line - - - - Finds ranges for given regex pattern - - Regex pattern - Enumeration of ranges - - - - Finds ranges for given regex pattern - - Regex pattern - Enumeration of ranges - - - - Finds ranges for given regex pattern. - Search is separately in each line. - This method requires less memory than GetRanges(). - - Regex pattern - Enumeration of ranges - - - - Finds ranges for given regex. - Search is separately in each line. - This method requires less memory than GetRanges(). - - Regex - Enumeration of ranges - - - - Finds ranges for given regex pattern. - Search is separately in each line (order of lines is reversed). - This method requires less memory than GetRanges(). - - Regex pattern - Enumeration of ranges - - - - Finds ranges for given regex - - Enumeration of ranges - - - - Clear styles of range - - - - - Clear styles of range - - - - - Clear folding markers of all lines of range - - - - - Starts selection position updating - - - - - Ends selection position updating - - - - - Exchanges Start and End if End appears before Start - - - - - Exchanges Start and End - - - - - Expands range from first char of Start line to last char of End line - - - - - Chars of range (exclude \n) - - - - - Get fragment of text around Start place. Returns maximal matched to pattern fragment. - - Allowed chars pattern for fragment - Range of found fragment - - - - Get fragment of text around Start place. Returns maximal matched to given Style. - - Allowed style for fragment - Range of found fragment - - - - Get fragment of text around Start place. Returns maximal mathed to pattern fragment. - - Allowed chars pattern for fragment - Range of found fragment - - - - Range is readonly? - This property return True if any char of the range contains ReadOnlyStyle. - Set this property to True/False to mark chars of the range as Readonly/Writable. - - - - - Is char before range readonly - - - - - - Is char after range readonly - - - - - - Style of chars - - This is base class for all text and design renderers - - - - This style is exported to outer formats (HTML for example) - - - - - Occurs when user click on StyleVisualMarker joined to this style - - - - - Constructor - - - - - Renders given range of text - - Graphics object - Position of the range in absolute control coordinates - Rendering range of text - - - - Occurs when user click on StyleVisualMarker joined to this style - - - - - Shows VisualMarker - Call this method in Draw method, when you need to show VisualMarker for your style - - - - - Returns CSS for export to HTML - - - - - - Returns RTF descriptor for export to RTF - - - - - - Style for chars rendering - This renderer can draws chars, with defined fore and back colors - - - - - Renderer for folded block - - - - - Renderer for selected area - - - - - Marker style - Draws background color for text - - - - - Draws small rectangle for popup menu - - - - - This style draws a wavy line below a given text range. - - Thanks for Yallie - - - - This style is used to mark range of text as ReadOnly block - - You can inherite this style to add visual effects of readonly text - - - - This class contains the source text (chars and styles). - It stores a text lines, the manager of commands, undo/redo stack, styles. - - - - - Styles - - - - - Occurs when line was inserted/added - - - - - Occurs when line was removed - - - - - Occurs when text was changed - - - - - Occurs when recalc is needed - - - - - Occurs when recalc wordwrap is needed - - - - - Occurs before text changing - - - - - Occurs after CurrentTB was changed - - - - - Current focused FastColoredTextBox - - - - - Default text style - This style is using when no one other TextStyle is not defined in Char.style - - - - - Text lines - - - - - Lines count - - - - - These classes are required for correct data binding to Text property of FastColoredTextbox - - - - - This class contains the source text (chars and styles). - It stores a text lines, the manager of commands, undo/redo stack, styles. - - - - - Occurs when need to display line in the textbox - - - - - Occurs when need to save line in the file - - - - - End Of Line characters used for saving - - - - - This text will be displayed in textbox - - - - - This property contains only changed text. - If text of line is not changed, this property contains null. - - - - - This text will be saved in the file - - - - diff --git a/Binary/TabStrip.dll b/Binary/TabStrip.dll deleted file mode 100644 index 5e2b2c701b567f148680ae7d71a2fc51ff66d4f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45056 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%0D6J91Z2 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 Pln16fFy(>&eh>U#m1}-4 diff --git a/Binary/Tester.exe b/Binary/Tester.exe deleted file mode 100644 index b086b8bee7b5a7fae32585f1e1367a05e5e08526..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299008 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⪚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 MC(=L1|2+=;KN^p-rT_o{ diff --git a/Binary/htmlDesc.xml b/Binary/htmlDesc.xml deleted file mode 100644 index 76a1e178..00000000 --- a/Binary/htmlDesc.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - "; - - ///

- /// Use nbsp; instead space - /// - public bool UseNbsp { get; set; } - /// - /// Use nbsp; instead space in beginning of line - /// - public bool UseForwardNbsp { get; set; } - /// - /// Use original font - /// - public bool UseOriginalFont { get; set; } - /// - /// Use style tag instead style attribute - /// - public bool UseStyleTag { get; set; } - /// - /// Use 'br' tag instead of '\n' - /// - public bool UseBr { get; set; } - /// - /// Includes line numbers - /// - public bool IncludeLineNumbers { get; set; } - - FastColoredTextBox tb; - - public ExportToHTML() - { - UseNbsp = true; - UseOriginalFont = true; - UseStyleTag = true; - UseBr = true; - } - - public string GetHtml(FastColoredTextBox tb) - { - this.tb = tb; - Range sel = new Range(tb); - sel.SelectAll(); - return GetHtml(sel); - } - - public string GetHtml(Range r) - { - this.tb = r.tb; - Dictionary styles = new Dictionary(); - StringBuilder sb = new StringBuilder(); - StringBuilder tempSB = new StringBuilder(); - StyleIndex currentStyleId = StyleIndex.None; - r.Normalize(); - int currentLine = r.Start.iLine; - styles[currentStyleId] = null; - // - if (UseOriginalFont) - sb.AppendFormat("", - r.tb.Font.Name, r.tb.Font.SizeInPoints, r.tb.CharHeight); - - // - if (IncludeLineNumbers) - tempSB.AppendFormat("{0} ", currentLine + 1); - // - bool hasNonSpace = false; - foreach (Place p in r) - { - Char c = r.tb[p.iLine][p.iChar]; - if (c.style != currentStyleId) - { - Flush(sb, tempSB, currentStyleId); - currentStyleId = c.style; - styles[currentStyleId] = null; - } - - if (p.iLine != currentLine) - { - for (int i = currentLine; i < p.iLine; i++) - { - tempSB.Append(UseBr ? "
" : "\r\n"); - if (IncludeLineNumbers) - tempSB.AppendFormat("{0} ", i + 2); - } - currentLine = p.iLine; - hasNonSpace = false; - } - switch (c.c) - { - case ' ': - if ((hasNonSpace || !UseForwardNbsp) && !UseNbsp) - goto default; - - tempSB.Append(" "); - break; - case '<': - tempSB.Append("<"); - break; - case '>': - tempSB.Append(">"); - break; - case '&': - tempSB.Append("&"); - break; - default: - hasNonSpace = true; - tempSB.Append(c.c); - break; - } - } - Flush(sb, tempSB, currentStyleId); - - if (UseOriginalFont) - sb.Append("
"); - - //build styles - if (UseStyleTag) - { - tempSB.Length = 0; - tempSB.Append(""); - - sb.Insert(0, tempSB.ToString()); - } - - if (IncludeLineNumbers) - sb.Insert(0, LineNumbersCSS); - - return sb.ToString(); - } - - private string GetCss(StyleIndex styleIndex) - { - List"; + + /// + /// Use nbsp; instead space + /// + public bool UseNbsp { get; set; } + /// + /// Use nbsp; instead space in beginning of line + /// + public bool UseForwardNbsp { get; set; } + /// + /// Use original font + /// + public bool UseOriginalFont { get; set; } + /// + /// Use style tag instead style attribute + /// + public bool UseStyleTag { get; set; } + /// + /// Use 'br' tag instead of '\n' + /// + public bool UseBr { get; set; } + /// + /// Includes line numbers + /// + public bool IncludeLineNumbers { get; set; } + + FastColoredTextBox tb; + + public ExportToHTML() + { + UseNbsp = true; + UseOriginalFont = true; + UseStyleTag = true; + UseBr = true; + } + + public string GetHtml(FastColoredTextBox tb) + { + this.tb = tb; + Range sel = new Range(tb); + sel.SelectAll(); + return GetHtml(sel); + } + + public string GetHtml(Range r) + { + this.tb = r.tb; + Dictionary styles = new Dictionary(); + StringBuilder sb = new StringBuilder(); + StringBuilder tempSB = new StringBuilder(); + StyleIndex currentStyleId = StyleIndex.None; + r.Normalize(); + int currentLine = r.Start.iLine; + styles[currentStyleId] = null; + // + if (UseOriginalFont) + sb.AppendFormat("", + r.tb.Font.Name, r.tb.Font.SizeInPoints, r.tb.CharHeight); + + // + if (IncludeLineNumbers) + tempSB.AppendFormat("{0} ", currentLine + 1); + // + bool hasNonSpace = false; + foreach (Place p in r) + { + Char c = r.tb[p.iLine][p.iChar]; + if (c.style != currentStyleId) + { + Flush(sb, tempSB, currentStyleId); + currentStyleId = c.style; + styles[currentStyleId] = null; + } + + if (p.iLine != currentLine) + { + for (int i = currentLine; i < p.iLine; i++) + { + tempSB.Append(UseBr ? "
" : "\r\n"); + if (IncludeLineNumbers) + tempSB.AppendFormat("{0} ", i + 2); + } + currentLine = p.iLine; + hasNonSpace = false; + } + switch (c.c) + { + case ' ': + if ((hasNonSpace || !UseForwardNbsp) && !UseNbsp) + goto default; + + tempSB.Append(" "); + break; + case '<': + tempSB.Append("<"); + break; + case '>': + tempSB.Append(">"); + break; + case '&': + tempSB.Append("&"); + break; + default: + hasNonSpace = true; + tempSB.Append(c.c); + break; + } + } + Flush(sb, tempSB, currentStyleId); + + if (UseOriginalFont) + sb.Append("
"); + + //build styles + if (UseStyleTag) + { + tempSB.Length = 0; + tempSB.Append(""); + + sb.Insert(0, tempSB.ToString()); + } + + if (IncludeLineNumbers) + sb.Insert(0, LineNumbersCSS); + + return sb.ToString(); + } + + private string GetCss(StyleIndex styleIndex) + { + List