diff options
Diffstat (limited to '')
| -rw-r--r-- | .config/nvim/lua/config/snippets.lua (renamed from .vim/lua/internal/snippets.lua) | 135 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/blink.lua (renamed from .vim/lua/internal/plugins/blink.lua) | 31 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/colorizer.lua (renamed from .vim/lua/internal/plugins/colorizer.lua) | 3 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/fzf.lua (renamed from .vim/lua/internal/plugins/fzf.lua) | 16 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/git.lua (renamed from .vim/lua/internal/plugins/git.lua) | 11 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/icons.lua (renamed from .vim/lua/internal/plugins/icons.lua) | 0 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/indent.lua (renamed from .vim/lua/internal/plugins/indent.lua) | 2 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/mini.lua (renamed from .vim/lua/internal/plugins/mini.lua) | 0 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/oil.lua (renamed from .vim/lua/internal/plugins/oil.lua) | 0 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/treesitter.lua (renamed from .vim/lua/internal/plugins/treesitter.lua) | 43 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/whichkey.lua (renamed from .vim/lua/internal/plugins/whichkey.lua) | 0 | ||||
| -rw-r--r-- | .vim/lua/internal/colors.lua | 18 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/aerial.lua | 14 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/cmp.lua | 31 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/colorschemes.lua | 59 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/csv.lua | 20 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/gentoo.lua | 15 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/lsp.lua | 290 | ||||
| l--------- | .vim/lua/internal/plugins/markdown.lua | 1 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/mediawiki.lua | 6 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/telescope.lua | 137 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/todo.lua | 48 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/writing.lua | 117 | ||||
| -rw-r--r-- | .vim/lua/internal/plugins/zk.lua | 22 | ||||
| -rw-r--r-- | .vim/lua/internal/zk.lua | 73 |
25 files changed, 122 insertions, 970 deletions
diff --git a/.vim/lua/internal/snippets.lua b/.config/nvim/lua/config/snippets.lua index be00884..e0c260e 100644 --- a/.vim/lua/internal/snippets.lua +++ b/.config/nvim/lua/config/snippets.lua @@ -1,72 +1,12 @@ local ls = require('luasnip') local types = require('luasnip.util.types') --- attach to builtin snippet hooks - -vim.snippet.expand = ls.lsp_expand - ----@diagnostic disable-next-line: duplicate-set-field -vim.snippet.active = function(filter) - filter = filter or {} - filter.direction = filter.direction or 1 - - if filter.direction == 1 then - return ls.expand_or_jumpable() - else - return ls.jumpable(filter.direction) - end -end - ----@diagnostic disable-next-line: duplicate-set-field -vim.snippet.jump = function(direction) - if direction == 1 then - if ls.expandable() then - return ls.expand_or_jump() - else - return ls.jumpable(1) and ls.jump(1) - end - else - return ls.jumpable(-1) and ls.jump(-1) - end -end - -vim.snippet.stop = ls.unlink_current - -local snip_env = { - -- snippet helpers - nl = function() - return ls.t({ '', '' }) - end, - exec = function(command) - return ls.f(function(_, _, ...) - local job = require('plenary.job'):new({ - command = vim.env.SHELL, - args = { '-c', ... }, - enable_recording = true, - }) - local res, exitcode = job:sync() - if not exitcode == 0 or #res == 0 then - error(string.format('exec "%s" failed', ...)) - end - return res - end, {}, { user_args = { command } }) - end, - -- condition helpers - cond = { - ts = function(capture) - return function() - return vim.tbl_contains(vim.treesitter.get_captures_at_cursor(), capture) - end - end, - }, -} - +-- configure luasnip ls.config.set_config({ enable_autosnippets = true, history = true, updateevents = 'TextChanged,TextChangedI', override_builtin = true, - snip_env = vim.tbl_deep_extend('error', ls.session.config.snip_env, snip_env), ext_opts = { [types.choiceNode] = { active = { @@ -79,10 +19,41 @@ ls.config.set_config({ }, }, }, + snip_env = vim.tbl_deep_extend('error', ls.session.config.snip_env, { + -- snippet helpers + nl = function() + return ls.t({ '', '' }) + end, + exec = function(command) + return ls.f(function(_, _, ...) + local job = require('plenary.job'):new({ + command = vim.env.SHELL, + args = { '-c', ... }, + enable_recording = true, + }) + local res, exitcode = job:sync() + if not exitcode == 0 or #res == 0 then + error(string.format('exec "%s" failed', ...)) + end + return res + end, {}, { user_args = { command } }) + end, + -- condition helpers + cond = { + ts = function(capture) + return function() + return vim.tbl_contains(vim.treesitter.get_captures_at_cursor(), capture) + end + end, + }, + }), }) -require('luasnip.loaders.from_lua').lazy_load({ paths = './snippets' }) +-- snippet loaders +require('luasnip.loaders.from_lua').lazy_load() +require('luasnip.loaders.from_vscode').lazy_load({ include = {} }) +-- keymaps vim.keymap.set({ 'i', 's' }, '<c-j>', function() return vim.snippet.active({ direction = 1 }) and vim.snippet.jump(1) end, { silent = true, desc = 'snippet: jump next' }) @@ -103,8 +74,10 @@ vim.keymap.set({ 'i', 's' }, '<c-p>', function() end end, { silent = true, desc = 'snippet: prev choice' }) +-- usercmds vim.api.nvim_create_user_command('EditSnippets', require('luasnip.loaders').edit_snippet_files, {}) +-- autocmds -- vim.api.nvim_create_autocmd('User', { -- pattern = 'LuasnipChoiceNodeEnter', -- callback = function() @@ -127,3 +100,41 @@ vim.api.nvim_create_user_command('EditSnippets', require('luasnip.loaders').edit -- end) -- end, -- }) + +-- unlink luasnip session on <esc> +vim.api.nvim_create_autocmd('ModeChanged', { + pattern = '*', + callback = function() + if ((vim.v.event.old_mode == 's' and vim.v.event.new_mode == 'n') or vim.v.event.old_mode == 'i') + and ls.session.current_nodes[vim.api.nvim_get_current_buf()] + and not ls.session.jump_active + and not require("blink.cmp").is_visible() + then + ls.unlink_current() + end + end +}) + +-- attach to builtin snippet hooks +vim.snippet.expand = ls.lsp_expand +vim.snippet.active = function(filter) + filter = filter or {} + filter.direction = filter.direction or 1 + if filter.direction == 1 then + return ls.expand_or_jumpable() + else + return ls.jumpable(filter.direction) + end +end +vim.snippet.jump = function(direction) + if direction == 1 then + if ls.expandable() then + return ls.expand_or_jump() + else + return ls.jumpable(1) and ls.jump(1) + end + else + return ls.jumpable(-1) and ls.jump(-1) + end +end +vim.snippet.stop = ls.unlink_current diff --git a/.vim/lua/internal/plugins/blink.lua b/.config/nvim/lua/plugins/blink.lua index 1d0e0ae..1122bcc 100644 --- a/.vim/lua/internal/plugins/blink.lua +++ b/.config/nvim/lua/plugins/blink.lua @@ -6,14 +6,7 @@ return { lazy = false, dependencies = { - { - 'L3MON4D3/LuaSnip', - version = 'v2.*', - build = 'make install_jsregexp', - config = function() - require('internal.snippets') - end, - }, + { 'L3MON4D3/LuaSnip' }, }, init = function() @@ -26,11 +19,29 @@ return { hl(0, 'BlinkCmpLabelDescription', { link = 'Comment', force = true }) end, + opts_extend = { 'sources.default' }, + opts = { -- TODO: -- 'prefer_rust_with_warning', requires nightly rust, due to: -- https://github.com/rust-lang/rust/issues/86656 - fuzzy = { implementation = 'lua' }, + fuzzy = { + implementation = 'lua', + sorts = { + function(a, b) + local prio = { + snippets = 99, + -- everyting else 0 + } + local a_priority = prio[a.source_id] or 0 + local b_priority = prio[b.source_id] or 0 + if a_priority ~= b_priority then return a_priority > b_priority end + end, + -- defaults + 'score', + 'sort_text' + }, + }, appearance = { -- fallback to cmp highlight names @@ -42,7 +53,6 @@ return { sources = { providers = { buffer = { min_keyword_length = 3 }, - snippets = { min_keyword_length = 3 }, }, }, @@ -80,6 +90,5 @@ return { snippets = { preset = 'luasnip' }, }, - opts_extend = { 'sources.default' }, }, } diff --git a/.vim/lua/internal/plugins/colorizer.lua b/.config/nvim/lua/plugins/colorizer.lua index cf55336..2608ae6 100644 --- a/.vim/lua/internal/plugins/colorizer.lua +++ b/.config/nvim/lua/plugins/colorizer.lua @@ -2,12 +2,11 @@ return { { 'NvChad/nvim-colorizer.lua', -- 'norcalli/nvim-colorizer.lua', - -- events = { 'VeryLazy' }, lazy = false, opts = { name = true, RRGGBB = true, - RRGGBBAA = false, + RRGGBBAA = true, rgb_fn = true, hsl_fn = true, mode = 'background', diff --git a/.vim/lua/internal/plugins/fzf.lua b/.config/nvim/lua/plugins/fzf.lua index e8c0a9c..efee6ef 100644 --- a/.vim/lua/internal/plugins/fzf.lua +++ b/.config/nvim/lua/plugins/fzf.lua @@ -28,11 +28,19 @@ return { ['ctrl-p'] = 'up', }, }, + -- actions = { + -- files = { + -- ['ctrl-q'] = { fn = fzf.actions.file_sel_to_qf }, + -- }, + -- }, fzf_colors = true, -- PICKER CONFIG files = { file_icons = true, }, + marks = { + marks = '[a-zA-Z]', + } }) end, keys = { @@ -41,8 +49,12 @@ return { { mode = 'n', ';b', '<cmd>FzfLua buffers<cr>', desc = 'fzf: buffers' }, { mode = 'n', ';f', '<cmd>FzfLua files<cr>', desc = 'fzf: find_files' }, { mode = 'n', ';g', '<cmd>FzfLua live_grep<cr>', desc = 'fzf: live_grep' }, - { mode = 'n', ';d', '<cmd>FzfLua diagnostics_workspace<cr>', desc = 'fzf: diagnostics' }, - { mode = 'n', ';h', '<cmd>FzfLua helptags<cr>', desc = 'fzf: diagnostics' }, + { mode = 'n', ';d', '<cmd>FzfLua diagnostics_workspace<cr>', desc = 'fzf: workspace diagnostics' }, + { mode = 'n', ';D', '<cmd>FzfLua diagnostics_document<cr>', desc = 'fzf: document diagnostics' }, + { mode = 'n', ';h', '<cmd>FzfLua helptags<cr>', desc = 'fzf: help' }, + { mode = 'n', ';s', '<cmd>FzfLua lsp_document_symbols<cr>', desc = 'fzf: document symbols' }, + { mode = 'n', ';w', '<cmd>FzfLua lsp_live_workspace_symbols<cr>', desc = 'fzf: workspace symbols' }, + { mode = 'n', ';m', '<cmd>FzfLua marks<cr>', desc = 'fzf: marks' }, { mode = 'n', ';v', diff --git a/.vim/lua/internal/plugins/git.lua b/.config/nvim/lua/plugins/git.lua index 056cc14..2561ad9 100644 --- a/.vim/lua/internal/plugins/git.lua +++ b/.config/nvim/lua/plugins/git.lua @@ -3,10 +3,7 @@ return { 'lewis6991/gitsigns.nvim', lazy = false, opts = { - signs = { - change = { text = '▋' }, - add = { text = '▋' }, - }, + debug_mode = false, }, keys = { { @@ -31,8 +28,12 @@ return { end, desc = 'Gitsigns: prev hunk', }, + { '<leader>g', '<nop>', desc = 'git' }, + { '<leader>g<space>', '<cmd>Gitsigns<cr>', desc = 'Gitsigns: select action' }, { '<leader>gb', '<cmd>Gitsigns blame<cr>', desc = 'Gitsigns: blame' }, - { '<leader>gs', '<cmd>Gitsigns<cr>', desc = 'Gitsigns: select action' }, + { '<leader>ga', '<cmd>Gitsigns stage_hunk<cr>', desc = 'Gitsigns: stage hunk' }, + { '<leader>ga', ':Gitsigns stage_hunk<cr>', desc = 'Gitsigns: stage hunk', mode = 'x' }, + { '<leader>gd', ':Gitsigns diffthis<cr>', desc = 'Gitsigns: diff' }, { ';c', function() diff --git a/.vim/lua/internal/plugins/icons.lua b/.config/nvim/lua/plugins/icons.lua index 9a597ab..9a597ab 100644 --- a/.vim/lua/internal/plugins/icons.lua +++ b/.config/nvim/lua/plugins/icons.lua diff --git a/.vim/lua/internal/plugins/indent.lua b/.config/nvim/lua/plugins/indent.lua index a27a328..e247c5a 100644 --- a/.vim/lua/internal/plugins/indent.lua +++ b/.config/nvim/lua/plugins/indent.lua @@ -12,11 +12,13 @@ return { enabled = true, show_start = false, show_end = false, + char = '▌', }, }, }, -- detect indent from the buffer contents { + enabled = false, 'NMAC427/guess-indent.nvim', lazy = false, opts = { diff --git a/.vim/lua/internal/plugins/mini.lua b/.config/nvim/lua/plugins/mini.lua index fb4c9a6..fb4c9a6 100644 --- a/.vim/lua/internal/plugins/mini.lua +++ b/.config/nvim/lua/plugins/mini.lua diff --git a/.vim/lua/internal/plugins/oil.lua b/.config/nvim/lua/plugins/oil.lua index 401fe8b..401fe8b 100644 --- a/.vim/lua/internal/plugins/oil.lua +++ b/.config/nvim/lua/plugins/oil.lua diff --git a/.vim/lua/internal/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua index b8b1d56..93f396d 100644 --- a/.vim/lua/internal/plugins/treesitter.lua +++ b/.config/nvim/lua/plugins/treesitter.lua @@ -1,41 +1,24 @@ return { { 'nvim-treesitter/nvim-treesitter', + branch = 'master', dependencies = { - -- TODO: https://github.com/nvim-treesitter/nvim-treesitter-context { 'nvim-treesitter/nvim-treesitter-refactor', lazy = false }, { 'nvim-treesitter/nvim-treesitter-textobjects', lazy = false }, - { 'nvim-treesitter/playground', cmd = { 'TSPlayground' } }, + -- { 'nvim-treesitter/playground', cmd = { 'TSPlayground' } }, }, lazy = false, build = ':TSUpdate', config = function(_, opts) - -- TODO: overwrite parser configs, insert gotmpl - require('nvim-treesitter.configs').setup(opts) -- use bash parser for gentoo ebuilds vim.treesitter.language.register('bash', 'ebuild') - - -- register mediawiki parser - -- local parser_configs = require('nvim-treesitter.parsers').get_parser_configs() - -- parser_configs.mediawiki = { - -- install_info = { - -- url = 'github.com/Ordoviz/tree-sitter-mediawiki', - -- files = { 'src/parser.c' }, - -- branch = 'main', - -- generate_requires_npm = false, - -- requires_generate_from_grammar = false, - -- }, - -- filetype = 'mediawiki', - -- } end, opts = { ensure_installed = { 'bash', - 'bibtex', 'c', - 'c_sharp', 'cmake', 'comment', 'cpp', @@ -45,37 +28,28 @@ return { 'gomod', 'gotmpl', 'gowork', - 'hare', - 'hcl', 'html', - 'java', 'javascript', 'json', 'jsonc', - 'kotlin', - 'latex', - 'ledger', 'lua', 'make', 'markdown', 'markdown_inline', 'ninja', - 'norg', 'python', - 'query', 'regex', 'rust', 'scss', 'sql', + 'todotxt', 'toml', 'typescript', + 'typst', 'vim', 'vimdoc', 'yaml', 'zig', - - -- external parsers - -- 'mediawiki', -- TODO: missing queries }, highlight = { enable = true, @@ -87,15 +61,9 @@ return { refactor = { navigation = { enable = true, - keymaps = { - goto_definition = 'gd', - }, }, smart_rename = { enable = true, - keymaps = { - smart_rename = 'grr', - }, }, }, textobjects = { @@ -112,7 +80,8 @@ return { ['al'] = '@loop.outer', ['is'] = '@scopename.inner', ['as'] = '@scopename.outer', - ['ic'] = '@comment.outer', + ['ic'] = '@comment.inner', + ['ac'] = '@comment.outer', }, selection_mode = { ['@comment.outer'] = 'V', diff --git a/.vim/lua/internal/plugins/whichkey.lua b/.config/nvim/lua/plugins/whichkey.lua index dc21eda..dc21eda 100644 --- a/.vim/lua/internal/plugins/whichkey.lua +++ b/.config/nvim/lua/plugins/whichkey.lua diff --git a/.vim/lua/internal/colors.lua b/.vim/lua/internal/colors.lua deleted file mode 100644 index a03501f..0000000 --- a/.vim/lua/internal/colors.lua +++ /dev/null @@ -1,18 +0,0 @@ -return { - base00 = '#080808', - base01 = '#db4d6d', - base02 = '#5dac81', - base03 = '#fad689', - base04 = '#58b2dc', - base05 = '#70649a', - base06 = '#69b0ac', - base07 = '#bdc0ba', - base08 = '#4f4f48', - base09 = '#cb1b45', - base0A = '#86c166', - base0B = '#f7d94c', - base0C = '#2ea9df', - base0D = '#8a6bbe', - base0E = '#81c7d4', - base0F = '#fffffb', -} \ No newline at end of file diff --git a/.vim/lua/internal/plugins/aerial.lua b/.vim/lua/internal/plugins/aerial.lua deleted file mode 100644 index 0094e17..0000000 --- a/.vim/lua/internal/plugins/aerial.lua +++ /dev/null @@ -1,14 +0,0 @@ -return { - { - 'stevearc/aerial.nvim', - dependencies = { - 'nvim-treesitter/nvim-treesitter', - 'echasnovski/mini.icons', - }, - opts = {}, - keys = { - { '<leader>b', '<cmd>AerialToggle<cr>' }, - { '<c-,>', '<cmd>AerialToggle<cr>' }, - }, - }, -} diff --git a/.vim/lua/internal/plugins/cmp.lua b/.vim/lua/internal/plugins/cmp.lua deleted file mode 100644 index 086e1ac..0000000 --- a/.vim/lua/internal/plugins/cmp.lua +++ /dev/null @@ -1,31 +0,0 @@ -return { - { - enabled = false, - -- 'hrsh7th/nvim-cmp', - 'iguanacucumber/magazine.nvim', -- perf improvements - name = 'nvim-cmp', - lazy = false, - -- event = {'InsertEnter', 'CmdlineEnter' }, - priority = 100, - dependencies = { - 'hrsh7th/cmp-buffer', - 'hrsh7th/cmp-nvim-lsp', - 'https://codeberg.org/FelipeLema/cmp-async-path', - -- 'hrsh7th/cmp-nvim-lua', - 'hrsh7th/cmp-nvim-lsp-signature-help', -- used to provide function signature completion - 'hrsh7th/cmp-cmdline', - 'dmitmel/cmp-cmdline-history', - 'hrsh7th/cmp-nvim-lsp-document-symbol', -- used by cmdline completion - -- 'f3fora/cmp-spell', - - { 'L3MON4D3/LuaSnip', run = 'make install_jsregexp' }, - 'saadparwaiz1/cmp_luasnip', - - 'onsails/lspkind.nvim', - }, - config = function() - require('internal.snippets') - require('internal.completion') - end, - }, -} diff --git a/.vim/lua/internal/plugins/colorschemes.lua b/.vim/lua/internal/plugins/colorschemes.lua deleted file mode 100644 index e533ebb..0000000 --- a/.vim/lua/internal/plugins/colorschemes.lua +++ /dev/null @@ -1,59 +0,0 @@ -return { - { - enabled = false, - 'olivercederborg/poimandres.nvim', - lazy = false, - config = function() - require('poimandres').setup({ - disable_background = true, - -- dim_nc_background = true, - }) - end, - -- optionally set the colorscheme within lazy config - -- init = function() - -- vim.cmd('colorscheme poimandres') - -- end, - }, - { - enabled = true, - 'https://github.com/slugbyte/lackluster.nvim', - lazy = true, - config = function() - local lackluster = require('lackluster') - lackluster.setup({ - tweak_color = { - lack = '#70649a', - -- luster = '#ff0000', - }, - tweak_syntax = { - comment = lackluster.color.gray6, - }, - tweak_background = { - normal = 'none', - }, - tweak_highlight = { - ['@markup.heading'] = { - fg = '#ffffff', - }, - ['@comment'] = { - italic = true, - }, - }, - tweak_ui = { - enable_end_of_buffer = true, - }, - }) - end, - init = function() - vim.g.darkmode_colorscheme_dark = 'lackluster' - end, - }, - { - enabled = true, - 'https://github.com/elaijuh/acme.nvim', - lazy = true, - init = function() - vim.g.darkmode_colorscheme_light = 'acme' - end, - }, -} diff --git a/.vim/lua/internal/plugins/csv.lua b/.vim/lua/internal/plugins/csv.lua deleted file mode 100644 index bc4cb2c..0000000 --- a/.vim/lua/internal/plugins/csv.lua +++ /dev/null @@ -1,20 +0,0 @@ -return { - { - 'emmanueltouzery/decisive.nvim', - lazy = true, - ft = { 'csv' }, - main = 'decisive', - keys = { - { - '<leader>a', - function() - require('decisive').align_csv({}) - require('decisive').show_sticky_header() - end, - desc = 'decisive: Align CSV', - }, - { '[,', ":lua require('decisive').align_csv_prev_col()<cr>", desc = 'decisive: Prev column' }, - { '],', ":lua require('decisive').align_csv_next_col()<cr>", desc = 'decisive: Next column' }, - }, - }, -} diff --git a/.vim/lua/internal/plugins/gentoo.lua b/.vim/lua/internal/plugins/gentoo.lua deleted file mode 100644 index 2fc8684..0000000 --- a/.vim/lua/internal/plugins/gentoo.lua +++ /dev/null @@ -1,15 +0,0 @@ -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, - }, -} diff --git a/.vim/lua/internal/plugins/lsp.lua b/.vim/lua/internal/plugins/lsp.lua deleted file mode 100644 index 7175a89..0000000 --- a/.vim/lua/internal/plugins/lsp.lua +++ /dev/null @@ -1,290 +0,0 @@ -return { - { - 'neovim/nvim-lspconfig', - lazy = false, - dependencies = { - { 'j-hui/fidget.nvim', opts = {} }, - 'stevearc/conform.nvim', - }, - config = function() - local capabilities = nil - if pcall(require, 'blink.cmp') then - capabilities = require('blink.cmp').get_lsp_capabilities() - elseif pcall(require, 'cmp_nvim_lsp') then - capabilities = require('cmp_nvim_lsp').default_capabilities() - end - - local lspconfig = require('lspconfig') - - local servers = { - clangd = { - cmd = { - 'clangd', - '--clang-tidy', - '--header-insertion=iwyu', - '--import-insertions', - '--header-insertion-decorators', - }, - }, - elixirls = { - cmd = { 'elixir-ls' }, - settings = { - elixirLS = { - dialyzerEnabled = false, - }, - }, - }, - gopls = { - settings = { - gopls = { - hints = { - assignVariableTypes = true, - compositeLiteralFields = true, - compositeLiteralTypes = true, - constantValues = true, - functionTypeParameters = true, - parameterNames = true, - rangeVariableTypes = true, - }, - analyses = { - -- composites = false, - nilness = true, - shadow = false, - unusedparams = true, - unusedwrite = true, - }, - gofumpt = true, - -- hoverKind = 'Structured', - }, - }, - }, - lua_ls = { - cmd = { 'luals' }, -- custom firejail-wrapped - -- cmd = { 'lua-language-server' }, - settings = { - Lua = { - runtime = { - version = 'LuaJIT', - path = vim.split(package.path, ';'), - }, - diagnostics = { - globals = { - '_G', - 'assert', - 'error', - 'os', - 'package', - 'pairs', - 'ipairs', - 'pcall', - 'require', - 'string', - 'table', - 'type', - 'unpack', - 'vim', - 'xpcall', - }, - neededFileStatus = { - ['code-style-check'] = 'Any', - }, - }, - format = { - enable = true, - defaultConfig = { - indent_style = 'space', - indent_size = '2', - }, - }, - workspace = { - library = { - [vim.env.VIMRUNTIME .. '/lua'] = true, - [vim.env.VIMRUNTIME .. '/lua/vim/lsp'] = true, - [vim.fn.stdpath('config') .. '/lua'] = true, - }, - }, - telemetry = { - enable = false, - }, - }, - }, - }, - rust_analyzer = { - settings = { - ['rust-analyzer'] = { - diagnostics = { - enable = true, - }, - checkOnSave = { - command = { 'cargo', 'clippy' }, - }, - }, - }, - }, - ts_ls = { - init_options = { - tsserver = { - path = '/usr/lib/node_modules/typescript/lib', - }, - }, - }, - pylsp = {}, - zls = { - cmd = { - 'zls', - '--log-level', - 'warn', - }, - }, - bashls = {}, - cssls = {}, - jsonls = {}, - html = {}, - superhtml = {}, - kotlin_language_server = { - -- cmd = vim.lsp.rpc.connect('127.0.0.1', 20100), - cmd = { - 'distrobox', - 'enter', - '-n', - 'android-dev', - '--', - '/usr/local/kotlin-langserver/bin/kotlin-language-server', - }, - init_options = { - formatting = { - formatter = 'none', -- disable because we use ktlint via gradle - }, - }, - }, - } - - for name, opts in pairs(servers) do - opts = vim.tbl_deep_extend('force', { - capabilities = capabilities, - }, opts) - lspconfig[name].setup(opts) - end - - vim.api.nvim_create_autocmd('LspAttach', { - callback = function() - -- local client = - -- assert(vim.lsp.get_client_by_id(args.data.client_id), 'must have valid client') - - vim.opt_local.omnifunc = 'v:lua.vim.lsp.omnifunc' - - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { buffer = true }) - vim.keymap.set('n', 'gR', vim.lsp.buf.references, { buffer = true }) - vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { buffer = true }) - vim.keymap.set('n', 'gT', vim.lsp.buf.type_definition, { buffer = true }) - vim.keymap.set('n', 'K', vim.lsp.buf.hover, { buffer = true }) - vim.keymap.set('n', 'grr', vim.lsp.buf.rename, { buffer = true }) - vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, { buffer = true }) - end, - }) - end, - }, - - { - 'folke/lazydev.nvim', - ft = 'lua', - -- could add a completion source to cmp? - }, - - -- formatting - { - 'stevearc/conform.nvim', - lazy = false, - opts = { - formatters_by_ft = { - lua = { 'stylua' }, - go = { 'goimports', 'gofmt' }, - python = { 'ruff_format' }, - }, - }, - config = function(_, opts) - require('conform').setup(opts) - - vim.api.nvim_create_autocmd('BufWritePre', { - callback = function(args) - if vim.g.nofmt then - return - end - require('conform').format({ - bufnr = args.buf, - lsp_fallback = true, - quiet = true, - }) - end, - }) - end, - }, - - -- linting - { - 'nvimtools/none-ls.nvim', - dependencies = { 'nvim-lua/plenary.nvim' }, - event = 'VeryLazy', - config = function() - local nls = require('null-ls') - nls.setup({ - sources = { - -- https://github.com/nvimtools/none-ls.nvim/blob/main/doc/BUILTINS.md - -- nls.builtins.code_actions.gitsigns, - nls.builtins.code_actions.impl, - - -- nls.builtins.completion.spell, - - -- nls.builtins.diagnostics.checkmake, - -- nls.builtins.diagnostics.cmake_lint, - -- nls.builtins.diagnostics.cppcheck, - -- nls.builtins.diagnostics.gccdiag, - nls.builtins.diagnostics.golangci_lint, - -- nls.builtins.diagnostics.hadolint, - -- nls.builtins.diagnostics.pylint, - -- nls.builtins.diagnostics.selene, - -- nls.builtins.diagnostics.semgrep, - nls.builtins.diagnostics.sqlfluff, - -- nls.builtins.diagnostics.stylelint, - -- nls.builtins.diagnostics.textidote, - nls.builtins.diagnostics.vale, - }, - }) - end, - }, - - -- diagnostics - { - enabled = true, - 'rachartier/tiny-inline-diagnostic.nvim', - lazy = false, - opts = { - preset = 'nonerdfont', - signs = { - left = '', - right = '', - diag = '', - arrow = '◂ ', - up_arrow = '▴ ', - }, - options = { - throttle = 0, - show_source = { - enabled = true, - }, - multilines = { - enabled = false, - always_show = false, - }, - -- break_line = { enabled = true }, - show_all_diags_on_cursorline = true, - }, - }, - config = function(_, opts) - require('tiny-inline-diagnostic').setup(opts) - if vim.o.background == 'light' then - require('tiny-inline-diagnostic').change({}, { mixing_color = '#aaaaaa' }) - end - end, - }, -} diff --git a/.vim/lua/internal/plugins/markdown.lua b/.vim/lua/internal/plugins/markdown.lua deleted file mode 120000 index 5b578d5..0000000 --- a/.vim/lua/internal/plugins/markdown.lua +++ /dev/null @@ -1 +0,0 @@ -writing.lua \ No newline at end of file diff --git a/.vim/lua/internal/plugins/mediawiki.lua b/.vim/lua/internal/plugins/mediawiki.lua deleted file mode 100644 index f557627..0000000 --- a/.vim/lua/internal/plugins/mediawiki.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - { - 'chikamichi/mediawiki.vim', - ft = { 'mediawiki' }, - }, -} diff --git a/.vim/lua/internal/plugins/telescope.lua b/.vim/lua/internal/plugins/telescope.lua deleted file mode 100644 index 2e9341b..0000000 --- a/.vim/lua/internal/plugins/telescope.lua +++ /dev/null @@ -1,137 +0,0 @@ -return { - { - enabled = false, - 'nvim-telescope/telescope.nvim', - lazy = false, - dependencies = { - { 'nvim-lua/plenary.nvim' }, - { - 'nvim-telescope/telescope-fzf-native.nvim', - build = 'cmake -S. -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release', - }, - { 'nvim-telescope/telescope-ui-select.nvim' }, - { - 'prochri/telescope-all-recent.nvim', - lazy = false, - dependencies = { - 'nvim-telescope/telescope.nvim', - 'kkharji/sqlite.lua', - }, - after = { 'nvim-telescope/telescope-ui-select.nvim' }, - opts = {}, - }, - }, - config = function(spec, _) - require('telescope').setup({ - defaults = require('telescope.themes').get_ivy({ - prompt = false, - borderchars = { - preview = { '─', '│', '─', '│', '┌', '┐', '┘', '└' }, - }, - }), - - extensions = { - wrap_results = true, - - fzf = {}, - - ['ui-select'] = { - require('telescope.themes').get_ivy({ - prompt = false, - -- sharp edges please - borderchars = { - preview = { '─', '│', '─', '│', '┌', '┐', '┘', '└' }, - }, - layout_config = { height = 9 }, - }), - }, - }, - }) - - pcall(require('telescope').load_extension, 'fzf') - pcall(require('telescope').load_extension, 'ui-select') - - -- user commands - vim.api.nvim_create_user_command( - 'F', - 'Telescope find_files search_dirs=<args>', - { desc = 'Telescope find_files', nargs = '?' } - ) - vim.api.nvim_create_user_command( - 'G', - 'Telescope live_grep search_dirs=<args>', - { desc = 'Telescope live_grep', nargs = '?' } - ) - - -- keymaps - local builtin = require('telescope.builtin') - for _, o in ipairs(spec.keys) do - if not o[2] then - local mod = vim.split(o.desc, ': ')[2] - vim.keymap.set(o.mode, o[1], builtin[mod], { desc = o.desc }) - end - end - - -- highlights - vim.schedule(function() - vim.api.nvim_set_hl(0, 'TelescopeBorder', { fg = 'NvimDarkGrey4', force = true }) - vim.api.nvim_set_hl(0, 'TelescopeTitle', { fg = 'NvimLightMagenta', force = true }) - vim.api.nvim_set_hl(0, 'NormalFloat', { link = 'TelescopeNormal', force = true }) - end) - end, - keys = { - { mode = 'n', ';/', desc = 'telescope: current_buffer_fuzzy_find' }, - { mode = 'n', ';b', desc = 'telescope: buffers' }, - { mode = 'n', ';f', desc = 'telescope: find_files' }, - { mode = 'n', ';g', desc = 'telescope: live_grep' }, - { mode = 'n', ';d', desc = 'telescope: diagnostics' }, - { - mode = 'n', - ';v', - function() - require('telescope.builtin').find_files({ - prompt_title = 'vimrc', - search_dirs = { - vim.fn.stdpath('config'), - }, - }) - end, - desc = 'telescope: vim_config', - }, - { - mode = 'n', - ';;t', - '<cmd>Telescope<cr>', - desc = 'telescope: select (interactive)', - }, - { - mode = 'n', - ';;f', - function() - local dir - if vim.opt.filetype:get() == 'oil' then - dir = require('oil').get_current_dir() - else - dir = vim.fn.expand('%:p') - end - _G.feedkeys(':Telescope find_files search_dirs=' .. dir) - end, - desc = 'telescope: find_files (interactive)', - }, - { - mode = 'n', - ';;g', - function() - local dir - if vim.opt.filetype:get() == 'oil' then - dir = require('oil').get_current_dir() - else - dir = vim.fn.expand('%:p') - end - _G.feedkeys(':Telescope live_grep search_dirs=' .. dir) - end, - desc = 'telescope: live_grep (interactive)', - }, - }, - }, -} diff --git a/.vim/lua/internal/plugins/todo.lua b/.vim/lua/internal/plugins/todo.lua deleted file mode 100644 index d99458e..0000000 --- a/.vim/lua/internal/plugins/todo.lua +++ /dev/null @@ -1,48 +0,0 @@ -return { - { - 'folke/todo-comments.nvim', - dependencies = { 'nvim-lua/plenary.nvim' }, - lazy = false, - cmd = { 'TodoTelescope' }, - opts = { - merge_keywords = true, - keywords = { - FIX = { icon = '' }, - TODO = { icon = '' }, - HACK = { icon = '' }, - WARN = { icon = '' }, - PERF = { icon = '' }, - NOTE = { icon = '' }, - TEST = { icon = '' }, - }, - highlight = { - keyword = 'bg', - -- pattern = [[<(KEYWORDS)(|\(.+\))(:|)]], - pattern = [[<(KEYWORDS)(|\(.+\)):]], - }, - search = { - -- pattern = [[\b(KEYWORDS)(|\(.+\))(:|)]], - pattern = [[\b(KEYWORDS)(|\(.+\)):]], - }, - }, - keys = { - { mode = 'n', ';t', '<cmd>TodoFzfLua<cr>', desc = 'todo: list todos' }, - { - mode = 'n', - ']t', - function() - require('todo-comments').jump_next() - end, - desc = 'todo: next', - }, - { - mode = 'n', - '[t', - function() - require('todo-comments').jump_prev() - end, - desc = 'todo: prev', - }, - }, - }, -} diff --git a/.vim/lua/internal/plugins/writing.lua b/.vim/lua/internal/plugins/writing.lua deleted file mode 100644 index 8f207b7..0000000 --- a/.vim/lua/internal/plugins/writing.lua +++ /dev/null @@ -1,117 +0,0 @@ -return { - { - -- DESC: handy markdown commands - 'tadmccorkle/markdown.nvim', - ft = { 'markdown' }, - opts = { - mappings = false, - on_attach = function(buf) - vim.keymap.set('n', 'nl', '<cmd>MDListItemBelow<cr>', { buffer = buf }) - vim.keymap.set('n', 'nl', '<cmd>MDListItemAbove<cr>', { buffer = buf }) - vim.keymap.set('n', '<m-x>', '<cmd>MDTaskToggle<cr>', { buffer = buf }) - vim.keymap.set('x', '<m-x>', '<cmd>MDTaskToggle<cr>', { buffer = buf }) - vim.keymap.set('x', '<m-l>', '<esc>gv<plug>(markdown_add_link_visual)', { buffer = buf }) - end, - }, - }, - { - -- DESC: pretty print markdown - 'MeanderingProgrammer/markdown.nvim', - name = 'render-markdown', -- needed if used together with markdown.nvim above - main = 'render-markdown', - dependencies = { - 'nvim-treesitter/nvim-treesitter', - 'echasnovski/mini.icons', - }, - ft = { 'markdown' }, - opts = { - completions = { blink = { enabled = true } }, - sign = { enabled = false }, - heading = { - width = 'block', - -- icons = { '❶ ', '❷ ', '❸ ', '❹ ', '❺ ', '❻ ' }, - icons = { - '▒ ', - '▒▒ ', - '▒▒▒ ', - '▒▒▒▒ ', - '▒▒▒▒▒ ', - '▒▒▒▒▒▒ ', - }, - signs = { 'ⅰ', 'ⅱ', 'ⅲ', 'ⅳ', 'ⅴ', 'ⅵ' }, - }, - bullet = { - icons = { '∙', '∘', '⋅', '⋄' }, - }, - checkbox = { - checked = { icon = ' ' }, - unchecked = { icon = ' ' }, - custom = { - todo = { raw = '[-]', rendered = ' ', highlight = 'RenderMarkdownTodo' }, - }, - }, - }, - init = vim.schedule_wrap(function() - vim.api.nvim_set_hl(0, 'RenderMarkdownH1Bg', { bg = 'NvimDarkCyan' }) - vim.api.nvim_set_hl(0, 'RenderMarkdownH1Fg', { fg = 'NvimLightCyan' }) - - vim.api.nvim_set_hl(0, 'RenderMarkdownH2Bg', { bg = 'NvimDarkMagenta' }) - vim.api.nvim_set_hl(0, 'RenderMarkdownH2Fg', { fg = 'NvimLightMagenta' }) - - vim.api.nvim_set_hl(0, 'RenderMarkdownH3Bg', { bg = 'NvimDarkYellow' }) - vim.api.nvim_set_hl(0, 'RenderMarkdownH3Fg', { fg = 'NvimLightYellow' }) - - vim.api.nvim_set_hl(0, 'RenderMarkdownH4Bg', { bg = 'NvimDarkBlue' }) - vim.api.nvim_set_hl(0, 'RenderMarkdownH4Fg', { fg = 'NvimLightBlue' }) - - vim.api.nvim_set_hl(0, 'RenderMarkdownH6Bg', { bg = 'NvimDarkRed' }) - vim.api.nvim_set_hl(0, 'RenderMarkdownH6Fg', { fg = 'NvimLightRed' }) - - vim.api.nvim_set_hl(0, '@markup.bold', { link = 'markdownBold' }) - vim.api.nvim_set_hl(0, '@markup.italic', { link = 'markdownItalic' }) - end), - }, - { - 'folke/zen-mode.nvim', - cmd = { 'ZenMode' }, - opts = { - window = { - height = 1, - options = { - number = false, - cursorline = false, - }, - }, - plugins = { - options = { - ruler = false, - showcmd = false, - laststatus = 0, - }, - gitsigns = { enabled = false }, - twilight = { enabled = true }, - }, - on_open = function() - vim.diagnostic.enable(false) - require('render-markdown').buf_disable() - end, - on_close = function() - vim.diagnostic.enable(true) - require('render-markdown').buf_enable() - end, - }, - dependencies = { - { - 'folke/twilight.nvim', - cmd = { 'Twilight' }, - opts = { - context = 24, - dimming = { - alpha = 0.3, - color = { 'Normal', '#ffffff' }, - }, - }, - }, - }, - }, -} diff --git a/.vim/lua/internal/plugins/zk.lua b/.vim/lua/internal/plugins/zk.lua deleted file mode 100644 index da108b0..0000000 --- a/.vim/lua/internal/plugins/zk.lua +++ /dev/null @@ -1,22 +0,0 @@ -return { - { - lazy = false, - 'zk-org/zk-nvim', - main = 'zk', - opts = { - picker = 'select', - }, - keys = { - -- these will work everywhere - { ';zc', ':ZkNew ', desc = 'zk: new note' }, - { ';zz', '<cmd>ZkNotes {sort={"modified"}}<cr>', desc = 'zk: list notes' }, - { ';zl', '<cmd>ZkLinks<cr>', desc = 'zk: list links' }, - { ';zb', '<cmd>ZkBacklinks<cr>', desc = 'zk: list backlinks' }, - { ';zt', '<cmd>ZkTags<cr>', desc = 'zk: list tags' }, - -- { ';zj', '<cmd>ZkNotes { dir = "500_journals" }<cr>' }, - }, - init = function() - require('internal.zk') - end, - }, -} diff --git a/.vim/lua/internal/zk.lua b/.vim/lua/internal/zk.lua deleted file mode 100644 index 4631e13..0000000 --- a/.vim/lua/internal/zk.lua +++ /dev/null @@ -1,73 +0,0 @@ -if not vim.env.ZK_NOTEBOOK_DIR then - vim.notify('Missing ZK_NOTEBOOK_DIR!', vim.log.levels.WARN) - return -end - -local api = require('zk.api') -local util = require('zk.util') - -local function insert_new_note() - -- TODO: catch error an delete note - api.new(nil, nil, function(err1, res1) - if not res1 then - error(err1) - end - - -- update index to include the new note - api.index(nil, nil, nil) - - local path = res1.path - local filename = vim.fs.basename(path) - local location = util.get_lsp_location_from_caret() - - api.link(filename, location, nil, {}, function(err2, res2) - if not res2 then - error(err2) - end - - -- open split - local buf = vim.api.nvim_create_buf(true, false) - vim.api.nvim_buf_set_name(buf, filename) - vim.api.nvim_buf_call(buf, function() - vim.cmd.edit(path) - end) - local win = vim.api.nvim_open_win(buf, false, { - split = 'below', - win = 0, - }) - -- move to split - vim.api.nvim_set_current_win(win) - vim.api.nvim_win_set_cursor(win, { -1, 0 }) - end) - end) -end - -local function on_attach() - if not vim.env.ZK_NOTEBOOK_DIR then - vim.notify('Missing ZK_NOTEBOOK_DIR!', vim.log.levels.WARN) - return - end - - -- enable virtual_text diagnostics to show link titles - vim.diagnostic.config({ virtual_text = true }) - - local opts = { remap = true, silent = false, buffer = true } - - -- -- list zettelkasten - -- vim.keymap.set('n', '-', ':call feedkeys(";zz")<cr>', opts) - - -- follow links - -- TODO: should this also work on outgoing links? - vim.keymap.set('n', '<cr>', '<cmd>lua vim.lsp.buf.definition()<cr>', opts) - - -- insert ref to new note and open note in split - vim.keymap.set({ 'n', 'i' }, ';zi', insert_new_note, opts) -end - --- setup binds to run when entering zettel buffers -vim.api.nvim_create_autocmd({ 'BufEnter' }, { - pattern = vim.env.ZK_NOTEBOOK_DIR .. '/*.md', - callback = on_attach, - group = vim.api.nvim_create_augroup('zk-on-attach', { clear = true }), - once = true, -}) |