-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.lua
More file actions
104 lines (84 loc) · 3.17 KB
/
init.lua
File metadata and controls
104 lines (84 loc) · 3.17 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
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
require("vim._core.ui2").enable({})
-- Options
vim.g.mapleader = " "
vim.o.number = true
vim.o.relativenumber = true
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.o.winborder = "rounded"
-- vim.opt.completeopt = "menuone,noinsert,preselect,fuzzy,nosort,preview"
vim.opt.clipboard:append("unnamedplus")
-- vim.g.clipboard = "wl-copy"
-- Define LSP servers to enable
local servers = { "lua_ls", "pyright", "ts_ls", "gopls" }
-- Plugins setup
vim.pack.add({
"https://github.com/folke/tokyonight.nvim",
"https://github.com/folke/which-key.nvim",
"https://github.com/neovim/nvim-lspconfig",
"https://github.com/nvim-mini/mini.nvim",
"https://github.com/lewis6991/gitsigns.nvim",
"https://github.com/mason-org/mason.nvim",
"https://github.com/romus204/tree-sitter-manager.nvim",
"https://github.com/akinsho/toggleterm.nvim",
})
require("tree-sitter-manager").setup({
ensure_installed = { "lua", "python", "tsx", "go" },
auto_install = true,
highlight = true,
})
require("which-key").setup()
require("gitsigns").setup({ attach_to_untracked = true })
require("toggleterm").setup({
open_mapping = [[<c-t>]],
direction = "float",
})
require("mini.pick").setup()
require("mini.completion").setup()
require("mini.pairs").setup()
require("mini.files").setup()
require("mini.cmdline").setup()
require("mini.icons").setup()
require("mini.git").setup()
require("mini.statusline").setup()
require("mini.tabline").setup()
require('mini.bufremove').setup()
require('mini.comment').setup({
mappings = {
comment_line = '<leader>/',
comment_visual = '<leader>/',
},
})
vim.cmd.colorscheme("tokyonight-night")
-- Keymaps
vim.keymap.set("n", "<leader>f", ":Pick files<CR>", { desc = "Pick files by name" })
vim.keymap.set("n", "<leader>h", ":Pick help<CR>", { desc = "Pick help doc" })
vim.keymap.set("n", "<leader>g", ":Pick grep_live<CR>", { desc = "Grep word in workspace" })
vim.keymap.set("n", "<leader>b", ":Pick buffers<CR>", { desc = "Pick buffers by name" })
vim.keymap.set("n", "<leader>e", "<cmd>lua MiniFiles.open()<CR>", { desc = "Toggle mini file explorer" })
vim.keymap.set('n', '<leader>x', function()
require('mini.bufremove').delete(0, false)
end, { desc = 'Close current buffer' })
vim.keymap.set('n', '<Tab>', '<cmd>bnext<cr>', { desc = 'Next buffer' })
vim.keymap.set('n', '<S-Tab>', '<cmd>bprevious<cr>', { desc = 'Previous buffer' })
-- LSP
for _, server in ipairs(servers) do
vim.lsp.enable(server)
end
require("mason").setup()
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { desc = "Go to definition" })
vim.keymap.set("n", "fm", vim.lsp.buf.format, { desc = "Format Local buffer" })
vim.keymap.set("n", "df", vim.diagnostic.open_float, { desc = "Show line diagnostics" })
vim.diagnostic.config({ virtual_text = true })
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = vim.tbl_deep_extend("force", capabilities, require("mini.completion").get_lsp_capabilities())
vim.lsp.config("*", { capabilities = capabilities })
vim.lsp.config("lua_ls", {
settings = {
Lua = {
diagnostics = { globals = { "vim", "mp" } },
},
},
})