示例#1
0
        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);
        }