Commit Graph

903 Commits

Author SHA1 Message Date
hjk
7a76f7edbf Revert "FakeVim: Also record NoVisualMode as last visual mode"
This reverts commit e5dd24322f
which caused QTCREATORBUG-26214.

Fixes: QTCREATORBUG-26214
Change-Id: I0d285b4df8fa428201fb6c48bbbad81f8195a941
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-10-11 06:05:23 +00:00
hjk
f9893f5883 FakeVim: Update visual marks when mark settings have changed
To test: ":set sm",  "ma", "<Down>",  ":set nosm"

Change-Id: I75d2c3ded04ddf3bc656574a3cff136db144df2b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-07-21 06:44:28 +00:00
hjk
e5dd24322f FakeVim: Also record NoVisualMode as last visual mode
Fixes: QTCREATORBUG-25822
Change-Id: I9a63726d357e3ea3d92b05a5d77cad5221c03f93
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-06-18 09:17:43 +00:00
Eike Ziller
4151f091e3 Merge remote-tracking branch 'origin/4.15'
Change-Id: If0dbebdf37b0ffea2528bf6ce6d34d88554f8dfb
2021-03-16 10:55:54 +01:00
Eike Ziller
05701491a1 FakeVim: Fix compilation with Qt 6
By using recursive QHash instead of recursive QMap, which has issues
compiling under some circumstances with MSVC.

Change-Id: I545a5eb9002f247a5015e7ea5e59cf74895b1e21
Reviewed-by: hjk <hjk@qt.io>
2021-03-16 08:50:40 +00:00
Lukas Holecek
e3d95ac094 FakeVim: Fix Windows build
Standalone FakeVim library fails to build on Windows due to missing
operator+ for "QString" and "const char *" arguments.

This is problem even if using `QT_RESTRICTED_CAST_FROM_ASCII`.

Change-Id: I0ec13d7dfa8ef99d98fa737456d12f16facc5427
Reviewed-by: hjk <hjk@qt.io>
2021-03-03 15:55:43 +00:00
hjk
50f93710b7 FakeVim: Aspectify settings
Change-Id: Ic73edce82e192779ed3efe86a5cb747a52d94d36
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-03-03 07:12:21 +00:00
Tom Praschan
f600386732 Fix dot command for pasting with 'P' being 'p'
Change-Id: Ic491f3a198a03fd08a680e044c4e8f2f5ebe2866
Reviewed-by: hjk <hjk@qt.io>
2021-02-22 06:06:49 +00:00
Leander Schulten
213ad8368a Fix build
Change-Id: If4593342cd92716fb2238d633e5b25135a02ce57
Reviewed-by: hjk <hjk@qt.io>
2021-02-18 06:28:55 +00:00
Tom Praschan
1085d6b508 FakeVim: Add emulation for vim-surround plugin
Change-Id: If450d04dd89a1707ab05806522fbf4cc987d454b
Reviewed-by: hjk <hjk@qt.io>
2021-02-17 08:50:21 +00:00
Tom Praschan
d7acee920d FakeVim: Add emulation for argtextobj.vim plugin
Change-Id: I319d2b9fe9f0d145c2560cf03fecc50629c99006
Reviewed-by: hjk <hjk@qt.io>
2021-02-12 08:36:29 +00:00
Christian Stenger
c058ceead4 FakeVim: Fix compile
Amends f83eeb0548.

Change-Id: Ia709c45800c63375de0ef995ee8bd37d54c45d26
Reviewed-by: hjk <hjk@qt.io>
2021-02-11 07:58:27 +00:00
Jarek Kobus
a3677c15e7 Compile fix - use Utils::optional
Amends f83eeb0548

Change-Id: Iad1ca06bf546405873aaf8daebbdb76b79f4c0ff
Reviewed-by: hjk <hjk@qt.io>
2021-02-11 07:47:54 +00:00
Tom Praschan
f83eeb0548 FakeVim: Add emulation of vim-exchange plugin
Change-Id: I844c9bf11231ab842cee020a0e7a29af8ed209eb
Reviewed-by: hjk <hjk@qt.io>
2021-02-10 16:11:50 +00:00
Tom Praschan
509d5895f8 FakeVim: Merge comments when joining lines with 'J'
This is the default behavior in vim as well

