From 3b349870d813dc2c3da2faee7f7c47ddb7c56a6b Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Tue, 17 Jun 2025 06:01:52 +1000 Subject: [PATCH] feat: add all missing from backlog --- .config/nvim/init.lua | 150 +++++++++++++++++++------------ .config/nvim/lua/func.lua | 10 ++- .config/nvim/lua/func/puppet.lua | 2 + .config/nvim/lua/plug.lua | 1 + .config/password-store | 2 +- .config/shell/aliases | 2 + .config/shell/common | 6 +- .config/zsh/zshrc | 9 ++ 8 files changed, 122 insertions(+), 60 deletions(-) diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 1109b14..ab9c8a1 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -37,59 +37,6 @@ require("nvim-tree").setup({ }, }) --- mason -require("mason").setup() -require("mason-lspconfig").setup() - --- lspconfig --- require('lspconfig')['gofumpt'].setup{} --- require('lspconfig')['golines'].setup{} --- require('lspconfig')['goimports'].setup{} -require('lspconfig')['gopls'].setup{ - on_attach = on_attach, - cmd = {"gopls"}, - filetypes = {"go", "gomod", "gowork", "dotmpl"}, - settings = { - gopls = { - gofumpt = true, - completeUnimported = true, - usePlaceholders = true, - analyses = { - unusedparams = true, - }, - }, - }, -} -require('lspconfig')['pyright'].setup { - on_attach = on_attach, - flags = lsp_flags, -} -require('lspconfig')['powershell_es'].setup{} -require('lspconfig')['clangd'].setup{} -require('lspconfig')['rust_analyzer'].setup{} -require('lspconfig')['ansiblels'].setup{} -require('lspconfig')['bashls'].setup{} -require('lspconfig')['lua_ls'].setup{ - settings = { - Lua = { - diagnostics = { - globals = { 'vim', 'on_attach', 'lsp_flags'} - } - } - } -} -require('lspconfig')['yamlls'].setup{ - settings = { - yaml = { - customTags = { '!vault'} - } - } -} -require('lspconfig')['intelephense'].setup{} -require('lspconfig')['grammarly'].setup{} -require('lspconfig')['puppet'].setup{} -require('lspconfig')['terraformls'].setup{} - -- Completion Plugin Setup local cmp = require'cmp' cmp.setup({ @@ -121,7 +68,7 @@ cmp.setup({ { name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized { name = 'nvim_lua', keyword_length = 2}, -- complete neovim's Lua runtime API such vim.lsp.* { name = 'buffer', keyword_length = 2 }, -- source current buffer - { name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip + { name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip { name = 'calc'}, -- source for math calculation }, window = { @@ -143,10 +90,87 @@ cmp.setup({ }, }) --- treesitter +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) + +-- mason +require("mason").setup() +require("mason-lspconfig").setup() + +-- lspconfig +-- require('lspconfig')['gofumpt'].setup{} +-- require('lspconfig')['golines'].setup{} +-- require('lspconfig')['goimports'].setup{} +require('lspconfig')['gopls'].setup{ + on_attach = on_attach, + capabilities = capabilities, + cmd = {"gopls"}, + filetypes = {"go", "gomod", "gowork", "dotmpl"}, + settings = { + gopls = { + gofumpt = true, + completeUnimported = true, + usePlaceholders = true, + analyses = { + unusedparams = true, + }, + }, + }, +} +require('lspconfig')['pyright'].setup { + on_attach = on_attach, + capabilities = capabilities, + flags = lsp_flags, +} +require('lspconfig')['powershell_es'].setup{} +require('lspconfig')['clangd'].setup{} +require('lspconfig')['rust_analyzer'].setup{} +require('lspconfig')['ansiblels'].setup{ + on_attach = on_attach, + capabilities = capabilities, +} +require('lspconfig')['bashls'].setup{ + on_attach = on_attach, + capabilities = capabilities, +} +require('lspconfig')['lua_ls'].setup{ + on_attach = on_attach, + capabilities = capabilities, + settings = { + Lua = { + diagnostics = { + globals = { 'vim', 'on_attach', 'lsp_flags'} + } + } + } +} +require('lspconfig')['yamlls'].setup{ + on_attach = on_attach, + capabilities = capabilities, + settings = { + yaml = { + customTags = { '!vault'} + } + } +} +require('lspconfig')['intelephense'].setup{} +require('lspconfig')['grammarly'].setup{} +require('lspconfig')['puppet'].setup{} +require('lspconfig')['terraformls'].setup{ + on_attach = on_attach, + capabilities = capabilities, +} +vim.api.nvim_create_autocmd({"BufWritePre"}, { + pattern = {"*.tf", "*.tfvars"}, + callback = function() + vim.lsp.buf.format() + end, +}) + +-- treesitter require('nvim-treesitter.configs').setup { - --ensure_installed = { "lua", "toml", "python", "bash", "yaml", "go" }, - ensure_installed = "all", + ensure_installed = { "lua", "toml", "python", "bash", "yaml", "go" }, + --ensure_installed = "all", auto_install = true, highlight = { enable = true, @@ -226,3 +250,15 @@ require('mini.indentscope').setup() require('mini.splitjoin').setup() require('mini.surround').setup() require('mini.trailspace').setup() + +vim.api.nvim_create_autocmd("BufEnter", { + pattern = "*.py", + callback = function() + vim.defer_fn(function() + local venv_path = vim.fn.getcwd() .. "/.venv/bin/python" + if vim.fn.filereadable(venv_path) == 1 then + vim.cmd("PyrightSetPythonPath " .. venv_path) + end + end, 1000) -- 1 second delay (1000ms) + end, +}) diff --git a/.config/nvim/lua/func.lua b/.config/nvim/lua/func.lua index 9095822..1ea8a25 100644 --- a/.config/nvim/lua/func.lua +++ b/.config/nvim/lua/func.lua @@ -49,4 +49,12 @@ vim.cmd [[ augroup END ]] - +-- tmpl language keybindings +vim.cmd [[ + augroup lang_tmpl + autocmd! + autocmd BufNewFile,BufRead *.yml.tmpl set filetype=yaml + autocmd BufNewFile,BufRead *.yaml.tmpl set filetype=yaml + autocmd BufNewFile,BufRead *.hcl.tmpl set filetype=hcl + augroup END +]] diff --git a/.config/nvim/lua/func/puppet.lua b/.config/nvim/lua/func/puppet.lua index 884fdc1..8781dcc 100644 --- a/.config/nvim/lua/func/puppet.lua +++ b/.config/nvim/lua/func/puppet.lua @@ -50,7 +50,9 @@ function! OpenPuppetProfileOrRole(layout) let module_list = [] call add(module_list, 'certbot') call add(module_list, 'droneci') + call add(module_list, 'frrouting') call add(module_list, 'glauth') + call add(module_list, 'incus') call add(module_list, 'jellyfin') call add(module_list, 'lidarr') call add(module_list, 'networking') diff --git a/.config/nvim/lua/plug.lua b/.config/nvim/lua/plug.lua index 42b2cab..3a3385c 100644 --- a/.config/nvim/lua/plug.lua +++ b/.config/nvim/lua/plug.lua @@ -50,6 +50,7 @@ return require('packer').startup(function(use) use { 'numToStr/FTerm.nvim' } -- floating terminal use { 'HampusHauffman/block.nvim' } -- code blocks in different colours use { 'rodjek/vim-puppet' } -- vim puppet enhancements + use { 'jvirtanen/vim-hcl' } -- hcl syntax highlighting -- use { 'fatih/vim-go' } -- go-vim diff --git a/.config/password-store b/.config/password-store index 1a98679..453bd93 160000 --- a/.config/password-store +++ b/.config/password-store @@ -1 +1 @@ -Subproject commit 1a98679ade8d9d2c1c191f885ab2365d5d3fea02 +Subproject commit 453bd93cf9a7f203d4ad62f078746a94ffd77020 diff --git a/.config/shell/aliases b/.config/shell/aliases index 42119bf..b5bcbeb 100644 --- a/.config/shell/aliases +++ b/.config/shell/aliases @@ -32,6 +32,8 @@ if command -v nvim >/dev/null 2>&1; then alias vi='nvim' fi alias purevim='vim -u NONE' +alias vimp='xargs nvim -p' + # tmux if [[ -n $TMUX ]]; then diff --git a/.config/shell/common b/.config/shell/common index aed08cb..799e743 100644 --- a/.config/shell/common +++ b/.config/shell/common @@ -17,7 +17,8 @@ export ANSIBLE_VAULT_PASSWORD_FILE=$HOME/.local/bin/ansible-vault-pass-client # VAULT export VAULT_ADDR=https://vault.service.consul:8200 vaultlogin () { - vault login $(pass show personal/vault/syd1/token) + #vault login $(pass show personal/vault/syd1/token) + export VAULT_TOKEN=$(vault login --field=token --method=ldap username=benvin) } # CONSUL: https://developer.hashicorp.com/consul/commands @@ -26,6 +27,9 @@ export CONSUL_HTTP_TOKEN_FILE=$HOME/.config/consul/token.secret export CONSUL_HTTP_SSL=true export CONSUL_HTTP_SSL_VERIFY=true +# NOMAD +export NOMAD_ADDR=https://nomad.service.consul:4646 + # set MPD host export MPD_HOST="$HOME/.config/mpd/socket" diff --git a/.config/zsh/zshrc b/.config/zsh/zshrc index d5e5a33..38e724a 100644 --- a/.config/zsh/zshrc +++ b/.config/zsh/zshrc @@ -154,3 +154,12 @@ export SSH_AUTH_SOCK # load shell settings test -r $XDG_CONFIG_HOME/shell/common && source $XDG_CONFIG_HOME/shell/common test -r $XDG_CONFIG_HOME/shell/aliases && source $XDG_CONFIG_HOME/shell/aliases + +# autocomplete tools +autoload -U +X bashcompinit && bashcompinit +complete -o nospace -C /usr/bin/terraform terraform +complete -o nospace -C /usr/bin/consul consul +complete -o nospace -C /usr/bin/nomad nomad +complete -o nospace -C /usr/bin/vault vault +eval "$(uv generate-shell-completion zsh)" +eval "$(nfpm completion zsh)"