diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 42cc80d79c14e9d233b8ca170e885af1f358dd84..eb4fe8bb39ce8a9506ff2551d297f4bd59d3e165 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -56,6 +56,7 @@ // m_tc.position() (== position()). The character below position() is not included // if the last movement command was exclusive (MoveExclusive). // The value of m_tc.anchor() is not used. +// #include "fakevimhandler.h" #include "fakevimsyntax.h" @@ -129,6 +130,8 @@ const int ParagraphSeparator = 0x00002029; using namespace Qt; +/*! A \e Mode represents one of the basic modes of operation of FakeVim. +*/ enum Mode { @@ -138,37 +141,41 @@ enum Mode ExMode, }; +/*! A \e SubMode is used for things that require one more data item + and are 'nested' behind a \l Mode. +*/ enum SubMode { NoSubMode, - ChangeSubMode, // used for c - DeleteSubMode, // used for d - FilterSubMode, // used for ! - IndentSubMode, // used for = - RegisterSubMode, // used for " - ShiftLeftSubMode, // used for < - ShiftRightSubMode, // used for > - TransformSubMode, // used for ~/gu/gU - WindowSubMode, // used for Ctrl-w - YankSubMode, // used for y - ZSubMode, // used for z - CapitalZSubMode // used for Z + ChangeSubMode, // Used for c + DeleteSubMode, // Used for d + FilterSubMode, // Used for ! + IndentSubMode, // Used for = + RegisterSubMode, // Used for " + ShiftLeftSubMode, // Used for < + ShiftRightSubMode, // Used for > + TransformSubMode, // Used for ~/gu/gU + WindowSubMode, // Used for Ctrl-w + YankSubMode, // Used for y + ZSubMode, // Used for z + CapitalZSubMode // Used for Z }; +/*! A \e SubSubMode is used for things that require one more data item + and are 'nested' behind a \l SubMode. +*/ enum SubSubMode { - // typically used for things that require one more data item - // and are 'nested' behind a mode NoSubSubMode, - FtSubSubMode, // used for f, F, t, T - MarkSubSubMode, // used for m - BackTickSubSubMode, // used for ` - TickSubSubMode, // used for ' - InvertCaseSubSubMode, // used for ~ - DownCaseSubSubMode, // used for gu - UpCaseSubSubMode, // used for gU - ReplaceSubSubMode, // used for r after visual mode - TextObjectSubSubMode, // used for thing like iw, aW, as etc. + FtSubSubMode, // Used for f, F, t, T. + MarkSubSubMode, // Used for m. + BackTickSubSubMode, // Used for `. + TickSubSubMode, // Used for '. + InvertCaseSubSubMode, // Used for ~. + DownCaseSubSubMode, // Used for gu. + UpCaseSubSubMode, // Used for gU. + ReplaceSubSubMode, // Used for r after visual mode. + TextObjectSubSubMode, // Used for thing like iw, aW, as etc. SearchSubSubMode, }; @@ -187,12 +194,33 @@ enum MoveType MoveLineWise, }; +/*! + \enum RangeMode + + The \e RangeMode serves as a means to define how the "Range" between + the \l cursor and the \l anchor position is to be interpreted. + + \value RangeCharMode Entered by pressing \key v. The range includes + all characters between cursor and anchor. + \value RangeLineMode Entered by pressing \key V. The range includes + all lines between the line of the cursor and + the line of the anchor. + \value RangeLineModeExclusice Like \l RangeLineMode, but keeps one + newline when deleting. + \value RangeBlockMode Entered by pressing \key Ctrl-v. The range includes + all characters with line and column coordinates + between line and columns coordinates of cursor and + anchor. + \value RangeBlockAndTailMode Like \l RangeBlockMode, but also includes + all characters in the affected lines up to the end + of these lines. +*/ enum RangeMode { - RangeCharMode, // v - RangeLineMode, // V - RangeLineModeExclusive, // like above, but keep one newline when deleting - RangeBlockMode, // Ctrl-v + RangeCharMode, // v + RangeLineMode, // V + RangeLineModeExclusive, + RangeBlockMode, // Ctrl-v RangeBlockAndTailMode, // Ctrl-v for D and X }; @@ -206,8 +234,8 @@ enum EventResult struct Column { Column(int p, int l) : physical(p), logical(l) {} - int physical; // number of characters in the data - int logical; // column on screen + int physical; // Number of characters in the data. + int logical; // Column on screen. }; struct CursorPosition