fakevim: document the 'RangeMode' enum

This commit is contained in:
hjk
2010-05-06 14:08:09 +02:00
parent 73e9f14a63
commit 5f954d106c

View File

@@ -56,6 +56,7 @@
// m_tc.position() (== position()). The character below position() is not included // m_tc.position() (== position()). The character below position() is not included
// if the last movement command was exclusive (MoveExclusive). // if the last movement command was exclusive (MoveExclusive).
// The value of m_tc.anchor() is not used. // The value of m_tc.anchor() is not used.
//
#include "fakevimhandler.h" #include "fakevimhandler.h"
#include "fakevimsyntax.h" #include "fakevimsyntax.h"
@@ -129,6 +130,8 @@ const int ParagraphSeparator = 0x00002029;
using namespace Qt; using namespace Qt;
/*! A \e Mode represents one of the basic modes of operation of FakeVim.
*/
enum Mode enum Mode
{ {
@@ -138,37 +141,41 @@ enum Mode
ExMode, ExMode,
}; };
/*! A \e SubMode is used for things that require one more data item
and are 'nested' behind a \l Mode.
*/
enum SubMode enum SubMode
{ {
NoSubMode, NoSubMode,
ChangeSubMode, // used for c ChangeSubMode, // Used for c
DeleteSubMode, // used for d DeleteSubMode, // Used for d
FilterSubMode, // used for ! FilterSubMode, // Used for !
IndentSubMode, // used for = IndentSubMode, // Used for =
RegisterSubMode, // used for " RegisterSubMode, // Used for "
ShiftLeftSubMode, // used for < ShiftLeftSubMode, // Used for <
ShiftRightSubMode, // used for > ShiftRightSubMode, // Used for >
TransformSubMode, // used for ~/gu/gU TransformSubMode, // Used for ~/gu/gU
WindowSubMode, // used for Ctrl-w WindowSubMode, // Used for Ctrl-w
YankSubMode, // used for y YankSubMode, // Used for y
ZSubMode, // used for z ZSubMode, // Used for z
CapitalZSubMode // 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 enum SubSubMode
{ {
// typically used for things that require one more data item
// and are 'nested' behind a mode
NoSubSubMode, NoSubSubMode,
FtSubSubMode, // used for f, F, t, T FtSubSubMode, // Used for f, F, t, T.
MarkSubSubMode, // used for m MarkSubSubMode, // Used for m.
BackTickSubSubMode, // used for ` BackTickSubSubMode, // Used for `.
TickSubSubMode, // used for ' TickSubSubMode, // Used for '.
InvertCaseSubSubMode, // used for ~ InvertCaseSubSubMode, // Used for ~.
DownCaseSubSubMode, // used for gu DownCaseSubSubMode, // Used for gu.
UpCaseSubSubMode, // used for gU UpCaseSubSubMode, // Used for gU.
ReplaceSubSubMode, // used for r after visual mode ReplaceSubSubMode, // Used for r after visual mode.
TextObjectSubSubMode, // used for thing like iw, aW, as etc. TextObjectSubSubMode, // Used for thing like iw, aW, as etc.
SearchSubSubMode, SearchSubSubMode,
}; };
@@ -187,11 +194,32 @@ enum MoveType
MoveLineWise, 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 enum RangeMode
{ {
RangeCharMode, // v RangeCharMode, // v
RangeLineMode, // V RangeLineMode, // V
RangeLineModeExclusive, // like above, but keep one newline when deleting RangeLineModeExclusive,
RangeBlockMode, // Ctrl-v RangeBlockMode, // Ctrl-v
RangeBlockAndTailMode, // Ctrl-v for D and X RangeBlockAndTailMode, // Ctrl-v for D and X
}; };
@@ -206,8 +234,8 @@ enum EventResult
struct Column struct Column
{ {
Column(int p, int l) : physical(p), logical(l) {} Column(int p, int l) : physical(p), logical(l) {}
int physical; // number of characters in the data int physical; // Number of characters in the data.
int logical; // column on screen int logical; // Column on screen.
}; };
struct CursorPosition struct CursorPosition