summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nvim/init.lua55
-rw-r--r--nvim/lazy-lock.json8
-rw-r--r--nvim/lua/config/keymaps.lua27
-rw-r--r--nvim/lua/config/lsp.lua6
-rw-r--r--nvim/lua/config/plugins/tree-sitter.lua40
-rw-r--r--nvim/lua/config/trailing-spaces.lua16
6 files changed, 82 insertions, 70 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,
})
diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json
index 10ad0a2..17667d5 100644
--- a/nvim/lazy-lock.json
+++ b/nvim/lazy-lock.json
@@ -3,16 +3,16 @@
"auto-dark-mode.nvim": { "branch": "master", "commit": "e300259ec777a40b4b9e3c8e6ade203e78d15881" },
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
- "fzf-lua": { "branch": "main", "commit": "9f0432fdd7825ab163520045831a40b6df82ea28" },
+ "fzf-lua": { "branch": "main", "commit": "4deeecf611c0beba6455e6cf06e2c051a6169dd4" },
"gitsigns.nvim": { "branch": "main", "commit": "8d82c240f190fc33723d48c308ccc1ed8baad69d" },
"gruvbox.nvim": { "branch": "main", "commit": "334d5fd49fc8033f26408425366c66c6390c57bb" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"mini.files": { "branch": "main", "commit": "ced297546b8fdb8e215d416d4753a735514a2fe0" },
"mini.icons": { "branch": "main", "commit": "7fdae2443a0e2910015ca39ad74b50524ee682d3" },
- "nvim-lspconfig": { "branch": "master", "commit": "fb5fa30626ae10f7f79f740059d3769993936ecb" },
+ "nvim-lspconfig": { "branch": "master", "commit": "c588db330592fa477a70d2fee6ba20a57194bdc3" },
"nvim-surround": { "branch": "main", "commit": "1098d7b3c34adcfa7feb3289ee434529abd4afd1" },
- "nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" },
- "nvim-web-devicons": { "branch": "master", "commit": "95b7a002d5dba1a42eb58f5fac5c565a485eefd0" },
+ "nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
+ "nvim-web-devicons": { "branch": "master", "commit": "6e76c5e47e957fbf080b1fdac165c66dbd2e7cfb" },
"schemastore.nvim": { "branch": "main", "commit": "35d19ffb25c9cf160f515360e9d8286cdd2c3d4f" },
"vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" },
"vim-prettier": { "branch": "master", "commit": "7dbdbb12c50a9f4ba72390cce2846248e4368fd0" }
diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua
new file mode 100644
index 0000000..de2c737
--- /dev/null
+++ b/nvim/lua/config/keymaps.lua
@@ -0,0 +1,27 @@
+
+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' })
diff --git a/nvim/lua/config/lsp.lua b/nvim/lua/config/lsp.lua
index b12b10d..6507c67 100644
--- a/nvim/lua/config/lsp.lua
+++ b/nvim/lua/config/lsp.lua
@@ -1,3 +1,9 @@
+-- LSP diagnostic info config (erorrs, warnings, etc.)
+vim.diagnostic.config({
+ -- use virtual text to show diagnostic messages
+ virtual_text = true,
+})
+
-- requires json language service - npm i -g vscode-langservers-extracted
vim.lsp.enable('jsonls')
vim.lsp.config('jsonls', {
diff --git a/nvim/lua/config/plugins/tree-sitter.lua b/nvim/lua/config/plugins/tree-sitter.lua
index d37f98b..a692c37 100644
--- a/nvim/lua/config/plugins/tree-sitter.lua
+++ b/nvim/lua/config/plugins/tree-sitter.lua
@@ -1,27 +1,31 @@
return {
{
"nvim-treesitter/nvim-treesitter",
- branch = 'master',
+ branch = 'main',
lazy = false,
build = ":TSUpdate",
config = function()
- require'nvim-treesitter.configs'.setup {
- -- A list of parser names, or "all" (the listed parsers MUST always be installed)
- ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "markdown", "markdown_inline" },
-
- -- Automatically install missing parsers when entering buffer
- -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
- auto_install = true,
-
- highlight = {
- enable = true,
- -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
- -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
- -- Using this option may slow down your editor, and you may see some duplicate highlights.
- -- Instead of true it can also be a list of languages
- additional_vim_regex_highlighting = false,
- },
- }
+ require('nvim-treesitter').install {
+ "bash",
+ "c",
+ "css",
+ "gitignore",
+ "html",
+ "ini", -- .npmrc
+ "javascript",
+ "json",
+ "lua",
+ "lua",
+ "markdown",
+ "markdown_inline", -- code blocks inside .md
+ "query",
+ "scss",
+ "tsx",
+ "typescript",
+ "vim",
+ "vimdoc",
+ "yaml",
+ }
end
}
}
diff --git a/nvim/lua/config/trailing-spaces.lua b/nvim/lua/config/trailing-spaces.lua
new file mode 100644
index 0000000..2bb4cbf
--- /dev/null
+++ b/nvim/lua/config/trailing-spaces.lua
@@ -0,0 +1,16 @@
+-- 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' })