public void AddComment() { if (_editor.SelectedText == Environment.NewLine) { return; } int start = _editor.SelectionStart; int end = _editor.SelectionEnd; var lineStart = _editor.Lines.FirstOrDefault( x => { return(x.Position <= start && x.EndPosition > start); }); var lineEnd = _editor.Lines.FirstOrDefault( x => { return(x.Position < end && x.EndPosition >= end); }); if (lineStart == null || lineEnd == null) { return; } _editor.SetSelection(lineStart.Position, lineEnd.EndPosition); string textSelect = _editor.SelectedText; string[] strsSplit = System.Text.RegularExpressions.Regex.Split(textSelect, System.Environment.NewLine); Func <char, bool> funcSearch = x => { return(!(x == '\r' || x == '\n' || x == ' ')); }; for (int i = 0; i < strsSplit.Length; i++) { if (strsSplit[i] == null || strsSplit[i].FirstOrDefault(funcSearch) == char.MinValue) { continue; } strsSplit[i] = strsSplit[i].Insert(StringIndex(strsSplit[i], funcSearch), "--"); } _editor.ReplaceSelection(string.Join(System.Environment.NewLine, strsSplit)); _editor.SetSelection(lineStart.Position, lineEnd.EndPosition); }