Subject: [PATCH] gnu: Add neovim-qt.

From: Kurt Kremitzki <[email-masked]>
Date: Sat, 10 May 2025 16:29:35 -0500

* gnu/packages/vim.scm (neovim-qt): New variable.

Change-Id: I7a20c4f8c91237be39f247581d3609938f716ae7
---
 gnu/packages/vim.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index cc35a325fd1..6ffff21bac4 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -54,12 +54,14 @@ (define-module (gnu packages vim)
   #:use-module (gnu packages check)
   #:use-module (gnu packages code)
   #:use-module (gnu packages coq)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages enlightenment)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
@@ -74,6 +76,7 @@ (define-module (gnu packages vim)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
@@ -1641,3 +1644,42 @@ (define-public vim-srcery-vim
      "Srcery is a color scheme with clearly defined contrasting colors
 and a slightly earthy tone.")
     (license license:expat)))
+
+(define-public neovim-qt
+  (package
+    (name "neovim-qt")
+    (version "0.2.19")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/equalsraf/neovim-qt")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0i7gr33q85mg1znf2383lqan7cbsb2kh7k9hzzb62yjmgj1yvgmg"))))
+    (build-system cmake-build-system)
+    (native-inputs (list doxygen graphviz))
+    (inputs (list msgpack neovim python qtbase-5 qtsvg-5))
+    (arguments
+     (list
+      #:configure-flags
+      #~(list "-DUSE_SYSTEM_MSGPACK:BOOL=ON" "-DENABLE_TESTS:BOOL=ON")
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                ;; QStandardPaths: wrong permissions on runtime directory
+                (setenv "XDG_RUNTIME_DIR"
+                        (string-append (getcwd) "/runtime-dir"))
+                (mkdir (getenv "XDG_RUNTIME_DIR"))
+                (chmod (getenv "XDG_RUNTIME_DIR") #o700)
+                ;; TODO: Get xvfb-run working
+                (setenv "QT_QPA_PLATFORM" "offscreen")))))))
+
+    (synopsis "Neovim client library and GUI, in Qt")
+    (description
+     "Neovim Qt is a lightweight cross-platform Neovim GUI written in C++ with Qt.")
+    (home-page "https://github.com/equalsraf/neovim-qt")
+    (license license:isc)))

base-commit: 01ca654387c64265b310f2887d884cd7ec7c4f0a
-- 
2.47.2