ZLS
Go to file
2020-05-21 15:06:16 +03:00
.assets Fixed logo viewbox, now it doesn't overflow 2020-05-14 07:04:00 +03:00
.github/workflows github workflow fix? 2020-05-19 22:39:55 +03:00
src Try expression support 2020-05-21 15:06:16 +03:00
.gitignore init 2020-04-24 18:19:03 -04:00
.gitmodules Added workspace folder support, read configs from there, use known-folders 2020-05-19 22:09:00 +03:00
build.zig Removed no_snippets build option. 2020-05-09 16:43:51 +03:00
LICENSE.md Completion of global values, and some reformatting 2020-04-27 16:38:35 -04:00
README.md enable_snippets is false by default, fix it in README. Small fixes to goto def/decl 2020-05-21 14:36:14 +03:00

Zig Language Server

CI Zig Tools

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 --recurse-submodules 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.
zls will look for a zls.json configuration file in multiple locations with the following priority:

  • In the folders open in your workspace (this applies for files in those folders)
  • In the local configuration folder of your OS (as provided by known-folders)
  • In the same directory as the executable

The following options are currently available.

Option Type Default value What it Does
enable_snippets bool false 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, e.g. /path/to/zig/lib/zig, 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.

License

MIT