Merge pull request #90 from data-man/kate_with_zls

Add usage instruction with Kate
This commit is contained in:
Alexandros Naskos 2020-05-27 12:34:16 +03:00 committed by GitHub
commit ad8c297a0e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 8 deletions

View File

@ -13,6 +13,7 @@ Zig Language Server, or `zls`, is a language server for Zig. The Zig wiki states
- [Usage](#usage) - [Usage](#usage)
- [VSCode](#vscode) - [VSCode](#vscode)
- [Sublime Text 3](#sublime-text-3) - [Sublime Text 3](#sublime-text-3)
- [Kate](#kate)
- [Related Projects](#related-projects) - [Related Projects](#related-projects)
- [License](#license) - [License](#license)
@ -82,6 +83,23 @@ Install the `zls-vscode` extension from [here](https://github.com/zigtools/zls-v
} }
``` ```
### Kate
- Enable `LSP client` plugin in Kate settings.
- Add this snippet to `LSP client's` user settings (e.g. /$HOME/.config/kate/lspclient)
(or paste it in `LSP client's` GUI settings)
```json
{
"servers": {
"zig": {
"command": ["zls"],
"url": "https://github.com/zigtools/zls",
"highlightingModeRegex": "^Zig$"
}
}
}
```
## Related Projects ## Related Projects
- [`sublime-zig-language` by @prime31](https://github.com/prime31/sublime-zig-language) - [`sublime-zig-language` by @prime31](https://github.com/prime31/sublime-zig-language)
- Supports basic language features - Supports basic language features

View File

@ -27,16 +27,14 @@ pub fn config(step: *std.build.Step) anyerror!void {
std.debug.warn("Writing to config...\n", .{}); std.debug.warn("Writing to config...\n", .{});
const content = std.json.stringify(.{ const content = std.json.stringify(.{
.zig_lib_path = lib_path, .zig_lib_path = lib_path,
.enable_snippets = snippets, .enable_snippets = snippets,
.warn_style = style .warn_style = style,
}, std.json.StringifyOptions{}, out); }, std.json.StringifyOptions{}, out);
std.debug.warn("Successfully saved configuration options!\n", .{}); std.debug.warn("Successfully saved configuration options!\n", .{});
const editor = try zinput.askSelectOne("Which code editor do you use?", enum { VSCode, Sublime, Other }); const editor = try zinput.askSelectOne("Which code editor do you use?", enum { VSCode, Sublime, Kate, Other });
std.debug.warn("\n", .{}); std.debug.warn("\n", .{});
switch (editor) { switch (editor) {
@ -64,12 +62,28 @@ pub fn config(step: *std.build.Step) anyerror!void {
\\}} \\}}
, .{}); , .{});
}, },
.Kate => {
std.debug.warn(
\\To use ZLS in Kate, enable `LSP client` plugin in Kate settings.
\\Then, add the following snippet to `LSP client's` user settings:
\\(or paste it in `LSP client's` GUI settings)
\\{{
\\ "servers": {{
\\ "zig": {{
\\ "command": ["zls"],
\\ "url": "https://github.com/zigtools/zls",
\\ "highlightingModeRegex": "^Zig$"
\\ }}
\\ }}
\\}}
, .{});
},
.Other => { .Other => {
std.debug.warn( std.debug.warn(
\\We might not *officially* support your editor, but you can definitely still use ZLS! \\We might not *officially* support your editor, but you can definitely still use ZLS!
\\Simply configure your editor for use with language servers and point it to the ZLS executable! \\Simply configure your editor for use with language servers and point it to the ZLS executable!
, .{}); , .{});
} },
} }
std.debug.warn("\nYou can find the ZLS executable in the \"zig-cache/bin\" by default.\nNOTE: Make sure that if you move the ZLS executable, you move the `zls.json` config file with it as well!\n\nAnd finally: Thanks for choosing ZLS!\n\n", .{}); std.debug.warn("\nYou can find the ZLS executable in the \"zig-cache/bin\" by default.\nNOTE: Make sure that if you move the ZLS executable, you move the `zls.json` config file with it as well!\n\nAnd finally: Thanks for choosing ZLS!\n\n", .{});
@ -89,7 +103,7 @@ pub fn build(b: *std.build.Builder) !void {
const exe = b.addExecutable("zls", "src/main.zig"); const exe = b.addExecutable("zls", "src/main.zig");
const data_version = try std.mem.concat(b.allocator, u8, &[3][]const u8{"\"", b.option([]const u8, "data_version", "The data version - either 0.6.0 or master.") orelse "0.6.0", "\""}); const data_version = try std.mem.concat(b.allocator, u8, &[3][]const u8{ "\"", b.option([]const u8, "data_version", "The data version - either 0.6.0 or master.") orelse "0.6.0", "\"" });
defer b.allocator.free(data_version); defer b.allocator.free(data_version);
exe.addBuildOption( exe.addBuildOption(
[]const u8, []const u8,