summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ftdetect/zig.lua4
-rw-r--r--ftplugin/zig.lua15
-rw-r--r--lua/default-config.lua3
3 files changed, 21 insertions, 1 deletions
diff --git a/ftdetect/zig.lua b/ftdetect/zig.lua
new file mode 100644
index 00000000..81e901ca
--- /dev/null
+++ b/ftdetect/zig.lua
@@ -0,0 +1,4 @@
+vim.cmd([[
+ au BufRead,BufNewFile *.zig set filetype=zig
+ au BufRead,BufNewFile *.zir set filetype=zir
+]])
diff --git a/ftplugin/zig.lua b/ftplugin/zig.lua
new file mode 100644
index 00000000..06217ddd
--- /dev/null
+++ b/ftplugin/zig.lua
@@ -0,0 +1,15 @@
+-- Because lspinstall don't support zig yet,
+-- So we need zls preset in global lib
+-- Further custom install zls in
+-- https://github.com/zigtools/zls/wiki/Downloading-and-Building-ZLS
+require'lspconfig'.zls.setup{
+ root_dir = require'lspconfig'.util.root_pattern(".git", "build.zig", "zls.json"),
+ on_attach = require'lsp'.common_on_attach,
+}
+require('lv-utils').define_augroups({
+ _zig_autoformat = {
+ {'BufWritePre', '*.zig', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'},
+ {'BufEnter', '*.zig', ':lua vim.api.nvim_buf_set_option(0, "commentstring", "// %s")'}
+ }
+})
+vim.cmd("setl expandtab tabstop=8 softtabstop=4 shiftwidth=4")
diff --git a/lua/default-config.lua b/lua/default-config.lua
index 0553226f..76a853ab 100644
--- a/lua/default-config.lua
+++ b/lua/default-config.lua
@@ -188,7 +188,8 @@ O = {
formatter = '',
autoformat = false,
virtual_text = true
- }
+ },
+ zig = {}
},