同步操作将从 wxd_tony1984/DevelopAssistant 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Text;using System.Windows.Forms;using ICSharpCode.TextEditor.Document;using ICSharpCode.TextEditor;namespace ICSharpCode.WinFormsUI.Controls{public partial class CodeFormatControl : TextBoxBase{private bool onfoused = false;private Color borderColor = SystemColors.ControlDark;public override string Text{get{return this.textEditorControl1.Text;}set{this.textEditorControl1.Text = value;SetHighlightingFoldingStrategy(this.documentType);}}public CodeFormatControl(){InitializeComponent();InitializeControls();}protected void InitializeControls(){textEditorControl1.LineViewerStyle = LineViewerStyle.None;textEditorControl1.GotFocus += textEditorControl1_GotFocus;textEditorControl1.LostFocus += textEditorControl1_LostFocus;textEditorControl1.TextChanged+=textEditorControl1_TextChanged;toolStripComboBoxFontValue.SelectedIndex = 0;toolStripComboBoxFontSizeValue.SelectedIndex = 1;}protected void SetHighlightingFoldingStrategy(DocumentType value){switch (value){case WinFormsUI.Controls.DocumentType.TSql:textEditorControl1.SetHighlighting("TSQL");textEditorControl1.Document.FormattingStrategy = new DefaultFormattingStrategy();textEditorControl1.Document.FoldingManager.FoldingStrategy = new TsqlFoldingStrategy(); //new IndentFoldingStrategy();textEditorControl1.Document.FoldingManager.UpdateFoldings();break;case WinFormsUI.Controls.DocumentType.Csharp:textEditorControl1.SetHighlighting("C#");textEditorControl1.Document.FormattingStrategy = new CSharpFormattingStrategy();textEditorControl1.Document.FoldingManager.FoldingStrategy = new CSharpFoldingStrategy(); //new IndentFoldingStrategy();textEditorControl1.Document.FoldingManager.UpdateFoldings();break;case WinFormsUI.Controls.DocumentType.Javascript:textEditorControl1.SetHighlighting("JavaScript");textEditorControl1.Document.FormattingStrategy = new CSharpFormattingStrategy();textEditorControl1.Document.FoldingManager.FoldingStrategy = new CSharpFoldingStrategy(); //new IndentFoldingStrategy();textEditorControl1.Document.FoldingManager.UpdateFoldings();break;case WinFormsUI.Controls.DocumentType.Xml:textEditorControl1.SetHighlighting("XML");textEditorControl1.Document.FormattingStrategy = new DefaultFormattingStrategy();textEditorControl1.Document.FoldingManager.FoldingStrategy = new XmlFoldingStrategy(); //new IndentFoldingStrategy();textEditorControl1.Document.FoldingManager.UpdateFoldings();break;case WinFormsUI.Controls.DocumentType.Python:textEditorControl1.SetHighlighting("Python");textEditorControl1.Document.FormattingStrategy = new DefaultFormattingStrategy();textEditorControl1.Document.FoldingManager.FoldingStrategy = new IndentFoldingStrategy(); //new IndentFoldingStrategy();textEditorControl1.Document.FoldingManager.UpdateFoldings();break;}}protected void textEditorControl1_TextChanged(object sender, EventArgs e){if (textEditorControl1.Document != null && textEditorControl1.Document.FoldingManager != null&& textEditorControl1.Document.FoldingManager.FoldingStrategy != null)textEditorControl1.Document.FoldingManager.UpdateFoldings();}protected void textEditorControl1_GotFocus(object sender, EventArgs e){onfoused = true;this.Invalidate();}protected void textEditorControl1_LostFocus(object sender, EventArgs e){onfoused = false;this.Invalidate();}protected override void OnPaint(System.Windows.Forms.PaintEventArgs e){base.OnPaint(e);if (onfoused){borderColor = Color.Blue;}else{borderColor = SystemColors.ControlDark;}ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle,borderColor, 1, ButtonBorderStyle.Solid, //左边borderColor, 1, ButtonBorderStyle.Solid, //上边borderColor, 1, ButtonBorderStyle.Solid, //右边borderColor, 1, ButtonBorderStyle.Solid);//底边}private void toolStripButtonLineNumber_Click(object sender, EventArgs e){textEditorControl1.ShowLineNumbers = !textEditorControl1.ShowLineNumbers;}private void toolStripButtonAbout_Click(object sender, EventArgs e){ShowAbout();}private void toolStripButtonAddComment_Click(object sender, EventArgs e){TextAreaComment(1);}private void toolStripButtonRemoveComment_Click(object sender, EventArgs e){TextAreaComment(-1);}private void toolStripComboBoxFontSizeValue_SelectedIndexChanged(object sender, EventArgs e){var size = toolStripComboBoxFontSizeValue.SelectedItem + "";var font = toolStripComboBoxFontValue.SelectedItem + "";if (string.IsNullOrEmpty(size)){size = "12";}if (string.IsNullOrEmpty(font) || font == "默认"){font = "Courier New";}this.textEditorControl1.Font = new Font(font, float.Parse(size), FontStyle.Regular);}private void toolStripComboBoxFontValue_SelectedIndexChanged(object sender, EventArgs e){var size = toolStripComboBoxFontSizeValue.SelectedItem + "";var font = toolStripComboBoxFontValue.SelectedItem + "";if (string.IsNullOrEmpty(size)){size = "12";}if (string.IsNullOrEmpty(font) || font == "默认"){font = "Courier New";}this.textEditorControl1.Font = new Font(font, float.Parse(size), FontStyle.Regular);}public override void ReleaseDispose(){base.ReleaseDispose();}public void hightStrategyChanged(object sender, EventArgs e){string text = ((ToolStripItem)sender).Text;foreach (ToolStripMenuItem item in toolStripButtonLanguage.DropDownItems){if (item.Text == text){item.Checked = true;}else{item.Checked = false;}}var _documentType = DocumentType.None;switch (text){case "Sql":_documentType = DocumentType.TSql;break;case "Javascript":_documentType = DocumentType.Javascript;break;case "Json":_documentType = DocumentType.Javascript;break;case "Python":_documentType = DocumentType.Python;break;case "Html":_documentType = DocumentType.Html;break;case "Css":_documentType = DocumentType.Css;break;case "C#":_documentType = DocumentType.Csharp;break;}SetHighlightingFoldingStrategy(_documentType);}private void javascriptToolStripMenuItem_Click(object sender, EventArgs e){hightStrategyChanged(sender, e);}private void pythonToolStripMenuItem_Click(object sender, EventArgs e){hightStrategyChanged(sender, e);}private void cToolStripMenuItem_Click(object sender, EventArgs e){hightStrategyChanged(sender, e);}private void cssToolStripMenuItem_Click(object sender, EventArgs e){hightStrategyChanged(sender, e);}private void htmlToolStripMenuItem_Click(object sender, EventArgs e){hightStrategyChanged(sender, e);}private void sqlToolStripMenuItem_Click(object sender, EventArgs e){hightStrategyChanged(sender, e);}private void jsonToolStripMenuItem_Click(object sender, EventArgs e){hightStrategyChanged(sender, e);}private void toolStripButtonIndent_Click(object sender, EventArgs e){var text = this.textEditorControl1.Text;TextAreaIndent(1);}private void toolStripButtonOutdent_Click(object sender, EventArgs e){TextAreaIndent(-1);}private void toolStripButtonClear_Click(object sender, EventArgs e){this.textEditorControl1.Text = "";textEditorControl1.ActiveTextAreaControl.TextArea.Invalidate();this.textEditorControl1.ActiveTextAreaControl.Invalidate();}private void TextAreaIndent(int indents){int startOffset = -1, endOffset = -1;var offset = textEditorControl1.ActiveTextAreaControl.Caret.Offset;var list = textEditorControl1.ActiveTextAreaControl.SelectionManager.SelectionCollection;if (list.Count > 0){foreach (var select in list){var start = textEditorControl1.Document.GetLineNumberForOffset(select.Offset);var end = textEditorControl1.Document.GetLineNumberForOffset(select.EndOffset);for (int index = start; index < end + 1; index++){var line = textEditorControl1.Document.GetLineSegment(index);if (line.Indent + indents >= 0 && line.Indent + indents < 100){for (int i = 0; i < Math.Abs(indents); i++){if (indents > 0){textEditorControl1.Document.Insert(line.Offset, "\t");}else{textEditorControl1.Document.Remove(line.Offset, "\t".Length);}}}if (line.Indent + indents >= 0 && line.Indent + indents < 100)line.Indent += indents;}}startOffset = list[0].Offset;endOffset = list[list.Count - 1].EndOffset;var line3 = textEditorControl1.Document.GetLineSegmentForOffset(list[list.Count - 1].Offset);int d = indents;if (d <= 0) d += 1;textEditorControl1.ActiveTextAreaControl.Caret.Position = textEditorControl1.Document.OffsetToPosition(endOffset + d);textEditorControl1.ActiveTextAreaControl.SelectionManager.SetSelection(textEditorControl1.Document.OffsetToPosition(startOffset),textEditorControl1.Document.OffsetToPosition(endOffset + d));}else{var line2 = textEditorControl1.Document.GetLineSegmentForOffset(textEditorControl1.ActiveTextAreaControl.Caret.Offset);if (line2 != null){if (line2.Indent + indents >= 0 && line2.Indent + indents < 100){if (indents > 0){textEditorControl1.Document.Insert(line2.Offset, "\t");textEditorControl1.ActiveTextAreaControl.Caret.Position = textEditorControl1.Document.OffsetToPosition(offset + "\t".Length);}else{textEditorControl1.Document.Remove(line2.Offset, "\t".Length);textEditorControl1.ActiveTextAreaControl.Caret.Position = textEditorControl1.Document.OffsetToPosition(offset - "\t".Length);}}if (line2.Indent + indents >= 0 && line2.Indent + indents < 100)line2.Indent += indents;}}textEditorControl1.ActiveTextAreaControl.TextArea.Invalidate();textEditorControl1.ActiveTextAreaControl.Invalidate();}private void TextAreaComment(int comments){int startOffset = -1, endOffset = -1;var offset = textEditorControl1.ActiveTextAreaControl.Caret.Offset;var list = textEditorControl1.ActiveTextAreaControl.SelectionManager.SelectionCollection;if (list.Count > 0){string note = "/**/";foreach (var select in list){var start = textEditorControl1.Document.GetLineNumberForOffset(select.Offset);var end = textEditorControl1.Document.GetLineNumberForOffset(select.EndOffset);Caret textCaret = new Caret(textEditorControl1.ActiveTextAreaControl.TextArea);textCaret.Position = select.StartPosition;//////Get Not Empty Char Column///int startPox = select.StartPosition.Column;for (int i = select.StartPosition.Column; i <= select.EndPosition.Column; i++){textCaret.Position = new TextLocation(i, start);char chr = textEditorControl1.Document.GetCharAt(textCaret.Offset);if (chr != ' '){startPox = i;break;}}for (int index = start; index < end + 1; index++){var line = textEditorControl1.Document.GetLineSegment(index);textCaret.Position = new TextLocation(textCaret.Column, line.LineNumber);if (line.Comment + comments >= 0 && line.Comment + comments < 100){for (int i = 0; i < Math.Abs(comments); i++){if (comments > 0){textEditorControl1.Document.Insert(textCaret.Offset, "//");}else{textEditorControl1.Document.Remove(textCaret.Offset, "//".Length);}}}if (line.Comment + comments >= 0 && line.Comment + comments < 100)line.Comment += comments;}}startOffset = list[0].Offset;endOffset = list[list.Count - 1].EndOffset;var line3 = textEditorControl1.Document.GetLineSegmentForOffset(list[list.Count - 1].Offset);int d = 2 * comments;if (d <= 0) d += 2 * (-comments);textEditorControl1.ActiveTextAreaControl.Caret.Position = textEditorControl1.Document.OffsetToPosition(endOffset + d);textEditorControl1.ActiveTextAreaControl.SelectionManager.SetSelection(textEditorControl1.Document.OffsetToPosition(startOffset),textEditorControl1.Document.OffsetToPosition(endOffset + d));}else{string note = "//";var line2 = textEditorControl1.Document.GetLineSegmentForOffset(textEditorControl1.ActiveTextAreaControl.Caret.Offset);if (line2 != null){if (line2.Comment + comments >= 0 && line2.Comment + comments < 100){if (comments > 0){textEditorControl1.Document.Insert(offset, "//");textEditorControl1.ActiveTextAreaControl.Caret.Position = textEditorControl1.Document.OffsetToPosition(offset + "//".Length);}else{textEditorControl1.Document.Remove(offset - "//".Length, "//".Length);textEditorControl1.ActiveTextAreaControl.Caret.Position = textEditorControl1.Document.OffsetToPosition(offset - "//".Length);}}if (line2.Comment + comments >= 0 && line2.Comment + comments < 100)line2.Comment += comments;}}textEditorControl1.ActiveTextAreaControl.TextArea.Invalidate();textEditorControl1.ActiveTextAreaControl.Invalidate();}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。