Commit Graph

266 Commits

Author SHA1 Message Date
Martin Aumüller
9b2465e37f fakevim: fix cursor position after 'r'
expected cursor position is on last character which was replaced

Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:30 +01:00
Martin Aumüller
978fa5d03d fakevim: fix 'dw' at line-end
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:30 +01:00
Martin Aumüller
9302104cbd fakevim: make line counting more vi-like
- apparently one additional empty line is added to the document at its end,
  if the last line ends with \n

Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:29 +01:00
Martin Aumüller
07f6d29937 fakevim: ensure that cursor is never at EOL
- previously, if the visible vi cursor is on the last character of a line,
  the corresponding QTextCursor might have been positioned before and after
  the character
- code becomes simpler if the QTextCursor is always positioned before the
  vi cursor

Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:28 +01:00
Martin Aumüller
7a5891bd2a fakevim: when leaving visual mode, set move type to char or line according to visual mode
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:28 +01:00
Martin Aumüller
5994044b64 fakevim: 'S' should honour indentation settings
fixed by using finishMovement instead of doing all the work

Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:28 +01:00
Martin Aumüller
073f14bee8 fakevim: indent when changing text by line ('cj', 'Vc', ...), depending on settings
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:28 +01:00
Martin Aumüller
20f565816b fakevim: simplifiy implementation of 'j', 'k'
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:27 +01:00
Martin Aumüller
7b28f644f2 fakevim: fix 'c' with linewise motion
the lines touched by the motion have to be removed completely except for one newline
(whereas 'd' removes them including all newlines)

Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:27 +01:00
Martin Aumüller
f69b867533 fakevim: fix 'cw' on word-end
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:27 +01:00
Martin Aumüller
d323d7701e fakevim: make 'w' stop on empty lines
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:26 +01:00
Martin Aumüller
fd28fe1892 fakevim: fix deleting/yanking/changing to matching parenthesis
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:26 +01:00
Martin Aumüller
2f02152dd6 fakevim: improved case conversions
- make '~' repeatable with '.'
- implement operators 'gu'/'gU'/'g~' for down-casing/up-casing/case-inversion
- visual char/line/block modes for the above

Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:26 +01:00
Martin Aumüller
3afcdc002a fakevim: fix repetition of 'g'/'G'
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:25 +01:00
Martin Aumüller
b0991bd22c fakevim: fix moving to first non-blank on a line
if there are only blanks, first non-blank on line is the last position

Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:25 +01:00
Martin Aumüller
b324a7b789 fakevim: implement 'o'/'O' in visual mode for swapping anchor and position
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:25 +01:00
Martin Aumüller
a2a99ca814 fakevim: [n]$ should move to end of (n-1)th line down
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:25 +01:00
Martin Aumüller
bd495ef63b fakevim: mark '+', '-' and Return as moving by line
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:24 +01:00
Martin Aumüller
f5cf9e55b4 fakevim: fix repeating commands such as 'c4l'
before, the count of the motion was not taken into account

Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:24 +01:00
Martin Aumüller
c2a79a63ba fakevim: prevent unhandled keys producing text input from being inserted while in command mode
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:24 +01:00
Martin Aumüller
82b83abd7f fakevim: 'c' should leave visual line mode
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:24 +01:00
Martin Aumüller
35a6d79026 fakevim: reset command mode state after pressing ESC
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:24 +01:00
Martin Aumüller
5435629250 fakevim: imediately indicate change to REPLACE mode
Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:23 +01:00
Martin Aumüller
bb4d6a3440 fakevim: fix leaving REPLACE mode
previously, the first character typed in command mode would have been inserted into the document

Merge-request: 99
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:38:23 +01:00
Martin Aumüller
355df07072 fakevim: forgot to initialize a variable
Merge-request: 97
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:23:32 +01:00
Martin Aumüller
bf607962e5 fakevim: change Find plugin's case sensitivity with ':set (no)ignorecase'
- allow for handling unknown arguments to ':set' by the layer having installed the FakeVim handler
- use that to change the Find plugin's case sensitivity

