Commit Graph

875 Commits

Author SHA1 Message Date
hjk
6027c62ab2 FakeVim: Finish port to QRegularExpression
Change-Id: Id4eaab8f41be3b724ddf22f74384a60995cf4aa5
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-06-23 07:52:37 +00:00
hjk
86b7e287d6 FakeVim: Port more from QRegExp to QRegularExpression
QRegExp will not be available in Qt 6.

Task-number: QTCREATORBUG-24098
Change-Id: Ia1aec515615ecaf8e92ae1a3a1dad92cb999bfb1
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-06-23 07:33:48 +00:00
hjk
da829f3fe7 FakeVim: Use QStringView instead of QStringRef
QStringRef will not exist in Qt 6.

Change-Id: I439240fbb4c87fbe71c9fa42596c9aaadb75a05e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-18 13:35:17 +00:00
hjk
c5a64bd4de FakeVim: Replace QRegExp use in handleExSubstituteCommand()
Task-number: QTCREATORBUG-24098
Change-Id: I4176b614a7de73a675d5252344b68ce61dc340c2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-17 06:15:38 +00:00
hjk
26eaa46464 FakeVim: Use QRegularExpression in C-A/C-X handling
Task-number: QTCREATORBUG-24098
Change-Id: If2cff3b9059856afa8793f4df9acc0cde27e2e1e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-11 11:31:38 +00:00
hjk
cdfc62b287 FakeVim: Modernize a bit
Some ranged-for and const.

Change-Id: I6ff521393166aa4c61289de88e8c31320887b1b4
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-28 07:28:37 +00:00
hjk
776fd7961a FakeVim: Treat C-S-something as "not normal" in Input::is()
The problem triggering this change is that recently, C-S-s was not
handled (as "Save all") anymore when there was nothing to change,
and the keypress ended up in FakeVim. Now FakeVim filter for _exact_
C- modifier in Input::is(), letting C-S- pass as 'S-s' i.e. starting
replacement of the rest of the line.

Change-Id: I13499f5606c28fee148e410355bec7ffd6ed116a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-14 06:22:13 +00:00
Thiago Macieira
4259772314 Fix deprecation against QProcess::start splitting overload
Change-Id: I9709abb1c3734e10a7defffd1607e6d198bbf964
Reviewed-by: hjk <hjk@qt.io>
2020-04-28 18:45:09 +00:00
Alessandro Portale
24a25eed14 Use isEmpty() instead of count() or size()
Change-Id: I0a89d2808c6d041da0dc41ea5aea58e6e8759bb4
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2020-01-20 20:56:57 +00:00
hjk
e3b1106afa Compile fix with recent Qt dev
The reasoning in 1b4766e26c did not take into account that the scope
of QT_NO_JAVA_STYLE_ITERATORS may change over time, as done with
f70905448f6 in Qt base.

Change-Id: Ib1966ff26c4d36d5f62e149d6b45baa4aecf825d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-07-29 08:54:18 +00:00
hjk
251287f0d3 Avoid warning on empty expressions
For some reason, Q_UNUSED includes already a semicolon, adding one
on the user side creates an additional empty statement.

Change-Id: I9c5e8fac381345a60792cb75e2938fd53958d3b0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-23 11:55:59 +00:00
Christian Stenger
9da3077651 VCS: FakeVim: Ensure log editor is handled as readonly
Fixes: QTCREATORBUG-22595
Change-Id: Iab51eda5e55d36e98cf0ba5116853d6bee1dbd10
Reviewed-by: hjk <hjk@qt.io>
2019-07-02 08:41:51 +00:00
hjk
1a1f261e7c FakeVim: Fix pasting over VisualMode-selections
Task-number: QTCREATORBUG-22186
Change-Id: I218c70aaca1fc49df8e474065746688243cf9c61
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: Mitja Schmakeit <mitja.schmakeit@aucos.de>
Reviewed-by: hjk <hjk@qt.io>
2019-03-25 14:02:47 +00:00
hjk
475e7b1283 FakeVim: Fix a deprecation warning
... and re-organize surrounding code a bit.

Change-Id: I0c3af5b2a434c5088ed165fed97d562f468d16fc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-03-04 14:04:37 +00:00
Friedemann Kleint
ec6b38dea0 Fix Qt 5.13 deprecation warning about QFontMetrics::width()
Replace by QFontMetrics::horizontalAdvance(), fixing:
warning: ‘int QFontMetrics::width(const QString&, int) const’ is deprecated:
 Use QFontMetrics::horizontalAdvance [-Wdeprecated-declarations]

Change-Id: I9991ffefe6e87e872dc35ba291d562e06b28ca64
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-02-15 15:12:02 +00:00
Alessandro Portale
710e57a628 Fix warning: "Use midRef() instead of mid()"
[-Wclazy-qstring-ref]

