summaryrefslogtreecommitdiff
path: root/nvim/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/init.lua')
-rw-r--r--nvim/init.lua55
1 files changed, 7 insertions, 48 deletions
diff --git a/nvim/init.lua b/nvim/init.lua
index 6276ecd..aabd42b 100644
--- a/nvim/init.lua
+++ b/nvim/init.lua
@@ -1,5 +1,7 @@
require("config.lazy")
require("config.lsp")
+require("config.trailing-spaces")
+require("config.keymaps")
vim.o.background = "dark"
vim.o.tabstop = 4
@@ -9,52 +11,9 @@ vim.o.number = true
vim.o.signcolumn = "yes"
vim.cmd([[colorscheme gruvbox]])
--- highlights trailing spaces
-vim.cmd('match Search /\\s\\+$/')
-
--- disable highlight when going into insert mode
-vim.api.nvim_create_autocmd({'ModeChanged'}, {
- pattern = {'*:i'},
- command = 'match none',
-})
-
--- highlights trailing spaces when going back to normal mode
-vim.api.nvim_create_autocmd({'ModeChanged'}, {
- pattern = {'*:n'},
- command = 'match Search /\\s\\+$/',
-})
-
-vim.keymap.set('n', '<leader>t', ':%s/\\s\\+$//g<CR>', { noremap = true, silent = true, desc = 'Remove Trailing Whitespaces' })
-
-vim.keymap.set('n', '<leader>c', '<C-w>c', { noremap = true, silent = true, desc = 'Close window' })
-vim.keymap.set('n', '<leader>o', '<C-w>o', { noremap = true, silent = true, desc = 'Close other windows' })
-
--- z means laZy (plugin manager)
-vim.keymap.set('n', '<leader>z', ':Lazy<CR>', { noremap = true, silent = true, desc = 'Open Lazy.nvim' })
-
--- LSP binds
--- default gd searches only in current buffer as a keyword
-vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { noremap = true, silent = true, desc = 'Open definition' })
-
--- Fugitive shortcuts
-vim.keymap.set('n', '<leader>gd', ':Gvdiffsplit<CR>', { noremap = true, silent = true, desc = 'Git diff (unstaged changes)' })
-vim.keymap.set('n', '<leader>gD', ':Gvdiffsplit HEAD<CR>', { noremap = true, silent = true, desc = 'Git diff (all changes after HEAD)' })
-vim.keymap.set('n', '<leader>gs', ':Git<CR>', { noremap = true, silent = true, desc = 'Git status' })
-vim.keymap.set('n', '<leader>gb', ':Git blame<CR>', { noremap = true, silent = true, desc = 'Git blame' })
-vim.keymap.set('n', '<leader>gl', ':Git log<CR>', { noremap = true, silent = true, desc = 'Git log' })
-vim.keymap.set('n', '<leader>gL', ':0Gclog<CR>', { noremap = true, silent = true, desc = 'Git log: this file' })
-vim.keymap.set('n', '<leader>ge', ':Gedit<CR>', { noremap = true, silent = true, desc = 'Git: return to worktree' })
-
-vim.keymap.set('n', '<leader>e', ':lua MiniFiles.open(vim.api.nvim_buf_get_name(0), false)<CR>', { noremap = true, silent = true, desc = 'File Explorer' })
-vim.keymap.set('n', '<leader>aa', ':argadd<CR>:argdedupe<CR>', { noremap = true, silent = true, desc = 'Add to args' })
-vim.keymap.set('n', '<leader>ad', ':argdelete %<CR>', { noremap = true, silent = true, desc = 'Delete from args' })
-vim.keymap.set('n', '<leader>lr', ':LspRestart<CR>', { noremap = true, silent = true, desc = 'LSP: restart' })
-vim.keymap.set('n', '<leader>lx', ':LspStop<CR>', { noremap = true, silent = true, desc = 'LSP: stop' })
-vim.keymap.set('n', '<leader>ll', ':LspStart<CR>', { noremap = true, silent = true, desc = 'LSP: start' })
-vim.keymap.set('n', '<leader>li', ':LspInfo<CR>', { noremap = true, silent = true, desc = 'LSP: info' })
-
--- LSP diagnostic info config (erorrs, warnings, etc.)
-vim.diagnostic.config({
- -- use virtual text to show diagnostic messages
- virtual_text = true,
+-- auto-enable tree-sitter; pcall hides error if buffer unsupported
+vim.api.nvim_create_autocmd("FileType", {
+ callback = function()
+ pcall(vim.treesitter.start)
+ end,
})