4.2 KiB
Zig Language Server, or zls
, is a language server for Zig. The Zig wiki states that "The Zig community is decentralized" and "There is no concept of 'official' or 'unofficial'", so instead of calling zls
unofficial, and I'm going to call it a cool option, one of many.
Table Of Contents
Installation
Installing zls
is pretty simple;
git clone https://github.com/zigtools/zls
cd zls
zig build
Build Options
Option | Type | Default Value | What it Does |
---|---|---|---|
-Ddata_version |
string (master or 0.6.0) |
0.6.0 | The data file version. This selects the files in the src/data folder that correspond to the Zig version being served. |
Then, you can use the zls
executable in an editor of your choice that has a Zig language server client!
Note:zls
itself must be built using the master branch of zig currently due to a bug in std.json
which was fixed after 0.6.0 was released.
Configuration Options
You can configure zls by providing a zls.json file in the same directory as the executable.
The following options are currently available.
Option | Type | Default value | What it Does |
---|---|---|---|
enable_snippets |
bool |
true |
Enables snippet completion, set to false for compatibility with language clients that do not support snippets (such as ale). |
zig_lib_path |
?[]const u8 |
null |
zig library path, used to analyze std library imports. |
warn_style |
bool |
false |
Enables warnings for style guideline mismatches |
Usage
zls
is in its early stages, with a full analysis/completion engine coming soon, but it is still usable.
VSCode
Install the zls-vscode
extension from here.
Related Projects
sublime-zig-language
by @prime31- Supports basic language features
- Uses data provided by
src/data
to perform builtin autocompletion
zig-lsp
by @xackus- Inspiration for
zls
- Inspiration for
License
MIT