diff --git a/modules/lang/zig/README.org b/modules/lang/zig/README.org new file mode 100644 index 000000000..327a5eb34 --- /dev/null +++ b/modules/lang/zig/README.org @@ -0,0 +1,67 @@ +#+TITLE: lang/zig +#+DATE: March 18, 2021 +#+SINCE: v2.0.9 +#+STARTUP: inlineimages nofold + +* Table of Contents :TOC_3:noexport: +- [[#description][Description]] + - [[#maintainers][Maintainers]] + - [[#module-flags][Module Flags]] + - [[#plugins][Plugins]] +- [[#prerequisites][Prerequisites]] +- [[#features][Features]] + - [[#lsp-support][LSP support]] + - [[#keybinds][Keybinds]] +- [[#configuration][Configuration]] + - [[#customize-zls-path][Customize zls path]] + +* Description +This module adds [[https://ziglang.org/][Zig]] support, with optional (but recommended) LSP support via +[[https://github.com/zigtools/zls][zls]]. + ++ Syntax highlighting ++ Syntax-checking (~flycheck~) ++ Code completion and LSP integration (~zls~) + +** Maintainers ++ [[https://github.com/bnjmnt4n][@bnjmnt4n]] (Author) + +** Module Flags ++ =+lsp= Enables integration for the zls LSP server. It is highly recommended + you use this. + +** Plugins ++ [[https://github.com/ziglang/zig-mode][zig-mode]] + +* Prerequisites +To get started with Zig, you need the ~zig~ tool. Pre-built binaries for most +systems are available for download from [[https://ziglang.org/download/]] or from +[[https://github.com/ziglang/zig/wiki/Install-Zig-from-a-Package-Manager][system package managers]]. + +zls is a language server for Zig, which provides code completion, + +* Features +** LSP support +This module supports LSP integration. For it to work you'll need: + +1. zls installed. +2. The =:tools lsp= module enabled. Only =lsp-mode= is supported for now. +3. The ~+lsp~ flag on this module enabled. + +** Keybinds +| Binding | Description | +|-------------------+---------------------| +| ~ b~ | ~zig-compile~ | +| ~ f~ | ~zig-format-buffer~ | +| ~ r~ | ~zig-run~ | +| ~ t~ | ~zig-test-buffer~ | + +* Configuration +** Customize zls path +To customize the path of the =zls= executable, modify +~lsp-clients-zls-executable~. + +#+BEGIN_SRC elisp +;; in $DOOMDIR/config.el +(setq lsp-clients-zls-executable "~/path/to/zls") +#+END_SRC diff --git a/modules/tools/lsp/README.org b/modules/tools/lsp/README.org index 923c6aa83..bbd277d8e 100644 --- a/modules/tools/lsp/README.org +++ b/modules/tools/lsp/README.org @@ -56,6 +56,7 @@ As of this writing, this is the state of LSP support in Doom Emacs: | [[../../lang/swift/README.org][:lang swift]] | swift-mode | sourcekit | | [[../../lang/web/README.org][:lang web]] | web-mode, css-mode, scss-mode, sass-mode, less-css-mode | vscode-css-languageserver-bin, vscode-html-languageserver-bin | | [[../../lang/purescript/README.org][:lang purescript]] | purescript-mode | purescript-language-server | +| [[../../lang/zig/README.org][:lang zig]] | zig-mode | zls | ** Module Flags + =+peek= Use =lsp-ui-peek= when looking up definitions and references with