示例#1
0
        public static Range WordBeginning(PadEditor editor)
        {
            int   words = editor.Count ?? 1;
            Range range = new Range(editor.Pad.Cursor)
            {
                EndColumn = editor.Pad.Column
            };

            for ( ; words > 0; words -= 1)
            {
                range.EndColumn -= 1;

                // move to the first non-space
                while (range.EndColumn > 0 &&
                       Char.IsWhiteSpace(editor.Pad.CurrentLine.Text[range.EndColumn]))
                {
                    --range.EndColumn;
                }

                while (range.EndColumn > 0 &&
                       !Char.IsWhiteSpace(
                           editor.Pad.CurrentLine.Text[range.EndColumn - 1]))
                {
                    --range.EndColumn;
                }
            }

            return(range);
        }
示例#2
0
文件: Movement.cs 项目: faboo/Agent
 public static Range Middle(PadEditor editor)
 {
     return new Range(editor.Pad.Cursor) {
         EndRow = editor.TopLine + (editor.BottomLine - editor.TopLine)/2 + 1,
         EndColumn = 0
     };
 }
示例#3
0
        public static Range Word(PadEditor editor)
        {
            int   words = editor.Count ?? 1;
            Range range = new Range(editor.Pad.Cursor);

            range.EndColumn = range.StartColumn;

            for (; words > 0; words -= 1)
            {
                // move to the first non-space
                while (range.EndColumn < editor.Pad.CurrentLine.Text.Length &&
                       Char.IsWhiteSpace(editor.Pad.CurrentLine.Text[range.EndColumn]))
                {
                    ++range.EndColumn;
                }

                while (range.EndColumn < editor.Pad.CurrentLine.Text.Length &&
                       !Char.IsWhiteSpace(
                           editor.Pad.CurrentLine.Text[range.EndColumn]))
                {
                    ++range.EndColumn;
                }
            }

            return(range);
        }
示例#4
0
 public static Range LineHome(PadEditor editor)
 {
     return(new Range(editor.Pad.Cursor)
     {
         EndColumn = 0
     });
 }
示例#5
0
文件: Movement.cs 项目: faboo/Agent
 public static Range Top(PadEditor editor)
 {
     return new Range(editor.Pad.Cursor) {
         EndRow = editor.TopLine,
         EndColumn = editor.Pad.Cursor.Column
     };
 }
示例#6
0
 public static Range LineEnd(PadEditor editor)
 {
     return(new Range(editor.Pad.Cursor)
     {
         EndColumn = editor.Pad.CurrentLine.Text.Length + 1
     });
 }
示例#7
0
文件: Movement.cs 项目: faboo/Agent
 public static Range Goto(PadEditor editor, int? defaultLine = null)
 {
     return new Range(editor.Pad.Cursor) {
         EndRow = editor.Count ?? (defaultLine ?? editor.Pad.Lines.Count - 1),
         EndColumn = editor.Pad.Cursor.Column
     };
 }
示例#8
0
文件: Movement.cs 项目: faboo/Agent
 public static Range Bottom(PadEditor editor)
 {
     return new Range(editor.Pad.Cursor) {
         EndRow = editor.BottomLine,
         EndColumn = editor.Pad.Cursor.Column
     };
 }
示例#9
0
文件: Movement.cs 项目: faboo/Agent
        public static Range Right(PadEditor editor)
        {
            int chars = editor.Count ?? 1;

            return new Range(editor.Pad.Cursor) {
                EndColumn = editor.Pad.Column + chars
            };
        }
示例#10
0
 public static Range Goto(PadEditor editor, int?defaultLine = null)
 {
     return(new Range(editor.Pad.Cursor)
     {
         EndRow = editor.Count ?? (defaultLine ?? editor.Pad.Lines.Count - 1),
         EndColumn = editor.Pad.Cursor.Column
     });
 }
示例#11
0
 public static Range Middle(PadEditor editor)
 {
     return(new Range(editor.Pad.Cursor)
     {
         EndRow = editor.TopLine + (editor.BottomLine - editor.TopLine) / 2 + 1,
         EndColumn = 0
     });
 }
示例#12
0
 public static Range Bottom(PadEditor editor)
 {
     return(new Range(editor.Pad.Cursor)
     {
         EndRow = editor.BottomLine,
         EndColumn = editor.Pad.Cursor.Column
     });
 }
示例#13
0
 public static Range Top(PadEditor editor)
 {
     return(new Range(editor.Pad.Cursor)
     {
         EndRow = editor.TopLine,
         EndColumn = editor.Pad.Cursor.Column
     });
 }
