Emacs: update setup instructions
`lsp-mode` now has built-in configuration for zls, so the only configuration that might be required is setting the location of the zls executable (or placing it in the PATH). `doom-emacs` has not updated to use the latest version of `lsp-mode` yet, so its configuration cannot be simplified. However, I've updated the snippet for configuration to avoid loading `lsp-mode` on startup, which can cause significant slowdown to Emacs startup, and instead defer loading it until it is required.
This commit is contained in:
parent
55ad1028fc
commit
add0c567ad
21
README.md
21
README.md
@ -216,13 +216,12 @@ let g:LanguageClient_serverCommands = {
|
|||||||
- [zig mode](https://github.com/ziglang/zig-mode) is also useful
|
- [zig mode](https://github.com/ziglang/zig-mode) is also useful
|
||||||
|
|
||||||
```elisp
|
```elisp
|
||||||
(require 'lsp)
|
;; Setup lsp-mode as desired.
|
||||||
(add-to-list 'lsp-language-id-configuration '(zig-mode . "zig"))
|
;; See https://emacs-lsp.github.io/lsp-mode/page/installation/ for more information.
|
||||||
(lsp-register-client
|
(require 'lsp-mode)
|
||||||
(make-lsp-client
|
|
||||||
:new-connection (lsp-stdio-connection "<path to zls>")
|
;; Either place zls in your PATH or add the following:
|
||||||
:major-modes '(zig-mode)
|
(setq lsp-zig-zls-executable "<path to zls>")
|
||||||
:server-id 'zls))
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Doom Emacs
|
### Doom Emacs
|
||||||
@ -231,17 +230,17 @@ let g:LanguageClient_serverCommands = {
|
|||||||
- Install the [zig-mode](https://github.com/ziglang/zig-mode) package (add `(package! zig-mode)` to your `packages.el` file
|
- Install the [zig-mode](https://github.com/ziglang/zig-mode) package (add `(package! zig-mode)` to your `packages.el` file
|
||||||
|
|
||||||
```elisp
|
```elisp
|
||||||
(require 'lsp)
|
|
||||||
(use-package! zig-mode
|
(use-package! zig-mode
|
||||||
:hook ((zig-mode . lsp))
|
:hook ((zig-mode . lsp-deferred))
|
||||||
:custom (zig-format-on-save nil)
|
:custom (zig-format-on-save nil)
|
||||||
:init
|
:config
|
||||||
|
(after! lsp-mode
|
||||||
(add-to-list 'lsp-language-id-configuration '(zig-mode . "zig"))
|
(add-to-list 'lsp-language-id-configuration '(zig-mode . "zig"))
|
||||||
(lsp-register-client
|
(lsp-register-client
|
||||||
(make-lsp-client
|
(make-lsp-client
|
||||||
:new-connection (lsp-stdio-connection "<path to zls>")
|
:new-connection (lsp-stdio-connection "<path to zls>")
|
||||||
:major-modes '(zig-mode)
|
:major-modes '(zig-mode)
|
||||||
:server-id 'zls)))
|
:server-id 'zls))))
|
||||||
```
|
```
|
||||||
|
|
||||||
## Related Projects
|
## Related Projects
|
||||||
|
19
build.zig
19
build.zig
@ -146,31 +146,26 @@ pub fn config(step: *std.build.Step) anyerror!void {
|
|||||||
\\Zig mode (https://github.com/ziglang/zig-mode) is also useful!
|
\\Zig mode (https://github.com/ziglang/zig-mode) is also useful!
|
||||||
\\Then, add the following to your emacs config:
|
\\Then, add the following to your emacs config:
|
||||||
\\
|
\\
|
||||||
\\(require 'lsp)
|
\\(require 'lsp-mode)
|
||||||
\\(add-to-list 'lsp-language-id-configuration '(zig-mode . "zig"))
|
\\(setq lsp-zig-zls-executable "<path to zls>")
|
||||||
\\(lsp-register-client
|
|
||||||
\\ (make-lsp-client
|
|
||||||
\\ :new-connection (lsp-stdio-connection "<path to zls>")
|
|
||||||
\\ :major-modes '(zig-mode)
|
|
||||||
\\ :server-id 'zls))
|
|
||||||
, .{});
|
, .{});
|
||||||
},
|
},
|
||||||
.Doom => {
|
.Doom => {
|
||||||
std.debug.warn(
|
std.debug.warn(
|
||||||
\\To use ZLS in Doom Emacs, enable the lsp module
|
\\To use ZLS in Doom Emacs, enable the lsp module
|
||||||
\\And install the zig mode (https://github.com/ziglang/zig-mode) package by adding `(package! zig-mode)` to your packages.el file.
|
\\And install the `zig-mode` (https://github.com/ziglang/zig-mode) package by adding `(package! zig-mode)` to your packages.el file.
|
||||||
\\
|
\\
|
||||||
\\(require 'lsp)
|
|
||||||
\\(use-package! zig-mode
|
\\(use-package! zig-mode
|
||||||
\\ :hook ((zig-mode . lsp))
|
\\ :hook ((zig-mode . lsp-deferred))
|
||||||
\\ :custom (zig-format-on-save nil)
|
\\ :custom (zig-format-on-save nil)
|
||||||
\\ :init
|
\\ :config
|
||||||
|
\\ (after! lsp-mode
|
||||||
\\ (add-to-list 'lsp-language-id-configuration '(zig-mode . "zig"))
|
\\ (add-to-list 'lsp-language-id-configuration '(zig-mode . "zig"))
|
||||||
\\ (lsp-register-client
|
\\ (lsp-register-client
|
||||||
\\ (make-lsp-client
|
\\ (make-lsp-client
|
||||||
\\ :new-connection (lsp-stdio-connection "<path to zls>")
|
\\ :new-connection (lsp-stdio-connection "<path to zls>")
|
||||||
\\ :major-modes '(zig-mode)
|
\\ :major-modes '(zig-mode)
|
||||||
\\ :server-id 'zls)))
|
\\ :server-id 'zls))))
|
||||||
, .{});
|
, .{});
|
||||||
},
|
},
|
||||||
.Other => {
|
.Other => {
|
||||||
|
Loading…
Reference in New Issue
Block a user