-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.lua
116 lines (93 loc) · 3.19 KB
/
init.lua
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
if not vim.loop.fs_stat(lazypath) then
vim.fn.system {
'git',
'clone',
'--filter=blob:none',
'https://github.com/folke/lazy.nvim.git',
'--branch=stable', -- latest stable release
lazypath,
}
end
vim.opt.rtp:prepend(lazypath)
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
require("lazy").setup("plugins")
require("lsp")
require("plugins/others")
require("plugins/cmp")
require("plugins/lspconfig")
require("plugins/nvim-dap")
require("plugins/nvim-metals")
require("plugins/telescope")
require("plugins/treesitter")
require("plugins/whichkey")
vim.o.hlsearch = true
vim.o.rnu = true
vim.o.clipboard = 'unnamedplus'
vim.o.breakindent = true
vim.o.undofile = true
vim.o.ignorecase = true
vim.o.smartcase = true
vim.o.completeopt = 'menuone,noselect'
vim.keymap.set({ 'n', 'v' }, '<Space>', '<Nop>', { silent = true })
-- Diagnostic keymaps
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' })
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' })
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' })
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' })
-- Highlight on yank
local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true })
vim.api.nvim_create_autocmd('TextYankPost', {
callback = function()
vim.highlight.on_yank()
end,
group = highlight_group,
pattern = '*',
})
vim.keymap.set("n", "gD", vim.lsp.buf.definition)
vim.keymap.set("n", "K", vim.lsp.buf.hover)
vim.keymap.set("n", "gi", vim.lsp.buf.implementation)
vim.keymap.set("n", "gr", vim.lsp.buf.references)
vim.keymap.set("n", "gds", vim.lsp.buf.document_symbol)
vim.keymap.set("n", "gws", vim.lsp.buf.workspace_symbol)
vim.keymap.set("n", "<leader>cl", vim.lsp.codelens.run)
vim.keymap.set("n", "<leader>sh", vim.lsp.buf.signature_help)
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename)
vim.keymap.set("n", "<leader>f", vim.lsp.buf.format)
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action)
vim.keymap.set("n", "<leader>aa", vim.diagnostic.setqflist)
vim.keymap.set("n", "<leader>ae", function()
vim.diagnostic.setqflist({ severity = "E" })
end)
vim.keymap.set("n", "<leader>aw", function()
vim.diagnostic.setqflist({ severity = "W" })
end)
vim.keymap.set("n", "<leader>d", vim.diagnostic.setloclist)
vim.keymap.set("n", "[c", function()
vim.diagnostic.goto_prev({ wrap = false })
end)
vim.keymap.set("n", "]c", function()
vim.diagnostic.goto_next({ wrap = false })
end)
vim.keymap.set("n", "<leader>dc", function()
require("dap").continue()
end)
vim.keymap.set("n", "<leader>dr", function()
require("dap").repl.toggle()
end)
vim.keymap.set("n", "<leader>dK", function()
require("dap.ui.widgets").hover()
end)
vim.keymap.set("n", "<leader>dt", function()
require("dap").toggle_breakpoint()
end)
vim.keymap.set("n", "<leader>dso", function()
require("dap").step_over()
end)
vim.keymap.set("n", "<leader>dsi", function()
require("dap").step_into()
end)
vim.keymap.set("n", "<leader>dl", function()
require("dap").run_last()
end)