-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathinit.lua
More file actions
63 lines (54 loc) · 2.67 KB
/
init.lua
File metadata and controls
63 lines (54 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
vim.opt.relativenumber = true
vim.opt.clipboard = "unnamedplus"
vim.opt.guifont = "Adwaita Mono:h14"
vim.cmd('colorscheme kanagawa')
vim.g.mapleader = " "
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>f', builtin.git_files, {})
vim.keymap.set('n', '<leader>pf', builtin.find_files, {})
vim.keymap.set('n', '<leader>s', function() builtin.lsp_document_symbols { symbol_width = 50 } end, {})
vim.keymap.set('n', '<leader>c', builtin.commands, {})
vim.keymap.set('n', '<leader>t', builtin.treesitter, {})
vim.keymap.set('n', '<leader>d', function() builtin.diagnostics({ bufnr = 0 }) end, {})
vim.keymap.set('n', '<leader>D', vim.diagnostic.open_float, {})
vim.keymap.set('n', 'gd', builtin.lsp_definitions, {})
vim.keymap.set('n', 'gr', builtin.lsp_references, {})
vim.keymap.set('n', 'gi', builtin.lsp_implementations, {})
vim.keymap.set('n', '<leader>b', builtin.buffers, {})
vim.keymap.set('n', '<C-g>', builtin.grep_string, {})
vim.keymap.set('n', 'L', builtin.live_grep, {})
vim.keymap.set('n', 'z=', builtin.spell_suggest, {})
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, {})
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, {})
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help { border = "rounded" } end, {})
vim.diagnostic.config({
virtual_text = { current_line = true },
float = { border = "rounded" },
})
vim.api.nvim_create_autocmd("BufWritePre", { callback = function() vim.lsp.buf.format() end })
vim.keymap.set("n", "K", function() vim.lsp.buf.hover { border = "rounded" } end, {})
local cmp = require('cmp')
cmp.setup({
sources = { { name = 'nvim_lsp', keyword_length = 2 }, { name = 'path' }, { name = 'buffer', keyword_length = 2 } },
mapping = cmp.mapping.preset.insert({
['<CR>'] = cmp.mapping.confirm({ select = true }),
['<Up>'] = cmp.mapping.select_prev_item(),
['<Down>'] = cmp.mapping.select_next_item(),
}),
window = {
completion = cmp.config.window.bordered({ border = 'rounded' }),
documentation = cmp.config.window.bordered({ border = 'rounded' })
},
})
vim.lsp.config('gopls', { cmd_env = { GOOS = "js", GOARCH = "wasm" } })
vim.lsp.config('golangci_lint_ls', { cmd_env = { GOOS = "js", GOARCH = "wasm" } })
vim.lsp.config('nil_ls', { settings = { ['nil'] = { formatting = { command = { "nixfmt" } } } } })
local lsps = { "pyrefly", "golangci_lint_ls", "gopls", "lua_ls", "nil_ls", "pyright", "rubocop", "ts_ls", "zls",
'superhtml' }
for _, name in ipairs(lsps) do
vim.lsp.enable(name)
end
vim.api.nvim_create_autocmd('FileType', {
pattern = { 'c', 'cpp', 'go', 'javascript', 'just', 'nix', 'lua', 'python', 'ruby', 'sql', 'terraform', 'typescript', 'zig' },
callback = function() vim.treesitter.start() end,
})