Increase godot LS debounce and reformat lua files

pull/2/head
Ensar Sarajčić 2021-12-02 16:12:10 +01:00
parent fabad863a1
commit 0d2cd042d9
21 changed files with 1061 additions and 1042 deletions

View File

@ -1,4 +1,4 @@
require('lsp.jdtls_setup').setup() require("lsp.jdtls_setup").setup()
vim.opt.shiftwidth = 4 vim.opt.shiftwidth = 4
vim.opt.tabstop = 4 vim.opt.tabstop = 4

View File

@ -1,9 +1,9 @@
if require('init.first_load')() then if require("init.first_load")() then
return return
end end
-- Allow `require('impatient')` to fail, in case plugins are not yet installed -- Allow `require('impatient')` to fail, in case plugins are not yet installed
_ = pcall(require, 'impatient') _ = pcall(require, "impatient")
vim.cmd [[filetype plugin indent on]] 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) vim.api.nvim_exec('let $VIMPLUGINS = expand($VIMHOME."/lua/personal/plugins.lua")', false)
-- Leader config to <Space> -- Leader config to <Space>
vim.g.mapleader = ' ' vim.g.mapleader = " "
-- Globals taken from TJ config -- Globals taken from TJ config
-- Helpful for configuration -- Helpful for configuration
-- Might be removed in future version of NeoVim -- 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 -- Colorscheme
vim.cmd('syntax on') vim.cmd("syntax on")
require('init.colors') require("init.colors")
vim.api.nvim_set_keymap('n', 'Q', 'gq', {}) vim.api.nvim_set_keymap("n", "Q", "gq", {})
vim.api.nvim_set_keymap('i', '<C-U>', '<C-G>u<C-U>', {noremap = true}) vim.api.nvim_set_keymap("i", "<C-U>", "<C-G>u<C-U>", {noremap = true})
vim.cmd('command! Wq :wq') vim.cmd("command! Wq :wq")
vim.cmd('command! W :w') vim.cmd("command! W :w")
vim.api.nvim_set_keymap('n', '<Leader>c', ':ccl <bar> lcl<CR>', {noremap = true}) vim.api.nvim_set_keymap("n", "<Leader>c", ":ccl <bar> lcl<CR>", {noremap = true})
-- Allow recursive searches -- Allow recursive searches
vim.cmd('set path+=**') vim.cmd("set path+=**")
-- automatically rebalance windows on vim resize -- automatically rebalance windows on vim resize
vim.cmd('autocmd VimResized * :wincmd =') vim.cmd("autocmd VimResized * :wincmd =")

View File

@ -7,30 +7,28 @@
-- Works regardless of ssh or https for origin config -- Works regardless of ssh or https for origin config
-- Hardcoded to use 'origin' remote -- Hardcoded to use 'origin' remote
local function get_pr_url(...) local function get_pr_url(...)
local origin_url = vim.fn['fugitive#RemoteUrl']('origin') local origin_url = vim.fn["fugitive#RemoteUrl"]("origin")
origin_url = string.gsub(origin_url, '.git$', '') origin_url = string.gsub(origin_url, ".git$", "")
origin_url = string.gsub(origin_url, ':', '/') origin_url = string.gsub(origin_url, ":", "/")
origin_url = string.gsub(origin_url, 'git@', 'https://') origin_url = string.gsub(origin_url, "git@", "https://")
-- Remove prefix if it is available, for some of common git services -- Remove prefix if it is available, for some of common git services
local common_services = {'github.com', 'bitbucket.org', 'gitlab.com'} local common_services = {"github.com", "bitbucket.org", "gitlab.com"}
for k,service in pairs(common_services) do for k, service in pairs(common_services) do
if (string.find(origin_url, service, 1, true)) if (string.find(origin_url, service, 1, true)) then
then -- Common mechanism for managing multiple SSH keys
-- Common mechanism for managing multiple SSH keys origin_url = string.gsub(origin_url, "://.*" .. service, "://" .. service)
origin_url = string.gsub(origin_url, '://.*' .. service, '://' .. service) end
end end
end
-- This part probably only works on github -- This part probably only works on github
local pr_url local pr_url
if (select('#', ...) == 0) if (select("#", ...) == 0) then
then pr_url = origin_url .. "/compare/" .. vim.fn.FugitiveHead() .. "?expand=1"
pr_url = origin_url .. '/compare/' .. vim.fn.FugitiveHead() .. '?expand=1' else
else pr_url = origin_url .. "/compare/" .. select(1, ...) .. "..." .. vim.fn.FugitiveHead() .. "?expand=1"
pr_url = origin_url .. '/compare/' .. select(1, ...) .. '...' .. vim.fn.FugitiveHead() .. '?expand=1' end
end return pr_url
return pr_url
end end
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@ -42,42 +40,41 @@ local M = {}
-- Shorcut to push directly to current branch on origin -- Shorcut to push directly to current branch on origin
-- Similar to `ggpush` in fish config -- Similar to `ggpush` in fish config
function M.push_origin() function M.push_origin()
vim.cmd('Git push origin ' .. vim.fn.FugitiveHead()) vim.cmd("Git push origin " .. vim.fn.FugitiveHead())
end end
-- Shorcut to pull directly from current branch on origin -- Shorcut to pull directly from current branch on origin
-- Similar to `ggpull` in fish config -- Similar to `ggpull` in fish config
function M.pull_origin() function M.pull_origin()
vim.cmd('Git pull origin ' .. vim.fn.FugitiveHead()) vim.cmd("Git pull origin " .. vim.fn.FugitiveHead())
end end
-- Prints current branches PR url (not saved to :messages) -- Prints current branches PR url (not saved to :messages)
-- Makes it easy to use terminal for opening url on click -- Makes it easy to use terminal for opening url on click
function M.print_pr_url(...) function M.print_pr_url(...)
vim.cmd('echo "' .. get_pr_url(...) .. '"') vim.cmd('echo "' .. get_pr_url(...) .. '"')
end end
-- Copies current branches PR url to system clipboard -- Copies current branches PR url to system clipboard
function M.copy_pr_url(...) function M.copy_pr_url(...)
vim.cmd('let @+ = "' .. get_pr_url(...) .. '"') vim.cmd('let @+ = "' .. get_pr_url(...) .. '"')
end end
-- Opens current banches PR url in default browser -- Opens current banches PR url in default browser
-- Utilizes netrw browse, meaning it should behave same as netrw -- Utilizes netrw browse, meaning it should behave same as netrw
function M.open_new_pr(...) function M.open_new_pr(...)
vim.fn['netrw#BrowseX'](get_pr_url(...), 0) vim.fn["netrw#BrowseX"](get_pr_url(...), 0)
end end
-- Creates new branch and checks out to it -- Creates new branch and checks out to it
-- Similar to `gcb` in fish config -- Similar to `gcb` in fish config
function M.create_branch(branch) function M.create_branch(branch)
vim.cmd('Git checkout -b ' .. branch) vim.cmd("Git checkout -b " .. branch)
end end
-- Switches to branch -- Switches to branch
function M.checkout_branch(branch) function M.checkout_branch(branch)
vim.cmd('Git checkout ' .. branch) vim.cmd("Git checkout " .. branch)
end end
return M return M

View File

@ -1,35 +1,31 @@
-- Adopted from https://github.com/tjdevries/config_manager/blob/master/xdg_config/nvim/lua/tj/first_load.lua -- Adopted from https://github.com/tjdevries/config_manager/blob/master/xdg_config/nvim/lua/tj/first_load.lua
local download_packer = function() local download_packer = function()
if vim.fn.input("Download Packer? (y for yes)") ~= "y" then if vim.fn.input("Download Packer? (y for yes)") ~= "y" then
return return
end end
local directory = string.format( local directory = string.format("%s/site/pack/packer/start/", vim.fn.stdpath("data"))
'%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( local out =
'git clone %s %s', vim.fn.system(
'https://github.com/wbthomason/packer.nvim', string.format("git clone %s %s", "https://github.com/wbthomason/packer.nvim", directory .. "/packer.nvim")
directory .. '/packer.nvim' )
))
print(out) print(out)
print("Downloading packer.nvim...") print("Downloading packer.nvim...")
vim.api.nvim_command('PackerCompile') vim.api.nvim_command("PackerCompile")
vim.api.nvim_command('PackerInstall') vim.api.nvim_command("PackerInstall")
print("( You'll need to restart now )") print("( You'll need to restart now )")
end end
return function() return function()
if not pcall(require, 'packer') then if not pcall(require, "packer") then
download_packer() download_packer()
return true return true
end end
return false return false
end end

