diff options
Diffstat (limited to '.config/nvim')
| -rw-r--r-- | .config/nvim/after/ftplugin/typst.lua | 2 | ||||
| -rw-r--r-- | .config/nvim/after/lsp/tinymist.lua | 5 | ||||
| -rw-r--r-- | .config/nvim/lazy-lock.json | 38 | ||||
| -rw-r--r-- | .config/nvim/lua/config/diagnostics.lua | 13 | ||||
| -rw-r--r-- | .config/nvim/lua/config/filetypes.lua | 3 | ||||
| -rw-r--r-- | .config/nvim/lua/config/keymaps.lua | 9 | ||||
| -rw-r--r-- | .config/nvim/lua/config/lsp.lua | 36 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/colorizer.lua | 14 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/gentoo.lua | 25 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/git.lua | 1 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/lsp.lua | 25 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/mini.lua | 2 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/treesitter.lua | 65 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/whichkey.lua | 3 |
14 files changed, 126 insertions, 115 deletions
diff --git a/.config/nvim/after/ftplugin/typst.lua b/.config/nvim/after/ftplugin/typst.lua index e444bd5..a201c00 100644 --- a/.config/nvim/after/ftplugin/typst.lua +++ b/.config/nvim/after/ftplugin/typst.lua @@ -1,6 +1,6 @@ vim.api.nvim_buf_create_user_command(0, 'OpenPdf', function() local path = vim.api.nvim_buf_get_name(0) - vim.system({ 'xdg-open', path:gsub('%.typ$', '.pdf') }) + vim.system({ 'gio', 'open', path:gsub('%.typ$', '.pdf') }) end, { desc = 'typst: open pdf' }) vim.keymap.set('n', '<leader>o', '<cmd>OpenPdf<cr>', { desc = 'typst: open pdf', buffer = 0 }) diff --git a/.config/nvim/after/lsp/tinymist.lua b/.config/nvim/after/lsp/tinymist.lua index 77f0c66..d832f57 100644 --- a/.config/nvim/after/lsp/tinymist.lua +++ b/.config/nvim/after/lsp/tinymist.lua @@ -1,7 +1,8 @@ return { settings = { exportPdf = "onSave", - -- semanticTokens = "disabled", - formatterMode = "typstyle", + lint = { + enabled = true, + }, } } diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 8ee25fe..16e407a 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,30 +1,32 @@ { - "LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" }, - "blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" }, + "LuaSnip": { "branch": "master", "commit": "642b0c595e11608b4c18219e93b88d7637af27bc" }, + "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, "calcium.nvim": { "branch": "main", "commit": "7a7d3740083fa5669e1a0f25d133705624a23f0d" }, "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, - "fzf-lua": { "branch": "main", "commit": "fb8c50ba62a0daa433b7ac2b78834f318322b879" }, + "fzf-lua": { "branch": "main", "commit": "9f0432fdd7825ab163520045831a40b6df82ea28" }, "gentoo-syntax": { "branch": "master", "commit": "1b3a81ec62e5c843245dc431be0fe072add7eca8" }, "git-dev.nvim": { "branch": "master", "commit": "90c1395ca37a38228e287d0a843835a5a39ce553" }, "gitgraph.nvim": { "branch": "main", "commit": "c16daa7d7dd597caf9085644c009cfa80b75db8e" }, - "gitlinker.nvim": { "branch": "master", "commit": "bbe2a1254fc8fce21f3bbf9a020266a1c49799f7" }, - "gitsigns.nvim": { "branch": "main", "commit": "31217271a7314c343606acb4072a94a039a19fb5" }, + "gitlinker.nvim": { "branch": "master", "commit": "d7adb5e4ba5bab4fd443a3f4c46af3f4c864685d" }, + "gitsigns.nvim": { "branch": "main", "commit": "0d797daee85366bc242580e352a4f62d67557b84" }, "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" }, - "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, + "haunt.nvim": { "branch": "main", "commit": "666d83868bac8b38f1dc765d9da6eca4d92c826f" }, + "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" }, + "koda.nvim": { "branch": "main", "commit": "a560a332ccc1eb2caacb280a390213bb9f37b3cb" }, "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, "markdown.nvim": { "branch": "master", "commit": "093be911d90de03877f3009de36081c1a6242d51" }, - "mini.ai": { "branch": "main", "commit": "9eae720f2b20f6ad28cbfa0ddc524e10dc2c3201" }, - "mini.align": { "branch": "main", "commit": "6d8a6ca3a0fd313938374abccb50cad026229db3" }, - "mini.icons": { "branch": "main", "commit": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c" }, - "mini.operators": { "branch": "main", "commit": "c68010bb5498d418e056704710f71cd8d6fa227b" }, - "mini.surround": { "branch": "main", "commit": "d648a5601e1c48f175b07d10eba141da338a0a2a" }, - "nvim-colorizer.lua": { "branch": "master", "commit": "338409dd8a6ed74767bad3eb5269f1b903ffb3cf" }, - "nvim-lspconfig": { "branch": "master", "commit": "5bfcc89fd155b4ffc02d18ab3b7d19c2d4e246a7" }, - "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-treesitter-refactor": { "branch": "master", "commit": "9cc0d22becf72e18808208cd0ce85032a2b19c6f" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" }, - "oil.nvim": { "branch": "master", "commit": "f55b25e493a7df76371cfadd0ded5004cb9cd48a" }, + "mini.ai": { "branch": "main", "commit": "43eb2074843950a3a25aae56a5f41362ec043bfa" }, + "mini.align": { "branch": "main", "commit": "6f3c69cd57134ad8fbf1e85dcdc90cb37a8c75c8" }, + "mini.icons": { "branch": "main", "commit": "7fdae2443a0e2910015ca39ad74b50524ee682d3" }, + "mini.operators": { "branch": "main", "commit": "fccb5e3ef0cc319b217ed9c7db1a4672dd6b766c" }, + "mini.surround": { "branch": "main", "commit": "2715e04bea3ec9244f15b421dc5b18c0fe326210" }, + "none-ls-shellcheck.nvim": { "branch": "main", "commit": "0f84461241e76e376a95fb7391deac82dc3efdbf" }, + "none-ls.nvim": { "branch": "main", "commit": "7f9301e416533b5d74e2fb3b1ce5059eeaed748b" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "c8c2c19436d33165ec34fa90c975bc0a739fe3fb" }, + "nvim-lspconfig": { "branch": "master", "commit": "0203a9608d63eda57679b01e69f33a7b4c34b0d1" }, + "nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" }, + "oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, - "render-markdown": { "branch": "main", "commit": "48b4175dbca8439d30c1f52231cbe5a712c8f9d9" }, + "render-markdown": { "branch": "main", "commit": "4ae2f2e8e8c66d070f33cfb57cb6f867e3baf5d9" }, "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } } diff --git a/.config/nvim/lua/config/diagnostics.lua b/.config/nvim/lua/config/diagnostics.lua index 6314b83..158e3e4 100644 --- a/.config/nvim/lua/config/diagnostics.lua +++ b/.config/nvim/lua/config/diagnostics.lua @@ -23,7 +23,9 @@ vim.diagnostic.config({ underline = { severity = { min = vim.diagnostic.severity.WARN }, }, - float = false, + float = { + source = true, + }, virtual_text = false, virtual_lines = false, }) @@ -34,16 +36,7 @@ vim.api.nvim_set_hl(0, 'DiagnosticUnderlineWarn', commonhl) vim.api.nvim_set_hl(0, 'DiagnosticUnderlineInfo', commonhl) vim.api.nvim_set_hl(0, 'DiagnosticUnderlineHint', commonhl) -vim.keymap.set('n', '[d', function() - vim.diagnostic.jump({ count = 1, float = true }) -end, { desc = 'diagnostic: next' }) - -vim.keymap.set('n', ']d', function() - vim.diagnostic.jump({ count = -1, float = true }) -end, { desc = 'diagnostic: prev' }) - vim.keymap.set('n', 'DD', vim.diagnostic.open_float, { desc = 'diagnostic: current line' }) - vim.keymap.set('n', '<leader>d', '<nop>', { desc = "diagnostics" }) vim.keymap.set('n', '<leader>dd', vim.diagnostic.open_float, { desc = 'diagnostic: current line' }) vim.keymap.set('n', '<leader>dv', function() diff --git a/.config/nvim/lua/config/filetypes.lua b/.config/nvim/lua/config/filetypes.lua index f1428d2..f3657db 100644 --- a/.config/nvim/lua/config/filetypes.lua +++ b/.config/nvim/lua/config/filetypes.lua @@ -1,5 +1,6 @@ vim.filetype.add({ pattern = { + ['^/etc/portage/package.*/$'] = 'oil', ['todo.txt'] = 'todotxt', - } + }, }) diff --git a/.config/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua index 9c00f7b..a93b8fd 100644 --- a/.config/nvim/lua/config/keymaps.lua +++ b/.config/nvim/lua/config/keymaps.lua @@ -18,10 +18,10 @@ map( { desc = 'Open file under cursor' } ) -vim.api.nvim_create_autocmd({'BufEnter', 'BufWinEnter'}, { +vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWinEnter' }, { group = vim.api.nvim_create_augroup('bufclose', {}), callback = function() - if vim.list_contains({'help', 'nofile', 'quickfix'}, vim.bo.buftype) then + if vim.list_contains({ 'help', 'nofile', 'quickfix' }, vim.bo.buftype) then map('', 'q', '<cmd>close<cr>', { desc = 'Close buffer', buffer = 0 }) end end, @@ -34,3 +34,8 @@ map('n', '<leader><leader>x', function() end, { desc = 'source current file' }) map('n', '<leader>a', '<cmd>edit #<cr>', { desc = 'open alternative file' }) + +-- yank buffer name +map('n', ';yb', [[<cmd>let @+ = expand('%')<cr>]], { desc = 'yank buffer name' }) +map('n', ';yn', [[<cmd>let @+ = expand('%:t')<cr>]], { desc = 'yank filename' }) +map('n', ';yp', [[<cmd>let @+ = expand('%:p')<cr>]], { desc = 'yank path' }) diff --git a/.config/nvim/lua/config/lsp.lua b/.config/nvim/lua/config/lsp.lua index 282a3dc..b168014 100644 --- a/.config/nvim/lua/config/lsp.lua +++ b/.config/nvim/lua/config/lsp.lua @@ -1,4 +1,6 @@ -if not vim.lsp.enable then return end +if not vim.lsp.enable then + return +end local lsp = vim.lsp @@ -7,6 +9,8 @@ lsp.enable({ 'ccls', 'clangd', 'gopls', + 'harper_ls', + 'pylsp', 'rust_analyzer', 'superhtml', 'tinymist', @@ -14,17 +18,21 @@ lsp.enable({ 'zls', }) -local capabilities = nil +local capabilities = {} if pcall(require, 'blink.cmp') then capabilities = require('blink.cmp').get_lsp_capabilities() end lsp.config('*', { - root_markers = {'.git'}, - capabilities = capabilities + root_markers = { '.git' }, + capabilities = vim.tbl_deep_extend('error', capabilities, { + textDocument = { + semanticTokens = { multilineTokenSupport = true }, + }, + }), }) -vim.api.nvim_create_autocmd({'LspAttach'}, { +vim.api.nvim_create_autocmd({ 'LspAttach' }, { group = vim.api.nvim_create_augroup('lspattach', {}), callback = function(args) local client = assert(vim.lsp.get_client_by_id(args.data.client_id)) @@ -36,7 +44,7 @@ vim.api.nvim_create_autocmd({'LspAttach'}, { vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { desc = 'goto declaration' }) vim.keymap.set('n', 'gT', vim.lsp.buf.type_definition, { desc = 'goto type definition' }) vim.keymap.set('n', 'gR', vim.lsp.buf.references, { desc = 'show references' }) - vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, { desc = 'show code actions' }) + vim.keymap.set({ 'n', 'v' }, 'ga', vim.lsp.buf.code_action, { desc = 'show code actions' }) vim.keymap.set('n', 'grr', vim.lsp.buf.rename, { desc = 'rename' }) if client:supports_method('textDocument/implementation') then @@ -44,20 +52,24 @@ vim.api.nvim_create_autocmd({'LspAttach'}, { end if client:supports_method('textDocument/completion') then - vim.lsp.completion.enable(true, client.id, args.buf, {autotrigger = false}) + vim.lsp.completion.enable(true, client.id, args.buf, { autotrigger = false }) end if client:supports_method('textDocument/formatting') then - vim.keymap.set('n', '<leader>f', vim.lsp.buf.format, { desc = 'format' }) + vim.keymap.set('n', '<leader>f', vim.lsp.buf.format, { desc = 'format' }) end - if not client:supports_method('textDocument/willSaveWaitUntil') - and client:supports_method('textDocument/formatting') then - vim.api.nvim_create_autocmd({'BufWritePre'}, { + if + not client:supports_method('textDocument/willSaveWaitUntil') + and client:supports_method('textDocument/formatting') + then + vim.api.nvim_create_autocmd({ 'BufWritePre' }, { group = vim.api.nvim_create_augroup('lspattach', {}), buffer = args.buf, callback = function() - if vim.b.nofmt then return end + if vim.b.nofmt then + return + end vim.lsp.buf.format({ bufnr = args.buf, id = client.id, timeout_ms = 1000 }) end, }) diff --git a/.config/nvim/lua/plugins/colorizer.lua b/.config/nvim/lua/plugins/colorizer.lua index 2608ae6..c949058 100644 --- a/.config/nvim/lua/plugins/colorizer.lua +++ b/.config/nvim/lua/plugins/colorizer.lua @@ -4,12 +4,14 @@ return { -- 'norcalli/nvim-colorizer.lua', lazy = false, opts = { - name = true, - RRGGBB = true, - RRGGBBAA = true, - rgb_fn = true, - hsl_fn = true, - mode = 'background', + options = { + display = { + mode = 'background', + }, + parsers = { + css = true, + }, + }, }, }, } diff --git a/.config/nvim/lua/plugins/gentoo.lua b/.config/nvim/lua/plugins/gentoo.lua index 470e6de..15ef3aa 100644 --- a/.config/nvim/lua/plugins/gentoo.lua +++ b/.config/nvim/lua/plugins/gentoo.lua @@ -1,15 +1,18 @@ return { { - 'gentoo/gentoo-syntax', - -- ft = { 'ebuild' }, - -- init = function() - -- vim.api.nvim_create_autocmd('LspAttach', { - -- callback = function(args) - -- if vim.opt.filetype == 'ebuild' then - -- vim.lsp.stop_client(vim.lsp.get_clients({ bufnr = args.bufnr })) - -- end - -- end, - -- }) - -- end, + 'https://github.com/gentoo/gentoo-syntax', + lazy = false, + init = function() + vim.api.nvim_create_autocmd({ 'BufEnter' }, { + pattern = { '*/portage/package.*/' }, + group = vim.api.nvim_create_augroup('gentoo-syntax-oil', {}), + callback = function(args) + -- HACK: this should not be necessary + vim.defer_fn(function() + vim.opt_local.filetype = 'oil' + end, 50) + end, + }) + end, }, } diff --git a/.config/nvim/lua/plugins/git.lua b/.config/nvim/lua/plugins/git.lua index 04f0c9f..d1e3f7b 100644 --- a/.config/nvim/lua/plugins/git.lua +++ b/.config/nvim/lua/plugins/git.lua @@ -1,6 +1,7 @@ return { { 'lewis6991/gitsigns.nvim', + lazy = false, opts = { debug_mode = false, }, diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua index aebf3c4..311f1bc 100644 --- a/.config/nvim/lua/plugins/lsp.lua +++ b/.config/nvim/lua/plugins/lsp.lua @@ -2,5 +2,28 @@ return { { 'neovim/nvim-lspconfig', version = '^2.0', - } + }, + { + 'nvimtools/none-ls.nvim', + dependencies = { + 'nvim-lua/plenary.nvim', + 'gbprod/none-ls-shellcheck.nvim', + }, + config = function() + local nls = require('null-ls') + nls.setup({ + sources = { + -- nls.builtins.code_actions.impl, + -- nls.builtins.completions.spell, + + nls.builtins.formatting.stylua, + nls.builtins.formatting.shfmt, + nls.builtins.formatting.buf, + + require("none-ls-shellcheck.diagnostics"), + require("none-ls-shellcheck.code_actions"), + }, + }) + end, + }, } diff --git a/.config/nvim/lua/plugins/mini.lua b/.config/nvim/lua/plugins/mini.lua index 74cd962..fb4c9a6 100644 --- a/.config/nvim/lua/plugins/mini.lua +++ b/.config/nvim/lua/plugins/mini.lua @@ -2,7 +2,7 @@ return { { 'echasnovski/mini.align', version = false, - lazy = true, + lazy = false, opts = {}, }, { diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua index e064a8b..0978eb7 100644 --- a/.config/nvim/lua/plugins/treesitter.lua +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -1,19 +1,26 @@ return { { 'nvim-treesitter/nvim-treesitter', - branch = 'master', + branch = 'main', lazy = false, - dependencies = { - { 'nvim-treesitter/nvim-treesitter-refactor', lazy = false }, - { 'nvim-treesitter/nvim-treesitter-textobjects', lazy = false }, - -- { 'nvim-treesitter/playground', cmd = { 'TSPlayground' } }, - }, build = ':TSUpdate', config = function(_, opts) - require('nvim-treesitter.configs').setup(opts) - - -- use bash parser for gentoo ebuilds - vim.treesitter.language.register('bash', 'ebuild') + -- enable indent + vim.api.nvim_create_autocmd('FileType', { + callback = function() + pcall(vim.treesitter.start) + vim.bo.indentexpr = [[v:lua.require'nvim-treesitter'.indentexpr()]] + end, + }) + -- auto-install + local already_installed = require('nvim-treesitter').get_installed() + local parsers_installable = vim + .iter(opts.ensure_installed) + :filter(function(parser) + return not vim.tbl_contains(already_installed, parser) + end) + :totable() + require('nvim-treesitter').install(parsers_installable) end, opts = { ensure_installed = { @@ -31,7 +38,6 @@ return { 'html', 'javascript', 'json', - 'jsonc', 'lua', 'make', 'markdown', @@ -51,43 +57,6 @@ return { 'yaml', 'zig', }, - highlight = { - enable = true, - additional_vim_regex_highlighting = { 'markdown' }, - }, - indent = { - enable = true, - }, - refactor = { - navigation = { - enable = true, - }, - smart_rename = { - enable = true, - }, - }, - textobjects = { - select = { - enable = true, - keymaps = { - ['ib'] = '@block.inner', - ['ab'] = '@block.outer', - -- ['ic'] = '@conditional.inner', - -- ['ac'] = '@conditional.outer', - ['if'] = '@function.inner', - ['af'] = '@function.outer', - ['il'] = '@loop.inner', - ['al'] = '@loop.outer', - ['is'] = '@scopename.inner', - ['as'] = '@scopename.outer', - ['ic'] = '@comment.inner', - ['ac'] = '@comment.outer', - }, - selection_mode = { - ['@comment.outer'] = 'V', - }, - }, - }, }, }, } diff --git a/.config/nvim/lua/plugins/whichkey.lua b/.config/nvim/lua/plugins/whichkey.lua index dc21eda..cb89df4 100644 --- a/.config/nvim/lua/plugins/whichkey.lua +++ b/.config/nvim/lua/plugins/whichkey.lua @@ -3,8 +3,7 @@ return { 'folke/which-key.nvim', event = 'VeryLazy', opts = { - sort = { 'alphanum' }, - icons = { separator = '→ ', group = '🞱 ' }, + icons = { separator = '→ ', group = ' +' }, }, }, } |