diff options
author | Baitinq <manuelpalenzuelamerino@gmail.com> | 2023-02-03 18:07:11 +0100 |
---|---|---|
committer | Baitinq <manuelpalenzuelamerino@gmail.com> | 2023-02-03 18:09:10 +0100 |
commit | e8ada70080ac8ecf80c134972d8dca5307f0e494 (patch) | |
tree | 171e6c3c199669d48395a915326af94b4380ec1e /packages | |
parent | Dotfiles: Emacs: C/C++ support (diff) | |
download | nixos-config-e8ada70080ac8ecf80c134972d8dca5307f0e494.tar.gz nixos-config-e8ada70080ac8ecf80c134972d8dca5307f0e494.tar.bz2 nixos-config-e8ada70080ac8ecf80c134972d8dca5307f0e494.zip |
Emacs: Use lsp-bridge
Faster than lsp-mode, but not yet in nixpkgs
Diffstat (limited to 'packages')
-rw-r--r-- | packages/lsp-bridge/default.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/packages/lsp-bridge/default.nix b/packages/lsp-bridge/default.nix new file mode 100644 index 0000000..7eba8f0 --- /dev/null +++ b/packages/lsp-bridge/default.nix @@ -0,0 +1,64 @@ +{ lib +, trivialBuild +, fetchFromGitHub +, python3Packages +, python3 +, posframe +, markdown-mode +, yasnippet +, org +, which-key +, makeWrapper +}: + +let + rev = "7dfeeb640d14697755e2ac7997af0ec6c413197f"; + python = python3.withPackages (ps: with ps; [ epc orjson sexpdata six ]); +in trivialBuild { + pname = "lsp-bridge"; + version = "20230104"; + + commit = rev; + + src = fetchFromGitHub { + owner = "manateelazycat"; + repo = "lsp-bridge"; + inherit rev; + sha256 = "sha256-sB5niigN0rdtqeprlZAJEKgAuQDkcUMbbL9yTnrdoLg="; + }; + + packageRequires = + [ + posframe + markdown-mode + yasnippet + org + which-key + ]; + + buildPhase = '' + runHook preInstall + install -d $out/share/emacs/site-lisp/ + install *.el $out/share/emacs/site-lisp/ + install acm/*.el $out/share/emacs/site-lisp/ + install *.py $out/share/emacs/site-lisp/ + cp -r core $out/share/emacs/site-lisp/ + cp -r langserver $out/share/emacs/site-lisp/ + cp -r multiserver $out/share/emacs/site-lisp/ + cp -r resources $out/share/emacs/site-lisp/ + cp -r acm/icons $out/share/emacs/site-lisp/ + runHook postInstall + ''; + + postPatch = '' + substituteInPlace lsp-bridge.el --replace '(defcustom lsp-bridge-python-command (if (memq system-type '"'"'(cygwin windows-nt ms-dos)) "python.exe" "python3")' '(defcustom lsp-bridge-python-command "${python.interpreter}"' + ''; + + meta = { + description = "Fastest LSP client in Emacs."; + longDescription = '' + Using python's threading technology to build caches that bridge Emacs and LSP server. + ''; + license = lib.licenses.gpl3; + }; +} |