View File

@ -2,18 +2,18 @@
-- - Adopted from TJ config (https://github.com/tjdevries/config_manager/blob/master/xdg_config/nvim/lua/tj/globals/init.lua) - -- - Adopted from TJ config (https://github.com/tjdevries/config_manager/blob/master/xdg_config/nvim/lua/tj/globals/init.lua) -
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
P = function(v) P = function(v)
print(vim.inspect(v)) print(vim.inspect(v))
return v return v
end end
if pcall(require, 'plenary') then if pcall(require, "plenary") then
RELOAD = require('plenary.reload').reload_module RELOAD = require("plenary.reload").reload_module
R = function(name) R = function(name)
RELOAD(name) RELOAD(name)
return require(name) return require(name)
end end
end end
-- `vim.opt` -- `vim.opt`
require('init.globals.opt') require("init.globals.opt")

View File

@ -12,7 +12,6 @@ set_opts {
} }
--]] --]]
--[[ Global option names --[[ Global option names
For those wondering how to get the values at the top level, For those wondering how to get the values at the top level,
@ -26,54 +25,53 @@ setfenv(function()
end, vim.opt)() end, vim.opt)()
--]] --]]
local if_nil = function(a, b) local if_nil = function(a, b)
if a == nil then if a == nil then
return b return b
end end
return a return a
end end
local singular_values = { local singular_values = {
['boolean'] = true, ["boolean"] = true,
['number'] = true, ["number"] = true,
['nil'] = true, ["nil"] = true
} }
local set_key_value = function(t, key_value_str) 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, ":")) local key, value = unpack(vim.split(key_value_str, ":"))
key = vim.trim(key) key = vim.trim(key)
value = vim.trim(value) value = vim.trim(value)
t[key] = value t[key] = value
end end
local convert_vimoption_to_lua = function(option, val) local convert_vimoption_to_lua = function(option, val)
-- Short circuit if we've already converted! -- Short circuit if we've already converted!
if type(val) == 'table' then if type(val) == "table" then
return val return val
end end
if singular_values[type(val)] then if singular_values[type(val)] then
return val return val
end end
if type(val) == "string" then if type(val) == "string" then
-- TODO: Bad hax I think -- TODO: Bad hax I think
if string.find(val, ":") then if string.find(val, ":") then
local result = {} local result = {}
local items = vim.split(val, ",") local items = vim.split(val, ",")
for _, item in ipairs(items) do for _, item in ipairs(items) do
set_key_value(result, item) set_key_value(result, item)
end end
return result return result
else else
return vim.split(val, ",") return vim.split(val, ",")
end
end end
end
end end
-- local concat_keys = function(t, sep) -- local concat_keys = function(t, sep)
@ -81,183 +79,177 @@ end
-- end -- end
local concat_key_values = function(t, sep, divider) local concat_key_values = function(t, sep, divider)
local final = {} local final = {}
for k, v in pairs(t) do for k, v in pairs(t) do
table.insert(final, string.format('%s%s%s', k, divider, v)) table.insert(final, string.format("%s%s%s", k, divider, v))
end end
table.sort(final) table.sort(final)
return table.concat(final, sep) return table.concat(final, sep)
end end
local remove_duplicate_values = function(t) local remove_duplicate_values = function(t)
local result = {} local result = {}
for _, v in ipairs(t) do for _, v in ipairs(t) do
result[v] = true result[v] = true
end end
return vim.tbl_keys(result) return vim.tbl_keys(result)
end end
local remove_value = function(t, val) local remove_value = function(t, val)
if vim.tbl_islist(t) then if vim.tbl_islist(t) then
local remove_index = nil local remove_index = nil
for i, v in ipairs(t) do for i, v in ipairs(t) do
if v == val then if v == val then
remove_index = i remove_index = i
end end
end
if remove_index then
table.remove(t, remove_index)
end
else
t[val] = nil
end end
if remove_index then return t
table.remove(t, remove_index)
end
else
t[val] = nil
end
return t
end end
local add_value = function(current, new) local add_value = function(current, new)
if singular_values[type(current)] then if singular_values[type(current)] then
error( error(
"This is not possible to do. Please do something different: " "This is not possible to do. Please do something different: " ..
.. tostring(current) tostring(current) .. " // " .. tostring(new)
.. " // " )
.. tostring(new)
)
end
if type(new) == 'string' then
if vim.tbl_islist(current) then
table.insert(current, new)
else
set_key_value(current, new)
end end
return current if type(new) == "string" then
elseif type(new) == 'table' then if vim.tbl_islist(current) then
if vim.tbl_islist(current) then table.insert(current, new)
assert(vim.tbl_islist(new)) else
vim.list_extend(current, new) set_key_value(current, new)
else end
assert(not vim.tbl_islist(new), vim.inspect(new) .. vim.inspect(current))
current = vim.tbl_extend("force", current, new)
end
return current return current
else elseif type(new) == "table" then
error("Unknown type") if vim.tbl_islist(current) then
end 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 end
local convert_lua_to_vimoption = function(t) local convert_lua_to_vimoption = function(t)
if vim.tbl_islist(t) then if vim.tbl_islist(t) then
t = remove_duplicate_values(t) t = remove_duplicate_values(t)
table.sort(t) table.sort(t)
return table.concat(t, ',') return table.concat(t, ",")
else else
return concat_key_values(t, ',', ':') return concat_key_values(t, ",", ":")
end end
end end
local clean_value = function(v) local clean_value = function(v)
if singular_values[type(v)] then if singular_values[type(v)] then
return v return v
end end
local result = v:gsub('^,', '') local result = v:gsub("^,", "")
return result return result
end end
local opt_mt local opt_mt
opt_mt = { opt_mt = {
__index = function(t, k) __index = function(t, k)
if k == '_value' then if k == "_value" then
return rawget(t, k) return rawget(t, k)
end end
return setmetatable({ _option = k, }, opt_mt) return setmetatable({_option = k}, opt_mt)
end, end,
__newindex = function(t, k, v)
if k == "_value" then
return rawset(t, k, v)
end
__newindex = function(t, k, v) if type(v) == "table" then
if k == '_value' then local new_value
return rawset(t, k, v) if getmetatable(v) ~= opt_mt then
end new_value = v
else
assert(v._value, "Must have a value to set this")
new_value = v._value
end
if type(v) == 'table' then vim.o[k] = convert_lua_to_vimoption(new_value)
local new_value return
if getmetatable(v) ~= opt_mt then end
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) if v == nil then
return v = ""
end end
if v == nil then -- TODO: Figure out why nvim_set_option doesn't override values the same way.
v = '' -- @bfredl said he will fix this for me, so I can just use nvim_set_option
end if type(v) == "boolean" then
vim.o[k] = clean_value(v)
-- TODO: Figure out why nvim_set_option doesn't override values the same way. if v then
-- @bfredl said he will fix this for me, so I can just use nvim_set_option vim.cmd(string.format("set %s", k))
if type(v) == 'boolean' then else
vim.o[k] = clean_value(v) vim.cmd(string.format("set no%s", k))
if v then end
vim.cmd(string.format("set %s", k)) else
else vim.cmd(string.format("set %s=%s", k, clean_value(v)))
vim.cmd(string.format("set no%s", k)) end
end end,
else __add = function(left, right)
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 + 'hello'
set.wildignore = set.wildignore + { '*.o', '*~', } 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") local existing = if_nil(left._value, vim.o[left._option])
if left._option == 'foldcolumn' then local current = convert_vimoption_to_lua(left._option, existing)
error("not implemented for foldcolumn.. use a string") 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 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) vim.opt = setmetatable({}, opt_mt)
return { return {
convert_vimoption_to_lua = convert_vimoption_to_lua, convert_vimoption_to_lua = convert_vimoption_to_lua,
opt = vim.opt, opt = vim.opt,
opt_mt = opt_mt opt_mt = opt_mt
} }

View File

@ -1,7 +1,7 @@
local opt = vim.opt local opt = vim.opt
opt.wildignore = '__pycache__' opt.wildignore = "__pycache__"
opt.wildignore = opt.wildignore + { '*.o' , '*~', '*.pyc', '*pycache*' } opt.wildignore = opt.wildignore + {"*.o", "*~", "*.pyc", "*pycache*"}
-- Indentation config -- Indentation config
opt.tabstop = 2 opt.tabstop = 2
@ -14,7 +14,7 @@ opt.number = true
opt.relativenumber = true opt.relativenumber = true
-- Misc -- 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.ttimeoutlen = 50
opt.backup = false -- do not keep a backup file, use versions instead opt.backup = false -- do not keep a backup file, use versions instead
opt.history = 50 -- Keep 50 lines of command line history 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.incsearch = true -- Do incremental searching
opt.autoread = true -- Reload files changed outside opt.autoread = true -- Reload files changed outside
opt.hidden = true -- Allow leaving unsaved buffers 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.hlsearch = true
opt.mouse = 'a' opt.mouse = "a"
opt.encoding = "utf-8" opt.encoding = "utf-8"

