Skip to content

Commit 508e2af

Browse files
authored
Update lsp-jsonnet.el to auto-download server (#4825)
* Update lsp-jsonnet.el to auto-download server * Fix style issues in lsp-jsonnet * Fix typo in lsp-dependency definition of jsonnet-language-server
1 parent b6a4d24 commit 508e2af

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

clients/lsp-jsonnet.el

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,47 @@
3737
:risky t
3838
:type '(repeat string))
3939

40+
(defcustom lsp-clients-jsonnet-server-download-url
41+
(concat "https://github.com/grafana/jsonnet-language-server/releases/download/v0.16.0/"
42+
(cond ((and (eq system-type 'gnu/linux)
43+
(string-match ".*x86_64.*" system-configuration))
44+
"jsonnet-language-server_0.16.0_linux_amd64")
45+
((and (eq system-type 'gnu/linux)
46+
(string-match ".*arm64.*" system-configuration))
47+
"jsonnet-language-server_0.16.0_linux_arm64")
48+
((and (eq system-type 'darwin)
49+
(string-match ".*arm.*" system-configuration))
50+
"jsonnet-language-server_0.16.0_darwin_arm64")
51+
((and (eq system-type 'darwin)
52+
(string-match ".*x86_64.*" system-configuration))
53+
"jsonnet-language-server_0.16.0_darwin_amd64")
54+
((eq system-type 'windows-nt)
55+
"jsonnet-language-server_0.16.0_windows_amd64.exe")))
56+
"The jsonnet language server download url."
57+
:group 'lsp-jsonnet
58+
:type 'string)
59+
60+
(lsp-dependency 'jsonnet-language-server
61+
`(:system ,(cl-first lsp-clients-jsonnet-server-executable))
62+
`(:download :url ,lsp-clients-jsonnet-server-download-url
63+
:store-path ,(f-join user-emacs-directory ".cache" "lsp"
64+
(if (eq system-type 'windows-nt)
65+
(concat (cl-first lsp-clients-jsonnet-server-executable) ".exe")
66+
(cl-first lsp-clients-jsonnet-server-executable)))
67+
:set-executable? t))
68+
4069
(lsp-register-client
4170
(make-lsp-client
42-
:new-connection (lsp-stdio-connection (lambda () lsp-clients-jsonnet-server-executable))
71+
:new-connection (lsp-stdio-connection (lambda ()
72+
`(,(or (executable-find
73+
(cl-first lsp-clients-jsonnet-server-executable))
74+
(lsp-package-path 'jsonnet-language-server)
75+
(cl-first lsp-clients-jsonnet-server-executable)))))
4376
:activation-fn (lsp-activate-on "jsonnet")
4477
:priority -1
4578
:major-modes '(jsonnet-mode)
79+
:download-server-fn (lambda (_client callback error-callback _update?)
80+
(lsp-package-ensure 'jsonnet-language-server callback error-callback))
4681
:server-id 'jsonnet-lsp))
4782

4883
(lsp-consistency-check lsp-jsonnet)

0 commit comments

Comments
 (0)