Change-Id: If8a0844b39377feb3772542559655854a92b93cd
Reviewed-by: hjk <hjk@qt.io>
2019-01-17 13:00:37 +00:00
Alessandro Portale
df1f975252 FakeVim: Modernize
modernize-use-auto
modernize-use-nullptr
modernize-use-override
modernize-use-using
modernize-use-equals-default

Change-Id: I320a08a99a1d18ab87aec207ec1e03190009b592
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2018-11-08 21:32:29 +00:00
Tobias Hunger
9fe5733ef3 FakeVim: Fix clang complaining about register storage type
Change-Id: I9bbc2835c3311f46fdb3df83d56a8ab1ddd41f5a
Reviewed-by: hjk <hjk@qt.io>
2018-10-05 13:06:33 +00:00
Alessandro Portale
ad474f5fcb Fix: member initializer for 'm_fooBar' is redundant
warning: member initializer for 'm_isValid' is redundant
[modernize-use-default-member-init]

Change-Id: Icd521e7d77054512bc0ed6b95cf08440320b0ce0
Reviewed-by: hjk <hjk@qt.io>
2018-07-12 08:19:00 +00:00
hjk
3290de7a4e FakeVim: Remove Utils dependencies from fakevimhandler.cpp
There have been requests to easily re-use FakeVim in other projects.
To make that easy, cut the few explicit ties to libUtils in
fakevimhandler.cpp.

Change-Id: I090d50fb1fd4e62d97e9430e94a84d1f267773a4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-04-12 06:50:31 +00:00
Orgad Shaneh
eea6a7c3b3 Utils: Purge qtcfallthrough.h
No longer needed.

Change-Id: I9b0bee014df89d4c567f1d2431b5ff9404f5f925
Reviewed-by: hjk <hjk@qt.io>
2018-04-09 09:04:13 +00:00
hjk
ae560fcc49 FakeVim: Implement :<range>sor[t][!]
None of the other options yet.

Change-Id: Iabf18c1be4d228c97d2de9cb17e71c307e9ec5a2
Task-number: QTCREATORBUG-20022
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2018-03-13 06:48:42 +00:00
hjk
3ea4b0156c FakeVim: Experiment with hand-written signals
Change-Id: If76c68d3abb42240a279c15cf4b3d4b9e04460bd
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2018-03-02 09:07:33 +00:00
Friedemann Kleint
f482270432 Introduce Q_FALLTHROUGH()
Silence g++ 7.X warnings.

Change-Id: I9d06d04b496c9ec060e13e1be6f43d8fbadb1f3b
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2018-01-24 14:50:43 +00:00
Robert Loehning
7a8d1aca1b FakeVim: Remove unused variable
Change-Id: Idc45215175702feb6521e872a566462b6e085a42
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@qt.io>
2017-10-23 13:47:43 +00:00
hjk
8037d5e02f FakeVim: Properly recognize tabp...tabprevious
Note that this does not fully solve the linked issue as the
triggered GOTOPREVINHISTORY action does not have the same
behavior as :tabprevious

Task-number: QTCREATORBUG-18843
Change-Id: I26a719f77d2c1727bb18da46e13f5a0be48473bc
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-09-11 09:03:54 +00:00
hjk
e829ca8e31 FakeVim: Fix gt/gT/:tabnext/:tabprevious
The mapping was there, but not connected to the core actions.

Change-Id: I9faa1c47afe409caaa0462740a6865d99d959b44
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@qt.io>
2017-07-07 15:31:18 +00:00
Tim Jenssen
2631ffabd5 Remove spaces in initializer lists
Format initializer lists code style like.

Change-Id: Ib82c235e4ba7dc75ee96a7abc0c47eff7b0a9013
Reviewed-by: hjk <hjk@qt.io>
2017-02-22 16:25:09 +00:00
hjk
ef80d060e7 FakeVim: Remove a few uses of QObject::sender()
Considered bad style...

Change-Id: Idc1d39bd55fa30dfa854bbc99094f5f6ec9afc4d
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@qt.io>
2017-01-24 11:10:12 +00:00
hjk
4721888fa7 FakeVim: Force leaving input mode when switching editors
Change-Id: I9c871cf7b0cba027b8a0ec201dd57f1039c9f4a5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-12-13 08:54:12 +00:00
Daniel Langner
920386220b FakeVim: make cursor navigation via arrow keys more like vim's
Change-Id: I2da45281e0f8d2e3a0460a8631241e09aa67b869
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@qt.io>
2016-10-04 08:56:50 +00:00
Daniel Langner
137a34b9ca FakeVim: don't ignore ESC while holding SHIFT
Change-Id: Iddd843353e582607d6acd0cddf0df6930f09f4b9
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Lukas Holecek <hluk@email.cz>
2016-10-04 07:17:21 +00:00
Orgad Shaneh
b57ed862e9 FakeVim: Remove unused meta object
Change-Id: If20fe6c1a68470a5f0731f42d94af6123095a1d2
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-06-21 08:02:35 +00:00
hjk
90137a54c4 FakeVim: Parse <AltGr>
Change-Id: Ib8412b02b2cf7b82b34bbdbae10560b6f8dd34e2
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Lukas Holecek <hluk@email.cz>
2016-06-10 09:52:20 +00:00
hjk
40a9463c56 FakeVim: Expand ~ in some file names
For :read and :source.