View File

@ -1,107 +1,105 @@
return require('packer').startup { return require("packer").startup {
function(use) function(use)
use 'wbthomason/packer.nvim' use "wbthomason/packer.nvim"
-- Tpope general improvements -- -- Tpope general improvements
use 'tpope/vim-sensible' -- Sane defaults use "tpope/vim-sensible" -- Sane defaults
use 'tpope/vim-endwise' -- Add closing statements automatically for if, function etc use "tpope/vim-endwise" -- Add closing statements automatically for if, function etc
use 'tpope/vim-surround' -- Surround with ', ", etc use "tpope/vim-surround" -- Surround with ', ", etc
use 'tpope/vim-fugitive' -- Git integration use "tpope/vim-fugitive" -- Git integration
use 'tpope/vim-vinegar' -- Netrw improvements use "tpope/vim-vinegar" -- Netrw improvements
use 'tpope/vim-obsession' -- Session.vim management use "tpope/vim-obsession" -- Session.vim management
use 'tpope/vim-dadbod' -- Database access use "tpope/vim-dadbod" -- Database access
use 'kristijanhusak/vim-dadbod-ui' -- UI For Dadbod use "kristijanhusak/vim-dadbod-ui" -- UI For Dadbod
use 'tpope/vim-speeddating' -- <C-A> and <C-X> for dates use "tpope/vim-speeddating" -- <C-A> and <C-X> for dates
use 'tpope/vim-dispatch' -- Dispatch command use "tpope/vim-dispatch" -- Dispatch command
use 'tpope/vim-projectionist' -- Project config file! use "tpope/vim-projectionist" -- Project config file!
use 'tpope/vim-unimpaired' -- Additional [ and ] mappings use "tpope/vim-unimpaired" -- Additional [ and ] mappings
use 'tpope/vim-repeat' -- Better . repeat use "tpope/vim-repeat" -- Better . repeat
use 'tpope/vim-commentary' -- Commenting motion use "tpope/vim-commentary" -- Commenting motion
use 'tpope/vim-sleuth' -- Intendation heuristics use "tpope/vim-sleuth" -- Intendation heuristics
-- General improvements -- -- General improvements
use 'airblade/vim-gitgutter' -- Git signs use "airblade/vim-gitgutter" -- Git signs
use 'godlygeek/tabular' -- Tabular command for alignment use "godlygeek/tabular" -- Tabular command for alignment
use 'vim-scripts/utl.vim' -- Universal text linking use "vim-scripts/utl.vim" -- Universal text linking
use { -- use {
'mbbill/undotree', -- "mbbill/undotree",
cmd = 'UndotreeToggle' -- cmd = "UndotreeToggle"
} -- Undos in a tree for easy access } -- Undos in a tree for easy access
use 'mhinz/vim-grepper' -- Grepper command - improved grepping throughout project use "mhinz/vim-grepper" -- Grepper command - improved grepping throughout project
use 'radenling/vim-dispatch-neovim' -- vim-dispatch for neovim - uses terminal use "radenling/vim-dispatch-neovim" -- vim-dispatch for neovim - uses terminal
use 'wellle/targets.vim' -- Additional targets for inside and around motions use "wellle/targets.vim" -- Additional targets for inside and around motions
use 'flazz/vim-colorschemes' -- All popular colorschemes use "flazz/vim-colorschemes" -- All popular colorschemes
use 'romainl/vim-qf' -- Quickfix list upgrades use "romainl/vim-qf" -- Quickfix list upgrades
use 'romainl/vim-devdocs' -- Quick DevDocs.io search using :DD use "romainl/vim-devdocs" -- Quick DevDocs.io search using :DD
use 'gpanders/editorconfig.nvim' -- .editorconfig support use "gpanders/editorconfig.nvim" -- .editorconfig support
use 'lewis6991/impatient.nvim' -- Caching lua modules for faster startup use "lewis6991/impatient.nvim" -- Caching lua modules for faster startup
-- Tools -- -- Tools
use 'direnv/direnv.vim' -- Integration with Direnv use "direnv/direnv.vim" -- Integration with Direnv
use 'vim-test/vim-test' -- Running tests from vim use "vim-test/vim-test" -- Running tests from vim
use 'dense-analysis/ale' -- Asynchronous Lint Engine - used for linting, not for LSP use "dense-analysis/ale" -- Asynchronous Lint Engine - used for linting, not for LSP
use 'nathunsmitty/nvim-ale-diagnostic' -- Neovim LSP + ALE integration use "nathunsmitty/nvim-ale-diagnostic" -- Neovim LSP + ALE integration
use 'mfussenegger/nvim-dap' -- Debug Adapter Protocol use "mfussenegger/nvim-dap" -- Debug Adapter Protocol
use 'rcarriga/nvim-dap-ui' -- UI components for DAP use "rcarriga/nvim-dap-ui" -- UI components for DAP
use 'theHamsta/nvim-dap-virtual-text' -- Virtual text display for DAP use "theHamsta/nvim-dap-virtual-text" -- Virtual text display for DAP
use 'diepm/vim-rest-console' -- REST console for vim use "diepm/vim-rest-console" -- REST console for vim
use 'Pocco81/DAPInstall.nvim' -- Easy DAP configuration use "Pocco81/DAPInstall.nvim" -- Easy DAP configuration
use 'jamestthompson3/nvim-remote-containers' -- devcontainer.json support use "jamestthompson3/nvim-remote-containers" -- devcontainer.json support
use 'jbyuki/one-small-step-for-vimkind' -- Debugger for Nvim-Lua use "jbyuki/one-small-step-for-vimkind" -- Debugger for Nvim-Lua
-- Snippets -- -- Snippets
if vim.g.loaded_python3_provider ~= 0 -- if vim.g.loaded_python3_provider ~= 0 then
then -- use "SirVer/ultisnips" -- Snippets in python format
use 'SirVer/ultisnips' -- Snippets in python format use "honza/vim-snippets" -- Collection of snippets for UltiSnips
use 'honza/vim-snippets' -- Collection of snippets for UltiSnips end
end --
-- Language support -- -- Language support
use 'tpope/vim-rails' -- Enables all rails command through vim and integrates with projectionist 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 "c-brenn/phoenix.vim" -- Similar to vim-rails, but for phoenix
use 'tpope/vim-salve' -- Clojure integration with projectionist use "tpope/vim-salve" -- Clojure integration with projectionist
use 'tpope/vim-fireplace' -- Clojure REPL and integration use "tpope/vim-fireplace" -- Clojure REPL and integration
use 'vimwiki/vimwiki' -- Vimwiki - personal wiki in vim use "vimwiki/vimwiki" -- Vimwiki - personal wiki in vim
use 'esensar/vimwiki-reviews-lua' -- Vimwiki extension for periodic reviews use "esensar/vimwiki-reviews-lua" -- Vimwiki extension for periodic reviews
use 'ledger/vim-ledger' -- Support for ledger-cli format use "ledger/vim-ledger" -- Support for ledger-cli format
use 'tandrewnichols/vim-docile' -- Support for vim doc.txt format use "tandrewnichols/vim-docile" -- Support for vim doc.txt format
use 'habamax/vim-godot' -- Godot engine (and script) support use "habamax/vim-godot" -- Godot engine (and script) support
use 'guns/vim-sexp' -- Precision editing for S-expressions use "guns/vim-sexp" -- Precision editing for S-expressions
use( -- Simpler keymaps for vim-sexp use("tpope/vim-sexp-mappings-for-regular-people") -- Simpler keymaps for vim-sexp
'tpope/vim-sexp-mappings-for-regular-people' use "tridactyl/vim-tridactyl" -- Tridactyl config file support
) use "aklt/plantuml-syntax" -- PlantUML support
use 'tridactyl/vim-tridactyl' -- Tridactyl config file support
-- Treesitter -- -- Treesitter
use { -- use {
'nvim-treesitter/nvim-treesitter', -- "nvim-treesitter/nvim-treesitter",
run = ':TSUpdate' -- run = ":TSUpdate"
} -- Treesitter integration } -- Treesitter integration
use 'nvim-treesitter/playground' -- TSPlaygroundToggle - access treesitter data use "nvim-treesitter/playground" -- TSPlaygroundToggle - access treesitter data
-- LSP -- -- LSP
use 'neovim/nvim-lspconfig' -- Easy LSP Config use "neovim/nvim-lspconfig" -- Easy LSP Config
use 'alexaandru/nvim-lspupdate' -- Easy install and update for many LSP servers use "alexaandru/nvim-lspupdate" -- Easy install and update for many LSP servers
use 'hrsh7th/cmp-nvim-lsp' -- LSP source for cmp use "hrsh7th/cmp-nvim-lsp" -- LSP source for cmp
use 'hrsh7th/cmp-buffer' -- Buffer source for nvim-cmp use "hrsh7th/cmp-buffer" -- Buffer source for nvim-cmp
use 'hrsh7th/cmp-path' -- Path 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 "hrsh7th/cmp-nvim-lua" -- Nvim-Lua source for nvim-cmp
use 'quangnguyen30192/cmp-nvim-ultisnips' -- Ultisnips source for nvim-cmp use "quangnguyen30192/cmp-nvim-ultisnips" -- Ultisnips source for nvim-cmp
use 'hrsh7th/nvim-cmp' -- completion integration use "hrsh7th/nvim-cmp" -- completion integration
use 'nvim-lua/lsp_extensions.nvim' -- LSP extensions (like closing labels for Dart) use "nvim-lua/lsp_extensions.nvim" -- LSP extensions (like closing labels for Dart)
-- LSP language specific -- LSP language specific
use 'tjdevries/nlua.nvim' -- Built-in Lua integration with LSP use "tjdevries/nlua.nvim" -- Built-in Lua integration with LSP
use 'akinsho/flutter-tools.nvim' -- Additional flutter integrations use "akinsho/flutter-tools.nvim" -- Additional flutter integrations
use 'mfussenegger/nvim-jdtls' -- Additional java integrations use "mfussenegger/nvim-jdtls" -- Additional java integrations
-- Lua support -- -- Lua support
use 'tjdevries/astronauta.nvim' -- Support for lua ftplugins and plugins 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/popup.nvim" -- Popup API integration - needed for some plugins
use 'nvim-lua/plenary.nvim' -- Lua helpers use "nvim-lua/plenary.nvim" -- Lua helpers
-- Telescope -- -- Telescope
use 'nvim-telescope/telescope.nvim' -- Fuzzy searcher use "nvim-telescope/telescope.nvim" -- Fuzzy searcher
use 'nvim-telescope/telescope-dap.nvim' -- DAP integration for Telescope use "nvim-telescope/telescope-dap.nvim" -- DAP integration for Telescope
end end
} }

