summaryrefslogtreecommitdiff
path: root/neovim/lua
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2022-11-28 20:35:27 +0100
committerMike Vink <mike1994vink@gmail.com>2022-11-28 20:35:27 +0100
commit20f9f6f51b3cb17c8ad202b9fc1ea3a1f62eefdb (patch)
tree4ba278b6d0fa522878fd57ed60ff545f38080f57 /neovim/lua
parent9c198c6dbc818710c5206fd812a25510e43e221a (diff)
move out neovim
Diffstat (limited to 'neovim/lua')
-rw-r--r--neovim/lua/setups.lua177
-rw-r--r--neovim/lua/vimrc.lua198
-rw-r--r--neovim/lua/vimrc/ansible.lua195
-rw-r--r--neovim/lua/vimrc/azure.lua39
-rw-r--r--neovim/lua/vimrc/buffers.lua35
-rw-r--r--neovim/lua/vimrc/dap.lua218
-rw-r--r--neovim/lua/vimrc/helm.lua129
-rw-r--r--neovim/lua/vimrc/lsp.lua217
-rw-r--r--neovim/lua/vimrc/snippets.lua133
-rw-r--r--neovim/lua/vimrc/term.lua91
-rw-r--r--neovim/lua/vimrc/terragrunt.lua141
-rw-r--r--neovim/lua/vimrc/utils.lua70
12 files changed, 0 insertions, 1643 deletions
diff --git a/neovim/lua/setups.lua b/neovim/lua/setups.lua
deleted file mode 100644
index 48e775d..0000000
--- a/neovim/lua/setups.lua
+++ /dev/null
@@ -1,177 +0,0 @@
--- {{{ git
-vim.cmd([[command! -bang Gap :G commit -am 'fixmeuplater' | G push]])
--- }}}
-
--- completion {{{
-vim.api.nvim_set_keymap('n', ']p', ':tabn<cr>', { silent = true, noremap = true})
-vim.api.nvim_set_keymap('n', '[p', ':tabp<cr>', { silent = true, noremap = true})
-
-require'vimrc.snippets'.setup()
-
--- }}}
-
--- buffers {{{
-vim.opt.switchbuf = "useopen,usetab"
-vim.opt.stal = 2
-
-vim.api.nvim_set_keymap(
- "n",
- "<leader>;",
- "<C-^>",
- { silent = true, noremap = true }
-)
-
--- taken from: https://github.com/Furkanzmc/dotfiles/blob/master/vim/init.lua
--- searching and replacing in buffers
-vim.api.nvim_set_keymap(
- "v",
- "<leader>s",
- ":call buffers#visual_selection('search', '')<CR>",
- { silent = true, noremap = true }
-)
-vim.api.nvim_set_keymap(
- "v",
- "<leader>r",
- ":call buffers#visual_selection('replace', '')<CR>",
- { silent = true, noremap = true }
-)
-vim.cmd([[command! -nargs=1 -complete=file E execute('silent! !mkdir -p "$(dirname "<args>")"') <Bar> e <args>]])
--- wiping buffers and wiping nofile-buffers
-vim.cmd([[command! -nargs=1 -bang Bdeletes :call buffers#wipe_matching('<args>', <q-bang>)]])
-vim.cmd([[command! Bdnonexisting :call buffers#wipe_nonexisting_files()]])
-
-vim.cmd([[command! CleanTrailingWhiteSpace :lua require"vimrc.buffers".clean_trailing_spaces()]])
-
-vim.cmd([[augroup vimrc_plugin_buffers]])
-vim.cmd([[au!]])
-vim.cmd(
- [[autocmd BufWritePre *.md,*.hcl,*.tf,*.py,*.cpp,*.qml,*.js,*.txt,*.json,*.html,*.lua,*.yaml,*.yml,*.bash,*.sh,*.go :lua require"vimrc.buffers".clean_trailing_spaces()]]
-)
-vim.cmd(
- [[autocmd BufReadPost * lua require"vimrc.buffers".setup_white_space_highlight(vim.fn.bufnr())]]
-)
-vim.cmd(
- [[autocmd BufReadPre *.tf,*.hcl packadd vim-terraform]]
-)
-vim.cmd([[augroup END]])
-
--- }}}
-
--- quickfix {{{
-vim.api.nvim_set_keymap(
- "n",
- "<C-q>o",
- ":copen<cr>",
- { silent = true, noremap = true }
-)
-vim.api.nvim_set_keymap(
- "n",
- "<C-q>z",
- ":cclose<cr>",
- { silent = true, noremap = true }
-)
-
-vim.api.nvim_set_keymap(
- "n",
- "<C-q>lo",
- ":lopen<cr>",
- { silent = true, noremap = true }
-)
-vim.api.nvim_set_keymap(
- "n",
- "<C-q>lz",
- ":lclose<cr>",
- { silent = true, noremap = true }
-)
-vim.api.nvim_set_keymap("n", "]q", ":cnext<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "[q", ":cprevious<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "]Q", ":cfirst<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "[Q", ":clast<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "]l", ":lnext<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "[l", ":lprevious<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "]L", ":lfirst<cr>", { silent = true, noremap = true })
-vim.api.nvim_set_keymap("n", "[L", ":llast<cr>", { silent = true, noremap = true })
--- }}}
-
--- firvish {{{
-require'firvish'.setup()
-vim.g.firvish_use_default_mappings=1
-require'vimrc'.setup_jq_function()
-require'vimrc'.setup_build_function()
--- }}}
-
--- {{{ trouble
-require"trouble".setup { }
--- }}}
-
--- {{{ tests
--- require"nvim-test".setup{}
--- vim.api.nvim_set_keymap(
--- "n",
--- "<leader>t",
--- "<cmd>TestFile<CR>",
--- {silent = true, noremap = true}
--- )
--- }}}
-
--- lsp {{{
-vim.cmd [[augroup vimrc_nvim_lsp_setup]]
-vim.cmd [[au!]]
-vim.cmd [[au VimEnter * lua require'vimrc.lsp'.setup()]]
-vim.cmd [[augroup END]]
--- }}}
-
--- dap {{{
-require('vimrc.dap').setup_dap()
-vim.cmd [[augroup vimrc_nvim_dap_setup]]
-vim.cmd [[au!]]
-vim.cmd [[au VimEnter * lua require('vimrc.dap').setup_dap()]]
-vim.cmd [[augroup END]]
--- }}}
-
--- terminal {{{
--- open close terminal
-vim.cmd [[command! Term :lua require('vimrc.term').toggle()]]
--- run current file
-vim.cmd [[command! Run :lua require('vimrc.term').run()]]
--- send selection
-vim.cmd [[command! -range Send :lua require('vimrc.term').sendSelection()]]
-vim.api.nvim_set_keymap(
- "t",
- "<c-q><c-w>",
- "<c-\\><c-n>",
- { silent = true, noremap = true }
-)
--- }}}
-
--- statusline {{{
--- require('el').setup {}
--- TODO: move to colortemplates
-vim.cmd [[hi! link Winbar StatusLine]]
--- }}}
-
--- init autocommand {{{
-vim.cmd([[augroup vimrc_init]])
-vim.cmd([[autocmd!]])
-vim.cmd(
- [[autocmd BufReadPre,FileReadPre *.rest :if !exists("g:vimrc_rest_nvim_loaded") | packadd vim-rest-console | let g:vimrc_rest_nvim_loaded = v:true | endif | :e]]
-)
-vim.cmd(
- [[autocmd TextYankPost * silent! lua vim.highlight.on_yank{on_visual=false, higroup="IncSearch", timeout=100}]]
-)
-vim.cmd(
- [[ autocmd TextYankPost * if v:event.operator is 'y' && v:event.regname is '' | execute 'OSCYankReg "' | endif ]]
-)
-vim.cmd(
- [[autocmd VimEnter * if filereadable(".exrc.lua") | call execute("luafile .exrc.lua") | endif]]
-)
-vim.cmd(
- [[autocmd VimEnter * if filereadable(".env") | echo execute("Dotenv") | call execute("Dotenv .env") | endif]]
-)
--- temp fix for screen redrawing issues
--- cmd(
--- [[autocmd BufEnter * mod]]
--- )
-vim.cmd([[augroup END]])
--- }}}
--- vim: fdm=marker
diff --git a/neovim/lua/vimrc.lua b/neovim/lua/vimrc.lua
deleted file mode 100644
index 59ab863..0000000
--- a/neovim/lua/vimrc.lua
+++ /dev/null
@@ -1,198 +0,0 @@
--- vim: fdm=marker
-local log_warning = require 'vimrc.utils'.log_warning
-local M = {}
-
-function M.setup_rest_nvim()
- require("rest-nvim").setup({
- result_split_horizontal = true,
- skip_ssl_verification = false,
- highlight = { enabled = true, timeout = 150 },
- jump_to_request = false,
- })
-
- local map = vim.api.nvim_set_keymap
- map(
- "n",
- "<leader>tt",
- "<Plug>RestNvim",
- { silent = true }
- )
- map(
- "n",
- "<leader>tp",
- "<Plug>RestNvimPreview",
- { silent = true }
- )
-end
-
-local jq_functions = {}
-function M.setup_jq_function()
- jq_functions.filter_jq = function(path, first, last)
- P(path)
- local buf = vim.api.nvim_get_current_buf()
- first, last = tonumber(first), tonumber(last)
- first = first - 1
- local json_string = table.concat(vim.api.nvim_buf_get_lines(buf, first, last, true))
- local tmp = os.tmpname()
- local f = io.open(tmp, "w")
- if f then
- f:write(json_string)
- f:close()
- else
- return false
- end
- local cmd = {
- "/bin/sh",
- "-c",
- [[cat ]] .. tmp .. [[ | jq ']] .. path .. [[']]
- }
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "json",
- title = "jq",
- listed = true,
- output_qf = false,
- is_background_job = false,
- })
- end
- _G.jq_functions = jq_functions
- vim.cmd [[command! -nargs=* -range FJq :lua _G.jq_functions.filter_jq('<args>', "<line1>", "<line2>")]]
-end
-
-local build_functions = {}
-function M.setup_build_function()
- build_functions.rebuild = function()
- local cmd = { "rebuild" }
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "job-output",
- title = "rebuild",
- listed = true,
- output_qf = true,
- is_background_job = true,
- })
- end
- _G.build_functions = build_functions
- vim.cmd [[command! Rebuild :lua _G.build_functions.rebuild()]]
-
- build_functions.azure_yaml = function(file)
- local cwd = os.getenv('PWD')
- local auth = os.getenv('AZURE_DEVOPS_AUTH')
- local ado_org = os.getenv('AZURE_DEVOPS_ORG')
- local ado_proj = os.getenv('AZURE_DEVOPS_PROJECT')
- local pipeline = os.getenv('AZURE_YAML_DEFINITION_ID')
- local branch = os.getenv('AZURE_YAML_BRANCH')
-
- local url = [[https://dev.azure.com/]] ..
- ado_org .. [[/]] .. ado_proj .. [[/_apis/pipelines/]] .. pipeline .. [[/preview?api-version=7.1-preview.1]]
- local auth_header = [[Authorization: Basic ]] .. auth
- local yaml_file = cwd .. "/" .. file
-
- local shell_script = string.format(
- [[yaml_string="
-$(cat ${PWD}/${AZURE_YAML_DEBUG_SNIPPET})
-$(cat %s)
-"
-yaml_string="$(echo "$yaml_string" | yq '... style="single"' - | sed -re /\s*\#.*$/d)"
-curl -s -X POST '%s' -H 'Content-Type: application/json' -H '%s' --data-binary @- << THEEND | jq '.finalYaml // .' | yq '... style="double"' -
-{
- "previewRun":true,
- "templateParameters": {},
- "resources": {
- "repositories": {
- "self": {
- "refName": "refs/heads/%s"
- }
- }
- },
- "yamlOverride":"$yaml_string"
-}
-THEEND]] ,
- yaml_file, url, auth_header, branch, branch
- )
- local cmd = {
- "/bin/bash", "-c", shell_script
- }
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "yaml",
- title = "azureyaml",
- use_last_buffer = false,
- listed = true,
- output_qf = true,
- is_background_job = false,
- cwd = cwd
- })
- end
- vim.cmd [[command! -nargs=1 -complete=file AzureYaml :lua _G.build_functions.azure_yaml("<args>")]]
-end
-
--- {{{ global lua debugging
-_G.P = function(arg)
- print(vim.inspect(arg))
-end
-
-M.reload_package_complete = function(_, _, _)
- -- arg_lead, cmd_line, cursor_pos
- -- TODO: implement completion based on loaded packages
- return 'hi'
-end
-
-M.reload_packages_and_init = function()
- for name, _ in pairs(package.loaded) do
- if name:match('^vimrc') then
- package.loaded[name] = nil
- end
- end
- local reload_path = os.getenv("NVIM_RELOAD_PATH") or [[/home/mike/dotnix/neovim]]
- vim.opt.runtimepath:prepend({ reload_path, reload_path .. [[/lua]] })
- dofile(reload_path .. [[/init.lua]])
- vim.opt.runtimepath:remove({ reload_path, reload_path .. [[/lua]] })
-
- vim.notify("Reloaded vim", vim.log.levels.INFO)
-end
-
-M.reload_package = function(name)
- P([[name=]] .. name)
- if package.loaded[name] == nil then
- log_warning("Package not loaded.", "[vimrc]")
- return
- end
- package.loaded[name] = nil
- return require(name)
-end
-
-vim.cmd(
- [[command! LuaReload :lua require('vimrc').reload_packages_and_init()]]
-)
-
-M.activate_reload_on_write = function(name)
- vim.cmd([[augroup package_reload_]] .. name)
- vim.cmd([[au!]])
- vim.cmd([[au BufWritePost <buffer> ]]
- .. string.format([[:lua require('vimrc').reload_package('%s')]], name))
- vim.cmd([[augroup END]])
-end
-
-vim.cmd(
- [[command! -complete=custom,reloadpackage#complete -nargs=1 ActivateReload :lua require('vimrc').activate_reload_on_write(<q-args>)]]
-)
-
--- }}}
--- {{{ syntax tools
-M.print_synstack_at = function(line, col)
- local syn = vim.fn.synstack(line, col)
- for _, id in pairs(syn) do
- P(vim.fn.synIDattr(id, 'name'))
- end
-end
-
-vim.cmd(
- string.format("command! SyntaxInspect :lua require('vimrc').print_synstack_at(%s, %s)",
- vim.fn.line("."),
- vim.fn.col(".")
- )
-)
--- }}}
-
-return M
diff --git a/neovim/lua/vimrc/ansible.lua b/neovim/lua/vimrc/ansible.lua
deleted file mode 100644
index 4dfeee9..0000000
--- a/neovim/lua/vimrc/ansible.lua
+++ /dev/null
@@ -1,195 +0,0 @@
-local vim = vim
-local cmd = vim.cmd
-local fn = vim.fn
-
-local M = {}
-function M.setup(opts)
- P(opts)
- local home = os.getenv('HOME')
- local user = os.getenv('USER')
- assert(opts.cwd, "cwd is required. ")
- assert(opts.inventory, "inventory is required. ")
- -- This needs to be built on the machine you use it due to requiring the user to be present in the /etc/passwd table.
- local functions = {}
- local secrets_exist = fn.filereadable(fn.expand(opts.vault_file)) == 1
- local vars_files = ""
- if secrets_exist then
- vars_files = vars_files .. [[
- vars_files:
- - ]] .. opts.vault_file .. "\n"
- end
- functions.ansible_dump = function(output_qf)
- local cmd = {
- "docker",
- "run",
- "--interactive",
- "--rm",
- "--network=host",
- "--user=" .. user,
- "-e",
- "HOME=" .. home,
- "--volume=" .. home .. ":" .. home,
- "--workdir=" .. opts.cwd,
- "mvinkio/ansible",
- "/bin/bash",
- "-c",
-[[cat <<EOF > dev-plabook.yaml
----
-- name: dump all
- hosts: all
-]]
-..
-vars_files
-..
-[[
- tasks:
- - name: Print vars
- debug:
- var: vars
- - name: Print environment
- debug:
- var: environment
- - name: Print group_names
- debug:
- var: group_names
- - name: Print groups
- debug:
- var: groups
- - name: Print hostvars
-/ debug:
- var: hostvars
-EOF]] ..
-"\n ansible-playbook -vvv -i " .. opts.inventory .. " dev-plabook.yaml "
- }
- P(cmd)
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "log",
- title = "dump",
- listed = true,
- output_qf = false,
- is_background_job = false,
- })
- end
-
- functions.ansible_run = function (playbook, debug)
- P(playbook)
- P(debug)
- local set_debug = ""
- if debug then
- set_debug = "ANSIBLE_ENABLE_TASK_DEBUGGER=True"
- end
- local run_cmd = set_debug ..
- [[ ansible-playbook ]] ..
- [[-v ]] ..
- [[-i ]] .. opts.inventory .. [[ ]] ..
- playbook
- local job_cmd = {
- "docker",
- "run",
- "--interactive",
- "--rm",
- "--network=host",
- "--user=" .. user,
- "-e", "HOME=" .. home,
- "-e", "USER=" .. user,
- "--volume=" .. home .. ":" .. home,
- "--workdir=" .. opts.cwd,
- "mvinkio/ansible",
- "/bin/bash",
- "-c",
- run_cmd
- }
- local interactive_cmd = {
- "docker",
- "run",
- "--interactive",
- "--tty",
- "--rm",
- "--network=host",
- "--user=" .. user,
- "-e",
- "HOME=" .. home,
- "-e",
- "USER=" .. user,
- "--volume=" .. home .. ":" .. home,
- "--workdir=" .. opts.cwd,
- "mvinkio/ansible",
- "/bin/bash",
- "-c"
- }
- if not debug then
- P(job_cmd)
- require('firvish.job_control').start_job({
- cmd = job_cmd,
- filetype = "log",
- title = "ansiblejob",
- listed = true,
- output_qf = false,
- is_background_job = false,
- })
- else
- local term_cmd = [[sp | term /bin/bash -c ']] .. table.concat(interactive_cmd, ' ') .. [[ "]] .. run_cmd .. [["']]
- P(term_cmd)
- vim.cmd(term_cmd)
- end
- end
-
- functions.install_requirements = function (bang)
- local cmd = {
- "docker",
- "run",
- "--interactive",
- "--rm",
- "--network=host",
- "--user=" .. user,
- "-e", "HOME=" .. home,
- "--volume=" .. home .. ":" .. home,
- "--workdir=" .. opts.cwd,
- "mvinkio/ansible",
- "/bin/bash",
- "-c",
- "ansible-galaxy install -r " .. opts.ansible_galaxy_requirements
- }
- P(cmd)
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "log",
- title = "ansiblejob",
- listed = true,
- output_qf = false,
- is_background_job = false,
- })
- end
-
- functions.ansible_session = function (bang)
- local interactive_cmd = {
- "docker",
- "run",
- "--interactive",
- "--tty",
- "--rm",
- "--network=host",
- "--user=" .. user,
- "-e",
- "USER=" .. user,
- "-e",
- "HOME=" .. home,
- "--volume=" .. home .. ":" .. home,
- "--workdir=" .. opts.cwd,
- "mvinkio/ansible",
- "/bin/bash"
- }
- local term_cmd = [[sp | term ]] .. table.concat(interactive_cmd, ' ')
- P(term_cmd)
- vim.cmd(term_cmd)
- end
-
- _G.ansible_functions = functions
- cmd [[command! -bang AnsibleBug :lua _G.ansible_functions.ansible_dump("<bang>" ~= "!")]]
- cmd [[command! -complete=file -nargs=1 -bang AnsiblePlaybook :lua _G.ansible_functions.ansible_run("<args>", "<bang>" == "!")]]
- cmd [[command! -bang AnsibleGalaxyRequirements :lua _G.ansible_functions.install_requirements("<bang>" ~= "!")]]
- cmd [[command! -bang AnsibleSession :lua _G.ansible_functions.ansible_session("<bang>" ~= "!")]]
-
-end
-return M
diff --git a/neovim/lua/vimrc/azure.lua b/neovim/lua/vimrc/azure.lua
deleted file mode 100644
index 9b6b245..0000000
--- a/neovim/lua/vimrc/azure.lua
+++ /dev/null
@@ -1,39 +0,0 @@
-local M = {}
-
-function M.setup(opts)
- -- assert(opts.org_url, "org url is required. ")
- -- assert(opts.pipeline_id, "pipeline id is required. ")
- -- assert(opts.api_version, "api version is required. ")
- -- assert(opts.basic_auth_token, "basic auth token is required. ")
-
- -- local functions = {}
- -- functions.pipeline_bug = function(output_qf)
- -- local cmd = {
- -- "/bin/sh",
- -- "-c",
- -- [[curl -sSL --compressed -X POST -H ]] ..
- -- [['Authorization: Basic ]] .. opts.basic_auth_token .. [[' ]] ..
- -- [[-H 'Content-Type: application/json' ]] ..
- -- [[--data-raw "{ \"previewRun\": true }" ]] ..
- -- opts.org_url .. "/_apis/pipelines/" .. opts.pipeline_id .. "/preview?api-version=" .. opts.api_version ..
- -- " | jq .finalYaml | xargs -0 printf %b | sed -e 's@^\"@@' -e 's@\"$@@'"
- -- }
- -- P(cmd)
- -- require('firvish.job_control').start_job({
- -- cmd = cmd,
- -- filetype = "log",
- -- title = "pipeline",
- -- listed = true,
- -- output_qf = output_qf,
- -- is_background_job = false,
- -- cwd = opts.chart_dir,
- -- })
- -- end
-
- -- _G.azure_functions = functions
-
- -- cmd [[command! -bang PipelineBug :lua _G.azure_functions.pipeline_bug("<bang>" ~= "!")]]
-
-end
-
-return M
diff --git a/neovim/lua/vimrc/buffers.lua b/neovim/lua/vimrc/buffers.lua
deleted file mode 100644
index f185b6f..0000000
--- a/neovim/lua/vimrc/buffers.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local M = {}
-
-function M.clean_trailing_spaces()
-
- local save_cursor = vim.fn.getpos(".")
- local old_query = vim.fn.getreg("/")
- vim.cmd [[%s/\s\+$//e]]
-
- vim.fn.setpos(".", save_cursor)
- vim.fn.setreg("/", old_query)
-end
-
-function M.setup_white_space_highlight(bufnr)
- if vim.b.vimrc_trailing_white_space_highlight_enabled then
- return
- end
-
- -- if options.get_option_value("trailingwhitespacehighlight", bufnr) == false then
- -- return
- -- end
-
- vim.cmd([[highlight link TrailingWhiteSpace Error]])
- vim.cmd([[highlight NonText ctermfg=7 guifg=gray]])
-
- vim.cmd("augroup vimrc_trailing_white_space_highlight_buffer_" .. bufnr)
- vim.cmd([[autocmd! * <buffer>]])
- vim.cmd([[autocmd BufReadPost <buffer> match TrailingWhiteSpace /\s\+$/]])
- vim.cmd([[autocmd InsertEnter <buffer> match TrailingWhiteSpace /\s\+\%#\@<!$/]])
- vim.cmd([[autocmd InsertLeave <buffer> match TrailingWhiteSpace /\s\+$/]])
- vim.cmd([[augroup END]])
-
- vim.b.vimrc_trailing_white_space_highlight_enabled = true
-end
-
-return M
diff --git a/neovim/lua/vimrc/dap.lua b/neovim/lua/vimrc/dap.lua
deleted file mode 100644
index c55b3cb..0000000
--- a/neovim/lua/vimrc/dap.lua
+++ /dev/null
@@ -1,218 +0,0 @@
-local vim = vim
-local cmd = vim.cmd
-local api = vim.api
-local M = {}
-
-local function register_debug_adapters(cwd)
- local dap = require 'dap'
- dap.adapters.python = {
- type = 'executable',
- command = "python",
- args = { "-m", "debugpy.adapter" }
- }
-
- dap.adapters.go = function(callback, _)
- -- _ config
- local stdout = vim.loop.new_pipe(false)
- local stderr = vim.loop.new_pipe(false)
- local handle
- local pid_or_err
- local port = 38697
-
- local opts = {
- stdio = { nil, stdout },
- args = { "run",
- "-i", "--rm",
- "--security-opt=seccomp:unconfined",
- "--volume=/var/run/docker.sock:/var/run/docker.sock",
- "--env-file=" .. cwd .. "/.env",
- "-e=GOPROXY=https://proxy.golang.org",
- "-e=GOOS=linux",
- "-e=GOARCH=amd64",
- "-e=GOPATH=" .. cwd .. "/go",
- "-e=GOCACHE=" .. cwd .. "/.cache/go-build",
- "-v", cwd .. ":" .. cwd, -- TODO: use os.getenv here
- "-w", cwd, -- TODO: use find root here
- "--network", "host",
- "mvinkio/go",
- "dlv", "dap", "-l", "127.0.0.1:" .. port,
- "--only-same-user=false",
- "--log",
- },
- detached = false
- }
- handle, pid_or_err = vim.loop.spawn("docker", opts, function(code)
- stdout:close()
- stderr:close()
- handle:close()
- if code ~= 0 then
- print('dlv exited with code', code)
- end
- end)
- assert(handle, 'Error running dlv: ' .. tostring(pid_or_err))
- stdout:read_start(function(err, chunk)
- assert(not err, err)
- if chunk then
- P(chunk)
- vim.schedule(function()
- require('dap.repl').append(chunk)
- end)
- end
- end)
- stderr:read_start(function(err, chunk)
- assert(not err, err)
- if chunk then
- P(chunk)
- end
- end)
- -- Wait for delve to start
- vim.defer_fn(
- function()
- callback({ type = "server", host = "127.0.0.1", port = port })
- end,
- 2000)
- end
-
-end
-
-local function set_configurations()
- local dap = require 'dap'
- dap.configurations.python = {
- {
- type = 'python';
- request = 'launch';
- name = "Launch file";
- program = "${file}";
- },
- }
-
- dap.configurations.go = {
- {
- type = "go",
- name = "Debug",
- request = "launch",
- program = "${file}"
- },
- {
- type = "go",
- name = "Debug test", -- configuration for debugging test files
- request = "launch",
- mode = "test",
- program = vim.fn.fnamemodify(vim.fn.expand('%'), ':p:h')
- },
- {
- type = "go",
- name = "Debug test (go.mod)",
- request = "launch",
- mode = "test",
- program = "./${relativeFileDirname}"
- }
- }
-
- local set_go_keymaps = function()
- vim.keymap.set(
- "n",
- "<leader>df",
- [[<cmd>lua require'vimrc.dap'.continue(require'dap'.configurations.go[1])<CR>]],
- { noremap = true }
- )
- vim.keymap.set(
- "n",
- "<leader>df",
- [[<cmd>lua require'vimrc.dap'.continue(require'dap'.configurations.go[1])<CR>]],
- { noremap = true }
- )
- end
- local augroup = api.nvim_create_augroup("vimrc_go_dap_config", { clear = true })
- api.nvim_create_autocmd("FileType", { pattern = "go", callback = set_go_keymaps, group = augroup })
-
-end
-
-local function set_keymaps()
- local map = vim.api.nvim_set_keymap
- -- taken from: https://github.com/Furkanzmc/dotfiles/blob/master/vim/lua/vimrc/dap.lua
- -- version: 9561e7c700e0ffe74cf9fd61a0e4543ae14938c6
- map("n", "<leader>dc", ":lua require'vimrc.dap'.continue()<CR>", { silent = true, noremap = true })
- map("n", "<leader>dt", ":lua require'dap'.close()<CR>", { silent = true, noremap = true })
- map("n", "<leader>ds", ":lua require'dap'.step_into()<CR>", { silent = true, noremap = true })
-
- map("n", "<leader>dk", ":lua require('dapui').eval()<CR>", { silent = true, noremap = true })
- map("v", "<leader>dk", ":lua require('dapui').eval()<CR>", { silent = true, noremap = true })
- map("n", "<leader>do", ":lua require'dap'.step_out()<CR>", { silent = true, noremap = true })
-
- map("n", "<leader>dn", ":lua require'dap'.step_over()<CR>", { silent = true, noremap = true })
- map("n", "<leader>du", ":lua require'dap'.up()<CR>", { silent = true, noremap = true })
- map("n", "<leader>dd", ":lua require'dap'.down()<CR>", { silent = true, noremap = true })
-
- map(
- "n",
- "<leader>db",
- ":lua require'dap'.toggle_breakpoint()<CR>",
- { silent = true, noremap = true }
- )
- map(
- "n",
- "<leader>dbc",
- ":lua require'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>",
- { silent = true, noremap = true }
- )
- map(
- "n",
- "<leader>dbl",
- ":lua require'dap'.set_breakpoint(nil, nil, vim.fn.input('Log point message: '))<CR>",
- { silent = true, noremap = true }
- )
-
- map("n", "<leader>dui", ":lua require'dapui'.toggle()<CR>", { silent = true, noremap = true })
- map("n", "<leader>dr", ":lua require'dap'.run_to_cursor()<CR>", { silent = true, noremap = true })
- map(
- "n",
- "<leader>dl",
- ":lua require'dap'.list_breakpoints(true)<CR>",
- { silent = true, noremap = true }
- )
- -- map(
- -- "n",
- -- "<leader>dp",
- -- ":lua require'dap.ui.variables'.scopes()<CR>",
- -- { silent = true, noremap = true }
- -- )
-end
-
-local function set_commands()
- cmd([[command! DapUIOpen :lua require'dapui'.open()]])
- cmd([[command! DapUIClose :lua require'dapui'.close()]])
-end
-
-function M.continue(config)
- local dap = require 'dap'
- register_debug_adapters(vim.fn.getcwd())
- set_configurations()
- if config then
- dap.run(config)
- else
- dap.continue()
- end
-end
-
-function M.setup_dap()
- if vim.o.loadplugins == false then
- return
- end
-
- local vim_startup_dir = vim.fn.getcwd()
- register_debug_adapters(vim_startup_dir)
- set_configurations()
-
- cmd [[augroup vimrc_dap]]
- cmd [[au!]]
- cmd [[au FileType dap-repl lua require('dap.ext.autocompl').attach()]]
- cmd [[augroup END]]
-
- -- Commands and keymaps
- require('dapui').setup()
- set_keymaps()
- set_commands()
-end
-
-return M
diff --git a/neovim/lua/vimrc/helm.lua b/neovim/lua/vimrc/helm.lua
deleted file mode 100644
index 5597759..0000000
--- a/neovim/lua/vimrc/helm.lua
+++ /dev/null
@@ -1,129 +0,0 @@
-local vim = vim
-local cmd = vim.cmd
-local fn = vim.fn
-
-local M = {}
-function M.setup(opts)
- assert(opts.release_name, "release name is required. ")
- assert(opts.chart_dir, "chartdir is required. ")
- assert(opts.docker_dir, "docker_dir is required. ")
- assert(opts.docker_tag, "docker_tag is required. ")
-
- local values_files = opts.values_files or {}
- local values_sets = opts.values_sets or {}
- local cluster = opts.cluster or "so"
-
- local dependency_update = ""
- if opts.dependency_update then
- dependency_update = "--dependency-update"
- end
-
- table.insert(values_sets, "envshort=" .. cluster)
- table.insert(values_sets, "cluster=" .. cluster)
- table.insert(values_sets, "clusterHost=" .. cluster .. ".stater.com")
-
- local functions = {}
- functions.helm_upgrade = function(output_qf)
- local cmd = {
- "helm",
- "upgrade",
- "--install",
- "--values",
- string.join(values_files, ","),
- opts.release_name,
- "."
- }
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "log",
- title = "upgrade",
- listed = true,
- output_qf = output_qf,
- is_background_job = true,
- cwd = opts.chart_dir,
- })
- end
-
- functions.helm_delete = function(output_qf)
- require('firvish.job_control').start_job({
- cmd = {
- "helm",
- "delete",
- opts.release_name,
- },
- filetype = "log",
- title = "delete",
- listed = true,
- output_qf = output_qf,
- is_background_job = true,
- cwd = opts.chart_dir,
- })
- end
-
- functions.helm_build = function(output_qf)
- local cmd = {
- "/bin/sh",
- "-c",
- string.format(
- [[if docker build -t %s %s && ]] ..
- [[docker push %s ; then ]] ..
- [[helm delete %s ; ]] ..
- [[helm upgrade --install %s --values %s --set %s %s . ; fi]],
- opts.docker_tag,
- opts.docker_dir,
- opts.docker_tag,
- opts.release_name,
- dependency_update,
- string.join(values_files, ","),
- string.join(values_sets, ","),
- opts.release_name
- )
- }
- P(cmd)
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "log",
- title = "delete",
- listed = true,
- output_qf = output_qf,
- is_background_job = true,
- cwd = opts.chart_dir,
- })
- end
-
- functions.helm_debug = function(update_remote)
- local cmd = {
- "helm",
- "template",
- "--debug",
- "--values",
- string.join(values_files, ","),
- "--set",
- string.join(values_sets, ","),
- opts.release_name,
- "."
- }
- P(cmd)
- if update_remote then
- table.insert(cmd, 3, "--dependency-update")
- end
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "log",
- title = "delete",
- listed = true,
- output_qf = false,
- is_background_job = false,
- cwd = opts.chart_dir,
- })
- end
-
- _G.helm_functions = functions
- cmd [[command! -bang HelmPut :lua _G.helm_functions.helm_upgrade("<bang>" ~= "!")]]
- cmd [[command! -bang HelmDelete :lua _G.helm_functions.helm_delete("<bang>" ~= "!")]]
-
- cmd [[command! -bang HelmBuild :lua _G.helm_functions.helm_build("<bang>" ~= "!")]]
- cmd [[command! -bang HelmBug :lua _G.helm_functions.helm_debug("<bang>" ~= "!")]]
-
-end
-return M
diff --git a/neovim/lua/vimrc/lsp.lua b/neovim/lua/vimrc/lsp.lua
deleted file mode 100644
index bd3b206..0000000
--- a/neovim/lua/vimrc/lsp.lua
+++ /dev/null
@@ -1,217 +0,0 @@
-local utils = require 'vimrc.utils'
-local M = {}
-
--- TODO: parameterise
--- TODO: extend stuff later
-
-M.client_log = {}
-
--- local functions {{{
-local function on_publish_diagnostics(_, result, ctx, config)
- vim.lsp.diagnostic.on_publish_diagnostics(_, result, ctx, config)
- vim.diagnostic.setloclist({
- open = false
- })
-end
-
-local function setup_handlers(client, _)
- client.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(on_publish_diagnostics, {
- virtual_text = false,
- underline = true,
- update_in_insert = false,
- severity_sort = true
- })
-end
-
-local function setup_server_capabilities_maps(client, bufnr)
- local map = vim.api.nvim_buf_set_keymap
- local opts = { silent = true, noremap = true }
- local capabilities = client.server_capabilities
-
- if capabilities.completion ~= false then
- vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
- end
-
- if capabilities.hover ~= false then
- vim.api.nvim_buf_set_option(bufnr, "keywordprg", ":LspHover")
- end
-
- if capabilities.rename == true then
- map(bufnr, "n", "<leader>gr", "<Cmd>lua vim.lsp.buf.rename()<CR>", opts)
- end
-
- if capabilities.signature_help == true then
- map(bufnr, "n", "<leader>gs", "<Cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
- end
-
- if capabilities.goto_definition ~= false then
- map(bufnr, "n", "<leader>gd", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts)
- end
-
- if capabilities.declaration == true then
- map(bufnr, "n", "<leader>gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts)
- end
-
- if capabilities.implementation == true then
- map(bufnr, "n", "<leader>gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
- end
-
- if capabilities.find_references ~= false then
- map(bufnr, "n", "<leader>gg", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
- end
-
- map(bufnr, "n", "<leader>ge", "<cmd>lua require'vimrc.lsp'.line_diagnostic()<CR>", opts)
-
- if capabilities.document_symbol ~= false then
- map(bufnr, "n", "<leader>gds", "<cmd>lua vim.lsp.buf.document_symbol()<CR>", opts)
- end
-
- if capabilities.workspace_symbol ~= true then
- map(bufnr, "n", "<leader>gw", "<cmd>lua vim.lsp.buf.workspace_symbol()<CR>", opts)
- end
-
- if capabilities.code_action ~= false then
- map(bufnr, "n", "<leader>ga", "<cmd>lua vim.lsp.buf.code_action()<CR>", opts)
- end
-
- if capabilities.documentFormattingProvider == true then
- vim.api.nvim_buf_set_option(bufnr, "formatexpr", "v:lua.vim.lsp.format()")
- map(bufnr, "n", "<leader>gq", "<cmd>lua vim.lsp.buf.format({ async = true })<CR>", opts)
- end
-
- if capabilities.document_range_formatting == true then
- map(bufnr, "v", "<leader>gq", "<Esc><Cmd>lua vim.lsp.buf.range_formatting()<CR>", opts)
- end
-
- if capabilities.hover ~= false then
- vim.api.nvim_command("command! -buffer -nargs=1 LspHover lua vim.lsp.buf.hover()<CR>")
- end
-end
-
--- }}}
-
--- diagnostics {{{
-function M.line_diagnostic()
- local line = vim.fn.line('.') - 1
- local diags = vim.diagnostic.get(0, {
- lnum = line
- })
- for _, diag in ipairs(diags) do
- utils.log_warning(diag.message, diag.source)
- end
-end
-
--- }}}
-
--- setup {{{
-function M.setup()
-
- local buffer_setup = function(client)
- table.insert(M.client_log, client)
- local bufnr = vim.api.nvim_get_current_buf()
-
- setup_server_capabilities_maps(client, bufnr)
- setup_handlers(client, bufnr)
- require("lsp_signature").on_attach({
- bind = true,
- floating_window = false,
- toggle_key = "<C-g><C-s>",
- extra_trigger_chars = { "{", "}" },
- hint_prefix = "@ ",
- check_pumvisible = false
- }, bufnr)
- end
-
- local buffer_setup_no_format = function(client)
- buffer_setup(client)
- end
-
- -- lspconfig {{{
- local lspconfig = require('lspconfig')
- local capabilities = require('cmp_nvim_lsp').default_capabilities()
-
- -- always load lua lsp
- require('nlua.lsp.nvim').setup(lspconfig, {
- cmd = {
- Flake.lua_language_server .. "/bin/lua-language-server",
- "-E", Flake.lua_language_server .. "/share/lua-language-server/main.lua"
- },
- capabilities = capabilities,
- on_attach = buffer_setup_no_format,
-
- -- Include globals you want to tell the LSP are real :)
- globals = {
- -- Colorbuddy
- "Color", "c", "Group", "g", "s", "Flake",
- }
- })
-
- lspconfig.pyright.setup {
- root_dir = lspconfig.util.root_pattern(".git", vim.fn.getcwd()),
- on_attach = buffer_setup_no_format,
- }
-
- lspconfig.gopls.setup {
- before_init = function(params)
- params.processId = vim.NIL
- end,
- capabilities = capabilities,
- filetypes = { "go", "gomod", "gotmpl" },
- on_attach = buffer_setup_no_format,
- settings = {
- gopls = {
- experimentalPostfixCompletions = true,
- analyses = {
- unusedparams = true,
- shadow = true,
- },
- staticcheck = true,
- },
- },
- init_options = {
- usePlaceholders = true,
- }
- }
-
- lspconfig.yamlls.setup {
- schemas = {
- ["https://raw.githubusercontent.com/instrumenta/kubernetes-json-schema/master/v1.18.0-standalone-strict/all.json"] = "/*.k8s.yaml",
- },
- capabilities = capabilities,
- on_attach = function(client)
- buffer_setup_no_format(client)
- local bufnr = vim.api.nvim_get_current_buf()
- if vim.bo[bufnr].buftype ~= ""
- or vim.bo[bufnr].filetype == "helm" then
- vim.diagnostic.disable(bufnr)
- vim.defer_fn(function()
- vim.diagnostic.reset(nil, bufnr)
- end, 1000)
- end
- end,
- }
- -- }}}
-
- local null_ls = require("null-ls")
- null_ls.setup({
- debug = vim.fn.expand("$VIMRC_NULL_LS_DEBUG") == "1",
- update_on_insert = false,
- on_attach = buffer_setup,
- sources = {
- -- nix linter: statix
- null_ls.builtins.code_actions.statix,
- null_ls.builtins.diagnostics.statix,
- -- nix formatter: alejandra
- null_ls.builtins.formatting.alejandra,
- -- python formatter: black
- null_ls.builtins.formatting.black,
- -- lisp formatter
- null_ls.builtins.formatting.raco_fmt
- }
- })
-end
-
--- }}}
-
-return M
--- vim: fdm=marker
diff --git a/neovim/lua/vimrc/snippets.lua b/neovim/lua/vimrc/snippets.lua
deleted file mode 100644
index e4d60d7..0000000
--- a/neovim/lua/vimrc/snippets.lua
+++ /dev/null
@@ -1,133 +0,0 @@
-local ls = require "luasnip"
-local s = ls.snippet
-local sn = ls.snippet_node
-local isn = ls.indent_snippet_node
-local t = ls.text_node
-local i = ls.insert_node
-local f = ls.function_node
-local c = ls.choice_node
-local d = ls.dynamic_node
-local r = ls.restore_node
-local events = require("luasnip.util.events")
-local ai = require("luasnip.nodes.absolute_indexer")
-local fmt = require("luasnip.extras.fmt").fmt
-local m = require("luasnip.extras").m
-local lambda = require("luasnip.extras").l
-local postfix = require("luasnip.extras.postfix").postfix
-
-local map = vim.api.nvim_set_keymap
-
-local M = {}
-
-local go_snippets = function()
- ls.add_snippets("go", {
-
- s(";r", fmt([[
- <>, err := <>
- if err != nil {
- <>
- }
- ]], {
- i(1,"ret"), i(2,"fun"), i(3, "return err")
- }, {
- delimiters = "<>"
- })),
-
- s(";e", fmt([[
- if <>, <> := <>; <> {
- <>
- }
- ]], {
- i(1,"v"),i(2,"err"),i(3,"fun"), i(4, "err != nil"), i(5,"return err")
- }, {
- delimiters = "<>"
- })),
-
- s(";fr", fmt([[
- for <>, <> := range <> {
- <>
- }
- ]], {
- i(1,"_"),i(2,"_"), i(3,"iterable"), i(4,"body")
- }, {
- delimiters = "<>"
- })),
-
- s(";sj", fmt([[
- <> <> `json:"<>"`
- ]], {
- i(1,"field"),i(2,"type"), d(3, function(args)
- for i, line in pairs(args[1]) do
- args[1][i] = line:gsub("(%u)", function(ch) return '_' .. ch:lower() end):gsub("^_", '')
- end
- return sn(nil, {i(1,args[1])})
- end,
- {1})
- }, {
- delimiters = "<>"
- })),
-
- s(";test", fmt([[
-func Test<>(t *testing.T) {
- for i, c := range []struct {
- expected <>
- }{
- } {
- t.Run(fmt.Sprintf("%d %s", i, c.expected), func(t *testing.T) {
- <>
- })
- }
-}
- ]], {
- i(1,"test"),i(2,"type"), i(3,"body")
- }, {
- delimiters = "<>"
- })),
-
-
-
- })
-end
-
-
-function M.setup()
- go_snippets()
- ls.config.setup({
- load_ft_func =
- -- Also load both lua and json when a markdown-file is opened,
- -- javascript for html.
- -- Other filetypes just load themselves.
- require("luasnip.extras.filetype_functions").extend_load_ft({
- markdown = { "lua", "json" },
- html = { "javascript" }
- })
- })
- -- press <Tab> to expand or jump in a snippet. These can also be mapped separately
- -- via <Plug>luasnip-expand-snippet and <Plug>luasnip-jump-next.
- vim.keymap.set(
- "i",
- "<Tab>",
- [[luasnip#expand_or_jumpable() ? '<Plug>luasnip-expand-or-jump' : '<Tab>']],
- { silent = true, noremap = true, expr = true }
- )
- vim.keymap.set(
- { "i", "s" },
- "<S-Tab>",
- [[<cmd>lua require'luasnip'.jump(-1)<CR>]],
- { silent = true, noremap = true }
- )
- vim.keymap.set(
- "s",
- "<Tab>",
- [[<cmd>lua require'luasnip'.jump(1)<CR>]],
- { silent = true, noremap = true }
- )
- vim.keymap.set(
- { "i", "s" },
- "<C-E>",
- [[luasnip#choice_active() ? '<Plug>luasnip-next-choice' : '<C-E>']],
- { silent = true, noremap = true, expr = true }
- )
-end
-
-return M
diff --git a/neovim/lua/vimrc/term.lua b/neovim/lua/vimrc/term.lua
deleted file mode 100644
index 409ff72..0000000
--- a/neovim/lua/vimrc/term.lua
+++ /dev/null
@@ -1,91 +0,0 @@
-local api = vim.api
-local cmd = vim.cmd
-
-local M = {}
-local jobid = nil
-local winid = nil
-
-
-local function bo(option, value)
- api.nvim_buf_set_option(0, option, value)
-end
-
-local function launch_term(cmd, opts)
- opts = opts or {}
- vim.cmd("belowright new")
- winid = vim.fn.win_getid()
- api.nvim_win_set_var(0, 'REPL', 1)
- bo('buftype', 'nofile')
- bo('bufhidden', 'wipe')
- bo('buflisted', false)
- bo('swapfile', false)
- opts = vim.tbl_extend('error', opts, {
- on_exit = function()
- jobid = nil
- end
- })
- jobid = vim.fn.termopen(cmd, opts)
-end
-
-local function close_term()
- if not jobid then return end
- vim.fn.jobstop(jobid)
- if api.nvim_win_is_valid(winid) then
- api.nvim_win_close(winid, true)
- end
- winid = nil
-end
-
-function M.toggle()
- if jobid then
- close_term()
- else
- launch_term(vim.fn.environ()['SHELL'] or 'sh')
- end
-end
-
-
-function M.run()
- local filepath = api.nvim_buf_get_name(0)
- close_term()
- launch_term(filepath)
-end
-
-
-function M.sendLine(line)
- if not jobid then return end
- vim.fn.chansend(jobid, line .. '\n')
-end
-
-function M.sendSelection()
- if not jobid then return end
- local start_row, start_col = unpack(api.nvim_buf_get_mark(0, '<'))
- local end_row, end_col = unpack(api.nvim_buf_get_mark(0, '>'))
- local mode = vim.fn.visualmode()
- local offset
- if mode == '' then -- in block mode all following lines are indented
- offset = start_col
- elseif mode == 'V' then
- end_row = end_row + 1
- offset = 0
- else
- offset = 0
- end
- local lines = api.nvim_buf_get_lines(0, start_row - 1, end_row, false)
- for idx, line in pairs(lines) do
- local l
- if idx == 1 and idx == #lines then
- l = line:sub(start_col + 1, end_col + 1)
- elseif idx == 1 then
- l = line:sub(start_col + 1)
- elseif idx == #lines then
- l = line:sub(offset + 1, end_col > #line and #line or end_col + 1)
- elseif offset > 0 then
- l = line:sub(offset + 1)
- else
- l = line
- end
- vim.fn.chansend(jobid, l .. '\n')
- end
-end
-return M
diff --git a/neovim/lua/vimrc/terragrunt.lua b/neovim/lua/vimrc/terragrunt.lua
deleted file mode 100644
index 84ac867..0000000
--- a/neovim/lua/vimrc/terragrunt.lua
+++ /dev/null
@@ -1,141 +0,0 @@
-local vim = vim
-local cmd = vim.cmd
-local fn = vim.fn
-
-local M = {}
-function M.setup(opts)
- local env_file = opts.env_file or ''
- local home = os.getenv('HOME')
- local user = os.getenv('USER')
- local cwd = opts.cwd or home
- P(cwd)
-
- local functions = {}
-
- functions.clean = function()
- require('firvish.job_control').start_job({
- cmd = {
- "docker",
- "run",
- "--interactive",
- "--rm",
- "--env-file",
- env_file,
- "--volume",
- cwd .. ":" .. cwd,
- "--workdir",
- cwd,
- "alpine/terragrunt",
- "/bin/sh",
- "-c",
- [[find ]] .. cwd .. [[ -type d -name .terragrunt-cache -prune -exec rm -rf {} \; &&]]
- .. [[find ]] .. cwd .. [[ -type f -name .terraform.lock.hcl -prune -exec rm -rf {} \;]]
- },
- filetype = "log",
- title = "clean",
- listed = true,
- output_qf = false,
- is_background_job = true
- })
- end
-
- functions.plan = function(terragrunt_path, dirty)
- if not dirty then
- functions.clean()
- end
- P(terragrunt_path)
- local cmd = {
- "docker",
- "run",
- "--interactive",
- "--rm",
- "--env-file",
- env_file,
- "--volume",
- cwd .. ":" .. cwd,
- "--workdir",
- cwd .. "/" .. terragrunt_path,
- "alpine/terragrunt",
- "terragrunt",
- "plan"
- }
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "log",
- title = "plan",
- listed = true,
- output_qf = true,
- is_background_job = false
- })
- end
-
- functions.apply = function(terragrunt_path, dirty)
- if not dirty then
- functions.clean()
- end
- local cmd = {
- "docker",
- "run",
- "--interactive",
- "--rm",
- "--env-file",
- env_file,
- "--volume",
- cwd .. ":" .. cwd,
- "--workdir",
- cwd .. "/" .. terragrunt_path,
- "alpine/terragrunt",
- "terragrunt",
- "apply",
- "--terragrunt-non-interactive",
- "--auto-approve"
- }
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "log",
- title = "plan",
- listed = true,
- output_qf = true,
- is_background_job = false
- })
- end
-
- functions.destroy = function(terragrunt_path, dirty)
- if not dirty then
- functions.clean()
- end
- local cmd = {
- "docker",
- "run",
- "--interactive",
- "--rm",
- "--env-file",
- env_file,
- "--volume",
- cwd .. ":" .. cwd,
- "--workdir",
- cwd .. "/" .. terragrunt_path,
- "alpine/terragrunt",
- "terragrunt",
- "destroy",
- "--terragrunt-non-interactive",
- "--auto-approve"
- }
- require('firvish.job_control').start_job({
- cmd = cmd,
- filetype = "log",
- title = "plan",
- listed = true,
- output_qf = true,
- is_background_job = false
- })
- end
-
- _G.terragrunt_functions = functions
- cmd [[command! -nargs=1 -complete=dir -bang TGplan :lua _G.terragrunt_functions.plan("<args>", "<bang>" ~= "!")]]
- cmd [[command! -nargs=1 -complete=dir -bang TGapply :lua _G.terragrunt_functions.apply("<args>", "<bang>" ~= "!")]]
- cmd [[command! -nargs=1 -complete=dir -bang TGdestroy :lua _G.terragrunt_functions.destroy("<args>", "<bang>" ~= "!")]]
- cmd [[command! TGclean :lua _G.terragrunt_functions.clean()]]
-
-end
-return M
diff --git a/neovim/lua/vimrc/utils.lua b/neovim/lua/vimrc/utils.lua
deleted file mode 100644
index 386efd2..0000000
--- a/neovim/lua/vimrc/utils.lua
+++ /dev/null
@@ -1,70 +0,0 @@
-local vim = vim
-local cmd = vim.cmd
-local M = {}
-
--- paths {{{
--- }}}
---
--- logging {{{
-function M.log_error(msg, source, persist)
- if source then
- msg = "[" .. source .. "] " .. msg
- end
- cmd [[echohl ErrorMsg]]
- if persist then
- cmd("echomsg '" .. msg .. "'")
- else
- cmd("echo '" .. msg .. "'")
- end
- cmd [[echohl Normal]]
-end
-
-function M.log_warning(msg, source, persist)
- if source then
- msg = "[" .. source .. "]" .. msg
- end
- msg = string.gsub(msg, "'", '"')
- cmd [[echohl WarningMsg]]
- if persist then
- cmd("echomsg '" .. msg .. "'")
- else
- cmd("echo '" .. msg .. "'")
- end
- cmd [[echohl Normal]]
-end
--- }}}
-
--- tables {{{
-function table.filter()
- print"hi"
-end
-
-function table.keys(tbl)
- local k = {}
- for key, val in pairs(tbl) do
- table.insert(k, key)
- end
- return k
-end
-
--- }}}
-
--- string {{{
-function string.join(str, join_token)
- local j = ""
- local join = join_token or ""
- if #str == 1 then
- return str[1]
- end
- for i, token in ipairs(str) do
- if i > 1 then
- j = j .. join .. token
- else
- j = j .. token
- end
- end
- return j
-end
--- }}}
-return M
--- vim: fdm=marker