ソースを参照

auto detect file for zig, and language server for zig (#604)

Co-authored-by: maxxnino <idonthaveemail@dontknow.com>
maxxnino 4 年 前
コミット
b6942d5025
3 ファイル変更21 行追加1 行削除
  1. 4 0
      ftdetect/zig.lua
  2. 15 0
      ftplugin/zig.lua
  3. 2 1
      lua/default-config.lua

+ 4 - 0
ftdetect/zig.lua

@@ -0,0 +1,4 @@
+vim.cmd([[
+  au BufRead,BufNewFile *.zig set filetype=zig
+  au BufRead,BufNewFile *.zir set filetype=zir
+]])

+ 15 - 0
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")

+ 2 - 1
lua/default-config.lua

@@ -188,7 +188,8 @@ O = {
             formatter = '',
             autoformat = false,
             virtual_text = true
-        }
+        },
+        zig = {}
 
     },