View File

@ -5,25 +5,25 @@
-- Set completeopt to have a better completion experience -- Set completeopt to have a better completion experience
vim.o.completeopt = "menu,menuone,noselect" vim.o.completeopt = "menu,menuone,noselect"
local cmp = require'cmp' local cmp = require "cmp"
cmp.setup { cmp.setup {
snippet = { snippet = {
expand = function(args) expand = function(args)
vim.fn["UltiSnips#Anon"](args.body) vim.fn["UltiSnips#Anon"](args.body)
end, end
}, },
mapping = { mapping = {
['<C-d>'] = cmp.mapping.scroll_docs(-4), ["<C-d>"] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4), ["<C-f>"] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(), ["<C-Space>"] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.close(), ["<C-e>"] = cmp.mapping.close(),
['<C-y>'] = cmp.mapping.confirm({ select = true }), ["<C-y>"] = cmp.mapping.confirm({select = true})
}, },
sources = { sources = {
{ name = 'nvim_lsp' }, {name = "nvim_lsp"},
{ name = 'nvim_lua' }, {name = "nvim_lua"},
{ name = 'path' }, {name = "path"},
{ name = 'ultisnips' }, {name = "ultisnips"},
{ name = 'buffer' }, {name = "buffer"}
} }
} }

View File

@ -4,13 +4,15 @@
require("nvim-ale-diagnostic") require("nvim-ale-diagnostic")
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( vim.lsp.handlers["textDocument/publishDiagnostics"] =
vim.lsp.diagnostic.on_publish_diagnostics, { vim.lsp.with(
underline = false, vim.lsp.diagnostic.on_publish_diagnostics,
virtual_text = false, {
signs = true, underline = false,
update_in_insert = false, virtual_text = false,
} signs = true,
update_in_insert = false
}
) )
vim.g.diagnostic_enable_virtual_text = 1 vim.g.diagnostic_enable_virtual_text = 1

View File