示例#14
0
        public static Range Right(PadEditor editor)
        {
            int chars = editor.Count ?? 1;

            return(new Range(editor.Pad.Cursor)
            {
                EndColumn = editor.Pad.Column + chars
            });
        }
示例#15
0
文件: Movement.cs 项目: faboo/Agent
        public static Range Left(PadEditor editor)
        {
            int chars = editor.Count ?? 1;

            return new Range(editor.Pad.Cursor) {
                StartColumn = editor.Pad.Column,
                EndColumn = editor.Pad.Column - chars
            };
        }
示例#16
0
        public static Range Left(PadEditor editor)
        {
            int chars = editor.Count ?? 1;

            return(new Range(editor.Pad.Cursor)
            {
                StartColumn = editor.Pad.Column,
                EndColumn = editor.Pad.Column - chars
            });
        }
示例#17
0
文件: Movement.cs 项目: faboo/Agent
        public static Range Down(PadEditor editor)
        {
            int lines = editor.Count ?? 1;
            int endRow = editor.Pad.Row + lines;

            if(endRow >= editor.Pad.Lines.Count)
                endRow = editor.Pad.Lines.Count - 1;

            return new Range(editor.Pad.Cursor) {
                EndRow = endRow,
                EndColumn = editor.Pad.Column
            };
        }
示例#18
0
        public static Range Up(PadEditor editor)
        {
            int lines  = editor.Count ?? 1;
            int endRow = editor.Pad.Row - lines;

            if (endRow < 0)
            {
                endRow = 0;
            }

            return(new Range(editor.Pad.Cursor)
            {
                EndRow = endRow,
                EndColumn = editor.Pad.Column
            });
        }
示例#19
0
        public static Range Down(PadEditor editor)
        {
            int lines  = editor.Count ?? 1;
            int endRow = editor.Pad.Row + lines;

            if (endRow >= editor.Pad.Lines.Count)
            {
                endRow = editor.Pad.Lines.Count - 1;
            }

            return(new Range(editor.Pad.Cursor)
            {
                EndRow = endRow,
                EndColumn = editor.Pad.Column
            });
        }
示例#20
0
文件: Movement.cs 项目: faboo/Agent
        public static Range Up(PadEditor editor)
        {
            int lines = editor.Count ?? 1;
            int endRow = editor.Pad.Row - lines;

            if(endRow < 0)
                endRow = 0;

            return new Range(editor.Pad.Cursor) {
                EndRow = endRow,
                EndColumn = editor.Pad.Column
            };
        }
示例#21
0
文件: Movement.cs 项目: faboo/Agent
 public static Range LineHome(PadEditor editor)
 {
     return new Range(editor.Pad.Cursor) {
         EndColumn = 0
     };
 }
示例#22
0
文件: Movement.cs 项目: faboo/Agent
 public static Range LineEnd(PadEditor editor)
 {
     return new Range(editor.Pad.Cursor) {
         EndColumn = editor.Pad.CurrentLine.Text.Length + 1
     };
 }
示例#23
0
文件: Movement.cs 项目: faboo/Agent
        public static Range WordBeginning(PadEditor editor)
        {
            int words = editor.Count ?? 1;
            Range range = new Range(editor.Pad.Cursor) {
                EndColumn = editor.Pad.Column
            };

            for( ; words > 0; words -= 1) {
                range.EndColumn -= 1;

                // move to the first non-space
                while(range.EndColumn > 0
                        && Char.IsWhiteSpace(editor.Pad.CurrentLine.Text[range.EndColumn]))
                    --range.EndColumn;

                while(range.EndColumn > 0
                        && !Char.IsWhiteSpace(
                            editor.Pad.CurrentLine.Text[range.EndColumn - 1]))
                    --range.EndColumn;
            }

            return range;
        }
示例#24
0
文件: Movement.cs 项目: faboo/Agent
        public static Range WordEnd(PadEditor editor)
        {
            int words = editor.Count ?? 1;
            Range range = new Range(editor.Pad.Cursor);

            range.EndColumn = range.StartColumn;

            for(; words > 0; words -= 1) {
                range.EndColumn += 1;

                // move to the first non-space
                while(range.EndColumn < editor.Pad.CurrentLine.Text.Length
                        && Char.IsWhiteSpace(editor.Pad.CurrentLine.Text[range.EndColumn]))
                    ++range.EndColumn;

                while(range.EndColumn < editor.Pad.CurrentLine.Text.Length
                        && !Char.IsWhiteSpace(
                            editor.Pad.CurrentLine.Text[range.EndColumn + 1]))
                    ++range.EndColumn;
            }

            return range;
        }