Change-Id: Ia4d56e3cfc7f91fc353078daefaabeada9a86bed
Reviewed-by: hjk <hjk@qt.io>
2021-02-09 08:56:47 +00:00
Tom Praschan
b6f26ed67a FakeVim: Add emulation for ReplaceWithRegister plugin
Change-Id: Iaaeef6ff51fe858b759c10adaac582f5858b6210
Reviewed-by: hjk <hjk@qt.io>
2021-02-09 07:33:03 +00:00
Leander Schulten
4ae93a9d27 FakeVim: Fix Qt6 build
Amends f626e27370

Change-Id: Id4681dc771a132bc6143b7e1f0b566a3930706e2
Reviewed-by: hjk <hjk@qt.io>
2021-02-04 12:15:18 +00:00
Tom Praschan
f626e27370 FakeVim: Add emulation for vim-commentary
Change-Id: I34f222182835ae160e6c4c66ad0bada79d8abeff
Reviewed-by: hjk <hjk@qt.io>
2021-02-03 17:58:22 +00:00
Tom Praschan
b1f1ecb1b5 FakeVim: Fix dot command for pasting
Fixes: QTCREATORBUG-25281
Change-Id: Ic36b87672889442520941bcefa0f5ee14b77fbc6
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: hjk <hjk@qt.io>
2021-02-03 17:58:02 +00:00
Timon Riedelbauch
002db1fa42 add special characters \u \U \l \L to fakevim substitute command
vim substitute (:s/) hast the option to use special characters
\u \U \l \L in the replacement part to change the case of the
following letters. This was not present in fakevim.

Change-Id: I13785db24018283c242d94fd7892765657570176
Reviewed-by: hjk <hjk@qt.io>
2021-02-03 09:34:54 +00:00
hjk
289a18f56f FakeVim: Change shortcuts from Alt-V,X to Alt-Y,X
Alt-V is taken by the Views menu nowadays.

Also, fix the instruction to quit FakeVim on Mac.

Fixes: QTCREATORBUG-24694
Change-Id: I5268760f45e34f973b3b38b19d2577c0c655b000
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-11-10 12:29:14 +00:00
hjk
eb45b8f9b9 Avoid more uses of non-explicit QChar(int) constructor
Will be gone in Qt6.

Task-number: QTCREATORBUG-24098
Change-Id: Id76b15bb11879b2e8ff0f71af45acbfb1720f763
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-11-10 12:27:36 +00:00
hjk
81c4d59346 FakeVim: Fix use of implicit QChar(int) constructor
Change-Id: I79a778a1e32dae8b2c1f7d49d4c4e655cf51b1fb
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-11-06 14:59:33 +00:00
Lukas Holecek
4e28aed405 FakeVim: Fix deleting selection on search command-line
Change-Id: Ie01dd84cf87db2d999c10352285c0ee8366aadc1
Reviewed-by: hjk <hjk@qt.io>
2020-11-02 07:56:56 +00:00
hjk
35932385bc FakeVim: Allow AltGr as modifier to produce normal key values
Task-number: QTCREATORBUG-24673
Change-Id: I6d1aa5badd3077f0885d5b2470527c006096809d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-10-08 06:24:46 +00:00
Eike Ziller
6225d33c28 Fix build issues with Qt6
Change from QStringRef to QStringView at various places.

Task-number: QTCREATORBUG-24098
Change-Id: Ia7a634fa26464fbb2962724d5f0e188cecc68801
Reviewed-by: hjk <hjk@qt.io>
2020-09-18 14:41:32 +00:00
hjk
cc7caee133 FakeVim: Fix case insensitivity handling for forward searching
Change-Id: I1f5b13022f3ae06916434b48cf3c6ba6d4722746
Reviewed-by: Lukas Holecek <hluk@email.cz>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-17 06:17:38 +00:00
hjk
fd2236a59a More Qt 6 fixes
Task-number: QTCREATORBUG-24098
Change-Id: I1e30b49218b18f426aea6e4cd3680be513894746
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-06-23 07:59:46 +00:00
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