From 542613a0f58ccb3722c93b4b68677d7b5053fd57 Mon Sep 17 00:00:00 2001 From: Christian Segundo Date: Thu, 12 Oct 2023 15:29:11 +0200 Subject: Add nvim --- public/nvim/.nvim/.null-ls-root | 0 public/nvim/.nvim/ftdetect/hcl.vim | 7 + public/nvim/.nvim/ftdetect/jq.vim | 3 + public/nvim/.nvim/ftdetect/term.lua | 6 + public/nvim/.nvim/ftplugin/groovy.lua | 6 + public/nvim/.nvim/ftplugin/markdown.lua | 5 + public/nvim/.nvim/ftplugin/norg.lua | 3 + public/nvim/.nvim/ftplugin/sh.lua | 6 + public/nvim/.nvim/ftplugin/term.lua | 5 + public/nvim/.nvim/ftplugin/zig.vim | 1 + public/nvim/.nvim/indent/groovy.vim | 164 +++++++++++++++++++++ public/nvim/.nvim/init.lua | 49 ++++++ public/nvim/.nvim/lua/core/disable_builtin.lua | 16 ++ public/nvim/.nvim/lua/core/init.lua | 64 ++++++++ .../nvim/.nvim/lua/plugins/core/auto-session.lua | 6 + public/nvim/.nvim/lua/plugins/core/gitsigns.lua | 8 + public/nvim/.nvim/lua/plugins/core/luasnip.lua | 50 +++++++ .../nvim/.nvim/lua/plugins/core/nerdcommenter.lua | 18 +++ public/nvim/.nvim/lua/plugins/core/nvim-tree.lua | 36 +++++ public/nvim/.nvim/lua/plugins/core/tabline.lua | 3 + public/nvim/.nvim/lua/plugins/core/telescope.lua | 27 ++++ public/nvim/.nvim/lua/plugins/core/tmux.lua | 13 ++ public/nvim/.nvim/lua/plugins/core/treesitter.lua | 54 +++++++ public/nvim/.nvim/lua/plugins/core/which-key.lua | 45 ++++++ public/nvim/.nvim/lua/plugins/extra/copilot.lua | 33 +++++ public/nvim/.nvim/lua/plugins/extra/feline.lua | 84 +++++++++++ public/nvim/.nvim/lua/plugins/extra/neorg.lua | 36 +++++ .../nvim/.nvim/lua/plugins/extra/vim-fugitive.lua | 14 ++ .../lua/plugins/eyecandy/indent-blankline.lua | 11 ++ public/nvim/.nvim/lua/plugins/eyecandy/themes.lua | 24 +++ .../.nvim/lua/plugins/eyecandy/vim-illuminate.lua | 4 + .../.nvim/lua/plugins/eyecandy/virt-column.lua | 7 + public/nvim/.nvim/lua/plugins/lang/ansible.lua | 21 +++ public/nvim/.nvim/lua/plugins/lang/bash.lua | 40 +++++ public/nvim/.nvim/lua/plugins/lang/dockerfile.lua | 24 +++ public/nvim/.nvim/lua/plugins/lang/go.lua | 65 ++++++++ public/nvim/.nvim/lua/plugins/lang/groovy.lua | 38 +++++ public/nvim/.nvim/lua/plugins/lang/helm.lua | 6 + public/nvim/.nvim/lua/plugins/lang/jq.lua | 21 +++ public/nvim/.nvim/lua/plugins/lang/json.lua | 21 +++ public/nvim/.nvim/lua/plugins/lang/jsonnet.lua | 26 ++++ public/nvim/.nvim/lua/plugins/lang/lua.lua | 46 ++++++ public/nvim/.nvim/lua/plugins/lang/markdown.lua | 61 ++++++++ public/nvim/.nvim/lua/plugins/lang/perl.lua | 36 +++++ public/nvim/.nvim/lua/plugins/lang/promql.lua | 19 +++ public/nvim/.nvim/lua/plugins/lang/swift.lua | 35 +++++ public/nvim/.nvim/lua/plugins/lang/terraform.lua | 40 +++++ public/nvim/.nvim/lua/plugins/lang/typescript.lua | 34 +++++ public/nvim/.nvim/lua/plugins/lang/yaml.lua | 59 ++++++++ public/nvim/.nvim/lua/plugins/lang/zig.lua | 40 +++++ public/nvim/.nvim/lua/plugins/lsp/cmp.lua | 95 ++++++++++++ public/nvim/.nvim/lua/plugins/lsp/config.lua | 40 +++++ public/nvim/.nvim/lua/plugins/lsp/null-ls.lua | 5 + public/nvim/.nvim/lua/plugins/lsp/trouble.lua | 9 ++ public/nvim/.nvim/lua/snippets/lua.lua | 3 + public/nvim/.nvim/lua/snippets/sh/bash-find.lua | 32 ++++ public/nvim/.nvim/lua/snippets/sh/bash-misc.lua | 16 ++ public/nvim/.nvim/neovim.yaml | 24 +++ public/nvim/.nvim/plugin/qf-dd.vim | 30 ++++ public/nvim/.nvim/selene.toml | 1 + public/nvim/.nvim/spell/en.utf-8.add | 11 ++ public/nvim/.nvim/spell/en.utf-8.add.spl | Bin 0 -> 165 bytes 62 files changed, 1706 insertions(+) create mode 100644 public/nvim/.nvim/.null-ls-root create mode 100644 public/nvim/.nvim/ftdetect/hcl.vim create mode 100644 public/nvim/.nvim/ftdetect/jq.vim create mode 100644 public/nvim/.nvim/ftdetect/term.lua create mode 100644 public/nvim/.nvim/ftplugin/groovy.lua create mode 100644 public/nvim/.nvim/ftplugin/markdown.lua create mode 100644 public/nvim/.nvim/ftplugin/norg.lua create mode 100644 public/nvim/.nvim/ftplugin/sh.lua create mode 100644 public/nvim/.nvim/ftplugin/term.lua create mode 100644 public/nvim/.nvim/ftplugin/zig.vim create mode 100644 public/nvim/.nvim/indent/groovy.vim create mode 100644 public/nvim/.nvim/init.lua create mode 100644 public/nvim/.nvim/lua/core/disable_builtin.lua create mode 100644 public/nvim/.nvim/lua/core/init.lua create mode 100644 public/nvim/.nvim/lua/plugins/core/auto-session.lua create mode 100644 public/nvim/.nvim/lua/plugins/core/gitsigns.lua create mode 100644 public/nvim/.nvim/lua/plugins/core/luasnip.lua create mode 100644 public/nvim/.nvim/lua/plugins/core/nerdcommenter.lua create mode 100644 public/nvim/.nvim/lua/plugins/core/nvim-tree.lua create mode 100644 public/nvim/.nvim/lua/plugins/core/tabline.lua create mode 100644 public/nvim/.nvim/lua/plugins/core/telescope.lua create mode 100644 public/nvim/.nvim/lua/plugins/core/tmux.lua create mode 100644 public/nvim/.nvim/lua/plugins/core/treesitter.lua create mode 100644 public/nvim/.nvim/lua/plugins/core/which-key.lua create mode 100644 public/nvim/.nvim/lua/plugins/extra/copilot.lua create mode 100644 public/nvim/.nvim/lua/plugins/extra/feline.lua create mode 100644 public/nvim/.nvim/lua/plugins/extra/neorg.lua create mode 100644 public/nvim/.nvim/lua/plugins/extra/vim-fugitive.lua create mode 100644 public/nvim/.nvim/lua/plugins/eyecandy/indent-blankline.lua create mode 100644 public/nvim/.nvim/lua/plugins/eyecandy/themes.lua create mode 100644 public/nvim/.nvim/lua/plugins/eyecandy/vim-illuminate.lua create mode 100644 public/nvim/.nvim/lua/plugins/eyecandy/virt-column.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/ansible.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/bash.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/dockerfile.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/go.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/groovy.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/helm.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/jq.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/json.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/jsonnet.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/lua.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/markdown.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/perl.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/promql.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/swift.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/terraform.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/typescript.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/yaml.lua create mode 100644 public/nvim/.nvim/lua/plugins/lang/zig.lua create mode 100644 public/nvim/.nvim/lua/plugins/lsp/cmp.lua create mode 100644 public/nvim/.nvim/lua/plugins/lsp/config.lua create mode 100644 public/nvim/.nvim/lua/plugins/lsp/null-ls.lua create mode 100644 public/nvim/.nvim/lua/plugins/lsp/trouble.lua create mode 100644 public/nvim/.nvim/lua/snippets/lua.lua create mode 100644 public/nvim/.nvim/lua/snippets/sh/bash-find.lua create mode 100644 public/nvim/.nvim/lua/snippets/sh/bash-misc.lua create mode 100644 public/nvim/.nvim/neovim.yaml create mode 100644 public/nvim/.nvim/plugin/qf-dd.vim create mode 100644 public/nvim/.nvim/selene.toml create mode 100644 public/nvim/.nvim/spell/en.utf-8.add create mode 100644 public/nvim/.nvim/spell/en.utf-8.add.spl diff --git a/public/nvim/.nvim/.null-ls-root b/public/nvim/.nvim/.null-ls-root new file mode 100644 index 0000000..e69de29 diff --git a/public/nvim/.nvim/ftdetect/hcl.vim b/public/nvim/.nvim/ftdetect/hcl.vim new file mode 100644 index 0000000..1cb3a05 --- /dev/null +++ b/public/nvim/.nvim/ftdetect/hcl.vim @@ -0,0 +1,7 @@ +" Stolen from https://github.com/hashivim/vim-terraform/blob/master/ftdetect/hcl.vim +" By default Vim doesn't recognize .tf files as Terraform +silent! autocmd! filetypedetect BufRead,BufNewFile *.tf +autocmd BufRead,BufNewFile *.hcl set filetype=hcl +autocmd BufRead,BufNewFile .terraformrc,terraform.rc set filetype=hcl +autocmd BufRead,BufNewFile *.tf,*.tfvars set filetype=terraform +autocmd BufRead,BufNewFile *.tfstate,*.tfstate.backup set filetype=json diff --git a/public/nvim/.nvim/ftdetect/jq.vim b/public/nvim/.nvim/ftdetect/jq.vim new file mode 100644 index 0000000..bd364c8 --- /dev/null +++ b/public/nvim/.nvim/ftdetect/jq.vim @@ -0,0 +1,3 @@ +" https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#jqls +autocmd BufRead,BufNewFile *.jq set filetype=jq +autocmd BufRead,BufNewFile *.yq set filetype=jq diff --git a/public/nvim/.nvim/ftdetect/term.lua b/public/nvim/.nvim/ftdetect/term.lua new file mode 100644 index 0000000..5124399 --- /dev/null +++ b/public/nvim/.nvim/ftdetect/term.lua @@ -0,0 +1,6 @@ +vim.api.nvim_create_autocmd({ "TermOpen" }, { + pattern = { "*" }, + callback = function(_) + vim.o.ft = "term" + end, +}) diff --git a/public/nvim/.nvim/ftplugin/groovy.lua b/public/nvim/.nvim/ftplugin/groovy.lua new file mode 100644 index 0000000..ae8636a --- /dev/null +++ b/public/nvim/.nvim/ftplugin/groovy.lua @@ -0,0 +1,6 @@ +local l = vim.opt_local + +l.expandtab = true +l.smartindent = false +l.tabstop = 4 +l.shiftwidth = 4 diff --git a/public/nvim/.nvim/ftplugin/markdown.lua b/public/nvim/.nvim/ftplugin/markdown.lua new file mode 100644 index 0000000..84da7b9 --- /dev/null +++ b/public/nvim/.nvim/ftplugin/markdown.lua @@ -0,0 +1,5 @@ +local l = vim.opt_local + +l.conceallevel = 2 +l.wrap = true +l.spell = true diff --git a/public/nvim/.nvim/ftplugin/norg.lua b/public/nvim/.nvim/ftplugin/norg.lua new file mode 100644 index 0000000..ae6a7ea --- /dev/null +++ b/public/nvim/.nvim/ftplugin/norg.lua @@ -0,0 +1,3 @@ +local l = vim.opt_local + +l.conceallevel = 3 diff --git a/public/nvim/.nvim/ftplugin/sh.lua b/public/nvim/.nvim/ftplugin/sh.lua new file mode 100644 index 0000000..4c20ce4 --- /dev/null +++ b/public/nvim/.nvim/ftplugin/sh.lua @@ -0,0 +1,6 @@ +local l = vim.opt_local + +l.expandtab = true +l.smartindent = true +l.tabstop = 8 +l.shiftwidth = 8 diff --git a/public/nvim/.nvim/ftplugin/term.lua b/public/nvim/.nvim/ftplugin/term.lua new file mode 100644 index 0000000..84faba2 --- /dev/null +++ b/public/nvim/.nvim/ftplugin/term.lua @@ -0,0 +1,5 @@ +local l = vim.opt_local + +l.number = false +l.relativenumber = false +l.colorcolumn = nil diff --git a/public/nvim/.nvim/ftplugin/zig.vim b/public/nvim/.nvim/ftplugin/zig.vim new file mode 100644 index 0000000..d20fab2 --- /dev/null +++ b/public/nvim/.nvim/ftplugin/zig.vim @@ -0,0 +1 @@ +setlocal foldmethod=expr foldexpr=nvim_treesitter#foldexpr() diff --git a/public/nvim/.nvim/indent/groovy.vim b/public/nvim/.nvim/indent/groovy.vim new file mode 100644 index 0000000..9a06798 --- /dev/null +++ b/public/nvim/.nvim/indent/groovy.vim @@ -0,0 +1,164 @@ +" https://github.com/modille/groovy.vim/blob/master/indent/groovy.vim +" Vim indent file +" Language: Groovy +" Maintainer: Toby Allsopp (resigned) +" Last Change: 2005 Mar 28 + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +" Indent Groovy anonymous classes correctly. +setlocal cindent cinoptions& cinoptions+=j1 + +" The "extends" and "implements" lines start off with the wrong indent. +setlocal indentkeys& indentkeys+=0=extends indentkeys+=0=implements + +" Set the function to do the work. +setlocal indentexpr=GetGroovyIndent() + +let b:undo_indent = "set cin< cino< indentkeys< indentexpr<" + +" Only define the function once. +if exists("*GetGroovyIndent") + finish +endif + +function! SkipGroovyBlanksAndComments(startline) + let lnum = a:startline + while lnum > 1 + let lnum = prevnonblank(lnum) + if getline(lnum) =~ '\*/\s*$' + while getline(lnum) !~ '/\*' && lnum > 1 + let lnum = lnum - 1 + endwhile + if getline(lnum) =~ '^\s*/\*' + let lnum = lnum - 1 + else + break + endif + elseif getline(lnum) =~ '^\s*//' + let lnum = lnum - 1 + else + break + endif + endwhile + return lnum +endfunction + +function GetGroovyIndent() + + " Groovy is just like C; use the built-in C indenting and then correct a few + " specific cases. + let theIndent = cindent(v:lnum) + + " If we're in the middle of a comment then just trust cindent + if getline(v:lnum) =~ '^\s*\*' + return theIndent + endif + + + " find start of previous line, in case it was a continuation line + let lnum = SkipGroovyBlanksAndComments(v:lnum - 1) + let prev = lnum + while prev > 1 + let next_prev = SkipGroovyBlanksAndComments(prev - 1) + if getline(next_prev) !~ ',\s*$' + break + endif + let prev = next_prev + endwhile + + + " Try to align "throws" lines for methods and "extends" and "implements" for + " classes. + if getline(v:lnum) =~ '^\s*\(extends\|implements\)\>' + \ && getline(lnum) !~ '^\s*\(extends\|implements\)\>' + let theIndent = theIndent + &sw + endif + + " correct for continuation lines of "throws", "implements" and "extends" + let cont_kw = matchstr(getline(prev), + \ '^\s*\zs\(throws\|implements\|extends\)\>\ze.*,\s*$') + if strlen(cont_kw) > 0 + let amount = strlen(cont_kw) + 1 + if getline(lnum) !~ ',\s*$' + let theIndent = theIndent - (amount + &sw) + if theIndent < 0 + let theIndent = 0 + endif + elseif prev == lnum + let theIndent = theIndent + amount + if cont_kw ==# 'throws' + let theIndent = theIndent + &sw + endif + endif + elseif getline(prev) =~ '^\s*\(throws\|implements\|extends\)\>' + \ && (getline(prev) =~ '{\s*$' + \ || getline(v:lnum) =~ '^\s*{\s*$') + let theIndent = theIndent - &sw + endif + + " When the line starts with a }, try aligning it with the matching {, + " skipping over "throws", "extends" and "implements" clauses. + if getline(v:lnum) =~ '^\s*}\s*\(//.*\|/\*.*\)\=$' + call cursor(v:lnum, 1) + silent normal % + let lnum = line('.') + if lnum < v:lnum + while lnum > 1 + let next_lnum = SkipGroovyBlanksAndComments(lnum - 1) + if getline(lnum) !~ '^\s*\(throws\|extends\|implements\)\>' + \ && getline(next_lnum) !~ ',\s*$' + break + endif + let lnum = prevnonblank(next_lnum) + endwhile + return indent(lnum) + endif + endif + + " Below a line starting with "}" never indent more. Needed for a method + " below a method with an indented "throws" clause. + let lnum = SkipGroovyBlanksAndComments(v:lnum - 1) + if getline(lnum) =~ '^\s*}\s*\(//.*\|/\*.*\)\=$' && indent(lnum) < theIndent + let theIndent = indent(lnum) + endif + + " Fixed several indent problem + if theIndent > indent(lnum) + " if no '{ -> ( if else' , then same indent as previous line + if getline(lnum) !~ '[\{>\(]\s*$' && getline(lnum) !~ '\s*\(if\|else\)\s*' + let theIndent = indent(lnum) + endif + + " if last line end with ( + if getline(lnum) =~ '[\(]\s*$' + let theIndent = indent(lnum) + &sw + endif + endif + + " indent the ')' line with ( line + if getline(v:lnum) =~ '^\s*)' + call cursor(v:lnum, 1) + silent normal % + let lnum = line('.') + if lnum < v:lnum + while lnum > 1 + let next_lnum = SkipGroovyBlanksAndComments(lnum - 1) + if getline(lnum) !~ '^\s*\(throws\|extends\|implements\)\>' + \ && getline(next_lnum) !~ ',\s*$' + break + endif + let lnum = prevnonblank(next_lnum) + endwhile + return indent(lnum) + endif + endif + + return theIndent +endfunction + +" vi: sw=2 et diff --git a/public/nvim/.nvim/init.lua b/public/nvim/.nvim/init.lua new file mode 100644 index 0000000..22c8dc7 --- /dev/null +++ b/public/nvim/.nvim/init.lua @@ -0,0 +1,49 @@ +require("core") +--require("plugins") + +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + spec = { + { import = "plugins.core" }, + { import = "plugins.eyecandy" }, + { import = "plugins.lsp" }, + { import = "plugins.lang" }, + { import = "plugins.extra.copilot" }, + { import = "plugins.extra.vim-fugitive" }, + --{ import = "plugins.extra.neorg" }, + --{ import = "plugins.extra.feline" }, + }, + change_detection = { + enabled = true, + notify = false, + }, +}) + +--vim.api.nvim_create_autocmd({ "BufEnter", "BufRead" }, { +--pattern = { "*" }, +--callback = function(args) +--local file_size = vim.fn.getfsize(args.file) +----vim.api.nvim_buf_get_lines(buf, firstline, new_lastline, false) +----nvim_buf_get_lines({buffer}, {start}, {end}, {strict_indexing}) +--if file_size > 1024 * 1024 then +--pcall(vim.cmd, "TSBufDisable highlight") +--pcall(vim.cmd, "syntax off") +--pcall(vim.cmd, "syntax clear") +--pcall(vim.cmd, "IlluminatePauseBuf") +--pcall(vim.cmd, "IndentBlanklineDisable") +--pcall(vim.cmd, "NoMatchParen") +--end +--end, +--}) diff --git a/public/nvim/.nvim/lua/core/disable_builtin.lua b/public/nvim/.nvim/lua/core/disable_builtin.lua new file mode 100644 index 0000000..ea546ba --- /dev/null +++ b/public/nvim/.nvim/lua/core/disable_builtin.lua @@ -0,0 +1,16 @@ +vim.g.loaded_gzip = 1 +vim.g.loaded_zip = 1 +vim.g.loaded_zipPlugin = 1 +vim.g.loaded_tar = 1 +vim.g.loaded_tarPlugin = 1 + +vim.g.loaded_getscript = 1 +vim.g.loaded_getscriptPlugin = 1 +vim.g.loaded_vimball = 1 +vim.g.loaded_vimballPlugin = 1 +vim.g.loaded_2html_plugin = 1 + +vim.g.loaded_matchit = 1 +vim.g.loaded_matchparen = 1 +vim.g.loaded_logiPat = 1 +vim.g.loaded_rrhelper = 1 diff --git a/public/nvim/.nvim/lua/core/init.lua b/public/nvim/.nvim/lua/core/init.lua new file mode 100644 index 0000000..3c34282 --- /dev/null +++ b/public/nvim/.nvim/lua/core/init.lua @@ -0,0 +1,64 @@ +----------------------------------------------------------- +-- General +----------------------------------------------------------- +vim.opt.mouse = "a" -- Enable mouse support +vim.opt.clipboard = "unnamedplus" -- Copy/paste to system clipboard +vim.opt.termguicolors = true -- Enable 24-bit RGB colors +vim.o.background = "light" +vim.opt.hidden = true +vim.opt.number = true +vim.o.cursorlineopt = "both" +vim.opt.conceallevel = 0 +vim.opt.relativenumber = true +vim.opt.showcmd = true +vim.opt.showmode = true +vim.opt.colorcolumn = "80" +vim.opt.cursorline = true +vim.opt.foldlevelstart = 99 +vim.opt.showtabline = 1 +vim.opt.laststatus = 3 -- Single status line across all buffers +vim.opt.undofile = true +vim.opt.list = true -- Show some invisible characters like tabs +vim.opt.undodir = vim.fn.stdpath("config") .. "/undo" +vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal" +-- TODO make it pretty with the highlights +--vim.opt.winbar = '%!luaeval("_winbar()")' -- The winbar text, I don't know if it is possible to embed it directly here :( +--vim.opt.winbar = "%=%m %t%=" +----------------------------------------------------------- +-- Tabs, indent +----------------------------------------------------------- +vim.opt.expandtab = true -- Use spaces instead of tabs +vim.opt.shiftwidth = 2 -- Shift 4 spaces when tab +vim.opt.tabstop = 2 -- 1 tab == 4 spaces +vim.opt.smartindent = true -- Autoindent new lines + +----------------------------------------------------------- +-- Custom keymaps +----------------------------------------------------------- +vim.api.nvim_set_keymap("i", "jk", "", {}) -- Use jk to exit insert mode +vim.api.nvim_set_keymap("i", "kj", "", {}) -- Use kj to exit insert mode +vim.api.nvim_set_keymap("t", "jk", "", {}) -- Use jk to exit terminal mode +vim.api.nvim_set_keymap("t", "kj", "", {}) -- Use kj to exit terminal mode +vim.api.nvim_set_keymap("t", "", "", { noremap = true }) -- Use Esc to exit terminal mode + +vim.api.nvim_set_keymap("i", "", ":tabnew", {}) -- New tab +vim.api.nvim_set_keymap("n", "", ":tabnew", {}) -- New tab + +-- No arrow keys for movement +--nnoremap +--nnoremap +--inoremap +--inoremap +--inoremap +--inoremap + +--Left and right to switch buffers +--nnoremap :bp +--nnoremap :bn + +--_winbar = function() -- My custom winbar text +--local filename = vim.fn.expand('%') +--return string.gsub(filename, 'term://.*:', '') +--end + +require("core.disable_builtin") diff --git a/public/nvim/.nvim/lua/plugins/core/auto-session.lua b/public/nvim/.nvim/lua/plugins/core/auto-session.lua new file mode 100644 index 0000000..9bfcac0 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/core/auto-session.lua @@ -0,0 +1,6 @@ +return { + "rmagatti/auto-session", + config = function() + require("auto-session").setup({ log_level = "info" }) + end, +} diff --git a/public/nvim/.nvim/lua/plugins/core/gitsigns.lua b/public/nvim/.nvim/lua/plugins/core/gitsigns.lua new file mode 100644 index 0000000..e856855 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/core/gitsigns.lua @@ -0,0 +1,8 @@ +return { + "lewis6991/gitsigns.nvim", + event = { "BufRead" }, + config = function() + require("gitsigns").setup() + end, + dependencies = { "nvim-lua/plenary.nvim" }, +} diff --git a/public/nvim/.nvim/lua/plugins/core/luasnip.lua b/public/nvim/.nvim/lua/plugins/core/luasnip.lua new file mode 100644 index 0000000..622af58 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/core/luasnip.lua @@ -0,0 +1,50 @@ +return { + { + "L3MON4D3/LuaSnip", + dependencies = { "rafamadriz/friendly-snippets" }, + build = "make install_jsregexp", + config = function() + local ls = require("luasnip") + local types = require("luasnip.util.types") + + ls.config.set_config({ + history = true, + updateevents = "TextChanged,TextChangedI", + enable_autosnippets = true, + ext_opts = { + [types.choiceNode] = { + active = { + virt_text = { { "<-", "Error" } }, + }, + }, + }, + }) + + -- luasnip keymaps are defined as cmp keymaps + + vim.keymap.set( + "n", + "s", + 'lua require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/lua/snippets" })' + ) + + require("luasnip.loaders.from_lua").lazy_load({ paths = "~/.config/nvim/lua/snippets" }) + end, + }, + + -- VSCode like (JSON) snippets + -- For the full list of supported languages see: + -- https://github.com/rafamadriz/friendly-snippets/blob/main/package.json + { + "rafamadriz/friendly-snippets", + opts = { include = {} }, + config = function(_, opts) + if #opts.include == 0 then + return + end + + opts.path = "~/.local/share/nvim/lazy/friendly-snippets" + require("luasnip.loaders.from_vscode").lazy_load(opts) + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/core/nerdcommenter.lua b/public/nvim/.nvim/lua/plugins/core/nerdcommenter.lua new file mode 100644 index 0000000..720b3d2 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/core/nerdcommenter.lua @@ -0,0 +1,18 @@ +return { + "preservim/nerdcommenter", + init = function() + vim.g.NERDCreateDefaultMappings = 0 + end, + config = function() + vim.api.nvim_set_keymap("v", "cc", "NERDCommenterComment", { silent = true }) + vim.api.nvim_set_keymap("v", "cu", "NERDCommenterUncomment", { silent = true }) + vim.api.nvim_set_keymap("n", "cc", "NERDCommenterComment", { noremap = false, silent = true }) + vim.api.nvim_set_keymap("n", "cu", "NERDCommenterUncomment", { noremap = false, silent = true }) + end, + keys = { + { "cc", mode = "v" }, + { "cc", mode = "n" }, + { "cu", mode = "v" }, + { "cu", mode = "n" }, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/core/nvim-tree.lua b/public/nvim/.nvim/lua/plugins/core/nvim-tree.lua new file mode 100644 index 0000000..e8ca82f --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/core/nvim-tree.lua @@ -0,0 +1,36 @@ +return { + { + "nvim-tree/nvim-tree.lua", + config = function() + require("nvim-tree").setup({ + sync_root_with_cwd = false, + update_focused_file = { + enable = true, + update_root = false, + }, + renderer = { + indent_markers = { enable = true }, + highlight_git = true, + highlight_opened_files = "all", + }, + }) + end, + dependencies = { "nvim-tree/nvim-web-devicons" }, + }, + + -- Add nvim-tree which-key shortcuts + { + "folke/which-key.nvim", + opts = function(_, opts) + if type(opts) ~= "table" then + opts = {} + end + + if type(opts.f) ~= "table" then + opts["f"] = {} + end + + opts.f["e"] = { "NvimTreeToggle", "Explorer" } + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/core/tabline.lua b/public/nvim/.nvim/lua/plugins/core/tabline.lua new file mode 100644 index 0000000..0a8305d --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/core/tabline.lua @@ -0,0 +1,3 @@ +return { + "mkitt/tabline.vim", +} diff --git a/public/nvim/.nvim/lua/plugins/core/telescope.lua b/public/nvim/.nvim/lua/plugins/core/telescope.lua new file mode 100644 index 0000000..367e20c --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/core/telescope.lua @@ -0,0 +1,27 @@ +return { + { + "nvim-telescope/telescope.nvim", + config = function() + require("telescope").load_extension("file_browser") + end, + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-telescope/telescope-file-browser.nvim", + }, + }, + + { + "folke/which-key.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.b = opts.b or {} + opts.f = opts.f or {} + + opts.b["b"] = { "Telescope buffers", "All" } + opts.f["f"] = { "Telescope find_files", "Find" } + opts.f["g"] = { "Telescope live_grep", "Grep" } + opts.f["b"] = { "Telescope file_browser", "Browse" } + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/core/tmux.lua b/public/nvim/.nvim/lua/plugins/core/tmux.lua new file mode 100644 index 0000000..0d63aa4 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/core/tmux.lua @@ -0,0 +1,13 @@ +return { + "christoomey/vim-tmux-navigator", + config = function() + local nvim_set_keymap = vim.api.nvim_set_keymap + vim.g.tmux_navigator_no_mappings = 1 + for _, mode in pairs({ "n", "v", "i", "t" }) do + nvim_set_keymap(mode, "", ":TmuxNavigateDown", { noremap = true }) + nvim_set_keymap(mode, "", ":TmuxNavigateUp", { noremap = true }) + nvim_set_keymap(mode, "", ":TmuxNavigateLeft", { noremap = true }) + nvim_set_keymap(mode, "", ":TmuxNavigateRight", { noremap = true }) + end + end, +} diff --git a/public/nvim/.nvim/lua/plugins/core/treesitter.lua b/public/nvim/.nvim/lua/plugins/core/treesitter.lua new file mode 100644 index 0000000..3818555 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/core/treesitter.lua @@ -0,0 +1,54 @@ +---@param tbl table +---@return table +local tbl_uniq = function(tbl) + ---@type table + local added = {} + local res = {} + res = vim.tbl_filter(function(k) + if added[k] then + return false + end + added[k] = true + return true + end, tbl) + + return res +end + +return { + { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + cmd = { "TSUpdateSync" }, + event = { "BufReadPost", "BufNewFile" }, + init = function() + vim.o.foldmethod = "expr" + vim.o.foldexpr = "nvim_treesitter#foldexpr()" + end, + opts = { + ensure_installed = { "query" }, + ignore_install = {}, + highlight = { + enable = true, + }, + query_linter = { + enable = true, + use_virtual_text = true, + lint_events = { "BufWrite", "CursorHold" }, + }, + }, + config = function(_, opts) + if type(opts.ensure_installed) == "table" then + opts.ensure_installed = tbl_uniq(opts.ensure_installed) + end + require("nvim-treesitter.configs").setup(opts) + end, + }, + + { + "nvim-treesitter/playground", + build = ":TSInstall query", + dependencies = { "nvim-treesitter" }, + cmd = { "TSPlaygroundToggle" }, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/core/which-key.lua b/public/nvim/.nvim/lua/plugins/core/which-key.lua new file mode 100644 index 0000000..6e046a3 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/core/which-key.lua @@ -0,0 +1,45 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + init = function() + vim.o.timeout = true + vim.o.timeoutlen = 300 + end, + + opts = { + f = { name = "File" }, + b = { + name = "Buffer", + n = { "BufferNext", "Next" }, + p = { "BufferPrevious", "Previous" }, + c = { "BufferClose", "Close" }, + ["1"] = { "BufferGoto 1", "1" }, + ["2"] = { "BufferGoto 2", "2" }, + ["3"] = { "BufferGoto 3", "3" }, + ["4"] = { "BufferGoto 4", "4" }, + ["5"] = { "BufferGoto 5", "5" }, + ["6"] = { "BufferGoto 6", "6" }, + ["7"] = { "BufferGoto 7", "7" }, + ["8"] = { "BufferGoto 8", "8" }, + ["9"] = { "BufferGoto 9", "9" }, + }, + l = { + name = "LSP", + a = { "lua vim.lsp.buf.code_action()", "Action" }, + f = { "lua vim.lsp.buf.format({ async = false, timeout_ms = 5000 })", "Format" }, + d = { "lua vim.diagnostic.open_float()", "Diagnostic" }, + h = { "lua vim.lsp.buf.hover()", "Help" }, + g = { + name = "Go to", + D = { "lua vim.lsp.buf.declaration()", "Go to declaration" }, + d = { "lua vim.lsp.buf.definition()", "Go to definition" }, + i = { "lua vim.lsp.buf.definition()", "Go to implementation" }, + }, + }, + }, + + config = function(_, opts) + local wk = require("which-key") + wk.register(opts, { prefix = "" }) + end, +} diff --git a/public/nvim/.nvim/lua/plugins/extra/copilot.lua b/public/nvim/.nvim/lua/plugins/extra/copilot.lua new file mode 100644 index 0000000..15d0c73 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/extra/copilot.lua @@ -0,0 +1,33 @@ +return { + { + "zbirenbaum/copilot.lua", + event = { "InsertEnter" }, + build = ":Copilot auth", + config = function() + vim.schedule(function() + require("copilot").setup({ + filetypes = { yaml = true }, + suggestion = { enabled = false }, + panel = { enabled = false }, + }) + end) + end, + }, + + { + "zbirenbaum/copilot-cmp", + dependencies = { "copilot.lua" }, + opts = {}, + }, + + { + "hrsh7th/nvim-cmp", + dependencies = { "zbirenbaum/copilot-cmp" }, + opts = function(_, opts) + if type(opts) == "table" then + table.insert(opts.sources, 1, { name = "copilot" }) + opts.formatting.format.menu["copilot"] = "" + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/extra/feline.lua b/public/nvim/.nvim/lua/plugins/extra/feline.lua new file mode 100644 index 0000000..037db34 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/extra/feline.lua @@ -0,0 +1,84 @@ +return { + { + "feline-nvim/feline.nvim", + dependencies = { "nvim-navic", "catppuccin", "nvim-tree/nvim-web-devicons" }, + config = function() + local ctp_feline = require("catppuccin.groups.integrations.feline") + ctp_feline.setup({ + assets = { + left_separator = "", + right_separator = "", + }, + }) + + local catpuccin_components = ctp_feline.get() + require("feline").setup({ components = catpuccin_components }) + + local catpuccin_winbar_components = { active = { {}, {}, {} }, inactive = {} } + --catpuccin_winbar_components.inactive = catpuccin_components.inactive + + -- Removes the mode_icon and its left padding + --table.remove(catpuccin_components.active[1], 2) + --table.remove(catpuccin_components.active[1], 1) + --local catpuccin_winbar_components = catpuccin_components + + --local yaml_schema_component = { + --provider = function() + --local schema = require("yaml-companion").get_buf_schema(0) + --return schema.result[1].name + --end, + --enabled = function() + --local enabled = catpuccin_components.active[3][1].enabled + --if vim.bo.filetype == "yaml" and enabled then + --return true + --end + --end, + --hl = catpuccin_components.active[3][1].hl, + --left_sep = catpuccin_components.active[3][1].left_sep, + --right_sep = catpuccin_components.active[3][1].right_sep, + --} + + local navic_component = { + provider = function() + local location = require("nvim-navic").get_location() + if location == "" then + return location + end + return "> " .. require("nvim-navic").get_location() + end, + enabled = function() + local ok, navic = pcall(require, "nvim-navic") + if ok then + return navic.is_available() + end + end, + hl = { + bg = require("catppuccin.palettes").get_palette().base, + fg = catpuccin_components.active[3][1].hl.fg, + }, + } + + --table.insert(catpuccin_components.active[3], 1, yaml_schema_component) + -- Overwrite the useless LSP component + --catpuccin_components.active[3][2] = yaml_schema_component + + -- this is a hack to properly align the next component + catpuccin_winbar_components.active[1][1] = { + provider = function() + return " " + end, + hl = { + bg = require("catppuccin.palettes").get_palette().base, + fg = require("catppuccin.palettes").get_palette().base, + }, + } + + catpuccin_winbar_components.active[1][2] = navic_component + catpuccin_winbar_components.inactive = catpuccin_winbar_components.active + + require("feline").winbar.setup({ + components = catpuccin_winbar_components, + }) + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/extra/neorg.lua b/public/nvim/.nvim/lua/plugins/extra/neorg.lua new file mode 100644 index 0000000..991ec40 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/extra/neorg.lua @@ -0,0 +1,36 @@ +return { + { + "nvim-neorg/neorg", + build = ":Neorg sync-parsers", + dependencies = { "nvim-lua/plenary.nvim" }, + config = function() + require("neorg").setup({ + load = { + ["core.defaults"] = {}, -- Loads default behaviour + ["core.concealer"] = {}, -- Adds pretty icons to your documents + ["core.completion"] = { config = { engine = "nvim-cmp" } }, + ["core.dirman"] = { -- Manages Neorg workspaces + config = { + workspaces = { + notes = "~/notes", + www = "~/www", + }, + default_workspace = "notes", + }, + }, + }, + }) + end, + }, + + { + "hrsh7th/nvim-cmp", + dependencies = { "nvim-neorg/neorg" }, + opts = function(_, opts) + if type(opts) == "table" then + table.insert(opts.sources, 1, { name = "neorg" }) + opts.formatting.format.menu["neorg"] = "" + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/extra/vim-fugitive.lua b/public/nvim/.nvim/lua/plugins/extra/vim-fugitive.lua new file mode 100644 index 0000000..d1f8a5a --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/extra/vim-fugitive.lua @@ -0,0 +1,14 @@ +return { + { + "shumphrey/fugitive-gitlab.vim", + cmd = "GBrowse", + config = function() + vim.g.fugitive_gitlab_domains = { "https://gitlab.otters.xyz" } + end, + }, + + { + "tpope/vim-fugitive", + dependencies = { "tpope/vim-rhubarb", "fugitive-gitlab.vim" }, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/eyecandy/indent-blankline.lua b/public/nvim/.nvim/lua/plugins/eyecandy/indent-blankline.lua new file mode 100644 index 0000000..618c730 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/eyecandy/indent-blankline.lua @@ -0,0 +1,11 @@ +return { + "lukas-reineke/indent-blankline.nvim", + event = { "BufRead" }, + config = function() + require("indent_blankline").setup({ + show_current_context = true, + show_current_context_start = false, + }) + end, + dependencies = { "nvim-treesitter" }, +} diff --git a/public/nvim/.nvim/lua/plugins/eyecandy/themes.lua b/public/nvim/.nvim/lua/plugins/eyecandy/themes.lua new file mode 100644 index 0000000..69bbe99 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/eyecandy/themes.lua @@ -0,0 +1,24 @@ +return { + { + "catppuccin/nvim", + lazy = false, + priority = 1000, + name = "catppuccin", + config = function() + local catp = require("catppuccin") + catp.setup({ + flavour = "frappe", + integrations = { + which_key = true, + illuminate = true, + lsp_trouble = true, + navic = { + enabled = true, + custom_bg = "NONE", + }, + }, + }) + vim.api.nvim_command("colorscheme catppuccin") + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/eyecandy/vim-illuminate.lua b/public/nvim/.nvim/lua/plugins/eyecandy/vim-illuminate.lua new file mode 100644 index 0000000..20b9bb2 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/eyecandy/vim-illuminate.lua @@ -0,0 +1,4 @@ +return { + "RRethy/vim-illuminate", + event = { "BufRead" }, +} diff --git a/public/nvim/.nvim/lua/plugins/eyecandy/virt-column.lua b/public/nvim/.nvim/lua/plugins/eyecandy/virt-column.lua new file mode 100644 index 0000000..5259d7a --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/eyecandy/virt-column.lua @@ -0,0 +1,7 @@ +return { + "lukas-reineke/virt-column.nvim", + event = { "BufRead" }, + config = function() + require("virt-column").setup() + end, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/ansible.lua b/public/nvim/.nvim/lua/plugins/lang/ansible.lua new file mode 100644 index 0000000..91f34df --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/ansible.lua @@ -0,0 +1,21 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "yaml" }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.servers.ansiblels = {} + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/bash.lua b/public/nvim/.nvim/lua/plugins/lang/bash.lua new file mode 100644 index 0000000..d9911a6 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/bash.lua @@ -0,0 +1,40 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "bash" }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.code_actions.shellcheck, -- Diagnostics handled by Bash LS + }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + -- Just here because it doesn't work with the default node + -- https://github.com/bash-lsp/bash-language-server/issues/418 + local brew_prefix = vim.fn.systemlist("brew --prefix")[1] + local bashls_script_name = "bash-language-server" + local bashls_script_path = vim.fn.systemlist("which " .. bashls_script_name)[1] + local bashls_cmd = { brew_prefix .. "/opt/node@16/bin/node", bashls_script_path, "start" } + opts.servers.bashls = { cmd = bashls_cmd } + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/dockerfile.lua b/public/nvim/.nvim/lua/plugins/lang/dockerfile.lua new file mode 100644 index 0000000..ca3ccc2 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/dockerfile.lua @@ -0,0 +1,24 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "dockerfile" }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.diagnostics.hadolint, + }) + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/go.lua b/public/nvim/.nvim/lua/plugins/lang/go.lua new file mode 100644 index 0000000..7e7fa03 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/go.lua @@ -0,0 +1,65 @@ +return { + { + "fatih/vim-go", + init = function() + vim.g.go_fmt_command = "gofumpt" + end, + ft = { "go" }, + }, + + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { + "go", + "gomod", + "gosum", + }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.diagnostics.golangci_lint, + null_ls.builtins.formatting.gofumpt, -- Just here because gopls integrated gofumpt doesn't work + }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.servers.gopls = { + -- Because integrated gofumpt doesn't work + -- I disable formatting for gopls + -- Formatting is handled with gofumpt by: + -- - null-ls on format request + -- - vim-go on save + on_attach = function(client, _) + client.server_capabilities.documentFormattingProvider = false + client.server_capabilities.documentRangeFormattingProvider = false + end, + cmd = { "gopls", "-remote=auto", "serve" }, -- Shared with vim-go's gopls instance + settings = { + gopls = { + buildFlags = { "-tags=integration,unit" }, -- To make packages with those build flags actually work with the LSP + semanticTokens = false, + gofumpt = true, -- gofumpt formatting, doesn't work + }, + }, + } + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/groovy.lua b/public/nvim/.nvim/lua/plugins/lang/groovy.lua new file mode 100644 index 0000000..1ab404d --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/groovy.lua @@ -0,0 +1,38 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "groovy" }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.diagnostics.npm_groovy_lint, + null_ls.builtins.formatting.npm_groovy_lint, + }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + local groovyls_path = "/Users/christian.segundo/git/groovy-language-server" + local groovyls_app_path = "build/libs/app-all.jar" + local groovyls_cmd = { "java", "-jar", groovyls_path .. "/" .. groovyls_app_path } + opts.servers.groovyls = { cmd = groovyls_cmd } + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/helm.lua b/public/nvim/.nvim/lua/plugins/lang/helm.lua new file mode 100644 index 0000000..6b303ec --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/helm.lua @@ -0,0 +1,6 @@ +return { + { + "towolf/vim-helm", + ft = { "yaml" }, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/jq.lua b/public/nvim/.nvim/lua/plugins/lang/jq.lua new file mode 100644 index 0000000..a9a41c6 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/jq.lua @@ -0,0 +1,21 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "jq" }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.servers.jqls = {} + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/json.lua b/public/nvim/.nvim/lua/plugins/lang/json.lua new file mode 100644 index 0000000..1d2d073 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/json.lua @@ -0,0 +1,21 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "json" }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.servers.jsonls = {} + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/jsonnet.lua b/public/nvim/.nvim/lua/plugins/lang/jsonnet.lua new file mode 100644 index 0000000..dff2e4b --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/jsonnet.lua @@ -0,0 +1,26 @@ +return { + { + "google/vim-jsonnet", + ft = { "jsonnet" }, + }, + + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "jsonnet" }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.servers.jsonnet_ls = {} + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/lua.lua b/public/nvim/.nvim/lua/plugins/lang/lua.lua new file mode 100644 index 0000000..5e08867 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/lua.lua @@ -0,0 +1,46 @@ +return { + { "folke/neodev.nvim", lazy = true, opts = {} }, + + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "lua" }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.diagnostics.selene, + null_ls.builtins.formatting.stylua, + }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.on_attach = opts.on_attach or {} + opts.servers.lua_ls = { + on_attach = function(client, _) + client.server_capabilities.documentFormattingProvider = false + client.server_capabilities.documentRangeFormattingProvider = false + end, + } + end + end, + dependencies = { + "folke/neodev.nvim", + }, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/markdown.lua b/public/nvim/.nvim/lua/plugins/lang/markdown.lua new file mode 100644 index 0000000..dcacfc7 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/markdown.lua @@ -0,0 +1,61 @@ +return { + { + "iamcco/markdown-preview.nvim", + build = "cd app && npm install", + init = function() + vim.g.mkdp_filetypes = { "markdown" } + end, + ft = { "markdown" }, + }, + + { + "mzlogin/vim-markdown-toc", + init = function() + vim.g.vmt_auto_update_on_save = 0 + vim.g.vmt_dont_insert_fence = 1 + end, + ft = { "markdown" }, + }, + + { + "preservim/vim-markdown", + dependencies = { "godlygeek/tabular" }, + config = function() + vim.g.vim_markdown_conceal_code_blocks = 0 + vim.g.vim_markdown_frontmatter = 1 + vim.g.vim_markdown_strikethrough = 0 + vim.g.vim_markdown_auto_insert_bullets = 0 + vim.g.vim_markdown_new_list_item_indent = 0 + end, + ft = { "markdown" }, + }, + + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { + "markdown_inline", + }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.diagnostics.markdownlint_cli2, + null_ls.builtins.diagnostics.vale, + null_ls.builtins.formatting.prettierd.with({ + filetypes = { "markdown" }, + }), + }) + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/perl.lua b/public/nvim/.nvim/lua/plugins/lang/perl.lua new file mode 100644 index 0000000..6ec7220 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/perl.lua @@ -0,0 +1,36 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "perl" }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + -- perlls is supposed to use perltidy for formatting, but it doesn't + -- work not sure why. + null_ls.builtins.formatting.perltidy, + }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.servers.perlls = {} + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/promql.lua b/public/nvim/.nvim/lua/plugins/lang/promql.lua new file mode 100644 index 0000000..267e118 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/promql.lua @@ -0,0 +1,19 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "promql" }) + end + end, + }, + + { + name = "promqlfmt.nvim", + url = "https://git.segundo.io/promqlfmt.nvim", + --dir = "/Users/christian.segundo/git/promql.nvim", + --dev = true, + cmd = { "Promqlfmt" }, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/swift.lua b/public/nvim/.nvim/lua/plugins/lang/swift.lua new file mode 100644 index 0000000..d7f6d33 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/swift.lua @@ -0,0 +1,35 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "swift" }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.diagnostics.swiftlint, + null_ls.builtins.formatting.swiftformat, + }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.servers.sourcekit = {} + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/terraform.lua b/public/nvim/.nvim/lua/plugins/lang/terraform.lua new file mode 100644 index 0000000..e7ccff4 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/terraform.lua @@ -0,0 +1,40 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { + "hcl", + "terraform", + }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.diagnostics.tfsec, + null_ls.builtins.formatting.terraform_fmt.with({ + extra_filetypes = { "hcl" }, + }), + }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.servers.terraformls = {} + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/typescript.lua b/public/nvim/.nvim/lua/plugins/lang/typescript.lua new file mode 100644 index 0000000..d5cf529 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/typescript.lua @@ -0,0 +1,34 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "typescript" }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.code_actions.eslint_d, + }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.servers.tsserver = {} + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/yaml.lua b/public/nvim/.nvim/lua/plugins/lang/yaml.lua new file mode 100644 index 0000000..83af09e --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/yaml.lua @@ -0,0 +1,59 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "yaml" }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.diagnostics.yamllint, + }) + end + end, + }, + + { + --"someone-stole-my-name/yaml-companion.nvim", + dev = true, + dir = "/Users/christian.segundo/git/nvim_plugins/yaml-companion.nvim", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-telescope/telescope.nvim", + }, + init = function() + require("telescope").load_extension("yaml_schema") + end, + ft = { "yaml" }, + }, + + { + "neovim/nvim-lspconfig", + --dependencies = { "someone-stole-my-name/yaml-companion.nvim" }, + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.servers.yamlls = require("yaml-companion").setup() + end + end, + }, + + { + "rafamadriz/friendly-snippets", + opts = function(_, opts) + if type(opts) == "table" then + opts.include = opts.include or {} + vim.list_extend(opts.include, { "yaml" }) + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lang/zig.lua b/public/nvim/.nvim/lua/plugins/lang/zig.lua new file mode 100644 index 0000000..1970797 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lang/zig.lua @@ -0,0 +1,40 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts) == "table" then + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "zig" }) + end + end, + }, + + { + "jose-elias-alvarez/null-ls.nvim", + opts = function(_, opts) + if type(opts) == "table" then + opts.sources = opts.sources or {} + local null_ls = require("null-ls") + vim.list_extend(opts.sources, { + null_ls.builtins.formatting.zigfmt, + }) + end + end, + }, + + { + "neovim/nvim-lspconfig", + opts = function(_, opts) + if type(opts) == "table" then + opts.servers = opts.servers or {} + opts.on_attach = opts.on_attach or {} + opts.servers.zls = { + on_attach = function(client, _) + client.server_capabilities.documentFormattingProvider = false + client.server_capabilities.documentRangeFormattingProvider = false + end, + } + end + end, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lsp/cmp.lua b/public/nvim/.nvim/lua/plugins/lsp/cmp.lua new file mode 100644 index 0000000..6099683 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lsp/cmp.lua @@ -0,0 +1,95 @@ +return { + "hrsh7th/nvim-cmp", + opts = { + sources = { + { + name = "luasnip", + option = { + show_autosnippets = true, + use_show_condition = true, + }, + }, + { name = "nvim_lsp", priority = 1 }, + { name = "nvim_lsp_signature_help" }, + { name = "nvim_lua" }, + { name = "path" }, + { name = "emoji" }, + }, + formatting = { + format = { + mode = "symbol_text", + maxwidth = 50, + before = function(entry, vim_item) + return vim_item + end, + menu = { + buffer = "[Buffer]", + nvim_lsp = "[LSP]", + luasnip = "[LuaSnip]", + nvim_lua = "[Lua]", + latex_symbols = "[Latex]", + }, + }, + }, + }, + config = function(_, opts) + local cmp = require("cmp") + local luasnip = require("luasnip") + local lspkind = require("lspkind") + cmp.setup({ + sources = opts.sources, + --experimental = { ghost_text = { hl_group = "Comment" } }, + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, + }, + formatting = { format = lspkind.cmp_format(opts.formatting.format) }, + mapping = { + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if luasnip.choice_active() then + luasnip.change_choice(1) + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.close(), + [""] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Insert, + select = true, -- Automatically select first item on CR + }), + }, + }) + end, + dependencies = { + { "L3MON4D3/LuaSnip" }, + { "hrsh7th/cmp-emoji" }, + { "hrsh7th/cmp-nvim-lsp" }, + { "hrsh7th/cmp-nvim-lsp-signature-help" }, + { "hrsh7th/cmp-nvim-lua" }, + { "hrsh7th/cmp-path" }, + { "onsails/lspkind.nvim" }, + { "saadparwaiz1/cmp_luasnip" }, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lsp/config.lua b/public/nvim/.nvim/lua/plugins/lsp/config.lua new file mode 100644 index 0000000..b579720 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lsp/config.lua @@ -0,0 +1,40 @@ +return { + + { + "neovim/nvim-lspconfig", + event = { "BufReadPre", "BufNewFile" }, + opts = { servers = {} }, + config = function(_, opts) + local add_hook_after = require("lspconfig.util").add_hook_after + local on_attach = function(client, bufnr) + require("nvim-navic").attach(client, bufnr) + end + + for lsp, lsp_opts in pairs(opts.servers) do + lsp_opts = lsp_opts or {} + if lsp_opts.on_attach ~= nil then + lsp_opts["on_attach"] = add_hook_after(on_attach, lsp_opts.on_attach) + end + lsp_opts["capabilities"] = require("cmp_nvim_lsp").default_capabilities(lsp_opts.capabilities or {}) + require("lspconfig")[lsp].setup(lsp_opts) + end + end, + init = function() + vim.diagnostic.config({ + float = { + source = "always", + format = function(diagnostic) + -- should work for any LSP, see: https://github.com/neovim/neovim/pull/17510 + if diagnostic.code then + return string.format("(%s) %s", diagnostic.code, diagnostic.message) + end + return diagnostic.message + end, + }, + }) + end, + dependencies = { + { "SmiteshP/nvim-navic", opts = { highlight = true } }, + }, + }, +} diff --git a/public/nvim/.nvim/lua/plugins/lsp/null-ls.lua b/public/nvim/.nvim/lua/plugins/lsp/null-ls.lua new file mode 100644 index 0000000..5f71af7 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lsp/null-ls.lua @@ -0,0 +1,5 @@ +return { + "jose-elias-alvarez/null-ls.nvim", + opts = { sources = {}, debug = false }, + dependencies = { "nvim-lua/plenary.nvim" }, +} diff --git a/public/nvim/.nvim/lua/plugins/lsp/trouble.lua b/public/nvim/.nvim/lua/plugins/lsp/trouble.lua new file mode 100644 index 0000000..207edb5 --- /dev/null +++ b/public/nvim/.nvim/lua/plugins/lsp/trouble.lua @@ -0,0 +1,9 @@ +return { + { + "folke/trouble.nvim", + dependencies = { "nvim-tree/nvim-web-devicons" }, + config = function() + require("trouble").setup({}) + end, + }, +} diff --git a/public/nvim/.nvim/lua/snippets/lua.lua b/public/nvim/.nvim/lua/snippets/lua.lua new file mode 100644 index 0000000..dbec22a --- /dev/null +++ b/public/nvim/.nvim/lua/snippets/lua.lua @@ -0,0 +1,3 @@ +return { + s("ignore", t("-- foo $0")), +} diff --git a/public/nvim/.nvim/lua/snippets/sh/bash-find.lua b/public/nvim/.nvim/lua/snippets/sh/bash-find.lua new file mode 100644 index 0000000..be56beb --- /dev/null +++ b/public/nvim/.nvim/lua/snippets/sh/bash-find.lua @@ -0,0 +1,32 @@ +local is_bash = function() + local shebang = vim.api.nvim_buf_get_lines(0, 0, 1, true) or {} + if shebang[1] and string.find(shebang[1], "bash") then + return true + end + return false +end + +return { + s( + { trig = "find-xargs", dscr = "" }, + fmt( -- The snippet code actually looks like the equation environment it produces. + [[ + find <> \ + -type <> \ + -name '*.<>' \ + -print0 | xargs -0 -r -P 0 <> + ]], + { + i(1, "."), -- search directory + c(2, { t("f"), t("d") }), -- file or directory + i(3, "ext"), -- file extension + i(4, "echo"), -- xaargs command + }, + { delimiters = "<>" } + ), + { + show_condition = is_bash, + condition = is_bash, + } + ), +} diff --git a/public/nvim/.nvim/lua/snippets/sh/bash-misc.lua b/public/nvim/.nvim/lua/snippets/sh/bash-misc.lua new file mode 100644 index 0000000..f3a11eb --- /dev/null +++ b/public/nvim/.nvim/lua/snippets/sh/bash-misc.lua @@ -0,0 +1,16 @@ +return { + s({ + trig = "no-source", + dscr = "Exit with an error if script is being sourced", + }, { + t({ + 'if [[ "${0}" != "${BASH_SOURCE[0]}" ]]; then', + '\techo "Error: script ${BASH_SOURCE[0]} is not supported to be sourced!"', + "\treturn 1", + "fi", + }), + }), +} + + + diff --git a/public/nvim/.nvim/neovim.yaml b/public/nvim/.nvim/neovim.yaml new file mode 100644 index 0000000..76f9b9e --- /dev/null +++ b/public/nvim/.nvim/neovim.yaml @@ -0,0 +1,24 @@ +--- +base: lua51 +globals: + vim: + any: true + assert: + args: + - type: bool + - type: string + required: false + after_each: + args: + - type: function + before_each: + args: + - type: function + describe: + args: + - type: string + - type: function + it: + args: + - type: string + - type: function diff --git a/public/nvim/.nvim/plugin/qf-dd.vim b/public/nvim/.nvim/plugin/qf-dd.vim new file mode 100644 index 0000000..385c0c7 --- /dev/null +++ b/public/nvim/.nvim/plugin/qf-dd.vim @@ -0,0 +1,30 @@ +" https://stackoverflow.com/questions/42905008/quickfix-list-how-to-add-and-remove-entries +" When using `dd` in the quickfix list, remove the item from the quickfix list. +function! RemoveQFItem(mode) range abort + let l:qf_list = getqflist() + + " distinguish mode for getting delete index and delete count + if a:mode == 'v' + let l:del_qf_idx = getpos("'<")[1] - 1 + let l:del_ct = getpos("'>")[1] - l:del_qf_idx + else + let l:del_qf_idx = line('.') - 1 + let l:del_ct = v:count > 1 ? v:count : 1 + endif + + " delete lines and update quickfix + for item in range(l:del_ct) + call remove(l:qf_list, l:del_qf_idx) + endfor + call setqflist(l:qf_list, 'r') + + if len(l:qf_list) > 0 + execute l:del_qf_idx + 1 . 'cfirst' + copen + else + cclose + endif +endfunction + +autocmd FileType qf nmap dd :call RemoveQFItem('n') +autocmd FileType qf vmap dd :call RemoveQFItem('v') diff --git a/public/nvim/.nvim/selene.toml b/public/nvim/.nvim/selene.toml new file mode 100644 index 0000000..032dba6 --- /dev/null +++ b/public/nvim/.nvim/selene.toml @@ -0,0 +1 @@ +std = "neovim" diff --git a/public/nvim/.nvim/spell/en.utf-8.add b/public/nvim/.nvim/spell/en.utf-8.add new file mode 100644 index 0000000..274c5fc --- /dev/null +++ b/public/nvim/.nvim/spell/en.utf-8.add @@ -0,0 +1,11 @@ +Linkerd +CRD +linkerd +GKMS +Grafana +GCP +KTE +Prometheus +KTEs +multicluster +LBs diff --git a/public/nvim/.nvim/spell/en.utf-8.add.spl b/public/nvim/.nvim/spell/en.utf-8.add.spl new file mode 100644 index 0000000..a77b56c Binary files /dev/null and b/public/nvim/.nvim/spell/en.utf-8.add.spl differ -- cgit v1.2.3