@ -6,59 +6,62 @@ local common_config = require("lsp.server_config")
local M = {} local M = {}
function M.setup() function M.setup()
require'jdtls'.setup_dap() require "jdtls".setup_dap()
require'jdtls.setup'.add_commands() require "jdtls.setup".add_commands()
local on_attach = function(client, bufnr) 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 buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
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", "<A-CR>", "<cmd>lua require('jdtls').code_action()<CR>", default_opts)
buf_set_keymap("n", "<Leader>ac", "<cmd>lua require('jdtls').code_action()<CR>", default_opts)
end
buf_set_keymap('n', '<A-CR>', "<cmd>lua require('jdtls').code_action()<CR>", default_opts) local root_markers = {"gradlew", "pom.xml"}
buf_set_keymap('n', '<Leader>ac', "<cmd>lua require('jdtls').code_action()<CR>", default_opts) local root_dir = require("jdtls.setup").find_root(root_markers)
end local home = os.getenv("HOME")
local root_markers = {'gradlew', 'pom.xml'} local workspace_folder = home .. "/.workspace" .. vim.fn.fnamemodify(root_dir, ":p:h:t")
local root_dir = require('jdtls.setup').find_root(root_markers) local config = {
local home = os.getenv('HOME') 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 extendedClientCapabilities = require "jdtls".extendedClientCapabilities
local config = { extendedClientCapabilities.resolveAdditionalTextEditsSupport = true
flags = { config.init_options = {
allow_incremental_sync = true, -- bundles = bundles;
}; extendedClientCapabilities = extendedClientCapabilities
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 -- Server
extendedClientCapabilities.resolveAdditionalTextEditsSupport = true require("jdtls").start_or_attach(config)
config.init_options = {
-- bundles = bundles;
extendedClientCapabilities = extendedClientCapabilities;
}
-- Server
require('jdtls').start_or_attach(config)
end end
return M return M

View File

@ -5,24 +5,28 @@
local M = {} local M = {}
M.on_attach = function(client, bufnr) M.on_attach = function(client, bufnr)
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_keymap(...)
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end 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 -- Lsp keymaps
buf_set_keymap('n', '<C-]>', '<cmd>lua vim.lsp.buf.definition()<CR>', default_opts) buf_set_keymap("n", "<C-]>", "<cmd>lua vim.lsp.buf.definition()<CR>", default_opts)
buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', default_opts) buf_set_keymap("n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", default_opts)
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', default_opts) buf_set_keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", default_opts)
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', default_opts) buf_set_keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", default_opts)
buf_set_keymap('n', '<Leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', default_opts) buf_set_keymap("n", "<Leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", default_opts)
buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', default_opts) buf_set_keymap("n", "<C-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", default_opts)
buf_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', default_opts) buf_set_keymap("n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", default_opts)
buf_set_keymap('n', '<A-CR>', '<cmd>lua vim.lsp.buf.code_action()<CR>', default_opts) buf_set_keymap("n", "<A-CR>", "<cmd>lua vim.lsp.buf.code_action()<CR>", default_opts)
buf_set_keymap('n', '<Leader>ac', '<cmd>lua vim.lsp.buf.code_action()<CR>', default_opts) buf_set_keymap("n", "<Leader>ac", "<cmd>lua vim.lsp.buf.code_action()<CR>", default_opts)
buf_set_keymap('n', '<Leader>a', '<cmd>lua vim.lsp.buf.code_action_range()<CR>', default_opts) buf_set_keymap("n", "<Leader>a", "<cmd>lua vim.lsp.buf.code_action_range()<CR>", default_opts)
end end
return M; return M

View File

@ -5,46 +5,75 @@
local lspconfig = require("lspconfig") local lspconfig = require("lspconfig")
local common_config = require("lsp.server_config") 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 -- 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 for _, lsp in ipairs(servers) do
lspconfig[lsp].setup { lspconfig[lsp].setup {
on_attach = common_config.on_attach, on_attach = common_config.on_attach,
capabilities = capabilities capabilities = capabilities
} }
end end
-- Lua bultin lsp lspconfig["gdscript"].setup {
require('nlua.lsp.nvim').setup(lspconfig, { on_attach = common_config.on_attach,
on_attach = common_config.on_attach, capabilities = capabilities,
capabilities = capabilities, flags = {
-- Slow Godot LS
debounce_text_changes = 600
}
}
-- Include globals you want to tell the LSP are real :) -- Lua bultin lsp
globals = {} 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 -- Flutter tools
require('flutter-tools').setup { require("flutter-tools").setup {
lsp = { lsp = {
on_attach = common_config.on_attach, on_attach = common_config.on_attach,
capabilities = capabilities capabilities = capabilities
} }
} }
-- Dotnet LS -- Dotnet LS
local pid = vim.fn.getpid() 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 { lspconfig.omnisharp.setup {
cmd = { omnisharp_bin, "--languageserver" , "--hostPID", tostring(pid) }; cmd = {omnisharp_bin, "--languageserver", "--hostPID", tostring(pid)},
on_attach = common_config.on_attach; on_attach = common_config.on_attach,
capabilities = capabilities capabilities = capabilities
} }
-- Leminx (XML Language server) -- Leminx (XML Language server)
lspconfig.lemminx.setup { lspconfig.lemminx.setup {
cmd = { "lemminx" }; cmd = {"lemminx"},
on_attach = common_config.on_attach; on_attach = common_config.on_attach,
capabilities = capabilities capabilities = capabilities
} }

View File

@ -3,30 +3,30 @@
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
local function get_vim_rest_home_dir() local function get_vim_rest_home_dir()
vim.fn.mkdir(vim.env.NVIMHOME .. '/vim-rest-console', 'p') vim.fn.mkdir(vim.env.NVIMHOME .. "/vim-rest-console", "p")
return vim.env.NVIMHOME .. '/vim-rest-console' return vim.env.NVIMHOME .. "/vim-rest-console"
end end
-- Opens up a new tab if current buffer is not empty -- Opens up a new tab if current buffer is not empty
local function new_tab_if_needed() local function new_tab_if_needed()
if vim.api.nvim_buf_get_name('%') ~= '' then if vim.api.nvim_buf_get_name("%") ~= "" then
-- Current buffer is not empty, open up a new tab -- Current buffer is not empty, open up a new tab
vim.cmd('tabnew') vim.cmd("tabnew")
end end
end end
local function open_rest_console(file) local function open_rest_console(file)
new_tab_if_needed() new_tab_if_needed()
local ending = '.rest' local ending = ".rest"
if file:sub(-#ending) ~= ending then if file:sub(-(#ending)) ~= ending then
file = file .. '.rest' file = file .. ".rest"
end end
vim.cmd('e ' .. file) vim.cmd("e " .. file)
end end
local function open_cached_rest_console(name) local function open_cached_rest_console(name)
local dir = get_vim_rest_home_dir() local dir = get_vim_rest_home_dir()
open_rest_console(dir .. '/' .. name) open_rest_console(dir .. "/" .. name)
end end
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
@ -37,32 +37,32 @@ local M = {}
-- Opens us a scratch rest console (not saved) -- Opens us a scratch rest console (not saved)
function M.open_scratch_rest_console() function M.open_scratch_rest_console()
new_tab_if_needed() new_tab_if_needed()
vim.cmd('set ft=rest') vim.cmd("set ft=rest")
end end
-- Opens up a rest console which can be saved -- cached by name -- Opens up a rest console which can be saved -- cached by name
function M.open_cached_rest_console(...) function M.open_cached_rest_console(...)
local name = select(1, ...) local name = select(1, ...)
if (select('#', ...) == 0) then if (select("#", ...) == 0) then
name = require'common.projects'.get_project_id() name = require "common.projects".get_project_id()
end end
open_cached_rest_console(name) open_cached_rest_console(name)
end end
-- Opens up a rest console which can be saved -- cached by name -- Opens up a rest console which can be saved -- cached by name
function M.open_named_cached_rest_console(name) function M.open_named_cached_rest_console(name)
name = require'common.projects'.get_project_id() .. name name = require "common.projects".get_project_id() .. name
open_cached_rest_console(name) open_cached_rest_console(name)
end end
-- Opens up a rest console based on local file path -- Opens up a rest console based on local file path
function M.open_local_rest_console(...) function M.open_local_rest_console(...)
local file = select(1, ...) local file = select(1, ...)
if (select('#', ...) == 0) then if (select("#", ...) == 0) then
file = 'default' file = "default"
end end
open_rest_console(file) open_rest_console(file)
end end
return M return M

View File

@ -2,78 +2,79 @@
-- - Vimwiki extensions library - -- - Vimwiki extensions library -
-- Relies on vimwiki-reviews-lua for its vimwiki API -- Relies on vimwiki-reviews-lua for its vimwiki API
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
local api = require('vimwiki_reviews.vimwiki_api') local api = require("vimwiki_reviews.vimwiki_api")
local utils = require('vimwiki_reviews.utils') local utils = require("vimwiki_reviews.utils")
local templates = require('vimwiki_reviews.templates') local templates = require("vimwiki_reviews.templates")
local Path = require('plenary.path') local Path = require("plenary.path")
local scandir = require('plenary.scandir') local scandir = require("plenary.scandir")
local M = {} local M = {}
-- Gets path to any dir of provided vimwiki (by index) -- Gets path to any dir of provided vimwiki (by index)
function M.get_vimwiki_subdir(vimwiki_index, directory) function M.get_vimwiki_subdir(vimwiki_index, directory)
vimwiki_index = api.normalize_vimwiki_index(vimwiki_index) vimwiki_index = api.normalize_vimwiki_index(vimwiki_index)
local vimwiki = vim.g.vimwiki_list[vimwiki_index] local vimwiki = vim.g.vimwiki_list[vimwiki_index]
return vimwiki.path .. directory .. '/' return vimwiki.path .. directory .. "/"
end end
function M.get_directory_index(vimwiki_index, directory) function M.get_directory_index(vimwiki_index, directory)
local dir = M.get_vimwiki_subdir(vimwiki_index, directory) local dir = M.get_vimwiki_subdir(vimwiki_index, directory)
local path = Path:new(dir):expand() local path = Path:new(dir):expand()
local entries = scandir.scan_dir( local entries =
path, scandir.scan_dir(
{ path,
hidden = false, {
add_dirs = false, hidden = false,
respect_gitignore = true, add_dirs = false,
depth = 1 respect_gitignore = true,
}) depth = 1
}
)
local index = {} local index = {}
for _,entry in pairs(entries) do for _, entry in pairs(entries) do
local filename = utils.get_filename_from_path(entry) local filename = utils.get_filename_from_path(entry)
local ext = api.get_vimwiki_extension(vimwiki_index) local ext = api.get_vimwiki_extension(vimwiki_index)
local noext = string.gsub(filename, ext, '') local noext = string.gsub(filename, ext, "")
index[noext] = filename index[noext] = filename
end end
table.sort(index) table.sort(index)
return index return index
end end
-- Open subdirectory index file -- Open subdirectory index file
function M.open_subdirectory_index_file(vimwiki_index, subdirectory) function M.open_subdirectory_index_file(vimwiki_index, subdirectory)
local dir = M.get_vimwiki_subdir(vimwiki_index, subdirectory) local dir = M.get_vimwiki_subdir(vimwiki_index, subdirectory)
local ext = api.get_vimwiki_extension(vimwiki_index) local ext = api.get_vimwiki_extension(vimwiki_index)
local filename = dir .. 'index' .. ext local filename = dir .. "index" .. ext
vim.cmd('edit ' .. filename) 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 = { local lines = {
builder.header(1, subdirectory:sub(1,1):upper()..subdirectory:sub(2)), builder.header(1, subdirectory:sub(1, 1):upper() .. subdirectory:sub(2)),
'', ""
} }
-- Add items -- Add items
for title, fname in pairs(index) do for title, fname in pairs(index) do
if (title ~= 'index') if (title ~= "index") then
then title = string.gsub(title, "-", " ")
title = string.gsub(title, '-', ' ') title = title:sub(1, 1):upper() .. title:sub(2)
title = title:sub(1,1):upper()..title:sub(2) table.insert(lines, builder.list_item(builder.link(fname, title)))
table.insert(lines, builder.list_item(builder.link(fname, title))) end
end end
end
local buf = vim.api.nvim_get_current_buf() 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, {}) -- Clear out
vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines) -- Put new contents vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines) -- Put new contents
end end
return M return M

View File

@ -2,13 +2,13 @@
-- - NeoVim DAP (Debug Adapter Protocol) config - -- - NeoVim DAP (Debug Adapter Protocol) config -
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
local dap = require('dap') local dap = require("dap")
local dap_install = require('dap-install') local dap_install = require("dap-install")
local dbg_list = require("dap-install.api.debuggers").get_installed_debuggers() local dbg_list = require("dap-install.api.debuggers").get_installed_debuggers()
for _, debugger in ipairs(dbg_list) do for _, debugger in ipairs(dbg_list) do
dap_install.config(debugger) dap_install.config(debugger)
end end
vim.cmd [[ au FileType dap-repl lua require('dap.ext.autocompl').attach() ]] 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() require("nvim-dap-virtual-text").setup()
-- Keymaps -- 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} local default_opts = {noremap = true, silent = true}
set_keymap('n', '<Leader>db', "<cmd>lua require'dap'.toggle_breakpoint()<CR>", default_opts) set_keymap("n", "<Leader>db", "<cmd>lua require'dap'.toggle_breakpoint()<CR>", default_opts)
set_keymap('n', '<Leader>dc', "<cmd>lua require'dap'.continue()<CR>", default_opts) set_keymap("n", "<Leader>dc", "<cmd>lua require'dap'.continue()<CR>", default_opts)
set_keymap('n', '<Leader>dso', "<cmd>lua require'dap'.step_over()<CR>", default_opts) set_keymap("n", "<Leader>dso", "<cmd>lua require'dap'.step_over()<CR>", default_opts)
set_keymap('n', '<Leader>dsi', "<cmd>lua require'dap'.step_into()<CR>", default_opts) set_keymap("n", "<Leader>dsi", "<cmd>lua require'dap'.step_into()<CR>", default_opts)
set_keymap('n', '<Leader>dro', "<cmd>lua require'dap'.open()<CR>", default_opts) set_keymap("n", "<Leader>dro", "<cmd>lua require'dap'.open()<CR>", default_opts)
-- Nvim DAP UI -- Nvim DAP UI
require("dapui").setup() require("dapui").setup()
@ -32,29 +34,22 @@ require("dapui").setup()
-- Debugger Hover map -- Debugger Hover map
local api = vim.api local api = vim.api
local keymap_restore = {} local keymap_restore = {}
dap.listeners.after['event_initialized']['me'] = function() dap.listeners.after["event_initialized"]["me"] = function()
for _, buf in pairs(api.nvim_list_bufs()) do for _, buf in pairs(api.nvim_list_bufs()) do
local keymaps = api.nvim_buf_get_keymap(buf, 'n') local keymaps = api.nvim_buf_get_keymap(buf, "n")
for _, keymap in pairs(keymaps) do for _, keymap in pairs(keymaps) do
if keymap.lhs == "K" then if keymap.lhs == "K" then
table.insert(keymap_restore, keymap) table.insert(keymap_restore, keymap)
api.nvim_buf_del_keymap(buf, 'n', 'K') api.nvim_buf_del_keymap(buf, "n", "K")
end end
end
end end
end api.nvim_set_keymap("n", "K", '<Cmd>lua require("dap.ui.variables").hover()<CR>', {silent = true})
api.nvim_set_keymap(
'n', 'K', '<Cmd>lua require("dap.ui.variables").hover()<CR>', { silent = true })
end end
dap.listeners.after['event_terminated']['me'] = function() dap.listeners.after["event_terminated"]["me"] = function()
for _, keymap in pairs(keymap_restore) do for _, keymap in pairs(keymap_restore) do
api.nvim_buf_set_keymap( api.nvim_buf_set_keymap(keymap.buffer, keymap.mode, keymap.lhs, keymap.rhs, {silent = keymap.silent == 1})
keymap.buffer, end
keymap.mode, keymap_restore = {}
keymap.lhs,
keymap.rhs,
{ silent = keymap.silent == 1 }
)
end
keymap_restore = {}
end end

View File

@ -2,15 +2,15 @@
-- - Fugitive.vim setup and extra commands - -- - Fugitive.vim setup and extra commands -
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
vim.cmd[[command! -nargs=0 Ggpush :lua require('fugitive_extensions').push_origin()]] 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=0 Ggpull :lua require('fugitive_extensions').pull_origin()]]
vim.cmd[[command! -nargs=? Gpropen :lua require('fugitive_extensions').open_new_pr(<f-args>)]] vim.cmd [[command! -nargs=? Gpropen :lua require('fugitive_extensions').open_new_pr(<f-args>)]]
vim.cmd[[command! -nargs=? Gpr Gpropen <args>]] vim.cmd [[command! -nargs=? Gpr Gpropen <args>]]
vim.cmd[[command! -nargs=? Gprprint :lua require('fugitive_extensions').print_pr_url(<f-args>)]] vim.cmd [[command! -nargs=? Gprprint :lua require('fugitive_extensions').print_pr_url(<f-args>)]]
vim.cmd[[command! -nargs=? Gprcopy :lua require('fugitive_extensions').copy_pr_url(<f-args>)]] vim.cmd [[command! -nargs=? Gprcopy :lua require('fugitive_extensions').copy_pr_url(<f-args>)]]
vim.cmd[[command! -nargs=1 Gcbranch :lua require('fugitive_extensions').create_branch(<f-args>)]] vim.cmd [[command! -nargs=1 Gcbranch :lua require('fugitive_extensions').create_branch(<f-args>)]]
vim.cmd[[command! -nargs=0 Gcmaster :lua require('fugitive_extensions').checkout_branch('main')]] 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 Gcm Gcmaster]]
vim.cmd[[command! -nargs=0 Gcdev :lua require('fugitive_extensions').checkout_branch('develop')]] 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(<f-args>)]] vim.cmd [[command! -nargs=1 Gcheckout :lua require('fugitive_extensions').checkout_branch(<f-args>)]]
vim.cmd[[command! -nargs=1 Gc Gcheckout <args>]] vim.cmd [[command! -nargs=1 Gc Gcheckout <args>]]

