about summary refs log tree commit diff
path: root/packages/lsp-bridge/default.nix
blob: 7eba8f05803676ccf6d4ef5a2fdfc53b89fd21ad (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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;
  };
}