From 64c9ba1cfa09a39b0e2373f8d58c9533dfcaaf86 Mon Sep 17 00:00:00 2001 From: Luis Guilherme Coelho Date: Tue, 12 Nov 2024 19:05:10 -0300 Subject: [PATCH] packages: kak-xyz: Add kak-tree-sitter and kak-lsp (also change plugin files location on the derivation output) --- radix/packages/kak-xyz.scm | 135 ++++++++++++++++++++++++++++++++++--- 1 file changed, 127 insertions(+), 8 deletions(-) diff --git a/radix/packages/kak-xyz.scm b/radix/packages/kak-xyz.scm index bc78f1d..612798c 100644 --- a/radix/packages/kak-xyz.scm +++ b/radix/packages/kak-xyz.scm @@ -1,10 +1,15 @@ (define-module (radix packages kak-xyz) + #:use-module (gnu packages crates-apple) + #:use-module (gnu packages crates-io) + #:use-module (gnu packages crates-windows) + #:use-module (guix build-system cargo) #:use-module (guix packages) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system copy) #:use-module ((guix licenses) - #:prefix license:)) + #:prefix license:) + #:use-module (radix packages crates-io)) (define-public kak-phantom-selection (let ((commit "ffbed4ac8a9b2f0277213ca479a62ccc6620e33d") @@ -24,7 +29,8 @@ (build-system copy-build-system) (arguments (list #:install-plan - #~'(("phantom-selection.kak" "share/kak/plugins/")))) + #~'(("phantom-selection.kak" + "share/kak/autoload/plugins/kakoune-phantom-selection/")))) (home-page "https://github.com/occivink/kakoune-phantom-selection") (synopsis "Work on multiple selections, one at a time.") (description "This package provides kakoune plugin to work on multiple @@ -50,7 +56,8 @@ use-case.") (build-system copy-build-system) (arguments (list #:install-plan - #~'(("rc/surround.kak" "share/kak/plugins/")))) + #~'(("rc/surround.kak" + "share/kak/autoload/plugins/kakoune-surround/")))) (home-page "https://github.com/maximbaz/surround.kak") (synopsis "A plugin to surround selections in kakoune.") (description "This package provides a kakoune plugin to surround @@ -75,7 +82,8 @@ selections.") (build-system copy-build-system) (arguments (list #:install-plan - #~'(("state-save.kak" "share/kak/plugins/")))) + #~'(("state-save.kak" + "share/kak/autoload/plugins/kakoune-state-save/")))) (home-page "https://gitlab.com/Screwtapello/kakoune-state-save") (synopsis "A plugin to help Kakoune save and restore state between sessions.") @@ -101,7 +109,8 @@ restore state between sessions.") (build-system copy-build-system) (arguments (list #:install-plan - #~'(("buffers.kak" "share/kak/plugins/")))) + #~'(("buffers.kak" + "share/kak/autoload/plugins/kakoune-buffers/")))) (home-page "https://github.com/Delapouite/kakoune-buffers") (synopsis "A kakoune plugin to ease navigation between opened buffers.") (description "This package provides a plugin to ease the navigation @@ -126,7 +135,8 @@ between opened buffers.") (build-system copy-build-system) (arguments (list #:install-plan - #~'(("kakboard.kak" "share/kak/plugins/")))) + #~'(("kakboard.kak" + "share/kak/autoload/plugins/kakboard/")))) (home-page "https://github.com/lePerdu/kakboard") (synopsis "A kakoune plugin to allow clipboard integration for Kakoune.") (description "This package provides a plugin to allow clipboard integration @@ -151,7 +161,8 @@ for kakoune.") (build-system copy-build-system) (arguments (list #:install-plan - #~'(("rainbow.kak" "share/kak/plugins/")))) + #~'(("rainbow.kak" + "share/kak/autoload/plugins/kakoune-rainbow/")))) (home-page "https://github.com/JJK96/kakoune-rainbow") (synopsis "A kakoune plugin to highlight matching parenthesis.") (description "This package provides a plugin to highlight matching @@ -176,9 +187,117 @@ parenthesis in kakoune.") (build-system copy-build-system) (arguments (list #:install-plan - #~'(("rc/auto-pairs.kak" "share/kak/plugins/")))) + #~'(("rc/auto-pairs.kak" + "share/kak/autoload/plugins/auto-pairs/")))) (home-page "https://github.com/alexherbo2/auto-pairs.kak") (synopsis "A kakoune plugin to enable auto pairing of characters.") (description "This package provides a kakoune plugin to enable auto pairing of characters..") (license license:unlicense)))) + +(define-public kak-lsp + (package + (name "kak-lsp") + (version "17.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kakoune-lsp/kakoune-lsp") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "18i0gq89pbzcz7dli40fxf96w3nghqm6dbwxjk1kxssyqgvyk41m")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-clap" ,rust-clap-4) + ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5) + ("rust-daemonize" ,rust-daemonize-0.5) + ("rust-diffs" ,rust-diffs-0.5) + ("rust-dirs" ,rust-dirs-5) + ("rust-enum-primitive" ,rust-enum-primitive-0.1) + ("rust-fs4" ,rust-fs4-0.8) + ("rust-glob" ,rust-glob-0.3) + ("rust-indoc" ,rust-indoc-2) + ("rust-itertools" ,rust-itertools-0.13) + ("rust-jsonrpc-core" ,rust-jsonrpc-core-18) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-lsp-types" ,rust-lsp-types-0.95) + ("rust-notify-debouncer-full" ,rust-notify-debouncer-full-0.3) + ("rust-pulldown-cmark" ,rust-pulldown-cmark-0.9) + ("rust-rand" ,rust-rand-0.8) + ("rust-regex" ,rust-regex-1) + ("rust-ropey" ,rust-ropey-1) + ("rust-serde" ,rust-serde-1) + ("rust-serde-derive" ,rust-serde-derive-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-serde-repr" ,rust-serde-repr-0.1) + ("rust-slog" ,rust-slog-2) + ("rust-slog-scope" ,rust-slog-scope-4) + ("rust-sloggers" ,rust-sloggers-2) + ("rust-toml" ,rust-toml-0.8) + ("rust-unicode-width" ,rust-unicode-width-0.1) + ("rust-url" ,rust-url-2) + ("rust-whoami" ,rust-whoami-1)))) + (home-page "https://github.com/kakoune-lsp/kakoune-lsp") + (synopsis "Kakoune Language Server Protocol Client") + (description + "This package provides Kakoune Language Server Protocol Client.") + (license (list license:unlicense license:expat)))) + +(define-public kak-tree-sitter + (let ((commit "4a717751ffe599d1d46f70f8a9ad0bd978ef324a") + (revision "0")) + (package + (name "kak-tree-sitter") + (version (git-version "1.1.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~hadronized/kak-tree-sitter") + (commit commit))) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "14qqlxg4qi59njayc6xmgw62s3mnrba9ndz05cprfyxdwvnnqf3q")))) + (build-system cargo-build-system) + (arguments + `(#:install-source? #f + #:imported-modules (,@%cargo-build-system-modules + (guix build cargo-build-system)) + #:modules ((guix build utils) + (guix build cargo-build-system) + (ice-9 match)) + #:cargo-inputs (("rust-chrono" ,rust-chrono-0.4) + ("rust-clap" ,rust-clap-4) + ("rust-colored" ,rust-colored-2) + ("rust-ctrlc" ,rust-ctrlc-3) + ("rust-daemonize" ,rust-daemonize-0.5) + ("rust-dirs" ,rust-dirs-5) + ("rust-itertools" ,rust-itertools-0.12) + ("rust-libc" ,rust-libc-0.2) + ("rust-libloading" ,rust-libloading-0.8) + ("rust-log" ,rust-log-0.4) + ("rust-mio" ,rust-mio-0.8) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-simple-logger" ,rust-simple-logger-5) + ("rust-thiserror" ,rust-thiserror-1) + ("rust-toml" ,rust-toml-0.8) + ("rust-tree-sitter" ,rust-tree-sitter-0.20) + ("rust-tree-sitter-highlight" ,rust-tree-sitter-highlight-0.20) + ("rust-tree-sitter-rust" ,rust-tree-sitter-rust-0.20) + ("rust-unicode-segmentation" ,rust-unicode-segmentation-1) + ("rust-uuid" ,rust-uuid-1)) + #:phases ,#~(modify-phases %standard-phases + (replace 'install + (lambda _ + (let* ((bin (string-append #$output "/bin"))) + (install-file "target/release/ktsctl" bin) + (install-file "target/release/kak-tree-sitter" bin))))))) + (home-page "https://git.sr.ht/~hadronized/kak-tree-sitter/") + (synopsis "Server between Kakoune and tree-sitter") + (description + "This package provides Server between Kakoune and tree-sitter.") + (license license:bsd-3))))