Compare commits

...

27 Commits

Author SHA1 Message Date
083091ea46 chore(deps): update asdf tool-versions, plugins 2024-11-08 15:59:54 +02:00
7ff74f0e15 feat(dfm): add asdf helpers 2024-11-08 15:36:47 +02:00
9d1f62fcca feat(dfm): more helpers, enable multiple commands 2024-11-08 15:35:56 +02:00
a563e82e33 chore(base): add lando, eza fix if missing 2024-11-08 15:33:43 +02:00
62ff7836e7 chore(config): wezterm config formatting, fonts 2024-11-08 15:32:04 +02:00
88cb573027 chore(config): update oh-my-posh cfg, completions 2024-11-08 15:31:29 +02:00
82772d8208 feat(config): tms configs 2024-11-07 10:04:33 +02:00
github-actions[bot]
240035569c chore: update pre-commit hooks (#42)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-11-06 13:56:19 +02:00
renovate[bot]
9697c200f9 chore(deps): update node to v22.11.0 (#41) 2024-11-01 13:04:20 +02:00
fd11f9966b chore(config): tmux-sessionizer bindings 2024-10-25 13:03:53 +03:00
722b3c0cde chore(scripts): tweak install-asdf, add update 2024-10-25 12:42:38 +03:00
4fcb9d9741 chore(config): fzf default opts 2024-10-25 12:42:38 +03:00
fc232f26f7 chore(config): update tmux config 2024-10-25 12:42:38 +03:00
8b078309cf chore(nvim): dashboard tweaks, add q for fast quit 2024-10-25 12:42:38 +03:00
5a8f990e52 chore(nvim): which-key tweaks 2024-10-25 12:42:38 +03:00
c76c5d08b0 chore(nvim): treesitter config tweaks 2024-10-25 12:42:38 +03:00
b2857e226c chore(nvim): telescope config tweaks 2024-10-25 12:42:38 +03:00
dfbac0c736 chore(nvim): lsp config tweaks, add neoconf, ts_ls 2024-10-25 12:42:38 +03:00
fdd713908c chore(nvim): cmp tweaks, add luasnip snippets 2024-10-25 12:42:37 +03:00
60210c9bec chore(deps): cleanup oh-my-posh config 2024-10-25 12:42:37 +03:00
eaf8d2bdca chore(config): update direnv config 2024-10-25 12:42:37 +03:00
cc00055626 chore(deps): update tool-versions & cargo-package
# Conflicts:
#	base/tool-versions
2024-10-25 12:42:34 +03:00
renovate[bot]
567de68844 feat(github-action): update actions/setup-python ( v5.2.0 → v5.3.0 )
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-24 23:17:20 +00:00
github-actions[bot]
ed0b229757 chore: update pre-commit hooks (#40)
Co-authored-by: ivuorinen <11024+ivuorinen@users.noreply.github.com>
2024-10-22 09:09:53 +03:00
c8b6243c0b chore(deps): update asdf dependencies 2024-10-17 23:47:05 +03:00
renovate[bot]
21a92eb145 chore(deps): update node to v22.10.0 (#39)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 23:38:09 +03:00
8ec317f582 chore: tweaks and cleanup 2024-10-17 23:29:40 +03:00
22 changed files with 743 additions and 224 deletions

View File

@@ -12,7 +12,7 @@ jobs:
pull-requests: write pull-requests: write
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: actions/setup-python@v5.2.0 - uses: actions/setup-python@v5.3.0
- run: pip install pre-commit && pre-commit autoupdate - run: pip install pre-commit && pre-commit autoupdate
- uses: peter-evans/create-pull-request@v7 - uses: peter-evans/create-pull-request@v7
with: with:

View File

@@ -40,11 +40,11 @@ repos:
- id: shellcheck - id: shellcheck
- repo: https://github.com/scop/pre-commit-shfmt - repo: https://github.com/scop/pre-commit-shfmt
rev: v3.9.0-1 rev: v3.10.0-1
hooks: hooks:
- id: shfmt - id: shfmt
- repo: https://github.com/rhysd/actionlint - repo: https://github.com/rhysd/actionlint
rev: v1.7.3 rev: v1.7.4
hooks: hooks:
- id: actionlint - id: actionlint

View File

@@ -1,2 +1,2 @@
python 3.13.0 python 3.13.0
nodejs 22.9.0 nodejs 22.11.0

View File

@@ -1,30 +1,28 @@
asdf-plugin-manager 1.4.0 asdf-plugin-manager 1.4.0
nodejs 22.9.0 nodejs 23.1.0
golang 1.23.2 golang 1.23.3
python 3.12.7 python 3.12.7
ruby 3.3.4 ruby 3.3.4
rust 1.81.0 rust 1.82.0
direnv 2.34.0 direnv 2.35.0
fd 10.2.0 fd 10.2.0
1password-cli 2.30.0 1password-cli 2.30.3
age 1.2.0 age 1.2.0
bottom 0.10.2 bottom 0.10.2
dotenv-linter 3.3.0 dotenv-linter 3.3.0
editorconfig-checker 2.8.0 editorconfig-checker 2.8.0
github-cli 2.58.0 github-cli 2.61.0
hadolint 2.12.0 hadolint 2.12.0
kubectl 1.31.1 kubectl 1.31.2
pipx 1.7.1 pipx 1.7.1
pre-commit 3.8.0 pre-commit 4.0.1
ripgrep 14.1.1 ripgrep 14.1.1
shellcheck 0.10.0 shellcheck 0.10.0
shfmt 3.9.0 shfmt 3.10.0
terragrunt 0.67.15 terragrunt 0.68.8
tf-summarize 0.3.11 tf-summarize 0.3.13
yamllint 1.35.1 yamllint 1.35.1
yq 4.44.3 yq 4.44.3
bats 1.11.0 bats 1.11.0
gitleaks 8.18.4 gitleaks 8.18.4
delta 0.18.1 delta 0.18.1
sops 3.9.0
eza system

View File

@@ -53,7 +53,7 @@ load_antigen()
antigen bundle brew antigen bundle brew
antigen bundle colored-man-pages antigen bundle colored-man-pages
antigen bundle zsh-users/zsh-completions antigen bundle zsh-users/zsh-completions
antigen bundle eza x-have eza && antigen bundle eza
# this needs to be the last item # this needs to be the last item
antigen bundle zsh-users/zsh-syntax-highlighting antigen bundle zsh-users/zsh-syntax-highlighting
@@ -99,3 +99,7 @@ main()
} }
main "$@" main "$@"
# Lando
export PATH="$HOME/.lando/bin${PATH+:$PATH}"; #landopath

View File

@@ -21,3 +21,5 @@ bob-nvim
bottom bottom
// A modern alternative to ls // A modern alternative to ls
eza eza
// Tmux Sessionizer: A tool for opening git repositories as tmux sessions
tmux-sessionizer

View File

@@ -1,6 +1,6 @@
1password-cli https://github.com/NeoHsu/asdf-1password-cli.git f5d5aab 1password-cli https://github.com/NeoHsu/asdf-1password-cli.git f5d5aab
age https://github.com/threkk/asdf-age.git 396bdf6 age https://github.com/threkk/asdf-age.git 396bdf6
asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git 0ef4f9e asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git b5862c1
bats https://github.com/timgluz/asdf-bats.git 299551f bats https://github.com/timgluz/asdf-bats.git 299551f
bottom https://github.com/carbonteq/asdf-btm.git fd8a55a bottom https://github.com/carbonteq/asdf-btm.git fd8a55a
delta https://github.com/andweeb/asdf-delta.git 501318b delta https://github.com/andweeb/asdf-delta.git 501318b
@@ -10,7 +10,7 @@ editorconfig-checker https://github.com/gabitchov/asdf-editorconfig-checker.git
fd https://gitlab.com/wt0f/asdf-fd.git 17d56e0 fd https://gitlab.com/wt0f/asdf-fd.git 17d56e0
github-cli https://github.com/bartlomiejdanek/asdf-github-cli.git e0605b7 github-cli https://github.com/bartlomiejdanek/asdf-github-cli.git e0605b7
gitleaks https://github.com/jmcvetta/asdf-gitleaks.git 0cc0d7e gitleaks https://github.com/jmcvetta/asdf-gitleaks.git 0cc0d7e
golang https://github.com/asdf-community/asdf-golang.git d4f1d65 golang https://github.com/asdf-community/asdf-golang.git e2527a3
hadolint https://github.com/devlincashman/asdf-hadolint.git 335e230 hadolint https://github.com/devlincashman/asdf-hadolint.git 335e230
kubectl https://github.com/asdf-community/asdf-kubectl.git 2fb3b57 kubectl https://github.com/asdf-community/asdf-kubectl.git 2fb3b57
nodejs https://github.com/asdf-vm/asdf-nodejs.git c36e6f0 nodejs https://github.com/asdf-vm/asdf-nodejs.git c36e6f0
@@ -18,11 +18,12 @@ pipx https://github.com/yozachar/asdf-pipx.git
pre-commit https://github.com/jonathanmorley/asdf-pre-commit.git 26bfc42 pre-commit https://github.com/jonathanmorley/asdf-pre-commit.git 26bfc42
python https://github.com/asdf-community/asdf-python a3a0185 python https://github.com/asdf-community/asdf-python a3a0185
ripgrep https://gitlab.com/wt0f/asdf-ripgrep.git e836665 ripgrep https://gitlab.com/wt0f/asdf-ripgrep.git e836665
ruby https://github.com/asdf-vm/asdf-ruby.git 96334db ruby https://github.com/asdf-vm/asdf-ruby.git 194fe45
rust https://github.com/code-lever/asdf-rust.git 95acf4f rust https://github.com/code-lever/asdf-rust.git 95acf4f
shellcheck https://github.com/luizm/asdf-shellcheck.git 66200ff shellcheck https://github.com/luizm/asdf-shellcheck.git 66200ff
shfmt https://github.com/luizm/asdf-shfmt.git a42c5ff shfmt https://github.com/luizm/asdf-shfmt.git a42c5ff
sops https://github.com/feniix/asdf-sops.git 5c7a2fb
terragrunt https://github.com/ohmer/asdf-terragrunt.git 4a6651a terragrunt https://github.com/ohmer/asdf-terragrunt.git 4a6651a
tf-summarize https://github.com/adamcrews/asdf-tf-summarize.git 880ad26 tf-summarize https://github.com/adamcrews/asdf-tf-summarize.git 880ad26
yamllint https://github.com/ericcornelissen/asdf-yamllint.git 38e3870 yamllint https://github.com/ericcornelissen/asdf-yamllint.git bc2813e
yq https://github.com/sudermanjr/asdf-yq.git 772992f yq https://github.com/sudermanjr/asdf-yq.git 772992f

View File

@@ -1,11 +1,11 @@
[global] [global]
disable_stdin = true disable_stdin = false
load_dotenv = true load_dotenv = true
hide_env_diff = true hide_env_diff = false
[whitelist] [whitelist]
prefix = [ prefix = [
"~/Code/ivuorinen/" "~/Code/"
] ]
exact = [ exact = [
"~/.dotfiles/.envrc" "~/.dotfiles/.envrc"

View File

@@ -25,12 +25,11 @@ fi
# Load asdf # Load asdf
export ASDF_DIR="$XDG_BIN_HOME/asdf" export ASDF_DIR="$XDG_BIN_HOME/asdf"
if [[ -d $ASDF_DIR ]]; then if [[ -d $ASDF_DIR ]]; then
[[ -d $ASDF_DIR/bin ]] && x-path-prepend "$ASDF_DIR/bin"
[[ -d $ASDF_DIR/shims ]] && x-path-prepend "$ASDF_DIR/shims"
[[ -d $ASDF_DIR/completions ]] && fpath=("$ASDF_DIR/completions" $fpath) [[ -d $ASDF_DIR/completions ]] && fpath=("$ASDF_DIR/completions" $fpath)
[[ -d $ASDF_DIR/plugins ]] && fpath=("$ASDF_DIR/plugins" $fpath) [[ -d $ASDF_DIR/plugins ]] && fpath=("$ASDF_DIR/plugins" $fpath)
source "$ASDF_DIR/asdf.sh" source "$ASDF_DIR/asdf.sh"
fi fi
export PATH="$ASDF_DIR/bin:$ASDF_DIR/shims:$PATH"
if ! command -v msg &> /dev/null; then if ! command -v msg &> /dev/null; then
# Function to print messages if VERBOSE is enabled # Function to print messages if VERBOSE is enabled
@@ -400,6 +399,9 @@ x-dc "$DOCKER_CONFIG"
# Docker: Disable snyk ad # Docker: Disable snyk ad
export DOCKER_SCAN_SUGGEST=false export DOCKER_SCAN_SUGGEST=false
# fzf
export FZF_DEFAULT_OPTS='--height 40% --tmux bottom,40% --layout reverse --border top'
# GnuPG # GnuPG
# https://gnupg.org/documentation/manuals/gnupg/Invoking-GPG.html # https://gnupg.org/documentation/manuals/gnupg/Invoking-GPG.html
msg "Setting up GnuPG configuration" msg "Setting up GnuPG configuration"
@@ -463,6 +465,9 @@ export TF_PLUGIN_CACHE_DIR="$XDG_CACHE_HOME/terraform/plugin-cache"
msg "Setting up tmux configuration" msg "Setting up tmux configuration"
export TMUX_CONF="$XDG_CONFIG_HOME/tmux/tmux.conf" export TMUX_CONF="$XDG_CONFIG_HOME/tmux/tmux.conf"
# tms, https://github.com/jrmoulton/tmux-sessionizer
export TMS_CONFIG_FILE="${XDG_CONFIG_HOME}/tms/config.toml"
# wakatime, https://github.com/wakatime/wakatime-cli # wakatime, https://github.com/wakatime/wakatime-cli
msg "Setting up Wakatime configuration" msg "Setting up Wakatime configuration"
export WAKATIME_HOME="$XDG_STATE_HOME/wakatime" export WAKATIME_HOME="$XDG_STATE_HOME/wakatime"

View File

@@ -14,15 +14,17 @@ return {
-- https://github.com/L3MON4D3/LuaSnip -- https://github.com/L3MON4D3/LuaSnip
{ {
'L3MON4D3/LuaSnip', 'L3MON4D3/LuaSnip',
version = '*',
event = 'BufReadPre',
build = 'make install_jsregexp', build = 'make install_jsregexp',
dependencies = { dependencies = {
-- luasnip completion source for nvim-cmp -- luasnip completion source for nvim-cmp
-- https://github.com/saadparwaiz1/cmp_luasnip -- https://github.com/saadparwaiz1/cmp_luasnip
'saadparwaiz1/cmp_luasnip', 'saadparwaiz1/cmp_luasnip',
'rafamadriz/friendly-snippets', 'rafamadriz/friendly-snippets',
'molleweide/LuaSnip-snippets.nvim',
}, },
}, },
{ 'saadparwaiz1/cmp_luasnip' },
-- ── Adds other completion capabilities. ───────────────────────────── -- ── Adds other completion capabilities. ─────────────────────────────
-- ── nvim-cmp does not ship with all sources by default. -- ── nvim-cmp does not ship with all sources by default.
@@ -86,7 +88,9 @@ return {
local luasnip = require 'luasnip' local luasnip = require 'luasnip'
local lspkind = require 'lspkind' local lspkind = require 'lspkind'
luasnip.config.setup {} luasnip.config.setup {}
luasnip.snippets = require('luasnip_snippets').load_snippets()
require('luasnip.loaders.from_vscode').lazy_load() require('luasnip.loaders.from_vscode').lazy_load()
require('copilot_cmp').setup() require('copilot_cmp').setup()
require('cmp_dictionary').setup { require('cmp_dictionary').setup {

View File

@@ -19,6 +19,11 @@ capabilities.textDocument.foldingRange = {
} }
return { return {
{
'folke/neoconf.nvim',
cmd = 'Neoconf',
opts = {},
},
-- Portable package manager for Neovim that runs everywhere Neovim runs. -- Portable package manager for Neovim that runs everywhere Neovim runs.
-- Easily install and manage LSP servers, DAP servers, linters, and formatters. -- Easily install and manage LSP servers, DAP servers, linters, and formatters.
-- https://github.com/williamboman/mason.nvim -- https://github.com/williamboman/mason.nvim
@@ -31,15 +36,12 @@ return {
-- Mason servers to install -- Mason servers to install
-- See: https://mason-registry.dev/registry/list -- See: https://mason-registry.dev/registry/list
ensure_installed = { ensure_installed = {
'bash-language-server',
'clang-format', 'clang-format',
'codespell', 'codespell',
'commitlint', 'commitlint',
'diagnostic-languageserver',
'editorconfig-checker', 'editorconfig-checker',
'fixjson', 'fixjson',
'jsonlint', 'jsonlint',
'lua-language-server',
'luacheck', 'luacheck',
'phpcbf', 'phpcbf',
'phpcs', 'phpcs',
@@ -48,8 +50,6 @@ return {
'shellcheck', 'shellcheck',
'shfmt', 'shfmt',
'stylua', 'stylua',
'vim-language-server',
'vue-language-server',
'yamllint', 'yamllint',
}, },
}, },
@@ -64,13 +64,16 @@ return {
ensure_installed = { ensure_installed = {
'bashls', 'bashls',
-- 'csharp_ls', -- 'csharp_ls',
'diagnosticls',
'gopls', 'gopls',
'html', 'html',
'intelephense', 'intelephense',
'jsonls',
'lua_ls',
'tailwindcss', 'tailwindcss',
'ts_ls', 'ts_ls',
'lua_ls', 'vimls',
'jsonls', 'volar',
}, },
automatic_installation = true, automatic_installation = true,
handlers = { handlers = {
@@ -184,14 +187,34 @@ return {
}, },
} }
end, end,
['ts_ls'] = function()
local mason_registry = require 'mason-registry'
local ts_plugin_location = mason_registry
.get_package('vue-language-server')
:get_install_path() .. '/node_modules/@vue/typescript-plugin'
require('lspconfig')['volar'].setup {
init_options = {
plugins = {
{
name = '@vue/typescript-plugin',
location = ts_plugin_location,
languages = { 'javascript', 'typescript', 'vue' },
},
},
},
filetypes = {
'typescript',
'javascript',
'javascriptreact',
'typescriptreact',
'vue',
},
}
end,
}, },
}, },
}, },
-- Automatically install formatters registered with conform.nvim via mason.nvim
-- https://github.com/zapling/mason-conform.nvim
-- { 'zapling/mason-conform.nvim', opts = {} },
-- ── Misc ─────────────────────────────────────────────────── -- ── Misc ───────────────────────────────────────────────────
-- vscode-like pictograms for neovim lsp completion items -- vscode-like pictograms for neovim lsp completion items
-- https://github.com/onsails/lspkind-nvim -- https://github.com/onsails/lspkind-nvim
@@ -203,7 +226,7 @@ return {
-- ── LSP ──────────────────────────────────────────────────── -- ── LSP ────────────────────────────────────────────────────
-- Quick start configs for Nvim LSP -- Quick start configs for Nvim LSP
-- https://github.com/neovim/nvim-lspconfig -- https://github.com/neovim/nvim-lspconfig
{ 'neovim/nvim-lspconfig' }, { 'neovim/nvim-lspconfig', dependencies = { 'folke/neoconf.nvim' } },
-- Garbage collector that stops inactive LSP clients to free RAM -- Garbage collector that stops inactive LSP clients to free RAM
-- https://github.com/Zeioth/garbage-day.nvim -- https://github.com/Zeioth/garbage-day.nvim

View File

@@ -14,6 +14,10 @@ return {
-- https://github.com/polirritmico/telescope-lazy-plugins.nvim -- https://github.com/polirritmico/telescope-lazy-plugins.nvim
{ 'polirritmico/telescope-lazy-plugins.nvim' }, { 'polirritmico/telescope-lazy-plugins.nvim' },
-- Neovim plugin. Telescope.nvim extension that adds LuaSnip integration.
-- https://github.com/benfowler/telescope-luasnip.nvim
{ 'benfowler/telescope-luasnip.nvim' },
-- Fuzzy Finder Algorithm which requires local dependencies to be built. -- Fuzzy Finder Algorithm which requires local dependencies to be built.
-- Only load if `make` is available -- Only load if `make` is available
{ {
@@ -21,6 +25,10 @@ return {
build = 'make', build = 'make',
cond = vim.fn.executable 'make' == 1, cond = vim.fn.executable 'make' == 1,
}, },
-- Import modules with ease
-- https://github.com/piersolenski/telescope-import.nvim
{ 'piersolenski/telescope-import.nvim' },
}, },
config = function() config = function()
local t = require 'telescope' local t = require 'telescope'
@@ -51,6 +59,23 @@ return {
-- Must be a valid path to the file containing the lazy spec and setup() call. -- Must be a valid path to the file containing the lazy spec and setup() call.
lazy_config = vim.fn.stdpath 'config' .. '/init.lua', lazy_config = vim.fn.stdpath 'config' .. '/init.lua',
}, },
import = {
-- Imports can be added at a specified line whilst keeping the cursor in place
insert_at_top = true,
-- Optionally support additional languages or modify existing languages...
custom_languages = {
{
-- The filetypes that ripgrep supports (find these via `rg --type-list`)
extensions = { 'js', 'ts' },
-- The Vim filetypes
filetypes = { 'vue' },
-- Optionally set a line other than 1
insert_at_line = 2, ---@type function|number
-- The regex pattern for the import statement
regex = [[^(?:import(?:[\"'\s]*([\w*{}\n, ]+)from\s*)?[\"'\s](.*?)[\"'\s].*)]],
},
},
},
}, },
} }
@@ -58,6 +83,8 @@ return {
pcall(t.load_extension, 'harpoon') pcall(t.load_extension, 'harpoon')
pcall(t.load_extension, 'git_worktree') pcall(t.load_extension, 'git_worktree')
pcall(t.load_extension, 'lazy_plugins') pcall(t.load_extension, 'lazy_plugins')
pcall(t.load_extension, 'luasnip')
pcall(t.load_extension, 'import')
-- Enable telescope fzf native, if installed -- Enable telescope fzf native, if installed
pcall(t.load_extension, 'fzf') pcall(t.load_extension, 'fzf')
@@ -67,10 +94,12 @@ return {
-- See `:help telescope.keymap` -- See `:help telescope.keymap`
vim.keymap.set('n', '<leader>/', function() vim.keymap.set('n', '<leader>/', function()
-- You can pass additional configuration to telescope to change theme, layout, etc. -- You can pass additional configuration to telescope to change theme, layout, etc.
require('telescope.builtin').current_buffer_fuzzy_find(themes.get_dropdown { require('telescope.builtin').current_buffer_fuzzy_find(
winblend = 10, themes.get_dropdown {
previewer = true, winblend = 20,
}) previewer = true,
}
)
end, { desc = '[/] Fuzzily search in current buffer]' }) end, { desc = '[/] Fuzzily search in current buffer]' })
end, end,
} }

View File

@@ -8,6 +8,9 @@ return {
end, end,
dependencies = { dependencies = {
'nvim-treesitter/nvim-treesitter-textobjects', 'nvim-treesitter/nvim-treesitter-textobjects',
'nvim-treesitter/nvim-treesitter-refactor',
'nvim-treesitter/nvim-treesitter-context',
'JoosepAlviste/nvim-ts-context-commentstring',
}, },
config = function() config = function()
require('nvim-treesitter.configs').setup { require('nvim-treesitter.configs').setup {
@@ -47,6 +50,32 @@ return {
'yaml', 'yaml',
}, },
refactor = {
navigation = {
enable = true,
-- Assign keymaps to false to disable them, e.g. `goto_definition = false`.
keymaps = {
goto_definition = '<leader>gnd',
list_definitions = '<leader>gnD',
list_definitions_toc = '<leader>gO',
goto_next_usage = '<a-*>',
goto_previous_usage = '<a-#>',
},
},
smart_rename = {
enable = true,
-- Assign keymaps to false to disable them, e.g. `smart_rename = false`.
keymaps = {
smart_rename = 'grr',
},
},
highlight_definitions = {
enable = true,
-- Set to false if you have an `updatetime` of ~100.
clear_on_cursor_move = true,
},
highlight_current_scope = { enable = false },
},
highlight = { enable = true }, highlight = { enable = true },
indent = { enable = true }, indent = { enable = true },
incremental_selection = { incremental_selection = {

View File

@@ -82,6 +82,13 @@ return {
action = 'Lazy update', action = 'Lazy update',
key = 'u', key = 'u',
}, },
{
icon = '',
desc = 'Quit',
group = 'DiagnosticError',
action = 'q',
key = 'q',
},
}, },
}, },
} }

View File

@@ -190,6 +190,11 @@ return {
'<cmd>Lspsaga diagnostic_jump_next<cr>', '<cmd>Lspsaga diagnostic_jump_next<cr>',
desc = 'LSPSaga: Diagnostic Jump Next', desc = 'LSPSaga: Diagnostic Jump Next',
}, },
{
'<leader>cx',
'<cmd>Telescope import<cr>',
desc = 'Telescope import',
},
-- ── DAP ───────────────────────────────────────────────────────────── -- ── DAP ─────────────────────────────────────────────────────────────
{ '<leader>d', group = '[d] DAP' }, { '<leader>d', group = '[d] DAP' },
@@ -266,24 +271,34 @@ return {
-- See: lua/plugins/telescope.lua -- See: lua/plugins/telescope.lua
{ {
'<leader><space>', '<leader><space>',
"<cmd>lua require('telescope.builtin').buffers()<cr>", '<cmd>Telescope buffers<cr>',
desc = 'Find existing buffers', desc = 'Find existing buffers',
}, },
{ {
'<leader><tab>', '<leader>sc',
"<cmd>lua require('telescope.builtin').commands()<CR>", '<cmd>Telescope commands<CR>',
desc = 'Telescope: Commands', desc = 'Telescope: Commands',
}, },
{ {
'<leader>sd', '<leader>sd',
"<cmd>lua require('telescope.builtin').diagnostics()<cr>", '<cmd>Telescope diagnostics<cr>',
desc = 'Search Diagnostics', desc = 'Search Diagnostics',
}, },
{ {
'<leader>sg', '<leader>sg',
"<cmd>lua require('telescope.builtin').live_grep()<cr>", '<cmd>Telescope live_grep<cr>',
desc = 'Search by Grep', desc = 'Search by Grep',
}, },
{
'<leader>sh',
'<cmd>Telescope highlights<cr>',
desc = 'List highlights',
},
{
'<leader>sl',
'<cmd>Telescope luasnip<CR>',
desc = 'Search LuaSnip',
},
{ {
'<leader>sm', '<leader>sm',
'<cmd>Telescope harpoon marks<CR>', '<cmd>Telescope harpoon marks<CR>',
@@ -296,7 +311,7 @@ return {
}, },
{ {
'<leader>so', '<leader>so',
"<cmd>lua require('telescope.builtin').oldfiles()<cr>", '<cmd>Telescope oldfiles<cr>',
desc = 'Find recently Opened files', desc = 'Find recently Opened files',
}, },
{ {
@@ -304,10 +319,54 @@ return {
"<cmd>lua require('telescope').extensions.lazy_plugins.lazy_plugins()<cr>", "<cmd>lua require('telescope').extensions.lazy_plugins.lazy_plugins()<cr>",
desc = 'Find neovim/lazy configs', desc = 'Find neovim/lazy configs',
}, },
{
'<leader>sq',
'<cmd>Telescope quickfix<cr>',
desc = 'Quickfix list',
},
{
'<leader>sr',
group = 'References',
{
'<leader>srd',
'<cmd>Telescope lsp_definitions<CR>',
desc = 'Definitions',
},
{
'<leader>sri',
'<cmd>Telescope lsp_implementations<CR>',
desc = 'Implementations',
},
{
'<leader>srp',
'<cmd>Telescope lsp_document_symbols<CR>',
desc = 'Document Symbols',
},
{
'<leader>srr',
'<cmd>Telescope lsp_references<CR>',
desc = 'LSP References',
},
{
'<leader>srt',
'<cmd>Telescope lsp_type_definitions<CR>',
desc = 'Type Definitions',
},
{
'<leader>srw',
'<cmd>Telescope lsp_workspace_symbols<CR>',
desc = 'Workspace Symbols',
},
},
{
'<leader>ss',
'<cmd>Telescope treesitter',
desc = 'Treesitter symbols',
},
{ '<leader>st', '<cmd>TodoTelescope<CR>', desc = 'Telescope: Show Todo' }, { '<leader>st', '<cmd>TodoTelescope<CR>', desc = 'Telescope: Show Todo' },
{ {
'<leader>sw', '<leader>sw',
"<cmd>lua require('telescope.builtin').grep_string()<cr>", '<cmd>Telescope grep_string<cr>',
desc = 'Search current Word', desc = 'Search current Word',
}, },
@@ -375,6 +434,16 @@ return {
-- ── Help ──────────────────────────────────────────────────────────── -- ── Help ────────────────────────────────────────────────────────────
{ '<leader>?', group = '[?] Help & Cheat sheets' }, { '<leader>?', group = '[?] Help & Cheat sheets' },
{ {
{
'<leader>?h',
'<cmd>Telescope help_tags<cr>',
desc = 'Help tags',
},
{
'<leader>?m',
'<cmd>Telescope man_pages<cr>',
desc = 'Man pages',
},
{ {
'<leader>?w', '<leader>?w',
'<cmd>lua require("which-key").show({global = true})<cr>', '<cmd>lua require("which-key").show({global = true})<cr>',

View File

@@ -1,122 +1,116 @@
"$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json" "$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json"
final_space = true console_title_template = '{{.UserName}}@{{.HostName}} {{.Shell}} in {{.PWD}}'
console_title_template = "{{.UserName}}@{{.HostName}} {{.Shell}} in {{.PWD}}" version = 3
version = 2
auto_upgrade = true auto_upgrade = true
final_space = true
[[blocks]]
alignment = "left"
type = "prompt"
[[blocks.segments]]
foreground = "cyan"
style = "powerline"
template = "{{ .Icon }}"
type = "os"
[[blocks.segments]]
type = "session"
style = "plain"
template = " {{ if .SSHSession }} {{ .UserName }}@{{ end }}{{ .HostName }}"
[[blocks.segments]]
foreground = "cyan"
style = "plain"
template = " {{ .Path }} "
type = "path"
[blocks.segments.properties]
style = "mixed"
[blocks.segments.mapped_locations]
"~/Code/*" = ""
"~/Code/ivuorinen/" = ""
[[blocks.segments]]
type = "git"
style = "plain"
foreground = "lightGreen"
# template = "{{ .UpstreamIcon }}{{ .HEAD }} {{ if or (.Staging.Changed) (.Working.Changed) }}({{if .Behind }}\u2193 {{ .Behind }} {{ end }}{{if .Staging.Changed }}\uF046 {{ .Staging.String }} {{ end }}{{ if and (.Staging.Changed) (.Working.Changed) }}| {{ end }}{{ if .Working.Changed }} {{ .Working.String }}{{ end }}){{ end }}"
template = "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }}  {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }}  {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }}  {{ .StashCount }}{{ end }}"
[blocks.segments.properties]
fetch_status = true
fetch_upstream_icon = true
[blocks.segments.properties.untracked_modes]
"~/Code/oh-my-posh/" = "no"
[[blocks.segments]]
type = "terraform"
style = "plain"
foreground = "#000000"
background = "#ebcc34"
template = "{{.WorkspaceName}}"
[[blocks]]
alignment = "left"
type = "prompt"
[[blocks.segments]]
foreground = "#68a063"
style = "plain"
template = " {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }}"
type = "node"
[blocks.segments.properties]
display_mode = "files"
fetch_package_manager = true
fetch_version = true
[[blocks.segments]]
foreground = "#4063D8"
style = "plain"
template = " {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}"
type = "crystal"
[blocks.segments.properties]
display_mode = "files"
fetch_version = true
[[blocks.segments]]
foreground = "#DE3F24"
style = "plain"
template = " {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}"
type = "ruby"
[blocks.segments.properties]
display_mode = "files"
fetch_version = true
[[blocks.segments]]
foreground = "#FED142"
style = "plain"
template = " {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}"
type = "python"
[blocks.segments.properties]
display_mode = "context"
fetch_virtual_env = false
[[blocks]]
alignment = "left"
newline = true
type = "prompt"
[[blocks.segments]]
background = "transparent"
foreground = "lightGreen"
foreground_templates = [ "{{ if gt .Code 0 }}red{{ end }}" ]
style = "plain"
template = "➜"
type = "status"
[blocks.segments.properties]
always_enabled = true
[transient_prompt] [transient_prompt]
background = "transparent" template = '➜ '
foreground = "lightGreen" foreground = 'lightGreen'
foreground_templates = [ "{{ if gt .Code 0 }}red{{ end }}" ] background = 'transparent'
template = "➜ " foreground_templates = ['{{ if gt .Code 0 }}red{{ end }}']
[[blocks]]
type = 'prompt'
alignment = 'left'
[[blocks.segments]]
style = 'powerline'
template = '{{ .Icon }}'
foreground = 'cyan'
type = 'os'
[[blocks.segments]]
style = 'plain'
template = ' {{ if .SSHSession }} {{ .UserName }}@{{ end }}{{ .HostName }}'
type = 'session'
[[blocks.segments]]
style = 'plain'
template = ' {{ .Path }} '
foreground = 'cyan'
type = 'path'
[blocks.segments.properties]
style = 'mixed'
[[blocks.segments]]
style = 'plain'
template = '{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }}  {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }}  {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }}  {{ .StashCount }}{{ end }}'
foreground = 'lightGreen'
type = 'git'
[blocks.segments.properties]
fetch_status = true
fetch_upstream_icon = true
[blocks.segments.properties.untracked_modes]
'~/Code/oh-my-posh/' = 'no'
[[blocks.segments]]
style = 'plain'
template = '{{.WorkspaceName}}'
foreground = '#000000'
background = '#ebcc34'
type = 'terraform'
[[blocks]]
type = 'prompt'
alignment = 'left'
[[blocks.segments]]
style = 'plain'
template = ' {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }}'
foreground = '#68a063'
type = 'node'
[blocks.segments.properties]
display_mode = 'files'
fetch_package_manager = true
fetch_version = true
[[blocks.segments]]
style = 'plain'
template = ' {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}'
foreground = '#4063D8'
type = 'crystal'
[blocks.segments.properties]
display_mode = 'files'
fetch_version = true
[[blocks.segments]]
style = 'plain'
template = ' {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}'
foreground = '#DE3F24'
type = 'ruby'
[blocks.segments.properties]
display_mode = 'files'
fetch_version = true
[[blocks.segments]]
style = 'plain'
template = ' {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}'
foreground = '#FED142'
type = 'python'
[blocks.segments.properties]
display_mode = 'context'
fetch_virtual_env = false
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
style = 'plain'
template = '➜'
foreground = 'lightGreen'
background = 'transparent'
type = 'status'
foreground_templates = ['{{ if gt .Code 0 }}red{{ end }}']
[blocks.segments.properties]
always_enabled = true

5
config/tms/config.toml Normal file
View File

@@ -0,0 +1,5 @@
default_session = "main"
[[search_dirs]]
path = "~/Code"
depth = 10

View File

@@ -28,6 +28,15 @@ bind -n M-Down select-pane -D
# Reload tmux config with <prefix> + r # Reload tmux config with <prefix> + r
bind r source-file ~/.dotfiles/config/tmux/tmux.conf \; display "tmux cfg reloaded!" bind r source-file ~/.dotfiles/config/tmux/tmux.conf \; display "tmux cfg reloaded!"
# Switch to next client with <prefix>( and previous with <prefix>)
bind -r '(' switch-client -p\; refresh-client -S
bind -r ')' switch-client -n\; refresh-client -S
# tms, https://github.com/jrmoulton/tmux-sessionizer
bind C-h display-popup -E "tms"
bind C-j display-popup -E "tms switch"
bind C-k display-popup -E "tms windows"
# Open a new window with <prefix> + N # Open a new window with <prefix> + N
bind N new-window bind N new-window
@@ -112,7 +121,7 @@ set-option -g status-left ''
set-option -g window-status-format ' #I:#W ' set-option -g window-status-format ' #I:#W '
set-option -g window-status-current-format ' #I:#W#{?window_zoomed_flag, ◈ ,} ' set-option -g window-status-current-format ' #I:#W#{?window_zoomed_flag, ◈ ,} '
set-option -g status-right "#{hostname_short}/#S #{tmux_mode_indicator}" set-option -g status-right "#{hostname_short}/#(tms sessions) #{tmux_mode_indicator}"
set -g pane-border-style "fg=#3b4261" set -g pane-border-style "fg=#3b4261"
set -g pane-active-border-style "fg=#7aa2f7" set -g pane-active-border-style "fg=#7aa2f7"
@@ -138,15 +147,15 @@ set -g @tmux_window_name_max_name_len "20"
set -g @tmux_window_name_use_tilde "True" set -g @tmux_window_name_use_tilde "True"
set -g @tmux_window_name_shells "['bash', 'fish', 'sh', 'zsh', 'oh-my-posh']" set -g @tmux_window_name_shells "['bash', 'fish', 'sh', 'zsh', 'oh-my-posh']"
set -g @tmux_window_dir_programs "['nvim', 'vim', 'vi', 'git']" set -g @tmux_window_dir_programs "['nvim', 'vim', 'vi', 'git']"
set -g @tmux_window_name_ignored_programs "['sqlite3', 'x-set-php-aliases', 'oh-my-posh', 'antidot']" # Default is [] set -g @tmux_window_name_ignored_programs "['sqlite3', 'x-set-php-aliases', 'oh-my-posh', 'antidot', 'direnv']" # Default is []
set -g @tmux_window_name_substitute_sets "[('.+ipython2', 'ipython2'), ('.+ipython3', 'ipython3'), ('.+\.local', '.local')]" set -g @tmux_window_name_substitute_sets "[('.+ipython2', 'ipython2'), ('.+ipython3', 'ipython3'), ('.+\.local', '.local'), ('.+asdf', 'asdf')]"
## https://github.com/tmux-plugins/tmux-continuum ## https://github.com/tmux-plugins/tmux-continuum
set -g @continuum-restore 'on' # set -g @continuum-restore 'on'
## https://github.com/tmux-plugins/tmux-resurrect ## https://github.com/tmux-plugins/tmux-resurrect
set -g @resurrect-strategy-nvim 'session' # set -g @resurrect-strategy-nvim 'session'
set -g @resurrect-dir '~/.local/state/tmux/tmux-resurrect' # set -g @resurrect-dir '~/.local/state/tmux/tmux-resurrect'
## https://github.com/MunifTanjim/tmux-mode-indicator ## https://github.com/MunifTanjim/tmux-mode-indicator
set -g @mode_indicator_prefix_mode_style 'bg=default,fg=#7aa2f7' set -g @mode_indicator_prefix_mode_style 'bg=default,fg=#7aa2f7'
@@ -160,9 +169,9 @@ set -g @mode_indicator_sync_mode_style 'bg=default,fg=red'
run-shell ~/.dotfiles/config/tmux/plugins/tmux-sensible/sensible.tmux run-shell ~/.dotfiles/config/tmux/plugins/tmux-sensible/sensible.tmux
run-shell ~/.dotfiles/config/tmux/plugins/tmux-window-name/tmux_window_name.tmux run-shell ~/.dotfiles/config/tmux/plugins/tmux-window-name/tmux_window_name.tmux
run-shell ~/.dotfiles/config/tmux/plugins/tmux-resurrect/resurrect.tmux # run-shell ~/.dotfiles/config/tmux/plugins/tmux-resurrect/resurrect.tmux
run-shell ~/.dotfiles/config/tmux/plugins/tmux-continuum/continuum.tmux # run-shell ~/.dotfiles/config/tmux/plugins/tmux-continuum/continuum.tmux
run-shell ~/.dotfiles/config/tmux/plugins/tmux-sessionist/sessionist.tmux # run-shell ~/.dotfiles/config/tmux/plugins/tmux-sessionist/sessionist.tmux
run-shell ~/.dotfiles/config/tmux/plugins/tmux-mode-indicator/mode_indicator.tmux run-shell ~/.dotfiles/config/tmux/plugins/tmux-mode-indicator/mode_indicator.tmux
run-shell ~/.dotfiles/config/tmux/plugins/tmux-suspend/suspend.tmux run-shell ~/.dotfiles/config/tmux/plugins/tmux-suspend/suspend.tmux
run-shell ~/.dotfiles/config/tmux/plugins/tmux-yank/yank.tmux run-shell ~/.dotfiles/config/tmux/plugins/tmux-yank/yank.tmux

View File

@@ -1,9 +1,14 @@
local wezterm = require("wezterm") local wezterm = require 'wezterm'
local config = wezterm.config_builder() local config = wezterm.config_builder()
-- Font and font size -- Font and font size
config.font_size = 14.0 config.font_size = 14.0
config.font = wezterm.font("JetBrainsMonoNL Nerd Font Mono") config.font = wezterm.font_with_fallback {
'JetBrainsMonoNL Nerd Font Mono',
'JetBrains Mono',
'Noto Color Emoji',
'Symbols Nerd Font Mono',
}
-- Make the window a bit transparent -- Make the window a bit transparent
config.window_background_opacity = 0.97 config.window_background_opacity = 0.97
@@ -15,16 +20,16 @@ config.send_composed_key_when_left_alt_is_pressed = true
-- Function to detect the theme based on appearance -- Function to detect the theme based on appearance
function Scheme_for_appearance(appearance) function Scheme_for_appearance(appearance)
if appearance:find("Dark") then if appearance:find 'Dark' then
return "Tokyo Night Storm" return 'Tokyo Night Storm'
else else
return "Tokyo Night Day" return 'Tokyo Night Day'
end end
end end
-- Set the color scheme based on appearance -- Set the color scheme based on appearance
---@diagnostic disable-next-line: unused-local ---@diagnostic disable-next-line: unused-local
wezterm.on("window-config-reloaded", function(window, pane) wezterm.on('window-config-reloaded', function(window, pane)
local overrides = window:get_config_overrides() or {} local overrides = window:get_config_overrides() or {}
local appearance = window:get_appearance() local appearance = window:get_appearance()
local scheme = Scheme_for_appearance(appearance) local scheme = Scheme_for_appearance(appearance)

View File

@@ -0,0 +1,212 @@
#compdef oh-my-posh
compdef _oh-my-posh oh-my-posh
# zsh completion for oh-my-posh -*- shell-script -*-
__oh-my-posh_debug()
{
local file="$BASH_COMP_DEBUG_FILE"
if [[ -n ${file} ]]; then
echo "$*" >> "${file}"
fi
}
_oh-my-posh()
{
local shellCompDirectiveError=1
local shellCompDirectiveNoSpace=2
local shellCompDirectiveNoFileComp=4
local shellCompDirectiveFilterFileExt=8
local shellCompDirectiveFilterDirs=16
local shellCompDirectiveKeepOrder=32
local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace keepOrder
local -a completions
__oh-my-posh_debug "\n========= starting completion logic =========="
__oh-my-posh_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}"
# The user could have moved the cursor backwards on the command-line.
# We need to trigger completion from the $CURRENT location, so we need
# to truncate the command-line ($words) up to the $CURRENT location.
# (We cannot use $CURSOR as its value does not work when a command is an alias.)
words=("${=words[1,CURRENT]}")
__oh-my-posh_debug "Truncated words[*]: ${words[*]},"
lastParam=${words[-1]}
lastChar=${lastParam[-1]}
__oh-my-posh_debug "lastParam: ${lastParam}, lastChar: ${lastChar}"
# For zsh, when completing a flag with an = (e.g., oh-my-posh -n=<TAB>)
# completions must be prefixed with the flag
setopt local_options BASH_REMATCH
if [[ "${lastParam}" =~ '-.*=' ]]; then
# We are dealing with a flag with an =
flagPrefix="-P ${BASH_REMATCH}"
fi
# Prepare the command to obtain completions
requestComp="${words[1]} __complete ${words[2,-1]}"
if [ "${lastChar}" = "" ]; then
# If the last parameter is complete (there is a space following it)
# We add an extra empty parameter so we can indicate this to the go completion code.
__oh-my-posh_debug "Adding extra empty parameter"
requestComp="${requestComp} \"\""
fi
__oh-my-posh_debug "About to call: eval ${requestComp}"
# Use eval to handle any environment variables and such
out=$(eval ${requestComp} 2>/dev/null)
__oh-my-posh_debug "completion output: ${out}"
# Extract the directive integer following a : from the last line
local lastLine
while IFS='\n' read -r line; do
lastLine=${line}
done < <(printf "%s\n" "${out[@]}")
__oh-my-posh_debug "last line: ${lastLine}"
if [ "${lastLine[1]}" = : ]; then
directive=${lastLine[2,-1]}
# Remove the directive including the : and the newline
local suffix
(( suffix=${#lastLine}+2))
out=${out[1,-$suffix]}
else
# There is no directive specified. Leave $out as is.
__oh-my-posh_debug "No directive found. Setting do default"
directive=0
fi
__oh-my-posh_debug "directive: ${directive}"
__oh-my-posh_debug "completions: ${out}"
__oh-my-posh_debug "flagPrefix: ${flagPrefix}"
if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then
__oh-my-posh_debug "Completion received error. Ignoring completions."
return
fi
local activeHelpMarker="_activeHelp_ "
local endIndex=${#activeHelpMarker}
local startIndex=$((${#activeHelpMarker}+1))
local hasActiveHelp=0
while IFS='\n' read -r comp; do
# Check if this is an activeHelp statement (i.e., prefixed with $activeHelpMarker)
if [ "${comp[1,$endIndex]}" = "$activeHelpMarker" ];then
__oh-my-posh_debug "ActiveHelp found: $comp"
comp="${comp[$startIndex,-1]}"
if [ -n "$comp" ]; then
compadd -x "${comp}"
__oh-my-posh_debug "ActiveHelp will need delimiter"
hasActiveHelp=1
fi
continue
fi
if [ -n "$comp" ]; then
# If requested, completions are returned with a description.
# The description is preceded by a TAB character.
# For zsh's _describe, we need to use a : instead of a TAB.
# We first need to escape any : as part of the completion itself.
comp=${comp//:/\\:}
local tab="$(printf '\t')"
comp=${comp//$tab/:}
__oh-my-posh_debug "Adding completion: ${comp}"
completions+=${comp}
lastComp=$comp
fi
done < <(printf "%s\n" "${out[@]}")
# Add a delimiter after the activeHelp statements, but only if:
# - there are completions following the activeHelp statements, or
# - file completion will be performed (so there will be choices after the activeHelp)
if [ $hasActiveHelp -eq 1 ]; then
if [ ${#completions} -ne 0 ] || [ $((directive & shellCompDirectiveNoFileComp)) -eq 0 ]; then
__oh-my-posh_debug "Adding activeHelp delimiter"
compadd -x "--"
hasActiveHelp=0
fi
fi
if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then
__oh-my-posh_debug "Activating nospace."
noSpace="-S ''"
fi
if [ $((directive & shellCompDirectiveKeepOrder)) -ne 0 ]; then
__oh-my-posh_debug "Activating keep order."
keepOrder="-V"
fi
if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then
# File extension filtering
local filteringCmd
filteringCmd='_files'
for filter in ${completions[@]}; do
if [ ${filter[1]} != '*' ]; then
# zsh requires a glob pattern to do file filtering
filter="\*.$filter"
fi
filteringCmd+=" -g $filter"
done
filteringCmd+=" ${flagPrefix}"
__oh-my-posh_debug "File filtering command: $filteringCmd"
_arguments '*:filename:'"$filteringCmd"
elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then
# File completion for directories only
local subdir
subdir="${completions[1]}"
if [ -n "$subdir" ]; then
__oh-my-posh_debug "Listing directories in $subdir"
pushd "${subdir}" >/dev/null 2>&1
else
__oh-my-posh_debug "Listing directories in ."
fi
local result
_arguments '*:dirname:_files -/'" ${flagPrefix}"
result=$?
if [ -n "$subdir" ]; then
popd >/dev/null 2>&1
fi
return $result
else
__oh-my-posh_debug "Calling _describe"
if eval _describe $keepOrder "completions" completions $flagPrefix $noSpace; then
__oh-my-posh_debug "_describe found some completions"
# Return the success of having called _describe
return 0
else
__oh-my-posh_debug "_describe did not find completions."
__oh-my-posh_debug "Checking if we should do file completion."
if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then
__oh-my-posh_debug "deactivating file completion"
# We must return an error code here to let zsh know that there were no
# completions found by _describe; this is what will trigger other
# matching algorithms to attempt to find completions.
# For example zsh can match letters in the middle of words.
return 1
else
# Perform file completion
__oh-my-posh_debug "Activating file completion"
# We must return the result of this command, so it must be the
# last command, or else we must store its result to return it.
_arguments '*:filename:_files'" ${flagPrefix}"
fi
fi
fi
}
# don't run the completion function when being source-ed or eval-ed
if [ "$funcstack[1]" = "_oh-my-posh" ]; then
_oh-my-posh
fi

View File

@@ -392,18 +392,106 @@ section_brew()
! x-have brew && menu_section "$USAGE_PREFIX" "brew not available on this system" ! x-have brew && menu_section "$USAGE_PREFIX" "brew not available on this system"
} }
section_asdf()
{
USAGE_PREFIX="$SCRIPT asdf <command>"
MENU=(
"install:Install asdf"
"current:Show asdf current versions"
"global:Show asdf global versions"
"installed:Show asdf installed versions"
"local:Show asdf local versions"
"versions:Show asdf versions"
"where:Show asdf where"
"which:Show asdf which"
)
case "$1" in
install)
msg "Installing asdf..."
bash "$DOTFILES/scripts/install-asdf.sh both" \
&& msg_yay "asdf installed!"
;;
current)
asdf current
;;
global)
asdf global
;;
installed)
asdf list
;;
local)
asdf local
;;
versions)
asdf list all
;;
where)
asdf where
;;
which)
asdf which
;;
*) menu_usage "$USAGE_PREFIX" "${MENU[@]}" ;;
esac
}
section_helpers() section_helpers()
{ {
USAGE_PREFIX="$SCRIPT helpers <command>" USAGE_PREFIX="$SCRIPT helpers <command>"
MENU=( MENU=(
"aliases:<shell> (bash, zsh) Show aliases for bash or zsh"
"colors:Show colors"
"env:Show environment variables"
"functions:Show functions"
"nvim:Show nvim keybindings"
"path:Show \$PATH dir by dir" "path:Show \$PATH dir by dir"
"tmux:Show tmux keybindings"
"wezterm:Show wezterm keybindings"
) )
case "$1" in CMD="$1"
shift
SECTION="$1"
shift
case "$CMD" in
path) path)
# shellcheck disable=2001 # shellcheck disable=2001
for i in $(echo "$PATH" | sed 's/:/ /g'); do echo "$i"; done for i in $(echo "$PATH" | sed 's/:/ /g'); do echo "$i"; done
;; ;;
aliases)
case "$SECTION" in
"zsh")
zsh -ixc : 2>&1 | grep -E '> alias' | sed "s|$HOME|~|" | grep -v "(eval)"
;;
"bash")
bash -ixc : 2>&1 | grep -E '> alias' | sed "s|$HOME|~|" | grep -v "(eval)"
;;
*)
echo "$SCRIPT helpers aliases <shell> (bash, zsh)"
;;
esac
;;
"colors")
for i in {0..255}; do echo -en "\e[38;5;${i}m${i} "; done
;;
"env")
env | sort
;;
"functions")
declare -F
;;
"nvim")
cat "$DOTFILES/docs/nvim-keybindings.md"
;;
"tmux")
cat "$DOTFILES/docs/tmux-keybindings.md"
;;
"wezterm")
cat "$DOTFILES/docs/wezterm-keybindings.md"
;;
*) menu_usage "$USAGE_PREFIX" "${MENU[@]}" ;; *) menu_usage "$USAGE_PREFIX" "${MENU[@]}" ;;
esac esac
} }
@@ -524,9 +612,16 @@ section_tests()
MENU=( MENU=(
"msg:List all log functions from shared.sh" "msg:List all log functions from shared.sh"
"params:List all parameters"
) )
case "$1" in case "$1" in
params)
echo "All parameters:"
for i in "$@"; do
echo " $i"
done
;;
msg) msg)
msg "msg" msg "msg"
msg_done "msg_done" msg_done "msg_done"
@@ -555,6 +650,8 @@ usage()
echo "" echo ""
section_install section_install
echo "" echo ""
section_asdf
echo ""
section_brew section_brew
echo "" echo ""
section_check section_check
@@ -566,14 +663,22 @@ usage()
section_helpers section_helpers
} }
# The main loop. first keyword after $0 triggers section, or help. main()
case "$1" in {
install) section_install "$2" ;; SECTION="$1"
brew) section_brew "$2" ;; shift
check) section_check "$2" ;; # The main loop. The first keyword after $0 triggers section, or help.
dotfiles) section_dotfiles "$2" ;; case "$SECTION" in
helpers) section_helpers "$2" ;; install) section_install "$@" ;;
docs) section_docs "$2" ;; asdf) section_asdf "$@" ;;
tests) section_tests "$2" ;; brew) section_brew "$@" ;;
*) usage && exit 0 ;; check) section_check "$@" ;;
esac dotfiles) section_dotfiles "$@" ;;
helpers) section_helpers "$@" ;;
docs) section_docs "$@" ;;
tests) section_tests "$@" ;;
*) usage && exit 0 ;;
esac
}
main "$@"

