diff --git a/symlinks/config/nvim/after/ftplugin/java.lua b/symlinks/config/nvim/after/ftplugin/java.lua index a2032cb..7af6ede 100644 --- a/symlinks/config/nvim/after/ftplugin/java.lua +++ b/symlinks/config/nvim/after/ftplugin/java.lua @@ -1,4 +1,4 @@ -require('lsp.jdtls_setup').setup() +require("lsp.jdtls_setup").setup() vim.opt.shiftwidth = 4 vim.opt.tabstop = 4 diff --git a/symlinks/config/nvim/init.lua b/symlinks/config/nvim/init.lua index 85a940c..5d64465 100644 --- a/symlinks/config/nvim/init.lua +++ b/symlinks/config/nvim/init.lua @@ -1,9 +1,9 @@ -if require('init.first_load')() then - return +if require("init.first_load")() then + return end -- Allow `require('impatient')` to fail, in case plugins are not yet installed -_ = pcall(require, 'impatient') +_ = pcall(require, "impatient") vim.cmd [[filetype plugin indent on]] @@ -13,33 +13,33 @@ vim.api.nvim_exec('let $NVIMHOME = $HOME."/.local/share/nvim"', false) vim.api.nvim_exec('let $VIMPLUGINS = expand($VIMHOME."/lua/personal/plugins.lua")', false) -- Leader config to -vim.g.mapleader = ' ' +vim.g.mapleader = " " -- Globals taken from TJ config -- Helpful for configuration -- Might be removed in future version of NeoVim -require('init.globals') +require("init.globals") -require('init.plugins') +require("init.plugins") -require('init.options') +require("init.options") -require('lsp') +require("lsp") -- Colorscheme -vim.cmd('syntax on') -require('init.colors') +vim.cmd("syntax on") +require("init.colors") -vim.api.nvim_set_keymap('n', 'Q', 'gq', {}) -vim.api.nvim_set_keymap('i', '', 'u', {noremap = true}) +vim.api.nvim_set_keymap("n", "Q", "gq", {}) +vim.api.nvim_set_keymap("i", "", "u", {noremap = true}) -vim.cmd('command! Wq :wq') -vim.cmd('command! W :w') +vim.cmd("command! Wq :wq") +vim.cmd("command! W :w") -vim.api.nvim_set_keymap('n', 'c', ':ccl lcl', {noremap = true}) +vim.api.nvim_set_keymap("n", "c", ":ccl lcl", {noremap = true}) -- Allow recursive searches -vim.cmd('set path+=**') +vim.cmd("set path+=**") -- automatically rebalance windows on vim resize -vim.cmd('autocmd VimResized * :wincmd =') +vim.cmd("autocmd VimResized * :wincmd =") diff --git a/symlinks/config/nvim/lua/fugitive_extensions.lua b/symlinks/config/nvim/lua/fugitive_extensions.lua index cab293d..6a35a79 100644 --- a/symlinks/config/nvim/lua/fugitive_extensions.lua +++ b/symlinks/config/nvim/lua/fugitive_extensions.lua @@ -7,30 +7,28 @@ -- Works regardless of ssh or https for origin config -- Hardcoded to use 'origin' remote local function get_pr_url(...) - local origin_url = vim.fn['fugitive#RemoteUrl']('origin') - origin_url = string.gsub(origin_url, '.git$', '') - origin_url = string.gsub(origin_url, ':', '/') - origin_url = string.gsub(origin_url, 'git@', 'https://') + local origin_url = vim.fn["fugitive#RemoteUrl"]("origin") + origin_url = string.gsub(origin_url, ".git$", "") + origin_url = string.gsub(origin_url, ":", "/") + origin_url = string.gsub(origin_url, "git@", "https://") - -- Remove prefix if it is available, for some of common git services - local common_services = {'github.com', 'bitbucket.org', 'gitlab.com'} - for k,service in pairs(common_services) do - if (string.find(origin_url, service, 1, true)) - then - -- Common mechanism for managing multiple SSH keys - origin_url = string.gsub(origin_url, '://.*' .. service, '://' .. service) - end - end + -- Remove prefix if it is available, for some of common git services + local common_services = {"github.com", "bitbucket.org", "gitlab.com"} + for k, service in pairs(common_services) do + if (string.find(origin_url, service, 1, true)) then + -- Common mechanism for managing multiple SSH keys + origin_url = string.gsub(origin_url, "://.*" .. service, "://" .. service) + end + end - -- This part probably only works on github - local pr_url - if (select('#', ...) == 0) - then - pr_url = origin_url .. '/compare/' .. vim.fn.FugitiveHead() .. '?expand=1' - else - pr_url = origin_url .. '/compare/' .. select(1, ...) .. '...' .. vim.fn.FugitiveHead() .. '?expand=1' - end - return pr_url + -- This part probably only works on github + local pr_url + if (select("#", ...) == 0) then + pr_url = origin_url .. "/compare/" .. vim.fn.FugitiveHead() .. "?expand=1" + else + pr_url = origin_url .. "/compare/" .. select(1, ...) .. "..." .. vim.fn.FugitiveHead() .. "?expand=1" + end + return pr_url end ------------------------------------------------------------------------------- @@ -42,42 +40,41 @@ local M = {} -- Shorcut to push directly to current branch on origin -- Similar to `ggpush` in fish config function M.push_origin() - vim.cmd('Git push origin ' .. vim.fn.FugitiveHead()) + vim.cmd("Git push origin " .. vim.fn.FugitiveHead()) end -- Shorcut to pull directly from current branch on origin -- Similar to `ggpull` in fish config function M.pull_origin() - vim.cmd('Git pull origin ' .. vim.fn.FugitiveHead()) + vim.cmd("Git pull origin " .. vim.fn.FugitiveHead()) end - -- Prints current branches PR url (not saved to :messages) -- Makes it easy to use terminal for opening url on click function M.print_pr_url(...) - vim.cmd('echo "' .. get_pr_url(...) .. '"') + vim.cmd('echo "' .. get_pr_url(...) .. '"') end -- Copies current branches PR url to system clipboard function M.copy_pr_url(...) - vim.cmd('let @+ = "' .. get_pr_url(...) .. '"') + vim.cmd('let @+ = "' .. get_pr_url(...) .. '"') end -- Opens current banches PR url in default browser -- Utilizes netrw browse, meaning it should behave same as netrw function M.open_new_pr(...) - vim.fn['netrw#BrowseX'](get_pr_url(...), 0) + vim.fn["netrw#BrowseX"](get_pr_url(...), 0) end -- Creates new branch and checks out to it -- Similar to `gcb` in fish config function M.create_branch(branch) - vim.cmd('Git checkout -b ' .. branch) + vim.cmd("Git checkout -b " .. branch) end -- Switches to branch function M.checkout_branch(branch) - vim.cmd('Git checkout ' .. branch) + vim.cmd("Git checkout " .. branch) end return M diff --git a/symlinks/config/nvim/lua/init/first_load.lua b/symlinks/config/nvim/lua/init/first_load.lua index 2c11bc5..d69c1f1 100644 --- a/symlinks/config/nvim/lua/init/first_load.lua +++ b/symlinks/config/nvim/lua/init/first_load.lua @@ -1,35 +1,31 @@ -- Adopted from https://github.com/tjdevries/config_manager/blob/master/xdg_config/nvim/lua/tj/first_load.lua local download_packer = function() - if vim.fn.input("Download Packer? (y for yes)") ~= "y" then - return - end + if vim.fn.input("Download Packer? (y for yes)") ~= "y" then + return + end - local directory = string.format( - '%s/site/pack/packer/start/', - vim.fn.stdpath('data') - ) + local directory = string.format("%s/site/pack/packer/start/", vim.fn.stdpath("data")) - vim.fn.mkdir(directory, 'p') + vim.fn.mkdir(directory, "p") - local out = vim.fn.system(string.format( - 'git clone %s %s', - 'https://github.com/wbthomason/packer.nvim', - directory .. '/packer.nvim' - )) + local out = + vim.fn.system( + string.format("git clone %s %s", "https://github.com/wbthomason/packer.nvim", directory .. "/packer.nvim") + ) - print(out) - print("Downloading packer.nvim...") - vim.api.nvim_command('PackerCompile') - vim.api.nvim_command('PackerInstall') - print("( You'll need to restart now )") + print(out) + print("Downloading packer.nvim...") + vim.api.nvim_command("PackerCompile") + vim.api.nvim_command("PackerInstall") + print("( You'll need to restart now )") end return function() - if not pcall(require, 'packer') then - download_packer() + if not pcall(require, "packer") then + download_packer() - return true - end + return true + end - return false + return false end diff --git a/symlinks/config/nvim/lua/init/globals/init.lua b/symlinks/config/nvim/lua/init/globals/init.lua index 685a0c4..d7e7a7b 100644 --- a/symlinks/config/nvim/lua/init/globals/init.lua +++ b/symlinks/config/nvim/lua/init/globals/init.lua @@ -2,18 +2,18 @@ -- - Adopted from TJ config (https://github.com/tjdevries/config_manager/blob/master/xdg_config/nvim/lua/tj/globals/init.lua) - ------------------------------------------------------------------------------- P = function(v) - print(vim.inspect(v)) - return v + print(vim.inspect(v)) + return v end -if pcall(require, 'plenary') then - RELOAD = require('plenary.reload').reload_module +if pcall(require, "plenary") then + RELOAD = require("plenary.reload").reload_module - R = function(name) - RELOAD(name) - return require(name) - end + R = function(name) + RELOAD(name) + return require(name) + end end -- `vim.opt` -require('init.globals.opt') +require("init.globals.opt") diff --git a/symlinks/config/nvim/lua/init/globals/opt.lua b/symlinks/config/nvim/lua/init/globals/opt.lua index d55ac10..423e0da 100644 --- a/symlinks/config/nvim/lua/init/globals/opt.lua +++ b/symlinks/config/nvim/lua/init/globals/opt.lua @@ -12,7 +12,6 @@ set_opts { } --]] - --[[ Global option names For those wondering how to get the values at the top level, @@ -26,54 +25,53 @@ setfenv(function() end, vim.opt)() --]] - local if_nil = function(a, b) - if a == nil then - return b - end - return a + if a == nil then + return b + end + return a end local singular_values = { - ['boolean'] = true, - ['number'] = true, - ['nil'] = true, + ["boolean"] = true, + ["number"] = true, + ["nil"] = true } local set_key_value = function(t, key_value_str) - assert(string.find(key_value_str, ":"), "Must have a :" .. tostring(key_value_str)) + assert(string.find(key_value_str, ":"), "Must have a :" .. tostring(key_value_str)) - local key, value = unpack(vim.split(key_value_str, ":")) - key = vim.trim(key) - value = vim.trim(value) + local key, value = unpack(vim.split(key_value_str, ":")) + key = vim.trim(key) + value = vim.trim(value) - t[key] = value + t[key] = value end local convert_vimoption_to_lua = function(option, val) - -- Short circuit if we've already converted! - if type(val) == 'table' then - return val - end - - if singular_values[type(val)] then - return val - end - - if type(val) == "string" then - -- TODO: Bad hax I think - if string.find(val, ":") then - local result = {} - local items = vim.split(val, ",") - for _, item in ipairs(items) do - set_key_value(result, item) - end - - return result - else - return vim.split(val, ",") + -- Short circuit if we've already converted! + if type(val) == "table" then + return val + end + + if singular_values[type(val)] then + return val + end + + if type(val) == "string" then + -- TODO: Bad hax I think + if string.find(val, ":") then + local result = {} + local items = vim.split(val, ",") + for _, item in ipairs(items) do + set_key_value(result, item) + end + + return result + else + return vim.split(val, ",") + end end - end end -- local concat_keys = function(t, sep) @@ -81,183 +79,177 @@ end -- end local concat_key_values = function(t, sep, divider) - local final = {} - for k, v in pairs(t) do - table.insert(final, string.format('%s%s%s', k, divider, v)) - end + local final = {} + for k, v in pairs(t) do + table.insert(final, string.format("%s%s%s", k, divider, v)) + end - table.sort(final) - return table.concat(final, sep) + table.sort(final) + return table.concat(final, sep) end local remove_duplicate_values = function(t) - local result = {} - for _, v in ipairs(t) do - result[v] = true - end + local result = {} + for _, v in ipairs(t) do + result[v] = true + end - return vim.tbl_keys(result) + return vim.tbl_keys(result) end local remove_value = function(t, val) - if vim.tbl_islist(t) then - local remove_index = nil - for i, v in ipairs(t) do - if v == val then - remove_index = i - end + if vim.tbl_islist(t) then + local remove_index = nil + for i, v in ipairs(t) do + if v == val then + remove_index = i + end + end + + if remove_index then + table.remove(t, remove_index) + end + else + t[val] = nil end - if remove_index then - table.remove(t, remove_index) - end - else - t[val] = nil - end - - return t + return t end local add_value = function(current, new) - if singular_values[type(current)] then - error( - "This is not possible to do. Please do something different: " - .. tostring(current) - .. " // " - .. tostring(new) - ) - end - - if type(new) == 'string' then - if vim.tbl_islist(current) then - table.insert(current, new) - else - set_key_value(current, new) + if singular_values[type(current)] then + error( + "This is not possible to do. Please do something different: " .. + tostring(current) .. " // " .. tostring(new) + ) end - return current - elseif type(new) == 'table' then - if vim.tbl_islist(current) then - assert(vim.tbl_islist(new)) - vim.list_extend(current, new) - else - assert(not vim.tbl_islist(new), vim.inspect(new) .. vim.inspect(current)) - current = vim.tbl_extend("force", current, new) - end + if type(new) == "string" then + if vim.tbl_islist(current) then + table.insert(current, new) + else + set_key_value(current, new) + end - return current - else - error("Unknown type") - end + return current + elseif type(new) == "table" then + if vim.tbl_islist(current) then + assert(vim.tbl_islist(new)) + vim.list_extend(current, new) + else + assert(not vim.tbl_islist(new), vim.inspect(new) .. vim.inspect(current)) + current = vim.tbl_extend("force", current, new) + end + + return current + else + error("Unknown type") + end end local convert_lua_to_vimoption = function(t) - if vim.tbl_islist(t) then - t = remove_duplicate_values(t) + if vim.tbl_islist(t) then + t = remove_duplicate_values(t) - table.sort(t) - return table.concat(t, ',') - else - return concat_key_values(t, ',', ':') - end + table.sort(t) + return table.concat(t, ",") + else + return concat_key_values(t, ",", ":") + end end local clean_value = function(v) - if singular_values[type(v)] then - return v - end + if singular_values[type(v)] then + return v + end - local result = v:gsub('^,', '') + local result = v:gsub("^,", "") - return result + return result end local opt_mt opt_mt = { - __index = function(t, k) - if k == '_value' then - return rawget(t, k) - end + __index = function(t, k) + if k == "_value" then + return rawget(t, k) + end - return setmetatable({ _option = k, }, opt_mt) - end, + return setmetatable({_option = k}, opt_mt) + end, + __newindex = function(t, k, v) + if k == "_value" then + return rawset(t, k, v) + end - __newindex = function(t, k, v) - if k == '_value' then - return rawset(t, k, v) - end + if type(v) == "table" then + local new_value + if getmetatable(v) ~= opt_mt then + new_value = v + else + assert(v._value, "Must have a value to set this") + new_value = v._value + end - if type(v) == 'table' then - local new_value - if getmetatable(v) ~= opt_mt then - new_value = v - else - assert(v._value, "Must have a value to set this") - new_value = v._value - end + vim.o[k] = convert_lua_to_vimoption(new_value) + return + end - vim.o[k] = convert_lua_to_vimoption(new_value) - return - end + if v == nil then + v = "" + end - if v == nil then - v = '' - end - - -- TODO: Figure out why nvim_set_option doesn't override values the same way. - -- @bfredl said he will fix this for me, so I can just use nvim_set_option - if type(v) == 'boolean' then - vim.o[k] = clean_value(v) - if v then - vim.cmd(string.format("set %s", k)) - else - vim.cmd(string.format("set no%s", k)) - end - else - vim.cmd(string.format("set %s=%s", k, clean_value(v))) - end - end, - - __add = function(left, right) - --[[ + -- TODO: Figure out why nvim_set_option doesn't override values the same way. + -- @bfredl said he will fix this for me, so I can just use nvim_set_option + if type(v) == "boolean" then + vim.o[k] = clean_value(v) + if v then + vim.cmd(string.format("set %s", k)) + else + vim.cmd(string.format("set no%s", k)) + end + else + vim.cmd(string.format("set %s=%s", k, clean_value(v))) + end + end, + __add = function(left, right) + --[[ set.wildignore = set.wildignore + 'hello' set.wildignore = set.wildignore + { '*.o', '*~', } --]] + assert(left._option, "must have an option key") + if left._option == "foldcolumn" then + error("not implemented for foldcolumn.. use a string") + end - assert(left._option, "must have an option key") - if left._option == 'foldcolumn' then - error("not implemented for foldcolumn.. use a string") + local existing = if_nil(left._value, vim.o[left._option]) + local current = convert_vimoption_to_lua(left._option, existing) + if not current then + left._value = convert_vimoption_to_lua(right) + end + + left._value = add_value(current, right) + return left + end, + __sub = function(left, right) + assert(left._option, "must have an option key") + + local existing = if_nil(left._value, vim.o[left._option]) + local current = convert_vimoption_to_lua(left._option, existing) + if not current then + return left + end + + left._value = remove_value(current, right) + return left end - - local existing = if_nil(left._value, vim.o[left._option]) - local current = convert_vimoption_to_lua(left._option, existing) - if not current then - left._value = convert_vimoption_to_lua(right) - end - - left._value = add_value(current, right) - return left - end, - - __sub = function(left, right) - assert(left._option, "must have an option key") - - local existing = if_nil(left._value, vim.o[left._option]) - local current = convert_vimoption_to_lua(left._option, existing) - if not current then - return left - end - - left._value = remove_value(current, right) - return left - end } vim.opt = setmetatable({}, opt_mt) return { - convert_vimoption_to_lua = convert_vimoption_to_lua, - opt = vim.opt, - opt_mt = opt_mt + convert_vimoption_to_lua = convert_vimoption_to_lua, + opt = vim.opt, + opt_mt = opt_mt } diff --git a/symlinks/config/nvim/lua/init/options.lua b/symlinks/config/nvim/lua/init/options.lua index 1d752dc..5fb1885 100644 --- a/symlinks/config/nvim/lua/init/options.lua +++ b/symlinks/config/nvim/lua/init/options.lua @@ -1,7 +1,7 @@ local opt = vim.opt -opt.wildignore = '__pycache__' -opt.wildignore = opt.wildignore + { '*.o' , '*~', '*.pyc', '*pycache*' } +opt.wildignore = "__pycache__" +opt.wildignore = opt.wildignore + {"*.o", "*~", "*.pyc", "*pycache*"} -- Indentation config opt.tabstop = 2 @@ -14,7 +14,7 @@ opt.number = true opt.relativenumber = true -- Misc -opt.backspace = 'indent,eol,start' -- Allow backspacing over everything in insert mode +opt.backspace = "indent,eol,start" -- Allow backspacing over everything in insert mode opt.ttimeoutlen = 50 opt.backup = false -- do not keep a backup file, use versions instead opt.history = 50 -- Keep 50 lines of command line history @@ -26,8 +26,8 @@ opt.showcmd = true -- Display incomplete commands opt.incsearch = true -- Do incremental searching opt.autoread = true -- Reload files changed outside opt.hidden = true -- Allow leaving unsaved buffers -opt.inccommand = 'nosplit' -- Enable live preview of text replacement +opt.inccommand = "nosplit" -- Enable live preview of text replacement opt.hlsearch = true -opt.mouse = 'a' +opt.mouse = "a" opt.encoding = "utf-8" diff --git a/symlinks/config/nvim/lua/init/plugins.lua b/symlinks/config/nvim/lua/init/plugins.lua index 26f664a..17099be 100644 --- a/symlinks/config/nvim/lua/init/plugins.lua +++ b/symlinks/config/nvim/lua/init/plugins.lua @@ -1,107 +1,105 @@ -return require('packer').startup { - function(use) - use 'wbthomason/packer.nvim' +return require("packer").startup { + function(use) + use "wbthomason/packer.nvim" - -- Tpope general improvements -- - use 'tpope/vim-sensible' -- Sane defaults - use 'tpope/vim-endwise' -- Add closing statements automatically for if, function etc - use 'tpope/vim-surround' -- Surround with ', ", etc - use 'tpope/vim-fugitive' -- Git integration - use 'tpope/vim-vinegar' -- Netrw improvements - use 'tpope/vim-obsession' -- Session.vim management - use 'tpope/vim-dadbod' -- Database access - use 'kristijanhusak/vim-dadbod-ui' -- UI For Dadbod - use 'tpope/vim-speeddating' -- and for dates - use 'tpope/vim-dispatch' -- Dispatch command - use 'tpope/vim-projectionist' -- Project config file! - use 'tpope/vim-unimpaired' -- Additional [ and ] mappings - use 'tpope/vim-repeat' -- Better . repeat - use 'tpope/vim-commentary' -- Commenting motion - use 'tpope/vim-sleuth' -- Intendation heuristics + -- Tpope general improvements + use "tpope/vim-sensible" -- Sane defaults + use "tpope/vim-endwise" -- Add closing statements automatically for if, function etc + use "tpope/vim-surround" -- Surround with ', ", etc + use "tpope/vim-fugitive" -- Git integration + use "tpope/vim-vinegar" -- Netrw improvements + use "tpope/vim-obsession" -- Session.vim management + use "tpope/vim-dadbod" -- Database access + use "kristijanhusak/vim-dadbod-ui" -- UI For Dadbod + use "tpope/vim-speeddating" -- and for dates + use "tpope/vim-dispatch" -- Dispatch command + use "tpope/vim-projectionist" -- Project config file! + use "tpope/vim-unimpaired" -- Additional [ and ] mappings + use "tpope/vim-repeat" -- Better . repeat + use "tpope/vim-commentary" -- Commenting motion + use "tpope/vim-sleuth" -- Intendation heuristics - -- General improvements -- - use 'airblade/vim-gitgutter' -- Git signs - use 'godlygeek/tabular' -- Tabular command for alignment - use 'vim-scripts/utl.vim' -- Universal text linking - use { -- - 'mbbill/undotree', -- - cmd = 'UndotreeToggle' -- - } -- Undos in a tree for easy access - use 'mhinz/vim-grepper' -- Grepper command - improved grepping throughout project - use 'radenling/vim-dispatch-neovim' -- vim-dispatch for neovim - uses terminal - use 'wellle/targets.vim' -- Additional targets for inside and around motions - use 'flazz/vim-colorschemes' -- All popular colorschemes - use 'romainl/vim-qf' -- Quickfix list upgrades - use 'romainl/vim-devdocs' -- Quick DevDocs.io search using :DD - use 'gpanders/editorconfig.nvim' -- .editorconfig support - use 'lewis6991/impatient.nvim' -- Caching lua modules for faster startup + -- General improvements + use "airblade/vim-gitgutter" -- Git signs + use "godlygeek/tabular" -- Tabular command for alignment + use "vim-scripts/utl.vim" -- Universal text linking + use { + "mbbill/undotree", + cmd = "UndotreeToggle" + } -- Undos in a tree for easy access + use "mhinz/vim-grepper" -- Grepper command - improved grepping throughout project + use "radenling/vim-dispatch-neovim" -- vim-dispatch for neovim - uses terminal + use "wellle/targets.vim" -- Additional targets for inside and around motions + use "flazz/vim-colorschemes" -- All popular colorschemes + use "romainl/vim-qf" -- Quickfix list upgrades + use "romainl/vim-devdocs" -- Quick DevDocs.io search using :DD + use "gpanders/editorconfig.nvim" -- .editorconfig support + use "lewis6991/impatient.nvim" -- Caching lua modules for faster startup - -- Tools -- - use 'direnv/direnv.vim' -- Integration with Direnv - use 'vim-test/vim-test' -- Running tests from vim - use 'dense-analysis/ale' -- Asynchronous Lint Engine - used for linting, not for LSP - use 'nathunsmitty/nvim-ale-diagnostic' -- Neovim LSP + ALE integration - use 'mfussenegger/nvim-dap' -- Debug Adapter Protocol - use 'rcarriga/nvim-dap-ui' -- UI components for DAP - use 'theHamsta/nvim-dap-virtual-text' -- Virtual text display for DAP - use 'diepm/vim-rest-console' -- REST console for vim - use 'Pocco81/DAPInstall.nvim' -- Easy DAP configuration - use 'jamestthompson3/nvim-remote-containers' -- devcontainer.json support - use 'jbyuki/one-small-step-for-vimkind' -- Debugger for Nvim-Lua + -- Tools + use "direnv/direnv.vim" -- Integration with Direnv + use "vim-test/vim-test" -- Running tests from vim + use "dense-analysis/ale" -- Asynchronous Lint Engine - used for linting, not for LSP + use "nathunsmitty/nvim-ale-diagnostic" -- Neovim LSP + ALE integration + use "mfussenegger/nvim-dap" -- Debug Adapter Protocol + use "rcarriga/nvim-dap-ui" -- UI components for DAP + use "theHamsta/nvim-dap-virtual-text" -- Virtual text display for DAP + use "diepm/vim-rest-console" -- REST console for vim + use "Pocco81/DAPInstall.nvim" -- Easy DAP configuration + use "jamestthompson3/nvim-remote-containers" -- devcontainer.json support + use "jbyuki/one-small-step-for-vimkind" -- Debugger for Nvim-Lua - -- Snippets -- - if vim.g.loaded_python3_provider ~= 0 -- - then -- - use 'SirVer/ultisnips' -- Snippets in python format - use 'honza/vim-snippets' -- Collection of snippets for UltiSnips - end -- + -- Snippets + if vim.g.loaded_python3_provider ~= 0 then + use "SirVer/ultisnips" -- Snippets in python format + use "honza/vim-snippets" -- Collection of snippets for UltiSnips + end - -- Language support -- - use 'tpope/vim-rails' -- Enables all rails command through vim and integrates with projectionist - use 'c-brenn/phoenix.vim' -- Similar to vim-rails, but for phoenix - use 'tpope/vim-salve' -- Clojure integration with projectionist - use 'tpope/vim-fireplace' -- Clojure REPL and integration - use 'vimwiki/vimwiki' -- Vimwiki - personal wiki in vim - use 'esensar/vimwiki-reviews-lua' -- Vimwiki extension for periodic reviews - use 'ledger/vim-ledger' -- Support for ledger-cli format - use 'tandrewnichols/vim-docile' -- Support for vim doc.txt format - use 'habamax/vim-godot' -- Godot engine (and script) support - use 'guns/vim-sexp' -- Precision editing for S-expressions - use( -- Simpler keymaps for vim-sexp - 'tpope/vim-sexp-mappings-for-regular-people' - ) - use 'tridactyl/vim-tridactyl' -- Tridactyl config file support + -- Language support + use "tpope/vim-rails" -- Enables all rails command through vim and integrates with projectionist + use "c-brenn/phoenix.vim" -- Similar to vim-rails, but for phoenix + use "tpope/vim-salve" -- Clojure integration with projectionist + use "tpope/vim-fireplace" -- Clojure REPL and integration + use "vimwiki/vimwiki" -- Vimwiki - personal wiki in vim + use "esensar/vimwiki-reviews-lua" -- Vimwiki extension for periodic reviews + use "ledger/vim-ledger" -- Support for ledger-cli format + use "tandrewnichols/vim-docile" -- Support for vim doc.txt format + use "habamax/vim-godot" -- Godot engine (and script) support + use "guns/vim-sexp" -- Precision editing for S-expressions + use("tpope/vim-sexp-mappings-for-regular-people") -- Simpler keymaps for vim-sexp + use "tridactyl/vim-tridactyl" -- Tridactyl config file support + use "aklt/plantuml-syntax" -- PlantUML support - -- Treesitter -- - use { -- - 'nvim-treesitter/nvim-treesitter', -- - run = ':TSUpdate' -- - } -- Treesitter integration - use 'nvim-treesitter/playground' -- TSPlaygroundToggle - access treesitter data + -- Treesitter + use { + "nvim-treesitter/nvim-treesitter", + run = ":TSUpdate" + } -- Treesitter integration + use "nvim-treesitter/playground" -- TSPlaygroundToggle - access treesitter data - -- LSP -- - use 'neovim/nvim-lspconfig' -- Easy LSP Config - use 'alexaandru/nvim-lspupdate' -- Easy install and update for many LSP servers - use 'hrsh7th/cmp-nvim-lsp' -- LSP source for cmp - use 'hrsh7th/cmp-buffer' -- Buffer source for nvim-cmp - use 'hrsh7th/cmp-path' -- Path source for nvim-cmp - use 'hrsh7th/cmp-nvim-lua' -- Nvim-Lua source for nvim-cmp - use 'quangnguyen30192/cmp-nvim-ultisnips' -- Ultisnips source for nvim-cmp - use 'hrsh7th/nvim-cmp' -- completion integration - use 'nvim-lua/lsp_extensions.nvim' -- LSP extensions (like closing labels for Dart) + -- LSP + use "neovim/nvim-lspconfig" -- Easy LSP Config + use "alexaandru/nvim-lspupdate" -- Easy install and update for many LSP servers + use "hrsh7th/cmp-nvim-lsp" -- LSP source for cmp + use "hrsh7th/cmp-buffer" -- Buffer source for nvim-cmp + use "hrsh7th/cmp-path" -- Path source for nvim-cmp + use "hrsh7th/cmp-nvim-lua" -- Nvim-Lua source for nvim-cmp + use "quangnguyen30192/cmp-nvim-ultisnips" -- Ultisnips source for nvim-cmp + use "hrsh7th/nvim-cmp" -- completion integration + use "nvim-lua/lsp_extensions.nvim" -- LSP extensions (like closing labels for Dart) - -- LSP language specific - use 'tjdevries/nlua.nvim' -- Built-in Lua integration with LSP - use 'akinsho/flutter-tools.nvim' -- Additional flutter integrations - use 'mfussenegger/nvim-jdtls' -- Additional java integrations + -- LSP language specific + use "tjdevries/nlua.nvim" -- Built-in Lua integration with LSP + use "akinsho/flutter-tools.nvim" -- Additional flutter integrations + use "mfussenegger/nvim-jdtls" -- Additional java integrations - -- Lua support -- - use 'tjdevries/astronauta.nvim' -- Support for lua ftplugins and plugins - use 'nvim-lua/popup.nvim' -- Popup API integration - needed for some plugins - use 'nvim-lua/plenary.nvim' -- Lua helpers + -- Lua support + use "tjdevries/astronauta.nvim" -- Support for lua ftplugins and plugins + use "nvim-lua/popup.nvim" -- Popup API integration - needed for some plugins + use "nvim-lua/plenary.nvim" -- Lua helpers - -- Telescope -- - use 'nvim-telescope/telescope.nvim' -- Fuzzy searcher - use 'nvim-telescope/telescope-dap.nvim' -- DAP integration for Telescope - end + -- Telescope + use "nvim-telescope/telescope.nvim" -- Fuzzy searcher + use "nvim-telescope/telescope-dap.nvim" -- DAP integration for Telescope + end } diff --git a/symlinks/config/nvim/lua/lsp/completion.lua b/symlinks/config/nvim/lua/lsp/completion.lua index 6f63057..8b81327 100644 --- a/symlinks/config/nvim/lua/lsp/completion.lua +++ b/symlinks/config/nvim/lua/lsp/completion.lua @@ -5,25 +5,25 @@ -- Set completeopt to have a better completion experience vim.o.completeopt = "menu,menuone,noselect" -local cmp = require'cmp' +local cmp = require "cmp" cmp.setup { - snippet = { - expand = function(args) - vim.fn["UltiSnips#Anon"](args.body) - end, - }, - mapping = { - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.close(), - [''] = cmp.mapping.confirm({ select = true }), - }, - sources = { - { name = 'nvim_lsp' }, - { name = 'nvim_lua' }, - { name = 'path' }, - { name = 'ultisnips' }, - { name = 'buffer' }, - } + snippet = { + expand = function(args) + vim.fn["UltiSnips#Anon"](args.body) + end + }, + mapping = { + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.close(), + [""] = cmp.mapping.confirm({select = true}) + }, + sources = { + {name = "nvim_lsp"}, + {name = "nvim_lua"}, + {name = "path"}, + {name = "ultisnips"}, + {name = "buffer"} + } } diff --git a/symlinks/config/nvim/lua/lsp/diagnostic.lua b/symlinks/config/nvim/lua/lsp/diagnostic.lua index 862bd40..9e0ce73 100644 --- a/symlinks/config/nvim/lua/lsp/diagnostic.lua +++ b/symlinks/config/nvim/lua/lsp/diagnostic.lua @@ -4,13 +4,15 @@ require("nvim-ale-diagnostic") -vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( - vim.lsp.diagnostic.on_publish_diagnostics, { - underline = false, - virtual_text = false, - signs = true, - update_in_insert = false, - } +vim.lsp.handlers["textDocument/publishDiagnostics"] = + vim.lsp.with( + vim.lsp.diagnostic.on_publish_diagnostics, + { + underline = false, + virtual_text = false, + signs = true, + update_in_insert = false + } ) vim.g.diagnostic_enable_virtual_text = 1 diff --git a/symlinks/config/nvim/lua/lsp/jdtls_setup.lua b/symlinks/config/nvim/lua/lsp/jdtls_setup.lua index f4e966e..67b53aa 100644 --- a/symlinks/config/nvim/lua/lsp/jdtls_setup.lua +++ b/symlinks/config/nvim/lua/lsp/jdtls_setup.lua @@ -6,59 +6,62 @@ local common_config = require("lsp.server_config") local M = {} function M.setup() - require'jdtls'.setup_dap() - require'jdtls.setup'.add_commands() - local on_attach = function(client, bufnr) + require "jdtls".setup_dap() + require "jdtls.setup".add_commands() + local on_attach = function(client, bufnr) + local function buf_set_keymap(...) + vim.api.nvim_buf_set_keymap(bufnr, ...) + end + local function buf_set_option(...) + vim.api.nvim_buf_set_option(bufnr, ...) + end - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end + buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + local default_opts = {noremap = true, silent = true} - local default_opts = {noremap = true, silent = true} + common_config.on_attach(client, bufnr) - common_config.on_attach(client, bufnr) + buf_set_keymap("n", "", "lua require('jdtls').code_action()", default_opts) + buf_set_keymap("n", "ac", "lua require('jdtls').code_action()", default_opts) + end - buf_set_keymap('n', '', "lua require('jdtls').code_action()", default_opts) - buf_set_keymap('n', 'ac', "lua require('jdtls').code_action()", default_opts) - end + local root_markers = {"gradlew", "pom.xml"} + local root_dir = require("jdtls.setup").find_root(root_markers) + local home = os.getenv("HOME") - local root_markers = {'gradlew', 'pom.xml'} - local root_dir = require('jdtls.setup').find_root(root_markers) - local home = os.getenv('HOME') + local workspace_folder = home .. "/.workspace" .. vim.fn.fnamemodify(root_dir, ":p:h:t") + local config = { + flags = { + allow_incremental_sync = true + }, + on_attach = on_attach + } + config.settings = { + java = { + signatureHelp = {enabled = true}, + sources = { + organizeImports = { + starThreshold = 9999, + staticStarThreshold = 9999 + } + } + } + } + config.cmd = {"jdtls-start.sh", workspace_folder} + config.on_init = function(client, _) + client.notify("workspace/didChangeConfiguration", {settings = config.settings}) + end - local workspace_folder = home .. "/.workspace" .. vim.fn.fnamemodify(root_dir, ":p:h:t") - local config = { - flags = { - allow_incremental_sync = true, - }; - on_attach = on_attach, - } - config.settings = { - java = { - signatureHelp = { enabled = true }; - sources = { - organizeImports = { - starThreshold = 9999; - staticStarThreshold = 9999; - }; - }; - }; - } - config.cmd = {'jdtls-start.sh', workspace_folder} - config.on_init = function(client, _) - client.notify('workspace/didChangeConfiguration', { settings = config.settings }) - end + local extendedClientCapabilities = require "jdtls".extendedClientCapabilities + extendedClientCapabilities.resolveAdditionalTextEditsSupport = true + config.init_options = { + -- bundles = bundles; + extendedClientCapabilities = extendedClientCapabilities + } - local extendedClientCapabilities = require'jdtls'.extendedClientCapabilities - extendedClientCapabilities.resolveAdditionalTextEditsSupport = true - config.init_options = { - -- bundles = bundles; - extendedClientCapabilities = extendedClientCapabilities; - } - - -- Server - require('jdtls').start_or_attach(config) + -- Server + require("jdtls").start_or_attach(config) end return M diff --git a/symlinks/config/nvim/lua/lsp/server_config.lua b/symlinks/config/nvim/lua/lsp/server_config.lua index 4fcf1bb..aca5af1 100644 --- a/symlinks/config/nvim/lua/lsp/server_config.lua +++ b/symlinks/config/nvim/lua/lsp/server_config.lua @@ -5,24 +5,28 @@ local M = {} M.on_attach = function(client, bufnr) - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end + local function buf_set_keymap(...) + vim.api.nvim_buf_set_keymap(bufnr, ...) + end + local function buf_set_option(...) + vim.api.nvim_buf_set_option(bufnr, ...) + end - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") - local default_opts = {noremap = true, silent = true} + local default_opts = {noremap = true, silent = true} - -- Lsp keymaps - buf_set_keymap('n', '', 'lua vim.lsp.buf.definition()', default_opts) - buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', default_opts) - buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', default_opts) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', default_opts) - buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', default_opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', default_opts) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', default_opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.code_action()', default_opts) - buf_set_keymap('n', 'ac', 'lua vim.lsp.buf.code_action()', default_opts) - buf_set_keymap('n', 'a', 'lua vim.lsp.buf.code_action_range()', default_opts) + -- Lsp keymaps + buf_set_keymap("n", "", "lua vim.lsp.buf.definition()", default_opts) + buf_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", default_opts) + buf_set_keymap("n", "gr", "lua vim.lsp.buf.references()", default_opts) + buf_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", default_opts) + buf_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", default_opts) + buf_set_keymap("n", "", "lua vim.lsp.buf.signature_help()", default_opts) + buf_set_keymap("n", "K", "lua vim.lsp.buf.hover()", default_opts) + buf_set_keymap("n", "", "lua vim.lsp.buf.code_action()", default_opts) + buf_set_keymap("n", "ac", "lua vim.lsp.buf.code_action()", default_opts) + buf_set_keymap("n", "a", "lua vim.lsp.buf.code_action_range()", default_opts) end -return M; +return M diff --git a/symlinks/config/nvim/lua/lsp/servers.lua b/symlinks/config/nvim/lua/lsp/servers.lua index c3062a4..fcaa651 100644 --- a/symlinks/config/nvim/lua/lsp/servers.lua +++ b/symlinks/config/nvim/lua/lsp/servers.lua @@ -5,46 +5,75 @@ local lspconfig = require("lspconfig") local common_config = require("lsp.server_config") -local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) +local capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities()) -- Lsp default language servers -local servers = { "bashls", "clangd", "cucumber_language_server", "crystalline", "dockerls", "jsonls", "hls", "pyright", "rust_analyzer", "kotlin_language_server", "mint", "vimls", "clojure_lsp", "gopls", "gdscript", "solang", "terraformls", "tsserver" } +local servers = { + "bashls", + "clangd", + "cucumber_language_server", + "crystalline", + "dockerls", + "jsonls", + "hls", + "pyright", + "rust_analyzer", + "kotlin_language_server", + "mint", + "vimls", + "clojure_lsp", + "gopls", + "solang", + "terraformls", + "tsserver" +} for _, lsp in ipairs(servers) do - lspconfig[lsp].setup { - on_attach = common_config.on_attach, - capabilities = capabilities - } + lspconfig[lsp].setup { + on_attach = common_config.on_attach, + capabilities = capabilities + } end --- Lua bultin lsp -require('nlua.lsp.nvim').setup(lspconfig, { - on_attach = common_config.on_attach, - capabilities = capabilities, +lspconfig["gdscript"].setup { + on_attach = common_config.on_attach, + capabilities = capabilities, + flags = { + -- Slow Godot LS + debounce_text_changes = 600 + } +} - -- Include globals you want to tell the LSP are real :) - globals = {} -}) +-- Lua bultin lsp +require("nlua.lsp.nvim").setup( + lspconfig, + { + on_attach = common_config.on_attach, + capabilities = capabilities, + -- Include globals you want to tell the LSP are real :) + globals = {} + } +) -- Flutter tools -require('flutter-tools').setup { - lsp = { - on_attach = common_config.on_attach, - capabilities = capabilities - } +require("flutter-tools").setup { + lsp = { + on_attach = common_config.on_attach, + capabilities = capabilities + } } -- Dotnet LS local pid = vim.fn.getpid() -local omnisharp_bin = vim.fn.glob('$HOME') .. "/lsp/dotnet/omnisharp/run" +local omnisharp_bin = vim.fn.glob("$HOME") .. "/lsp/dotnet/omnisharp/run" lspconfig.omnisharp.setup { - cmd = { omnisharp_bin, "--languageserver" , "--hostPID", tostring(pid) }; - on_attach = common_config.on_attach; - capabilities = capabilities + cmd = {omnisharp_bin, "--languageserver", "--hostPID", tostring(pid)}, + on_attach = common_config.on_attach, + capabilities = capabilities } -- Leminx (XML Language server) lspconfig.lemminx.setup { - cmd = { "lemminx" }; - on_attach = common_config.on_attach; - capabilities = capabilities + cmd = {"lemminx"}, + on_attach = common_config.on_attach, + capabilities = capabilities } diff --git a/symlinks/config/nvim/lua/vim_rest_console_extensions.lua b/symlinks/config/nvim/lua/vim_rest_console_extensions.lua index 7d4322f..e6748a7 100644 --- a/symlinks/config/nvim/lua/vim_rest_console_extensions.lua +++ b/symlinks/config/nvim/lua/vim_rest_console_extensions.lua @@ -3,30 +3,30 @@ ------------------------------------------------------------------------------- local function get_vim_rest_home_dir() - vim.fn.mkdir(vim.env.NVIMHOME .. '/vim-rest-console', 'p') - return vim.env.NVIMHOME .. '/vim-rest-console' + vim.fn.mkdir(vim.env.NVIMHOME .. "/vim-rest-console", "p") + return vim.env.NVIMHOME .. "/vim-rest-console" end -- Opens up a new tab if current buffer is not empty local function new_tab_if_needed() - if vim.api.nvim_buf_get_name('%') ~= '' then - -- Current buffer is not empty, open up a new tab - vim.cmd('tabnew') - end + if vim.api.nvim_buf_get_name("%") ~= "" then + -- Current buffer is not empty, open up a new tab + vim.cmd("tabnew") + end end local function open_rest_console(file) - new_tab_if_needed() - local ending = '.rest' - if file:sub(-#ending) ~= ending then - file = file .. '.rest' - end - vim.cmd('e ' .. file) + new_tab_if_needed() + local ending = ".rest" + if file:sub(-(#ending)) ~= ending then + file = file .. ".rest" + end + vim.cmd("e " .. file) end local function open_cached_rest_console(name) - local dir = get_vim_rest_home_dir() - open_rest_console(dir .. '/' .. name) + local dir = get_vim_rest_home_dir() + open_rest_console(dir .. "/" .. name) end ------------------------------------------------------------------------------- @@ -37,32 +37,32 @@ local M = {} -- Opens us a scratch rest console (not saved) function M.open_scratch_rest_console() - new_tab_if_needed() - vim.cmd('set ft=rest') + new_tab_if_needed() + vim.cmd("set ft=rest") end -- Opens up a rest console which can be saved -- cached by name function M.open_cached_rest_console(...) - local name = select(1, ...) - if (select('#', ...) == 0) then - name = require'common.projects'.get_project_id() - end - open_cached_rest_console(name) + local name = select(1, ...) + if (select("#", ...) == 0) then + name = require "common.projects".get_project_id() + end + open_cached_rest_console(name) end -- Opens up a rest console which can be saved -- cached by name function M.open_named_cached_rest_console(name) - name = require'common.projects'.get_project_id() .. name - open_cached_rest_console(name) + name = require "common.projects".get_project_id() .. name + open_cached_rest_console(name) end -- Opens up a rest console based on local file path function M.open_local_rest_console(...) - local file = select(1, ...) - if (select('#', ...) == 0) then - file = 'default' - end - open_rest_console(file) + local file = select(1, ...) + if (select("#", ...) == 0) then + file = "default" + end + open_rest_console(file) end return M diff --git a/symlinks/config/nvim/lua/vimwiki_extensions.lua b/symlinks/config/nvim/lua/vimwiki_extensions.lua index c491b77..366aeab 100644 --- a/symlinks/config/nvim/lua/vimwiki_extensions.lua +++ b/symlinks/config/nvim/lua/vimwiki_extensions.lua @@ -2,78 +2,79 @@ -- - Vimwiki extensions library - -- Relies on vimwiki-reviews-lua for its vimwiki API ------------------------------------------------------------------------------- -local api = require('vimwiki_reviews.vimwiki_api') -local utils = require('vimwiki_reviews.utils') -local templates = require('vimwiki_reviews.templates') -local Path = require('plenary.path') -local scandir = require('plenary.scandir') +local api = require("vimwiki_reviews.vimwiki_api") +local utils = require("vimwiki_reviews.utils") +local templates = require("vimwiki_reviews.templates") +local Path = require("plenary.path") +local scandir = require("plenary.scandir") local M = {} -- Gets path to any dir of provided vimwiki (by index) function M.get_vimwiki_subdir(vimwiki_index, directory) - vimwiki_index = api.normalize_vimwiki_index(vimwiki_index) - local vimwiki = vim.g.vimwiki_list[vimwiki_index] + vimwiki_index = api.normalize_vimwiki_index(vimwiki_index) + local vimwiki = vim.g.vimwiki_list[vimwiki_index] - return vimwiki.path .. directory .. '/' + return vimwiki.path .. directory .. "/" end function M.get_directory_index(vimwiki_index, directory) - local dir = M.get_vimwiki_subdir(vimwiki_index, directory) - local path = Path:new(dir):expand() + local dir = M.get_vimwiki_subdir(vimwiki_index, directory) + local path = Path:new(dir):expand() - local entries = scandir.scan_dir( - path, - { - hidden = false, - add_dirs = false, - respect_gitignore = true, - depth = 1 - }) + local entries = + scandir.scan_dir( + path, + { + hidden = false, + add_dirs = false, + respect_gitignore = true, + depth = 1 + } + ) - local index = {} + local index = {} - for _,entry in pairs(entries) do - local filename = utils.get_filename_from_path(entry) - local ext = api.get_vimwiki_extension(vimwiki_index) - local noext = string.gsub(filename, ext, '') + for _, entry in pairs(entries) do + local filename = utils.get_filename_from_path(entry) + local ext = api.get_vimwiki_extension(vimwiki_index) + local noext = string.gsub(filename, ext, "") - index[noext] = filename - end + index[noext] = filename + end - table.sort(index) - return index + table.sort(index) + return index end -- Open subdirectory index file function M.open_subdirectory_index_file(vimwiki_index, subdirectory) - local dir = M.get_vimwiki_subdir(vimwiki_index, subdirectory) - local ext = api.get_vimwiki_extension(vimwiki_index) - local filename = dir .. 'index' .. ext - vim.cmd('edit ' .. filename) + local dir = M.get_vimwiki_subdir(vimwiki_index, subdirectory) + local ext = api.get_vimwiki_extension(vimwiki_index) + local filename = dir .. "index" .. ext + vim.cmd("edit " .. filename) - local index = M.get_directory_index(vimwiki_index, subdirectory) + local index = M.get_directory_index(vimwiki_index, subdirectory) - local builder = templates.for_vimwiki(vimwiki_index) + local builder = templates.for_vimwiki(vimwiki_index) - local lines = { - builder.header(1, subdirectory:sub(1,1):upper()..subdirectory:sub(2)), - '', - } + local lines = { + builder.header(1, subdirectory:sub(1, 1):upper() .. subdirectory:sub(2)), + "" + } - -- Add items - for title, fname in pairs(index) do - if (title ~= 'index') - then - title = string.gsub(title, '-', ' ') - title = title:sub(1,1):upper()..title:sub(2) - table.insert(lines, builder.list_item(builder.link(fname, title))) + -- Add items + for title, fname in pairs(index) do + if (title ~= "index") then + title = string.gsub(title, "-", " ") + title = title:sub(1, 1):upper() .. title:sub(2) + table.insert(lines, builder.list_item(builder.link(fname, title))) + end end - end - local buf = vim.api.nvim_get_current_buf() - vim.api.nvim_buf_set_lines(buf, 0, -1, false, {}) -- Clear out - vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines) -- Put new contents + local buf = vim.api.nvim_get_current_buf() + vim.api.nvim_buf_set_lines(buf, 0, -1, false, {}) -- Clear out + vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines) -- Put new contents end return M diff --git a/symlinks/config/nvim/plugin/dap.lua b/symlinks/config/nvim/plugin/dap.lua index 2d073e6..3126fe9 100644 --- a/symlinks/config/nvim/plugin/dap.lua +++ b/symlinks/config/nvim/plugin/dap.lua @@ -2,13 +2,13 @@ -- - NeoVim DAP (Debug Adapter Protocol) config - ------------------------------------------------------------------------------- -local dap = require('dap') -local dap_install = require('dap-install') +local dap = require("dap") +local dap_install = require("dap-install") local dbg_list = require("dap-install.api.debuggers").get_installed_debuggers() for _, debugger in ipairs(dbg_list) do - dap_install.config(debugger) + dap_install.config(debugger) end vim.cmd [[ au FileType dap-repl lua require('dap.ext.autocompl').attach() ]] @@ -17,14 +17,16 @@ vim.cmd [[ au FileType dap-repl lua require('dap.ext.autocompl').attach() ]] require("nvim-dap-virtual-text").setup() -- Keymaps -local function set_keymap(...) vim.api.nvim_set_keymap(...) end +local function set_keymap(...) + vim.api.nvim_set_keymap(...) +end local default_opts = {noremap = true, silent = true} -set_keymap('n', 'db', "lua require'dap'.toggle_breakpoint()", default_opts) -set_keymap('n', 'dc', "lua require'dap'.continue()", default_opts) -set_keymap('n', 'dso', "lua require'dap'.step_over()", default_opts) -set_keymap('n', 'dsi', "lua require'dap'.step_into()", default_opts) -set_keymap('n', 'dro', "lua require'dap'.open()", default_opts) +set_keymap("n", "db", "lua require'dap'.toggle_breakpoint()", default_opts) +set_keymap("n", "dc", "lua require'dap'.continue()", default_opts) +set_keymap("n", "dso", "lua require'dap'.step_over()", default_opts) +set_keymap("n", "dsi", "lua require'dap'.step_into()", default_opts) +set_keymap("n", "dro", "lua require'dap'.open()", default_opts) -- Nvim DAP UI require("dapui").setup() @@ -32,29 +34,22 @@ require("dapui").setup() -- Debugger Hover map local api = vim.api local keymap_restore = {} -dap.listeners.after['event_initialized']['me'] = function() - for _, buf in pairs(api.nvim_list_bufs()) do - local keymaps = api.nvim_buf_get_keymap(buf, 'n') - for _, keymap in pairs(keymaps) do - if keymap.lhs == "K" then - table.insert(keymap_restore, keymap) - api.nvim_buf_del_keymap(buf, 'n', 'K') - end +dap.listeners.after["event_initialized"]["me"] = function() + for _, buf in pairs(api.nvim_list_bufs()) do + local keymaps = api.nvim_buf_get_keymap(buf, "n") + for _, keymap in pairs(keymaps) do + if keymap.lhs == "K" then + table.insert(keymap_restore, keymap) + api.nvim_buf_del_keymap(buf, "n", "K") + end + end end - end - api.nvim_set_keymap( - 'n', 'K', 'lua require("dap.ui.variables").hover()', { silent = true }) + api.nvim_set_keymap("n", "K", 'lua require("dap.ui.variables").hover()', {silent = true}) end -dap.listeners.after['event_terminated']['me'] = function() - for _, keymap in pairs(keymap_restore) do - api.nvim_buf_set_keymap( - keymap.buffer, - keymap.mode, - keymap.lhs, - keymap.rhs, - { silent = keymap.silent == 1 } - ) - end - keymap_restore = {} +dap.listeners.after["event_terminated"]["me"] = function() + for _, keymap in pairs(keymap_restore) do + api.nvim_buf_set_keymap(keymap.buffer, keymap.mode, keymap.lhs, keymap.rhs, {silent = keymap.silent == 1}) + end + keymap_restore = {} end diff --git a/symlinks/config/nvim/plugin/fugitive.lua b/symlinks/config/nvim/plugin/fugitive.lua index dcfb4f1..c6f260a 100644 --- a/symlinks/config/nvim/plugin/fugitive.lua +++ b/symlinks/config/nvim/plugin/fugitive.lua @@ -2,15 +2,15 @@ -- - Fugitive.vim setup and extra commands - ------------------------------------------------------------------------------- -vim.cmd[[command! -nargs=0 Ggpush :lua require('fugitive_extensions').push_origin()]] -vim.cmd[[command! -nargs=0 Ggpull :lua require('fugitive_extensions').pull_origin()]] -vim.cmd[[command! -nargs=? Gpropen :lua require('fugitive_extensions').open_new_pr()]] -vim.cmd[[command! -nargs=? Gpr Gpropen ]] -vim.cmd[[command! -nargs=? Gprprint :lua require('fugitive_extensions').print_pr_url()]] -vim.cmd[[command! -nargs=? Gprcopy :lua require('fugitive_extensions').copy_pr_url()]] -vim.cmd[[command! -nargs=1 Gcbranch :lua require('fugitive_extensions').create_branch()]] -vim.cmd[[command! -nargs=0 Gcmaster :lua require('fugitive_extensions').checkout_branch('main')]] -vim.cmd[[command! -nargs=0 Gcm Gcmaster]] -vim.cmd[[command! -nargs=0 Gcdev :lua require('fugitive_extensions').checkout_branch('develop')]] -vim.cmd[[command! -nargs=1 Gcheckout :lua require('fugitive_extensions').checkout_branch()]] -vim.cmd[[command! -nargs=1 Gc Gcheckout ]] +vim.cmd [[command! -nargs=0 Ggpush :lua require('fugitive_extensions').push_origin()]] +vim.cmd [[command! -nargs=0 Ggpull :lua require('fugitive_extensions').pull_origin()]] +vim.cmd [[command! -nargs=? Gpropen :lua require('fugitive_extensions').open_new_pr()]] +vim.cmd [[command! -nargs=? Gpr Gpropen ]] +vim.cmd [[command! -nargs=? Gprprint :lua require('fugitive_extensions').print_pr_url()]] +vim.cmd [[command! -nargs=? Gprcopy :lua require('fugitive_extensions').copy_pr_url()]] +vim.cmd [[command! -nargs=1 Gcbranch :lua require('fugitive_extensions').create_branch()]] +vim.cmd [[command! -nargs=0 Gcmaster :lua require('fugitive_extensions').checkout_branch('main')]] +vim.cmd [[command! -nargs=0 Gcm Gcmaster]] +vim.cmd [[command! -nargs=0 Gcdev :lua require('fugitive_extensions').checkout_branch('develop')]] +vim.cmd [[command! -nargs=1 Gcheckout :lua require('fugitive_extensions').checkout_branch()]] +vim.cmd [[command! -nargs=1 Gc Gcheckout ]] diff --git a/symlinks/config/nvim/plugin/projectionist.lua b/symlinks/config/nvim/plugin/projectionist.lua index 6b3dd31..9342ce5 100644 --- a/symlinks/config/nvim/plugin/projectionist.lua +++ b/symlinks/config/nvim/plugin/projectionist.lua @@ -1,481 +1,481 @@ local vim_readme_template = { - "# Name", - "", - "## Requirements", - "", - "## Installation", - "", - "## Usage", - "", - "### Commands", - "", - "### Keymaps", - "", - "## License", - "", - "[LICENSE NAME](LICENSE)" + "# Name", + "", + "## Requirements", + "", + "## Installation", + "", + "## Usage", + "", + "### Commands", + "", + "### Keymaps", + "", + "## License", + "", + "[LICENSE NAME](LICENSE)" } local vim_doc_template = { - "*{}.txt* Description", - "", - "INTRODUCTION *{}*", - "", - "Description", - "", - "CONTENTS *{}-contents*", - "", - " 1. Overview |{}-overview|", - " 2. Requirements |{}-requirements|", - " 3. Installation |{}-installation|", - " 4. Usage |{}-usage|", - " 5. Commands |{}-commands|", - " 6. Functions |{}-functions|", - " 7. Mappings |{}-mappings|", - " 8. Plugs |{}-plugs|", - " 9. Options |{}-options|", - " 10. Issues |{}-issues|", - " 11. Contributing |{}-contributing|", - " 12. Version |{}-version|", - " 13. License |{}-license|", - "", - "OVERVIEW *{}-overview*", - "", - "REQUIREMENTS *{}-requirements*", - "", - "INSTALLATION *{}-installation*", - "", - " 1. Plug ", - "", - " Add the following to your vimrc, or something sourced therein: >", - "", - " Plug 'esensar/{}'", - "<", - " Then install via `:PlugInstall`", - "", - " 2. Pathogen >", - "", - " cd ~/.vim/bundle", - " git clone https://github.com/esensar/{}.git", - "<", - " Then run `:Helptags`", - "", - " 3. Manual", - "", - " Clone this repository and copy the files in plugin/, autoload/, and doc/", - " to their respective directories in your vimfiles, or copy the text from", - " the github repository into new files in those directories. Make sure to", - " run `:helptags`.", - "", - "USAGE *{}-usage*", - "", - "COMMANDS *{}-commands*", - "", - "FUNCTIONS *{}-functions*", - "", - "MAPPINGS *{}-mappings*", - "", - "PLUGS *{}-plugs*", - "", - "OPTIONS *{}-options*", - "", - "ISSUES *{}-issues*", - "", - "If you experience issues using {}, please report them at", - ".", - "", - "CONTRIBUTING *{}-contributing*", - "", - "Feel free to look at already reported issues at ", - ".", - "If available, check out CONTRIBUTING.md in the repository.", - "Otherwise, feel free to create a new issue or pull request.", - "", - "VERSION *{}-version*", - "", - "Version 1.0.0", - "", - "LICENSE *{}-license*", - "", - "vim:tw=78:ts=2:ft=help:norl:" + "*{}.txt* Description", + "", + "INTRODUCTION *{}*", + "", + "Description", + "", + "CONTENTS *{}-contents*", + "", + " 1. Overview |{}-overview|", + " 2. Requirements |{}-requirements|", + " 3. Installation |{}-installation|", + " 4. Usage |{}-usage|", + " 5. Commands |{}-commands|", + " 6. Functions |{}-functions|", + " 7. Mappings |{}-mappings|", + " 8. Plugs |{}-plugs|", + " 9. Options |{}-options|", + " 10. Issues |{}-issues|", + " 11. Contributing |{}-contributing|", + " 12. Version |{}-version|", + " 13. License |{}-license|", + "", + "OVERVIEW *{}-overview*", + "", + "REQUIREMENTS *{}-requirements*", + "", + "INSTALLATION *{}-installation*", + "", + " 1. Plug ", + "", + " Add the following to your vimrc, or something sourced therein: >", + "", + " Plug 'esensar/{}'", + "<", + " Then install via `:PlugInstall`", + "", + " 2. Pathogen >", + "", + " cd ~/.vim/bundle", + " git clone https://github.com/esensar/{}.git", + "<", + " Then run `:Helptags`", + "", + " 3. Manual", + "", + " Clone this repository and copy the files in plugin/, autoload/, and doc/", + " to their respective directories in your vimfiles, or copy the text from", + " the github repository into new files in those directories. Make sure to", + " run `:helptags`.", + "", + "USAGE *{}-usage*", + "", + "COMMANDS *{}-commands*", + "", + "FUNCTIONS *{}-functions*", + "", + "MAPPINGS *{}-mappings*", + "", + "PLUGS *{}-plugs*", + "", + "OPTIONS *{}-options*", + "", + "ISSUES *{}-issues*", + "", + "If you experience issues using {}, please report them at", + ".", + "", + "CONTRIBUTING *{}-contributing*", + "", + "Feel free to look at already reported issues at ", + ".", + "If available, check out CONTRIBUTING.md in the repository.", + "Otherwise, feel free to create a new issue or pull request.", + "", + "VERSION *{}-version*", + "", + "Version 1.0.0", + "", + "LICENSE *{}-license*", + "", + "vim:tw=78:ts=2:ft=help:norl:" } local flutter_config = { - ["*"] = { - start = "flutter run" - }, - ["lib/*.dart"] = { - alternate = "test/{}_test.dart", - type = "source" - }, - ["test/*_test.dart"] = { - alternate = "lib/{}.dart", - type = "test", - template = { - "import 'package:flutter_test/flutter_test.dart';", - "", - "import 'package:flutter_template/{}.dart';", - "", - "void main() {", - " testWidgets('', (WidgetTester tester) async {", - " });", - "}" + ["*"] = { + start = "flutter run" + }, + ["lib/*.dart"] = { + alternate = "test/{}_test.dart", + type = "source" + }, + ["test/*_test.dart"] = { + alternate = "lib/{}.dart", + type = "test", + template = { + "import 'package:flutter_test/flutter_test.dart';", + "", + "import 'package:flutter_template/{}.dart';", + "", + "void main() {", + " testWidgets('', (WidgetTester tester) async {", + " });", + "}" + } } - } } local python_config = { - ["*.py"] = { - alternate = "tests/{dirname}/test_{basename}.py", - type = "source" - }, - ["tests/**/test_*.py"] = { - alternate = "{dirname}/{basename}.py", - type = "test", - template = { - "import unittest", - "from unittest import mock", - "", - "class {dirname|underscore|camelcase|capitalize}{basename|camelcase|capitalize}Test(unittest.TestCase):", - " pass", - "", - "", - "if __name__ == \"__main__\":", - " unittest.main()" + ["*.py"] = { + alternate = "tests/{dirname}/test_{basename}.py", + type = "source" + }, + ["tests/**/test_*.py"] = { + alternate = "{dirname}/{basename}.py", + type = "test", + template = { + "import unittest", + "from unittest import mock", + "", + "class {dirname|underscore|camelcase|capitalize}{basename|camelcase|capitalize}Test(unittest.TestCase):", + " pass", + "", + "", + 'if __name__ == "__main__":', + " unittest.main()" + } } - } } local dotnet_solution_config = { - ["src/**/Controllers/*.cs"] = { - type = "controller", - alternate = { - "tests/{dirname}.Tests/Controllers/{basename}Tests.cs", - "tests/{dirname}.IntegrationTests/Controllers/{basename}Tests.cs" + ["src/**/Controllers/*.cs"] = { + type = "controller", + alternate = { + "tests/{dirname}.Tests/Controllers/{basename}Tests.cs", + "tests/{dirname}.IntegrationTests/Controllers/{basename}Tests.cs" + } + }, + ["src/**/Models/*.cs"] = { + type = "model", + alternate = "tests/{dirname}.Tests/Models/{basename}Tests.cs" + }, + ["src/**/Views/*.cshtml"] = { + type = "view", + alternate = "tests/{dirname}.Tests/Views/{basename}Tests.cs" + }, + ["src/**/Services/*.cs"] = { + type = "service", + alternate = "tests/{dirname}.Tests/Services/{basename}Tests.cs" + }, + ["src/**/Extensions/*.cs"] = { + type = "extension", + alternate = "tests/{dirname}.Tests/Extensions/{basename}Tests.cs" + }, + ["*.csproj"] = { + type = "project" + }, + ["src/**/appsettings*json"] = { + type = "appsettings" + }, + ["src/*.cs"] = { + type = "source", + alternate = "tests/{dirname}.Tests/{basename}Tests.cs", + template = { + "using System;", + "", + "namespace {dirname|dot}", + "{", + " public class {basename}", + " {", + " }", + "}" + } + }, + ["tests/**.IntegrationTests/Controllers/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/Controllers/{basename}.cs" + }, + ["tests/**.Tests/Controllers/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/Controllers/{basename}.cs" + }, + ["tests/**.Tests/Views/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/Views/{basename}.cs" + }, + ["tests/**.Tests/Models/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/Models/{basename}.cs" + }, + ["tests/**.Tests/Services/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/Services/{basename}.cs" + }, + ["tests/**.Tests/Extensions/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/Extensions/{basename}.cs" + }, + ["tests/*Tests.cs"] = { + type = "test", + alternate = "src/{dirname}/{basename}.cs", + template = { + "using System;", + "", + "namespace {dirname|dot}", + "{", + " public class {basename}Tests", + " {", + " }", + "}" + } } - }, - ["src/**/Models/*.cs"] = { - type = "model", - alternate = "tests/{dirname}.Tests/Models/{basename}Tests.cs" - }, - ["src/**/Views/*.cshtml"] = { - type = "view", - alternate = "tests/{dirname}.Tests/Views/{basename}Tests.cs" - }, - ["src/**/Services/*.cs"] = { - type = "service", - alternate = "tests/{dirname}.Tests/Services/{basename}Tests.cs" - }, - ["src/**/Extensions/*.cs"] = { - type = "extension", - alternate = "tests/{dirname}.Tests/Extensions/{basename}Tests.cs" - }, - ["*.csproj"] = { - type = "project" - }, - ["src/**/appsettings*json"] = { - type = "appsettings" - }, - ["src/*.cs"] = { - type = "source", - alternate = "tests/{dirname}.Tests/{basename}Tests.cs", - template = { - "using System;", - "", - "namespace {dirname|dot}", - "{", - " public class {basename}", - " {", - " }", - "}" - } - }, - ["tests/**.IntegrationTests/Controllers/*Tests.cs"] = { - type = "test", - alternate = "src/{dirname}/Controllers/{basename}.cs" - }, - ["tests/**.Tests/Controllers/*Tests.cs"] = { - type = "test", - alternate = "src/{dirname}/Controllers/{basename}.cs" - }, - ["tests/**.Tests/Views/*Tests.cs"] = { - type = "test", - alternate = "src/{dirname}/Views/{basename}.cs" - }, - ["tests/**.Tests/Models/*Tests.cs"] = { - type = "test", - alternate = "src/{dirname}/Models/{basename}.cs" - }, - ["tests/**.Tests/Services/*Tests.cs"] = { - type = "test", - alternate = "src/{dirname}/Services/{basename}.cs" - }, - ["tests/**.Tests/Extensions/*Tests.cs"] = { - type = "test", - alternate = "src/{dirname}/Extensions/{basename}.cs" - }, - ["tests/*Tests.cs"] = { - type = "test", - alternate = "src/{dirname}/{basename}.cs", - template = { - "using System;", - "", - "namespace {dirname|dot}", - "{", - " public class {basename}Tests", - " {", - " }", - "}" - } - } } local vim_plugin_config = { - ["doc/*.txt"] = { - type = "help", - template = vim_doc_template - }, - ["autoload/*.vim"] = { - type = "autoload", - alternate = "test/{}.vader" - }, - ["test/*.vader"] = { - type = "test", - altername = "autoload/{}.vim" - }, - ["plugin/*.vim"] = { - type = "plugin", - template = { - "if exists(\"g:loaded_{}\") || &cp | finish | endif", - "", - "let g:loaded_{} = 1" + ["doc/*.txt"] = { + type = "help", + template = vim_doc_template + }, + ["autoload/*.vim"] = { + type = "autoload", + alternate = "test/{}.vader" + }, + ["test/*.vader"] = { + type = "test", + altername = "autoload/{}.vim" + }, + ["plugin/*.vim"] = { + type = "plugin", + template = { + 'if exists("g:loaded_{}") || &cp | finish | endif', + "", + "let g:loaded_{} = 1" + } + }, + ["README.md"] = { + template = vim_readme_template } - }, - ["README.md"] = { - template = vim_readme_template - } } local lua_vim_plugin_config = { - ["doc/*.txt"] = { - type = "help", - template = vim_doc_template - }, - ["plugin/*.vim"] = { - type = "plugin", - template = { - "if exists(\"g:loaded_{}\") || &cp | finish | endif", - "", - "let g:loaded_{} = 1" + ["doc/*.txt"] = { + type = "help", + template = vim_doc_template + }, + ["plugin/*.vim"] = { + type = "plugin", + template = { + 'if exists("g:loaded_{}") || &cp | finish | endif', + "", + "let g:loaded_{} = 1" + } + }, + ["lua/*.lua"] = { + type = "source", + alternate = "test/{}.lua" + }, + ["test/*.lua"] = { + type = "test", + alternate = "lua/{}.lua" + }, + ["README.md"] = { + template = vim_readme_template } - }, - ["lua/*.lua"] = { - type = "source", - alternate = "test/{}.lua" - }, - ["test/*.lua"] = { - type = "test", - alternate = "lua/{}.lua" - }, - ["README.md"] = { - template = vim_readme_template - } } local csharp_project_config = { - ["*"] = { - start = "dotnet run", - console = "dotnet fsi" - } + ["*"] = { + start = "dotnet run", + console = "dotnet fsi" + } } local java_project_config = { - ["src/main/java/*.java"] = { - type = "source", - template = { - "package {dirname|dot};", - "", - "public class {basename} {open}", - "{close}" + ["src/main/java/*.java"] = { + type = "source", + template = { + "package {dirname|dot};", + "", + "public class {basename} {open}", + "{close}" + }, + alternate = "src/test/java/{}Test.java" }, - alternate = "src/test/java/{}Test.java" - }, - ["src/test/java/*Test.java"] = { - type = "test", - template = { - "package {dirname|dot};", - "", - "public class {basename}Test {open}", - "{close}" + ["src/test/java/*Test.java"] = { + type = "test", + template = { + "package {dirname|dot};", + "", + "public class {basename}Test {open}", + "{close}" + }, + alternate = "src/main/java/{}.java" }, - alternate = "src/main/java/{}.java" - }, - ["src/main/java/module-info.java"] = { - type = "moduleinfo", - }, - ["src/main/java/**/package-info.java"] = { - type = "packageinfo", - }, - ["src/main/resources/*"] = { - type = "resource" - }, - ["src/test/resources/*"] = { - type = "testresource" - }, + ["src/main/java/module-info.java"] = { + type = "moduleinfo" + }, + ["src/main/java/**/package-info.java"] = { + type = "packageinfo" + }, + ["src/main/resources/*"] = { + type = "resource" + }, + ["src/test/resources/*"] = { + type = "testresource" + } } local kotlin_project_config = { - ["src/main/kotlin/*.kt"] = { - type = "source", - template = { - "package {dirname|dot}", - "", - "class {basename} {open}", - "{close}" + ["src/main/kotlin/*.kt"] = { + type = "source", + template = { + "package {dirname|dot}", + "", + "class {basename} {open}", + "{close}" + }, + alternate = "src/test/kotlin/{}Test.kt" }, - alternate = "src/test/kotlin/{}Test.kt" - }, - ["src/main/java/*.kt"] = { - type = "source", - template = { - "package {dirname|dot}", - "", - "class {basename} {open}", - "{close}" + ["src/main/java/*.kt"] = { + type = "source", + template = { + "package {dirname|dot}", + "", + "class {basename} {open}", + "{close}" + }, + alternate = "src/test/java/{}Test.kt" }, - alternate = "src/test/java/{}Test.kt" - }, - ["src/test/kotlin/*Test.kt"] = { - type = "test", - template = { - "package {dirname|dot}", - "", - "class {basename}Test {open}", - "{close}" + ["src/test/kotlin/*Test.kt"] = { + type = "test", + template = { + "package {dirname|dot}", + "", + "class {basename}Test {open}", + "{close}" + }, + alternate = "src/main/kotlin/{}.kt" }, - alternate = "src/main/kotlin/{}.kt" - }, - ["src/test/java/*Test.kt"] = { - type = "test", - template = { - "package {dirname|dot}", - "", - "class {basename}Test {open}", - "{close}" + ["src/test/java/*Test.kt"] = { + type = "test", + template = { + "package {dirname|dot}", + "", + "class {basename}Test {open}", + "{close}" + }, + alternate = "src/main/java/{}.kt" }, - alternate = "src/main/java/{}.kt" - }, - ["src/main/resources/*"] = { - type = "resource" - }, - ["src/test/resources/*"] = { - type = "testresource" - } + ["src/main/resources/*"] = { + type = "resource" + }, + ["src/test/resources/*"] = { + type = "testresource" + } } local mint_config = { - ["*"] = { - start = "mint start" - }, - ["source/*.mint"] = { - type = "source", - template = { - "component {basename} {open}", - " style {basename|camelcase} {open}", - " {close}", - "", - " fun render : Html {open}", - " {close}", - "{close}" + ["*"] = { + start = "mint start" }, - alternate = "tests/{}.mint" - }, - ["tests/*.mint"] = { - type = "test", - template = { - "suite \"{basename}\" {open}", - " test \"A test\" {open}", - " with Test.Html {open}", - " {close}", - " {close}", - "{close}" + ["source/*.mint"] = { + type = "source", + template = { + "component {basename} {open}", + " style {basename|camelcase} {open}", + " {close}", + "", + " fun render : Html {open}", + " {close}", + "{close}" + }, + alternate = "tests/{}.mint" }, - alternate = "source/{}.mint" - } + ["tests/*.mint"] = { + type = "test", + template = { + 'suite "{basename}" {open}', + ' test "A test" {open}', + " with Test.Html {open}", + " {close}", + " {close}", + "{close}" + }, + alternate = "source/{}.mint" + } } local crystal_config = { - ["*"] = { - start = "crystal run" - }, - ["src/*.cr"] = { - type = "source", - template = { - "module {capitalize|colons}", - "end" + ["*"] = { + start = "crystal run" }, - alternate = "spec/{}_spec.cr" - }, - ["spec/*_spec.cr"] = { - type = "spec", - template = { - "describe {capitalize|colons} do", - " # TODO Write tests", - "", - " it \"works\" do", - " false.should eq(true)", - " end", - "end" + ["src/*.cr"] = { + type = "source", + template = { + "module {capitalize|colons}", + "end" + }, + alternate = "spec/{}_spec.cr" }, - alternate = "src/{}.cr" - } + ["spec/*_spec.cr"] = { + type = "spec", + template = { + "describe {capitalize|colons} do", + " # TODO Write tests", + "", + ' it "works" do', + " false.should eq(true)", + " end", + "end" + }, + alternate = "src/{}.cr" + } } local function c_project_config(source_extension, header_extension) - return { - ["*"] = { - start = "make run" - }, - ["src/*." .. source_extension] = { - type = "source", - alternate = { - "src/{}." .. header_extension, - "test/{}." .. source_extension, - "include/{project|basename}/{}." .. header_extension, - } - }, - ["test/*." .. source_extension] = { - type = "test", - alternate = { - "src/{}." .. header_extension - } - }, - ["src/*." .. header_extension] = { - type = "header", - alternate = { - "src/{}." .. source_extension - } - }, - ["include/{project|basename}/*." .. header_extension] = { - type = "header", - alternate = { - "src/{}." .. header_extension - } + return { + ["*"] = { + start = "make run" + }, + ["src/*." .. source_extension] = { + type = "source", + alternate = { + "src/{}." .. header_extension, + "test/{}." .. source_extension, + "include/{project|basename}/{}." .. header_extension + } + }, + ["test/*." .. source_extension] = { + type = "test", + alternate = { + "src/{}." .. header_extension + } + }, + ["src/*." .. header_extension] = { + type = "header", + alternate = { + "src/{}." .. source_extension + } + }, + ["include/{project|basename}/*." .. header_extension] = { + type = "header", + alternate = { + "src/{}." .. header_extension + } + } } - } end vim.g.projectionist_heuristics = { - ["pubspec.yaml"] = flutter_config, - ["requirements.txt|pyproject.toml"] = python_config, - ["*.sln"] = dotnet_solution_config, - ["*.csproj"] = csharp_project_config, - ["plugin/|autoload/"] = vim_plugin_config, - ["src/*.cpp|test/*.cpp"] = c_project_config("cpp", "hpp"), - ["src/*.c|test/*.c"] = c_project_config("c", "h"), - ["lua/"] = lua_vim_plugin_config, - ["build.gradle|pom.xml"] = java_project_config, - ["build.gradle|build.gradle.kts"] = kotlin_project_config, - ["mint.json"] = mint_config, - ["shard.yml"] = crystal_config + ["pubspec.yaml"] = flutter_config, + ["requirements.txt|pyproject.toml"] = python_config, + ["*.sln"] = dotnet_solution_config, + ["*.csproj"] = csharp_project_config, + ["plugin/|autoload/"] = vim_plugin_config, + ["src/*.cpp|test/*.cpp"] = c_project_config("cpp", "hpp"), + ["src/*.c|test/*.c"] = c_project_config("c", "h"), + ["lua/"] = lua_vim_plugin_config, + ["build.gradle|pom.xml"] = java_project_config, + ["build.gradle|build.gradle.kts"] = kotlin_project_config, + ["mint.json"] = mint_config, + ["shard.yml"] = crystal_config } diff --git a/symlinks/config/nvim/plugin/rest.lua b/symlinks/config/nvim/plugin/rest.lua index 41c7e57..710cd28 100644 --- a/symlinks/config/nvim/plugin/rest.lua +++ b/symlinks/config/nvim/plugin/rest.lua @@ -2,7 +2,7 @@ -- - Vim REST Console setup and extra commands - ------------------------------------------------------------------------------- -vim.cmd[[command! -nargs=0 ScratchRestConsole :lua require('vim_rest_console_extensions').open_scratch_rest_console()]] -vim.cmd[[command! -nargs=? RestConsole :lua require('vim_rest_console_extensions').open_cached_rest_console()]] -vim.cmd[[command! -nargs=? RestConsoleLocal :lua require('vim_rest_console_extensions').open_local_rest_console()]] -vim.cmd[[command! -nargs=1 RestConsoleCached :lua require('vim_rest_console_extensions').open_named_cached_rest_console()]] +vim.cmd [[command! -nargs=0 ScratchRestConsole :lua require('vim_rest_console_extensions').open_scratch_rest_console()]] +vim.cmd [[command! -nargs=? RestConsole :lua require('vim_rest_console_extensions').open_cached_rest_console()]] +vim.cmd [[command! -nargs=? RestConsoleLocal :lua require('vim_rest_console_extensions').open_local_rest_console()]] +vim.cmd [[command! -nargs=1 RestConsoleCached :lua require('vim_rest_console_extensions').open_named_cached_rest_console()]] diff --git a/symlinks/config/nvim/plugin/telescope.lua b/symlinks/config/nvim/plugin/telescope.lua index 7572ff1..179ddd5 100644 --- a/symlinks/config/nvim/plugin/telescope.lua +++ b/symlinks/config/nvim/plugin/telescope.lua @@ -2,28 +2,30 @@ -- - Telescope configuration - ------------------------------------------------------------------------------- -local actions = require('telescope.actions') -require('telescope').setup { - defaults = { - mappings = { - i = { - -- Switch out M-q and C-q since C-q will be used more often - [""] = actions.send_to_qflist + actions.open_qflist, - [""] = actions.send_selected_to_qflist + actions.open_qflist, - }, - n = { - -- Switch out M-q and C-q since C-q will be used more often - [""] = actions.send_to_qflist + actions.open_qflist, - [""] = actions.send_selected_to_qflist + actions.open_qflist, - } - }, - } +local actions = require("telescope.actions") +require("telescope").setup { + defaults = { + mappings = { + i = { + -- Switch out M-q and C-q since C-q will be used more often + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist + }, + n = { + -- Switch out M-q and C-q since C-q will be used more often + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist + } + } + } } -require('telescope').load_extension('dap') +require("telescope").load_extension("dap") default_opts = {noremap = true} -local function set_keymap(...) vim.api.nvim_set_keymap(...) end -set_keymap('n', '', "lua require('telescope.builtin').find_files()", default_opts) -set_keymap('n', '', "lua require('telescope.builtin').live_grep()", default_opts) +local function set_keymap(...) + vim.api.nvim_set_keymap(...) +end +set_keymap("n", "", "lua require('telescope.builtin').find_files()", default_opts) +set_keymap("n", "", "lua require('telescope.builtin').live_grep()", default_opts) diff --git a/symlinks/config/nvim/plugin/treesitter.lua b/symlinks/config/nvim/plugin/treesitter.lua index dde5d7e..cff3d9e 100644 --- a/symlinks/config/nvim/plugin/treesitter.lua +++ b/symlinks/config/nvim/plugin/treesitter.lua @@ -1,12 +1,12 @@ -require'nvim-treesitter.configs'.setup { - ensure_installed = "maintained", -- one of "all", "maintained" (parsers with maintainers), or a list of languages - highlight = { - enable = true, -- false will disable the whole extension - }, - playground = { - enable = true, - disable = {}, - updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code - persist_queries = false -- Whether the query persists across vim sessions - } +require "nvim-treesitter.configs".setup { + ensure_installed = "maintained", -- one of "all", "maintained" (parsers with maintainers), or a list of languages + highlight = { + enable = true -- false will disable the whole extension + }, + playground = { + enable = true, + disable = {}, + updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code + persist_queries = false -- Whether the query persists across vim sessions + } }