Task-number: QTCREATORBUG-11160
Change-Id: I636593a16f9e39c25585c221c5d978e842f4c1d4
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-06-03 11:16:36 +00:00
Lukas Holecek
a8a1b3b573 FakeVim: Ignore external changes in insert mode
Task-number: QTCREATORBUG-16208
Change-Id: Ic357b855f740e6c86900c13f616cd58a27175413
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-05-31 10:47:24 +00:00
Orgad Shaneh
28367148ec FakeVim: Use Qt5-style connects
Change-Id: I85bc7b6e951515768da8473cadcec02cd58d30d3
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-05-25 07:49:30 +00:00
hjk
d4f5cab923 FakeVim: Modernize
Take advantage of QT_RESTRICTED_CAST_TO_ASCII, auto, etc.

Change-Id: I4602fd6ef5f24b12cb9fe09ce39ad907e76fe259
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-04-21 11:49:49 +00:00
hjk
f25bd123eb FakeVim: Simplify FakeVimSettings object
Change-Id: Ic4f4d23af021ed779a500183ca4b145dd3bc3443
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-03 10:14:17 +00:00
Friedemann Kleint
97af238656 Preferably use QStringRef::toInt().
Avoid allocations for converting to int.

Change-Id: Id8c79334f4809ec075ffe7e6b7635be4873eafd8
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-02-04 07:56:58 +00:00
Tobias Hunger
397e7f4843 Update License according to agreement with Free Qt Foundation
* Update files in src/plugins

Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 15:57:01 +00:00
Lukas Holecek
ecf3eb1d9e FakeVim: Handle Ctrl+[ with Russian keyboard layout
Task-number: QTCREATORBUG-15261
Change-Id: I6b63fdce965347dc883c72223b482883beccbb80
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-12-16 14:54:43 +00:00
Lukas Holecek
a5b85651dd FakeVim: Add checks before handling keyboard input
Some inputs can be unrecognized with some keyboard layouts
(QKeyEvent::key() will return 0).

Change-Id: If7b49330ac00a2493a956331c7bbe8ea2a4305ae
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-12-16 14:54:30 +00:00
hjk
40edcd0813 FakeVim: (Un)escape special chars in replacements
Task-number: QTCREATORBUG-15512
Change-Id: Idd625a1ea400e4d2dcae314ddd1a77551c6bb787
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-12-16 11:41:25 +00:00
Jakub Golebiewski
0b5b7ef67a FakeVim: Fix caps lock in macros.
This fixes the bug that while recording a macrom, hitting caps lock
(scroll lock, num lock) inserts some key into the buffer (for caps '$')
so when you replay the macro you get incorrect output.

Other keys that are not in vimKeyNames may behave similarly but It is
important that macros support those three (especially caps lock).

Change-Id: I2854266f86a22e9d38fb1c6c5d923b11a56a5995
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-09-17 06:36:06 +00:00
Jarek Kobus
716f43f357 FakeVimPlugin: Introduce member initialization.
Change-Id: I0e09933ededd48133662a65da701c228e6c08419
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-06-18 12:19:21 +00:00
Lukas Holecek
a439335500 FakeVim: Disable visual navigation for text cursor
Change-Id: I04a05ae034dbe5e891df5e39275ce0430eabb649
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-05-20 07:58:27 +00:00
hjk
f9f9feb7ea FakeVim: Use more direct construction in vimKeyNames
Change-Id: Ic230eaa95e4e9a4ad614af50297d6028fefaae6b
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-05-12 07:58:14 +00:00
Lukas Holecek
1ef66857cb FakeVim: Allow to remap shortcuts
Allows to remap main window shortcuts with command for passing keys.

    noremap <C-S> ,<C-S>
    noremap ZZ ,<C-S>,<C-W>
    noremap f<C-O> ,<C-O>
    noremap f<C-F> ,<C-F>

Task-number: QTCREATORBUG-14413
Change-Id: Ib86637d55223b1f4ce31a88c1c7ae2e05cb2aff1
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-05-11 14:36:44 +00:00
Thorben Kroeger
e4db1211ff FakeVim: C-R {register, C-W} in command mode
Change-Id: I15dd0b88b2e908dde398df06bc03394a700839a7
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@theqtcompany.com>
2015-04-14 11:12:39 +00:00