View File

@@ -4,7 +4,7 @@
# #
# It also updates asdf and the plugins, and then reshim asdf. # It also updates asdf and the plugins, and then reshim asdf.
# #
# Usage: ./install-asdf.sh [both|install|add_plugins] # Usage: ./install-asdf.sh [both|install|update|add_plugins]
# Author: Ismo Vuorinen <https://github.com/ivuorinen> # Author: Ismo Vuorinen <https://github.com/ivuorinen>
# License: MIT # License: MIT
# #
@@ -13,9 +13,40 @@ source "${DOTFILES}/config/shared.sh"
export ASDF_DIR="${XDG_BIN_HOME}/asdf" export ASDF_DIR="${XDG_BIN_HOME}/asdf"
export PATH="${ASDF_DIR}/bin:$PATH" export PATH="${ASDF_DIR}/bin:$PATH"
# If ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME is not set, set it
if [ -z "${ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME}" ]; then
export ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME="${XDG_CONFIG_HOME}/asdf/plugin-versions"
fi
msg "Sourcing asdf in your shell" msg "Sourcing asdf in your shell"
. "$ASDF_DIR/asdf.sh" . "$ASDF_DIR/asdf.sh"
ASDF_INSTALLABLES=(
"1password-cli:github.com/NeoHsu/asdf-1password-cli.git"
"age:github.com/threkk/asdf-age.git"
"bottom:github.com/carbonteq/asdf-btm.git"
"direnv:github.com/asdf-community/asdf-direnv.git"
"dotenv-linter:github.com/wesleimp/asdf-dotenv-linter.git"
"editorconfig-checker:github.com/gabitchov/asdf-editorconfig-checker.git"
"fd:gitlab.com/wt0f/asdf-fd.git"
"github-cli:github.com/bartlomiejdanek/asdf-github-cli.git"
"golang:github.com/asdf-community/asdf-golang.git"
"hadolint:github.com/devlincashman/asdf-hadolint.git"
"kubectl:github.com/asdf-community/asdf-kubectl.git"
"nodejs:github.com/asdf-vm/asdf-nodejs.git"
"pipx:github.com/yozachar/asdf-pipx.git"
"pre-commit:github.com/jonathanmorley/asdf-pre-commit.git"
"python:github.com/asdf-community/asdf-python.git"
"ripgrep:gitlab.com/wt0f/asdf-ripgrep.git"
"rust:github.com/code-lever/asdf-rust.git"
"shellcheck:github.com/luizm/asdf-shellcheck.git"
"shfmt:github.com/luizm/asdf-shfmt.git"
"terragrunt:github.com/ohmer/asdf-terragrunt.git"
"tf-summarize:github.com/adamcrews/asdf-tf-summarize.git"
"yamllint:github.com/ericcornelissen/asdf-yamllint.git"
"yq:github.com/sudermanjr/asdf-yq.git"
)
# Function to update asdf and plugins # Function to update asdf and plugins
update_asdf() update_asdf()
{ {
@@ -24,41 +55,24 @@ update_asdf()
asdf global asdf-plugin-manager "$(asdf latest asdf-plugin-manager)" asdf global asdf-plugin-manager "$(asdf latest asdf-plugin-manager)"
asdf-plugin-manager version asdf-plugin-manager version
asdf-plugin-manager add-all asdf-plugin-manager add-all
asdf-plugin-manager update-all
asdf-plugin-manager export > "${ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME}"
asdf install asdf install
return 0 return 0
} }
update_asdf_commands()
{
msg "Updating asdf commands using asdf-plugin-manager"
asdf-plugin-manager update-all
return 0
}
# Function to install asdf plugins # Function to install asdf plugins
install_asdf_plugins() install_asdf_plugins()
{ {
ASDF_INSTALLABLES=(
"1password-cli:github.com/NeoHsu/asdf-1password-cli.git"
"age:github.com/threkk/asdf-age.git"
"bottom:github.com/carbonteq/asdf-btm.git"
"direnv:github.com/asdf-community/asdf-direnv.git"
"dotenv-linter:github.com/wesleimp/asdf-dotenv-linter.git"
"editorconfig-checker:github.com/gabitchov/asdf-editorconfig-checker.git"
"fd:gitlab.com/wt0f/asdf-fd.git"
"github-cli:github.com/bartlomiejdanek/asdf-github-cli.git"
"golang:github.com/asdf-community/asdf-golang.git"
"hadolint:github.com/devlincashman/asdf-hadolint.git"
"kubectl:github.com/asdf-community/asdf-kubectl.git"
"nodejs:github.com/asdf-vm/asdf-nodejs.git"
"pipx:github.com/yozachar/asdf-pipx.git"
"pre-commit:github.com/jonathanmorley/asdf-pre-commit.git"
"python:github.com/asdf-community/asdf-python.git"
"ripgrep:gitlab.com/wt0f/asdf-ripgrep.git"
"rust:github.com/code-lever/asdf-rust.git"
"shellcheck:github.com/luizm/asdf-shellcheck.git"
"shfmt:github.com/luizm/asdf-shfmt.git"
"terragrunt:github.com/ohmer/asdf-terragrunt.git"
"tf-summarize:github.com/adamcrews/asdf-tf-summarize.git"
"yamllint:github.com/ericcornelissen/asdf-yamllint.git"
"yq:github.com/sudermanjr/asdf-yq.git"
)
msg "Installing asdf plugins" msg "Installing asdf plugins"
for item in "${ASDF_INSTALLABLES[@]}"; do for item in "${ASDF_INSTALLABLES[@]}"; do
CMD=$(echo "${item}" | awk -F ":" '{print $1}') CMD=$(echo "${item}" | awk -F ":" '{print $1}')
@@ -70,7 +84,7 @@ install_asdf_plugins()
done done
msg "Exporting asdf plugin versions" msg "Exporting asdf plugin versions"
asdf-plugin-manager export > "${XDG_CONFIG_HOME}/asdf/plugin-versions" asdf-plugin-manager export > "${ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME}"
return 0 return 0
} }
@@ -85,7 +99,7 @@ reshim()
# create usage function # create usage function
usage() usage()
{ {
echo "Usage: $0 [both|install|add_plugins]" echo "Usage: $0 [both|install|add_plugins|update]"
exit 1 exit 1
} }
@@ -97,6 +111,10 @@ main()
update_asdf update_asdf
reshim reshim
;; ;;
"update")
update_asdf_commands
reshim
;;
"install") "install")
update_asdf update_asdf
reshim reshim