scripts/nvim/init.lua
2024-12-10 11:23:46 +01:00

88 lines
3.1 KiB
Lua

#require 'lspconfig'.clangd.setup{}
vim.g.zig_fmt_autosave = 0
vim.cmd("set number")
vim.cmd("set tabstop=4")
vim.cmd("set softtabstop=4")
vim.cmd("set expandtab")
vim.cmd("set shiftwidth=4")
vim.cmd("set ttyfast")
vim.cmd("let mapleader=','")
local vim = vim
local Plug = vim.fn['plug#']
vim.call('plug#begin')
Plug('neovim/nvim-lspconfig') -- https://github.com/neovim/nvim-lspconfig
Plug('ziglang/zig.vim') -- https://github.com/ziglang/zig.vim
Plug('ray-x/lsp_signature.nvim')
Plug('nvim-lua/plenary.nvim')
Plug('nvim-telescope/telescope.nvim')
vim.call('plug#end')
require 'lspconfig'.zls.setup{}
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
local bufnr = args.buf
local client = vim.lsp.get_client_by_id(args.data.client_id)
if vim.tbl_contains({ 'null-ls' }, client.name) then -- blacklist lsp
return
end
require("lsp_signature").on_attach({
-- ... setup options here ...
}, bufnr)
end,
})
-- don't show parse errors in a separate window
vim.g.zig_fmt_parse_errors = 0
-- disable format-on-save from `ziglang/zig.vim`
vim.g.zig_fmt_autosave = 0
-- enable format-on-save from nvim-lspconfig + ZLS
--
-- Formatting with ZLS matches `zig fmt`.
-- The Zig FAQ answers some questions about `zig fmt`:
-- https://github.com/ziglang/zig/wiki/FAQ
vim.api.nvim_create_autocmd('BufWritePre',{
pattern = {"*.zig", "*.zon"},
callback = function(ev)
vim.lsp.buf.format()
end
})
local lspconfig = require('lspconfig')
lspconfig.zls.setup {
-- Server-specific settings. See `:help lspconfig-setup`
-- omit the following line if `zls` is in your PATH
-- cmd = { '/path/to/zls_executable' },
-- There are two ways to set config options:
-- - edit your `zls.json` that applies to any editor that uses ZLS
-- - set in-editor config options with the `settings` field below.
--
-- Further information on how to configure ZLS:
-- https://zigtools.org/zls/configure/
settings = {
zls = {
-- Whether to enable build-on-save diagnostics
--
-- Further information about build-on save:
-- https://zigtools.org/zls/guides/build-on-save/
-- enable_build_on_save = true,
-- omit the following line if `zig` is in your PATH
-- zig_exe_path = '/path/to/zig_executable'
}
}
}
local builtin = require('telescope.builtin')
vim.keymap.set('n','<leader>ff',builtin.find_files, { desc = "Telescope find files" })
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
vim.keymap.set('n', '<leader>fr', builtin.lsp_references, { desc = 'Telescope list reference under cursor' })
vim.keymap.set('n', '<leader>fs', builtin.lsp_document_symbols, { desc = 'Telescope list all document symbols' })
vim.keymap.set('n', '<leader>fd', builtin.lsp_definitions, { desc = 'Telescope defintions under cursor' })
vim.keymap.set('n', '<leader>ft', builtin.lsp_type_definitions, { desc = 'Telescope definition of type under cursor' })