Merge-request: 97
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:23:32 +01:00
Martin Aumüller
de21fef76c fakevim: update cursor position to start of selection after incremental search
the find plugin places the cursor at the end of a found item, but vi at the start,
thus update cursor position when editor widget regains focus

Merge-request: 97
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:23:30 +01:00
Martin Aumüller
d67bd86fb4 fakevim: update document's cursor before triggering search
otherwise, incremental search would not always begin at the current cursor position

Merge-request: 97
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:23:30 +01:00
Martin Aumüller
f48ff89988 fakevim: handle forward/backward search depending on initial search ('?'/'/')
Merge-request: 97
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:23:30 +01:00
Martin Aumüller
825d1c7932 fakevim: make find next/previous work with incremental search
Merge-request: 97
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-21 17:23:29 +01:00
Martin Aumüller
fb1e56cbe0 fakevim: use FakeVim indentation settings instead of creator's
Merge-request: 2160
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-15 15:27:42 +01:00
hjk
67027dddb6 fakevim: comment out warning about unhandled commands 2010-01-07 16:25:18 +01:00
Martin Aumüller
f289da3d91 fakevim: implement smart indent
use creator's indenter for smartindent mode
- this works like automatic indent w/o fakevim

perhaps this fixes QTCREATORBUG-139

Merge-request: 98
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-06 15:21:17 +01:00
Martin Aumüller
c4fede0fd3 fakevim: use BaseTextEditor's isElectricCharacter
in order for automatic indenting to work, isElectricCharacter has to match the language of the document

Merge-request: 98
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-06 15:21:17 +01:00
hjk
b6cae42a62 fakevim: remove spurious executable attributes; also some style issues 2010-01-05 18:48:53 +01:00
Martin Aumüller
f08176cc49 fakevim: [num]'-'/'+' moves to first non-blank of previous/next but ([num]-1)th line
Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:53 +01:00
Martin Aumüller
29236ea356 fakevim: leave visual mode if entering insert mode
Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:53 +01:00
Martin Aumüller
7ccdbc5e97 fakevim: fix indenting
- the indented region has been off by one line as lineForPosition returns 1-based line numbers but QTextDocument::findBlockByNumber expects base 0
- all lines (including first and last line) have to be indented
- if text is collapsed, then findBlockByNumber has to be used instead of findBlockByLineNumber for getting the block containing a line

Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:53 +01:00
Martin Aumüller
a088b01713 fakevim: fix undo for indenting
previously, indenting would have been undone line by line

Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:53 +01:00
Martin Aumüller
a04137f39a fakevim: 'dG' at the end of the document should delete the last line
make sure that when deleting line-wise, a complete line is deleted,
even at the end of the document

Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:53 +01:00
Martin Aumüller
c71c338e72 fakevim: common implementation of 'G' and 'gg'
Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:53 +01:00
Martin Aumüller
c7281909c1 fakevim: [lineno]gg should behave as [lineno]G
Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:52 +01:00
Martin Aumüller
159e3f613d fakevim: fix 'yj', 'dj', 'cj' and 'yk', 'dk', 'ck'
Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:52 +01:00
Martin Aumüller
e95692b599 fakevim: fix 'c$', 'd$', 'y$', 'C', 'D' at end of line
Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:52 +01:00
Martin Aumüller
df9335c542 fakevim: fix 'P' at end of line
previously, the insertion point would have stayed just in front of the last character instead of in
front of the last but first character

Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:52 +01:00
Martin Aumüller
6ebac9116f fakevim: fix 'O' at begin of document
'O' would have opened the new line after the first line instead of before

Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:52 +01:00
Martin Aumüller
869782df18 fakevim: fix undoing of commands that enter insert mode
atomically undo command that entered insert mode together with undoing the insertion of new characters

Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:51 +01:00
Martin Aumüller
833a266319 fakevim: update mini buffer after 'A' to indicate change to INSERT mode
Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:51 +01:00
Martin Aumüller
d13f0bb2ce fakevim: wrong indentation
Merge-request: 96
Reviewed-by: hjk <qtc-committer@nokia.com>
2010-01-05 18:48:51 +01:00
hjk
84e2e8933d fakevim: make Ctrl-C leave visual modes 2010-01-05 18:13:23 +01:00