diff --git a/radix/packages/text-editors.scm b/radix/packages/text-editors.scm index 61e5829..7f817e7 100644 --- a/radix/packages/text-editors.scm +++ b/radix/packages/text-editors.scm @@ -1,20 +1,11 @@ (define-module (radix packages text-editors) - #:use-module (gnu packages crates-apple) - #:use-module (gnu packages crates-io) - #:use-module (gnu packages crates-windows) - #:use-module (gnu packages text-editors) - #:use-module (guix build-system cargo) + #:use-module (gnu packages perl) #:use-module (guix build-system trivial) #:use-module (guix gexp) - #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix utils) - #:use-module (radix packages crates-io) - #:use-module ((guix licenses) #:prefix license:) - - #:replace (kakoune - kak-lsp - kak-tree-sitter)) + #:use-module ((guix licenses) + #:prefix license:)) (define-public kakoune (let ((base (@@ (gnu packages text-editors) kakoune))) @@ -23,6 +14,7 @@ (source #f) (build-system trivial-build-system) (native-inputs (list base)) + (propagated-inputs (list perl)) (arguments (list #:modules '((guix build utils)) #:builder @@ -30,6 +22,7 @@ (use-modules (guix build utils)) (let* ((out #$output) (applications (string-append out "/share/applications")) + (tools (string-append out "/share/kak/autoload/tools")) (in (assoc-ref %build-inputs "kakoune")) (kak-bin (string-append out "/bin/kak"))) (copy-recursively in out) @@ -67,111 +60,22 @@ "text/x-tcl" "text/x-tex" "text/x-tex" - "text/xml"))))))))) - -(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)))) + "text/xml")) + (mkdir-p tools) + ;; I don't think this should be necessary, but it seems to be + (copy-file + #$(plain-file "plugin-loader.kak" "\ +eval %sh{ + for dir in $GUIX_KAK_PLUGINS_PATH; do + for plugin in $(ls $dir); do + for file in $(ls $dir/$plugin); do + echo source $dir/$plugin/$file + done + done + done +}") + (string-append tools "/plugin-loader.kak")))))) + (native-search-paths + (list (search-path-specification + (variable "GUIX_KAK_PLUGINS_PATH") + (files '("share/kak/autoload/plugins"))))))))