On Thu, Aug 31, 2023 at 08:27:11AM +0100, Laurence Tratt wrote:
[Rafael]
>> Simple update neovim-qt-0.2.17. Tested on amd64. OK?
> There is at least 1 annoying regression in 0.2.17 which is why I didn't
> end up submitting an update. Those have been fixed in master, and I keep
> hoping for a 0.2.18 release... I must confess that I didn't expect to be
> hoping for quite so long :/
I've now encountered my first (minor, but still annoying) case where a
neovim plugin wants something from neovim-qt that 0.2.16 doesn't support
but 0.2.17 does. Since there's still no date for a 0.2.18 release, I've
backported a fix from master to 0.2.17 that makes Shift-Del work. That's
a very specific, perhaps even selfish, backport but without that I find
0.2.17 unusable.
In case we're interested in including this, I attach my update.
Otherwise I think we should use Rafael's update to "plain" 0.2.17.
Laurie
diff --git editors/neovim-qt/Makefile editors/neovim-qt/Makefile
index da4c9d9644e..727b5258375 100644
--- editors/neovim-qt/Makefile
+++ editors/neovim-qt/Makefile
@@ -2,8 +2,7 @@ COMMENT = Qt5 GUI front-end for neovim
GH_ACCOUNT = equalsraf
GH_PROJECT = neovim-qt
-GH_TAGNAME = v0.2.16.1
-REVISION = 3
+GH_TAGNAME = v0.2.17
CATEGORIES = editors
diff --git editors/neovim-qt/distinfo editors/neovim-qt/distinfo
index 462296c3fef..13a1ccea2a3 100644
--- editors/neovim-qt/distinfo
+++ editors/neovim-qt/distinfo
@@ -1,2 +1,2 @@
-SHA256 (neovim-qt-0.2.16.1.tar.gz) =
lx1Fl7QN8nVrMTr+GZbweRVkPovxDv5Ba2TMM35Pryo=
-SIZE (neovim-qt-0.2.16.1.tar.gz) = 1069176
+SHA256 (neovim-qt-0.2.17.tar.gz) = rFOMLl1jVy3QVDwT+vtNQo5nEo6mdkZ/zaaJZbKqzaE=
+SIZE (neovim-qt-0.2.17.tar.gz) = 1076230
diff --git editors/neovim-qt/patches/patch-src_gui_input_cpp
editors/neovim-qt/patches/patch-src_gui_input_cpp
new file mode 100644
index 00000000000..4f88a59b4c2
--- /dev/null
+++ editors/neovim-qt/patches/patch-src_gui_input_cpp
@@ -0,0 +1,19 @@
+Pull in PR #1049 from neovim-qt upstream.
+
+Index: src/gui/input.cpp
+--- src/gui/input.cpp.orig
++++ src/gui/input.cpp
+@@ -191,13 +191,6 @@ QString convertKey(const QKeyEvent& ev) noexcept
+ const QMap<int, QString>& specialKeys { GetSpecialKeysMap() };
+
+ if (specialKeys.contains(key)) {
+- // Issue#728: Shift + Space inserts ;2u in `:terminal`.
Incorrectly sent as <S-Space>.
+- // Issue#259: Shift + BackSpace inserts 7;2u in `:terminal`.
Incorrectly sent as <S-BS>.
+- if (key == Qt::Key_Space
+- || key == Qt::Key_Backspace) {
+- mod &= ~Qt::ShiftModifier;
+- }
+-
+ return ToKeyString(GetModifierPrefix(mod),
specialKeys.value(key));
+ }
+
diff --git
editors/neovim-qt/patches/patch-src_gui_runtime_plugin_nvim_gui_shim_vim
editors/neovim-qt/patches/patch-src_gui_runtime_plugin_nvim_gui_shim_vim
new file mode 100644
index 00000000000..90d300ff18a
--- /dev/null
+++ editors/neovim-qt/patches/patch-src_gui_runtime_plugin_nvim_gui_shim_vim
@@ -0,0 +1,22 @@
+Pull in PR #1049 from neovim-qt upstream.
+
+Index: src/gui/runtime/plugin/nvim_gui_shim.vim
+--- src/gui/runtime/plugin/nvim_gui_shim.vim.orig
++++ src/gui/runtime/plugin/nvim_gui_shim.vim
+@@ -278,3 +278,16 @@ function! s:GuiWindowOpacityCommand(value) abort
+ call rpcnotify(0, 'Gui', 'WindowOpacity', a:value)
+ endfunction
+ command! -nargs=1 GuiWindowOpacity call s:GuiWindowOpacityCommand("<args>")
++
++" Issue 728: Terminal reports ';2u' for key sequences such as <S-Space>
++" Force-mapping keys is a less-than ideal workaround, but it is the only
++" option that appeases everyone. Neovim does not report terminal mode.
++"
++" See issues:
++" - https://github.com/neovim/neovim/issues/20325
++" - https://github.com/neovim/neovim/issues/19265
++" - https://github.com/equalsraf/neovim-qt/issues/999
++tnoremap <S-Space> <Space>
++tnoremap <C-Space> <Space>
++tnoremap <S-Backspace> <BackSpace>
++tnoremap <C-Backspace> <Backspace>
diff --git editors/neovim-qt/patches/patch-test_tst_input_common_cpp
editors/neovim-qt/patches/patch-test_tst_input_common_cpp
new file mode 100644
index 00000000000..0330fa0bd74
--- /dev/null
+++ editors/neovim-qt/patches/patch-test_tst_input_common_cpp
@@ -0,0 +1,41 @@
+Pull in PR #1049 from neovim-qt upstream.
+
+Index: test/tst_input_common.cpp
+--- test/tst_input_common.cpp.orig
++++ test/tst_input_common.cpp
+@@ -15,8 +15,6 @@ private slots:
+ void CapsLockIgnored() noexcept;
+ void AltGrAloneIgnored() noexcept;
+ void AltGrKeyEventWellFormed() noexcept;
+- void ShiftSpaceWellFormed() noexcept;
+- void ShiftBackSpaceWellFormed() noexcept;
+
+ // Mouse Input
+ void MouseLeftClick() noexcept;
+@@ -135,26 +133,6 @@ void TestInputCommon::CapsLockIgnored() noexcept
+
+ QKeyEvent evMetaCapsLock{ QEvent::KeyPress, Qt::Key_CapsLock,
Qt::MetaModifier};
+ QCOMPARE(NeovimQt::Input::convertKey(evMetaCapsLock), QString{ "" });
+-}
+-
+-void TestInputCommon::ShiftSpaceWellFormed() noexcept
+-{
+- // Issue#728: Shift + Space inserts ;2u in `:terminal`, mode sent as
<S-Space>.
+- QKeyEvent evShift{ QEvent::KeyPress, Qt::Key_Shift, Qt::ShiftModifier,
"" };
+- QCOMPARE(NeovimQt::Input::convertKey(evShift), QString{ "" });
+-
+- QKeyEvent evShiftSpace{ QEvent::KeyPress, Qt::Key_Space,
Qt::ShiftModifier, " " };
+- QCOMPARE(NeovimQt::Input::convertKey(evShiftSpace), QString{ "<Space>"
});
+-}
+-
+-void TestInputCommon::ShiftBackSpaceWellFormed() noexcept
+-{
+- // Issue#259: Shift + BackSpace inserts 7;2u in `:terminal`, mode sent
as <S-BS>.
+- QKeyEvent evShift{ QEvent::KeyPress, Qt::Key_Shift, Qt::ShiftModifier,
"" };
+- QCOMPARE(NeovimQt::Input::convertKey(evShift), QString{ "" });
+-
+- QKeyEvent evShiftBackSpace{ QEvent::KeyPress, Qt::Key_Backspace,
Qt::ShiftModifier, "\b" };
+- QCOMPARE(NeovimQt::Input::convertKey(evShiftBackSpace), QString{ "<BS>"
});
+ }
+
+ void TestInputCommon::MouseLeftClick() noexcept
diff --git editors/neovim-qt/pkg/PLIST editors/neovim-qt/pkg/PLIST
index 28877da1bff..2e3b536b5b0 100644
--- editors/neovim-qt/pkg/PLIST
+++ editors/neovim-qt/pkg/PLIST
@@ -1,9 +1,10 @@
@bin bin/nvim-qt
share/applications/nvim-qt.desktop
share/icons/hicolor/192x192/apps/nvim-qt.png
+share/icons/hicolor/scalable/apps/nvim-qt.svg
share/nvim-qt/
+share/nvim-qt/LICENSE
share/nvim-qt/runtime/
-share/nvim-qt/runtime/README.md
share/nvim-qt/runtime/doc/
share/nvim-qt/runtime/doc/nvim_gui_shim.txt
share/nvim-qt/runtime/doc/tags