forked from qt-creator/qt-creator
fakevim: document the 'RangeMode' enum
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user