View File

@ -1,481 +1,481 @@
local vim_readme_template = { local vim_readme_template = {
"# Name", "# Name",
"", "",
"## Requirements", "## Requirements",
"", "",
"## Installation", "## Installation",
"", "",
"## Usage", "## Usage",
"", "",
"### Commands", "### Commands",
"", "",
"### Keymaps", "### Keymaps",
"", "",
"## License", "## License",
"", "",
"[LICENSE NAME](LICENSE)" "[LICENSE NAME](LICENSE)"
} }
local vim_doc_template = { local vim_doc_template = {
"*{}.txt* Description", "*{}.txt* Description",
"", "",
"INTRODUCTION *{}*", "INTRODUCTION *{}*",
"", "",
"Description", "Description",
"", "",
"CONTENTS *{}-contents*", "CONTENTS *{}-contents*",
"", "",
" 1. Overview |{}-overview|", " 1. Overview |{}-overview|",
" 2. Requirements |{}-requirements|", " 2. Requirements |{}-requirements|",
" 3. Installation |{}-installation|", " 3. Installation |{}-installation|",
" 4. Usage |{}-usage|", " 4. Usage |{}-usage|",
" 5. Commands |{}-commands|", " 5. Commands |{}-commands|",
" 6. Functions |{}-functions|", " 6. Functions |{}-functions|",
" 7. Mappings |{}-mappings|", " 7. Mappings |{}-mappings|",
" 8. Plugs |{}-plugs|", " 8. Plugs |{}-plugs|",
" 9. Options |{}-options|", " 9. Options |{}-options|",
" 10. Issues |{}-issues|", " 10. Issues |{}-issues|",
" 11. Contributing |{}-contributing|", " 11. Contributing |{}-contributing|",
" 12. Version |{}-version|", " 12. Version |{}-version|",
" 13. License |{}-license|", " 13. License |{}-license|",
"", "",
"OVERVIEW *{}-overview*", "OVERVIEW *{}-overview*",
"", "",
"REQUIREMENTS *{}-requirements*", "REQUIREMENTS *{}-requirements*",
"", "",
"INSTALLATION *{}-installation*", "INSTALLATION *{}-installation*",
"", "",
" 1. Plug <https://github.com/junegunn/vim-plug>", " 1. Plug <https://github.com/junegunn/vim-plug>",
"", "",
" Add the following to your vimrc, or something sourced therein: >", " Add the following to your vimrc, or something sourced therein: >",
"", "",
" Plug 'esensar/{}'", " Plug 'esensar/{}'",
"<", "<",
" Then install via `:PlugInstall`", " Then install via `:PlugInstall`",
"", "",
" 2. Pathogen <https://github.com/tpope/vim-pathogen> >", " 2. Pathogen <https://github.com/tpope/vim-pathogen> >",
"", "",
" cd ~/.vim/bundle", " cd ~/.vim/bundle",
" git clone https://github.com/esensar/{}.git", " git clone https://github.com/esensar/{}.git",
"<", "<",
" Then run `:Helptags`", " Then run `:Helptags`",
"", "",
" 3. Manual", " 3. Manual",
"", "",
" Clone this repository and copy the files in plugin/, autoload/, and doc/", " Clone this repository and copy the files in plugin/, autoload/, and doc/",
" to their respective directories in your vimfiles, or copy the text from", " to their respective directories in your vimfiles, or copy the text from",
" the github repository into new files in those directories. Make sure to", " the github repository into new files in those directories. Make sure to",
" run `:helptags`.", " run `:helptags`.",
"", "",
"USAGE *{}-usage*", "USAGE *{}-usage*",
"", "",
"COMMANDS *{}-commands*", "COMMANDS *{}-commands*",
"", "",
"FUNCTIONS *{}-functions*", "FUNCTIONS *{}-functions*",
"", "",
"MAPPINGS *{}-mappings*", "MAPPINGS *{}-mappings*",
"", "",
"PLUGS *{}-plugs*", "PLUGS *{}-plugs*",
"", "",
"OPTIONS *{}-options*", "OPTIONS *{}-options*",
"", "",
"ISSUES *{}-issues*", "ISSUES *{}-issues*",
"", "",
"If you experience issues using {}, please report them at", "If you experience issues using {}, please report them at",
"<https://github.com/esensar/{}/issues>.", "<https://github.com/esensar/{}/issues>.",
"", "",
"CONTRIBUTING *{}-contributing*", "CONTRIBUTING *{}-contributing*",
"", "",
"Feel free to look at already reported issues at ", "Feel free to look at already reported issues at ",
"<https://github.com/esensar/{}/issues>.", "<https://github.com/esensar/{}/issues>.",
"If available, check out CONTRIBUTING.md in the repository.", "If available, check out CONTRIBUTING.md in the repository.",
"Otherwise, feel free to create a new issue or pull request.", "Otherwise, feel free to create a new issue or pull request.",
"", "",
"VERSION *{}-version*", "VERSION *{}-version*",
"", "",
"Version 1.0.0", "Version 1.0.0",
"", "",
"LICENSE *{}-license*", "LICENSE *{}-license*",
"", "",
"vim:tw=78:ts=2:ft=help:norl:" "vim:tw=78:ts=2:ft=help:norl:"
} }
local flutter_config = { local flutter_config = {
["*"] = { ["*"] = {
start = "flutter run" start = "flutter run"
}, },
["lib/*.dart"] = { ["lib/*.dart"] = {
alternate = "test/{}_test.dart", alternate = "test/{}_test.dart",
type = "source" type = "source"
}, },
["test/*_test.dart"] = { ["test/*_test.dart"] = {
alternate = "lib/{}.dart", alternate = "lib/{}.dart",
type = "test", type = "test",
template = { template = {
"import 'package:flutter_test/flutter_test.dart';", "import 'package:flutter_test/flutter_test.dart';",
"", "",
"import 'package:flutter_template/{}.dart';", "import 'package:flutter_template/{}.dart';",
"", "",
"void main() {", "void main() {",
" testWidgets('', (WidgetTester tester) async {", " testWidgets('', (WidgetTester tester) async {",
" });", " });",
"}" "}"
}
} }
}
} }
local python_config = { local python_config = {
["*.py"] = { ["*.py"] = {
alternate = "tests/{dirname}/test_{basename}.py", alternate = "tests/{dirname}/test_{basename}.py",
type = "source" type = "source"
}, },
["tests/**/test_*.py"] = { ["tests/**/test_*.py"] = {
alternate = "{dirname}/{basename}.py", alternate = "{dirname}/{basename}.py",
type = "test", type = "test",
template = { template = {
"import unittest", "import unittest",
"from unittest import mock", "from unittest import mock",
"", "",
"class {dirname|underscore|camelcase|capitalize}{basename|camelcase|capitalize}Test(unittest.TestCase):", "class {dirname|underscore|camelcase|capitalize}{basename|camelcase|capitalize}Test(unittest.TestCase):",
" pass", " pass",
"", "",
"", "",
"if __name__ == \"__main__\":", 'if __name__ == "__main__":',
" unittest.main()" " unittest.main()"
}
} }
}
} }
local dotnet_solution_config = { local dotnet_solution_config = {
["src/**/Controllers/*.cs"] = { ["src/**/Controllers/*.cs"] = {
type = "controller", type = "controller",
alternate = { alternate = {
"tests/{dirname}.Tests/Controllers/{basename}Tests.cs", "tests/{dirname}.Tests/Controllers/{basename}Tests.cs",
"tests/{dirname}.IntegrationTests/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 = { local vim_plugin_config = {
["doc/*.txt"] = { ["doc/*.txt"] = {
type = "help", type = "help",
template = vim_doc_template template = vim_doc_template
}, },
["autoload/*.vim"] = { ["autoload/*.vim"] = {
type = "autoload", type = "autoload",
alternate = "test/{}.vader" alternate = "test/{}.vader"
}, },
["test/*.vader"] = { ["test/*.vader"] = {
type = "test", type = "test",
altername = "autoload/{}.vim" altername = "autoload/{}.vim"
}, },
["plugin/*.vim"] = { ["plugin/*.vim"] = {
type = "plugin", type = "plugin",
template = { template = {
"if exists(\"g:loaded_{}\") || &cp | finish | endif", 'if exists("g:loaded_{}") || &cp | finish | endif',
"", "",
"let g:loaded_{} = 1" "let g:loaded_{} = 1"
}
},
["README.md"] = {
template = vim_readme_template
} }
},
["README.md"] = {
template = vim_readme_template
}
} }
local lua_vim_plugin_config = { local lua_vim_plugin_config = {
["doc/*.txt"] = { ["doc/*.txt"] = {
type = "help", type = "help",
template = vim_doc_template template = vim_doc_template
}, },
["plugin/*.vim"] = { ["plugin/*.vim"] = {
type = "plugin", type = "plugin",
template = { template = {
"if exists(\"g:loaded_{}\") || &cp | finish | endif", 'if exists("g:loaded_{}") || &cp | finish | endif',
"", "",
"let g:loaded_{} = 1" "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 = { local csharp_project_config = {
["*"] = { ["*"] = {
start = "dotnet run", start = "dotnet run",
console = "dotnet fsi" console = "dotnet fsi"
} }
} }
local java_project_config = { local java_project_config = {
["src/main/java/*.java"] = { ["src/main/java/*.java"] = {
type = "source", type = "source",
template = { template = {
"package {dirname|dot};", "package {dirname|dot};",
"", "",
"public class {basename} {open}", "public class {basename} {open}",
"{close}" "{close}"
},
alternate = "src/test/java/{}Test.java"
}, },
alternate = "src/test/java/{}Test.java" ["src/test/java/*Test.java"] = {
}, type = "test",
["src/test/java/*Test.java"] = { template = {
type = "test", "package {dirname|dot};",
template = { "",
"package {dirname|dot};", "public class {basename}Test {open}",
"", "{close}"
"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/module-info.java"] = { },
type = "moduleinfo", ["src/main/java/**/package-info.java"] = {
}, type = "packageinfo"
["src/main/java/**/package-info.java"] = { },
type = "packageinfo", ["src/main/resources/*"] = {
}, type = "resource"
["src/main/resources/*"] = { },
type = "resource" ["src/test/resources/*"] = {
}, type = "testresource"
["src/test/resources/*"] = { }
type = "testresource"
},
} }
local kotlin_project_config = { local kotlin_project_config = {
["src/main/kotlin/*.kt"] = { ["src/main/kotlin/*.kt"] = {
type = "source", type = "source",
template = { template = {
"package {dirname|dot}", "package {dirname|dot}",
"", "",
"class {basename} {open}", "class {basename} {open}",
"{close}" "{close}"
},
alternate = "src/test/kotlin/{}Test.kt"
}, },
alternate = "src/test/kotlin/{}Test.kt" ["src/main/java/*.kt"] = {
}, type = "source",
["src/main/java/*.kt"] = { template = {
type = "source", "package {dirname|dot}",
template = { "",
"package {dirname|dot}", "class {basename} {open}",
"", "{close}"
"class {basename} {open}", },
"{close}" alternate = "src/test/java/{}Test.kt"
}, },
alternate = "src/test/java/{}Test.kt" ["src/test/kotlin/*Test.kt"] = {
}, type = "test",
["src/test/kotlin/*Test.kt"] = { template = {
type = "test", "package {dirname|dot}",
template = { "",
"package {dirname|dot}", "class {basename}Test {open}",
"", "{close}"
"class {basename}Test {open}", },
"{close}" alternate = "src/main/kotlin/{}.kt"
}, },
alternate = "src/main/kotlin/{}.kt" ["src/test/java/*Test.kt"] = {
}, type = "test",
["src/test/java/*Test.kt"] = { template = {
type = "test", "package {dirname|dot}",
template = { "",
"package {dirname|dot}", "class {basename}Test {open}",
"", "{close}"
"class {basename}Test {open}", },
"{close}" alternate = "src/main/java/{}.kt"
}, },
alternate = "src/main/java/{}.kt" ["src/main/resources/*"] = {
}, type = "resource"
["src/main/resources/*"] = { },
type = "resource" ["src/test/resources/*"] = {
}, type = "testresource"
["src/test/resources/*"] = { }
type = "testresource"
}
} }
local mint_config = { local mint_config = {
["*"] = { ["*"] = {
start = "mint start" start = "mint start"
},
["source/*.mint"] = {
type = "source",
template = {
"component {basename} {open}",
" style {basename|camelcase} {open}",
" {close}",
"",
" fun render : Html {open}",
" {close}",
"{close}"
}, },
alternate = "tests/{}.mint" ["source/*.mint"] = {
}, type = "source",
["tests/*.mint"] = { template = {
type = "test", "component {basename} {open}",
template = { " style {basename|camelcase} {open}",
"suite \"{basename}\" {open}", " {close}",
" test \"A test\" {open}", "",
" with Test.Html {open}", " fun render : Html {open}",
" {close}", " {close}",
" {close}", "{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 = { local crystal_config = {
["*"] = { ["*"] = {
start = "crystal run" start = "crystal run"
},
["src/*.cr"] = {
type = "source",
template = {
"module {capitalize|colons}",
"end"
}, },
alternate = "spec/{}_spec.cr" ["src/*.cr"] = {
}, type = "source",
["spec/*_spec.cr"] = { template = {
type = "spec", "module {capitalize|colons}",
template = { "end"
"describe {capitalize|colons} do", },
" # TODO Write tests", alternate = "spec/{}_spec.cr"
"",
" it \"works\" do",
" false.should eq(true)",
" end",
"end"
}, },
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) local function c_project_config(source_extension, header_extension)
return { return {
["*"] = { ["*"] = {
start = "make run" start = "make run"
}, },
["src/*." .. source_extension] = { ["src/*." .. source_extension] = {
type = "source", type = "source",
alternate = { alternate = {
"src/{}." .. header_extension, "src/{}." .. header_extension,
"test/{}." .. source_extension, "test/{}." .. source_extension,
"include/{project|basename}/{}." .. header_extension, "include/{project|basename}/{}." .. header_extension
} }
}, },
["test/*." .. source_extension] = { ["test/*." .. source_extension] = {
type = "test", type = "test",
alternate = { alternate = {
"src/{}." .. header_extension "src/{}." .. header_extension
} }
}, },
["src/*." .. header_extension] = { ["src/*." .. header_extension] = {
type = "header", type = "header",
alternate = { alternate = {
"src/{}." .. source_extension "src/{}." .. source_extension
} }
}, },
["include/{project|basename}/*." .. header_extension] = { ["include/{project|basename}/*." .. header_extension] = {
type = "header", type = "header",
alternate = { alternate = {
"src/{}." .. header_extension "src/{}." .. header_extension
} }
}
} }
}
end end
vim.g.projectionist_heuristics = { vim.g.projectionist_heuristics = {
["pubspec.yaml"] = flutter_config, ["pubspec.yaml"] = flutter_config,
["requirements.txt|pyproject.toml"] = python_config, ["requirements.txt|pyproject.toml"] = python_config,
["*.sln"] = dotnet_solution_config, ["*.sln"] = dotnet_solution_config,
["*.csproj"] = csharp_project_config, ["*.csproj"] = csharp_project_config,
["plugin/|autoload/"] = vim_plugin_config, ["plugin/|autoload/"] = vim_plugin_config,
["src/*.cpp|test/*.cpp"] = c_project_config("cpp", "hpp"), ["src/*.cpp|test/*.cpp"] = c_project_config("cpp", "hpp"),
["src/*.c|test/*.c"] = c_project_config("c", "h"), ["src/*.c|test/*.c"] = c_project_config("c", "h"),
["lua/"] = lua_vim_plugin_config, ["lua/"] = lua_vim_plugin_config,
["build.gradle|pom.xml"] = java_project_config, ["build.gradle|pom.xml"] = java_project_config,
["build.gradle|build.gradle.kts"] = kotlin_project_config, ["build.gradle|build.gradle.kts"] = kotlin_project_config,
["mint.json"] = mint_config, ["mint.json"] = mint_config,
["shard.yml"] = crystal_config ["shard.yml"] = crystal_config
} }

View File

@ -2,7 +2,7 @@
-- - Vim REST Console setup and extra commands - -- - 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=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(<f-args>)]] vim.cmd [[command! -nargs=? RestConsole :lua require('vim_rest_console_extensions').open_cached_rest_console(<f-args>)]]
vim.cmd[[command! -nargs=? RestConsoleLocal :lua require('vim_rest_console_extensions').open_local_rest_console(<f-args>)]] vim.cmd [[command! -nargs=? RestConsoleLocal :lua require('vim_rest_console_extensions').open_local_rest_console(<f-args>)]]
vim.cmd[[command! -nargs=1 RestConsoleCached :lua require('vim_rest_console_extensions').open_named_cached_rest_console(<f-args>)]] vim.cmd [[command! -nargs=1 RestConsoleCached :lua require('vim_rest_console_extensions').open_named_cached_rest_console(<f-args>)]]

View File

@ -2,28 +2,30 @@
-- - Telescope configuration - -- - Telescope configuration -
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
local actions = require('telescope.actions') local actions = require("telescope.actions")
require('telescope').setup { require("telescope").setup {
defaults = { defaults = {
mappings = { mappings = {
i = { i = {
-- Switch out M-q and C-q since C-q will be used more often -- Switch out M-q and C-q since C-q will be used more often
["<M-q>"] = actions.send_to_qflist + actions.open_qflist, ["<M-q>"] = actions.send_to_qflist + actions.open_qflist,
["<C-q>"] = actions.send_selected_to_qflist + actions.open_qflist, ["<C-q>"] = actions.send_selected_to_qflist + actions.open_qflist
}, },
n = { n = {
-- Switch out M-q and C-q since C-q will be used more often -- Switch out M-q and C-q since C-q will be used more often
["<M-q>"] = actions.send_to_qflist + actions.open_qflist, ["<M-q>"] = actions.send_to_qflist + actions.open_qflist,
["<C-q>"] = actions.send_selected_to_qflist + actions.open_qflist, ["<C-q>"] = actions.send_selected_to_qflist + actions.open_qflist
} }
}, }
} }
} }
require('telescope').load_extension('dap') require("telescope").load_extension("dap")
default_opts = {noremap = true} default_opts = {noremap = true}
local function set_keymap(...) vim.api.nvim_set_keymap(...) end local function set_keymap(...)
set_keymap('n', '<C-P>', "<cmd>lua require('telescope.builtin').find_files()<CR>", default_opts) vim.api.nvim_set_keymap(...)
set_keymap('n', '<C-M-F>', "<cmd>lua require('telescope.builtin').live_grep()<CR>", default_opts) end
set_keymap("n", "<C-P>", "<cmd>lua require('telescope.builtin').find_files()<CR>", default_opts)
set_keymap("n", "<C-M-F>", "<cmd>lua require('telescope.builtin').live_grep()<CR>", default_opts)

View File

@ -1,12 +1,12 @@
require'nvim-treesitter.configs'.setup { require "nvim-treesitter.configs".setup {
ensure_installed = "maintained", -- one of "all", "maintained" (parsers with maintainers), or a list of languages ensure_installed = "maintained", -- one of "all", "maintained" (parsers with maintainers), or a list of languages
highlight = { highlight = {
enable = true, -- false will disable the whole extension enable = true -- false will disable the whole extension
}, },
playground = { playground = {
enable = true, enable = true,
disable = {}, disable = {},
updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code
persist_queries = false -- Whether the query persists across vim sessions persist_queries = false -- Whether the query persists across vim sessions
} }
} }