@sebastienrousseau/dotfiles 0.2.502 → 0.2.503
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +83 -9
- package/LICENSE +21 -1283
- package/README.md +5 -3
- package/docs/CONFIG_STRATEGY.md +124 -0
- package/docs/COPYRIGHT +1 -1
- package/docs/GOVERNANCE.md +98 -0
- package/docs/MAINTAINERS.md +41 -0
- package/docs/OPENCODE.md +127 -0
- package/docs/README.md +2 -0
- package/docs/STRUCTURE.md +102 -0
- package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
- package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
- package/docs/architecture/REPO_LAYOUT.md +8 -8
- package/docs/archive/MILESTONE_v0.2.493.md +1 -1
- package/docs/index.md +2 -2
- package/docs/interop/POWERSHELL.md +1 -1
- package/docs/manual/00-introduction.md +1 -1
- package/docs/manual/01-concepts/02-trust-model.md +1 -1
- package/docs/manual/03-reference/02-config-files.md +2 -2
- package/docs/manual/_toc.yml +1 -1
- package/docs/manual/command-index.md +72 -59
- package/docs/operations/CI_COMPOSITES.md +2 -2
- package/docs/operations/COMPLETIONS.md +2 -2
- package/docs/operations/COVERAGE.md +5 -5
- package/docs/operations/HARD_AUDIT_2026.md +11 -11
- package/docs/operations/MAINTENANCE.md +3 -3
- package/docs/operations/MANIFEST.md +127 -0
- package/docs/operations/RELEASE_PIPELINE.md +130 -0
- package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
- package/docs/operations/ROADMAP_2026.md +6 -6
- package/docs/operations/ROADMAP_V0_2_503.md +134 -0
- package/docs/operations/TESTING.md +17 -0
- package/docs/operations/TRACEABILITY.md +6 -3
- package/docs/operations/VERSION_SYNC.md +4 -4
- package/docs/reference/POWERSHELL_PARITY.md +8 -7
- package/docs/schema/dot-env-v1.json +110 -0
- package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
- package/docs/security/CI_PINNING.md +17 -9
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
- package/docs/security/FUZZING.md +114 -0
- package/docs/security/INSTALL_VERIFICATION.md +2 -2
- package/docs/security/POLICY_RELEASES.md +2 -2
- package/docs/security/SCORECARD.md +58 -3
- package/docs/security/SHELL_EXEMPTIONS.md +4 -4
- package/docs/security/VERIFY_RELEASE.md +201 -0
- package/install.sh +27 -5
- package/package.json +1 -1
- package/scripts/README.md +123 -0
- package/scripts/ci/check-copyright-headers.sh +4 -93
- package/scripts/ci/check-shell-preamble.sh +4 -103
- package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
- package/scripts/diagnostics/a2a-conformance.sh +4 -4
- package/scripts/diagnostics/alias-governance.sh +1 -1
- package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
- package/scripts/diagnostics/benchmark.sh +4 -4
- package/scripts/diagnostics/conflicts.sh +2 -2
- package/scripts/diagnostics/doctor-unified.sh +2 -2
- package/scripts/diagnostics/doctor.sh +10 -10
- package/scripts/diagnostics/drift-dashboard.sh +2 -2
- package/scripts/diagnostics/health.sh +4 -4
- package/scripts/diagnostics/history-analysis.sh +2 -2
- package/scripts/diagnostics/mcp-doctor.sh +10 -7
- package/scripts/diagnostics/perf.sh +4 -4
- package/scripts/diagnostics/scorecard.sh +4 -4
- package/scripts/diagnostics/security-score.sh +2 -2
- package/scripts/diagnostics/smoke-test.sh +2 -2
- package/scripts/diagnostics/snapshot.sh +2 -2
- package/scripts/diagnostics/verify.sh +4 -4
- package/scripts/diagnostics/version-locks.sh +2 -2
- package/scripts/diagnostics/workstation-attestation.sh +14 -14
- package/scripts/dot/commands/agent.sh +8 -0
- package/scripts/dot/commands/agents.sh +14 -4
- package/scripts/dot/commands/ai.sh +144 -25
- package/scripts/dot/commands/appearance.sh +2 -2
- package/scripts/dot/commands/core.sh +2 -2
- package/scripts/dot/commands/diagnostics.sh +5 -5
- package/scripts/dot/commands/env-emit.sh +202 -0
- package/scripts/dot/commands/fleet.sh +12 -11
- package/scripts/dot/commands/init.sh +4 -4
- package/scripts/dot/commands/lint.sh +9 -4
- package/scripts/dot/commands/manual.sh +3 -3
- package/scripts/dot/commands/meta.sh +12 -6
- package/scripts/dot/commands/patterns.sh +2 -2
- package/scripts/dot/commands/registry.sh +4 -4
- package/scripts/dot/commands/restore.sh +4 -4
- package/scripts/dot/commands/secrets.sh +4 -3
- package/scripts/dot/commands/security.sh +2 -2
- package/scripts/dot/commands/tools.sh +13 -3
- package/scripts/dot/powershell/Dot.psm1 +199 -0
- package/scripts/fonts/install-nerd-fonts.sh +2 -2
- package/scripts/git-hooks/pre-commit-audit.sh +2 -2
- package/scripts/git-hooks/pre-push +13 -0
- package/scripts/ops/ai-setup.sh +1 -1
- package/scripts/ops/bundle.sh +2 -2
- package/scripts/ops/chaos.sh +2 -2
- package/scripts/ops/chezmoi-apply.sh +4 -4
- package/scripts/ops/heal.sh +4 -4
- package/scripts/ops/post-apply-repair.sh +2 -2
- package/scripts/ops/prewarm.sh +2 -2
- package/scripts/ops/release.sh +4 -4
- package/scripts/ops/rollback.sh +4 -4
- package/scripts/ops/setup.sh +2 -2
- package/scripts/qa/check-version-consistency.sh +123 -0
- package/scripts/qa/coverage-baseline.sh +1 -1
- package/scripts/qa/docs-coverage.sh +2 -2
- package/scripts/qa/powershell-contract.ps1 +1 -1
- package/scripts/qa/scorecard-snapshot.sh +127 -0
- package/scripts/security/backup.sh +2 -2
- package/scripts/security/dns-doh.sh +4 -4
- package/scripts/security/encryption-check.sh +4 -4
- package/scripts/security/enforce-policies.sh +2 -2
- package/scripts/security/firewall.sh +4 -4
- package/scripts/security/lock-screen.sh +4 -4
- package/scripts/security/manage-secrets.sh +2 -2
- package/scripts/security/ssh-cert.sh +2 -2
- package/scripts/security/telemetry-kill.sh +4 -4
- package/scripts/security/usb-safety.sh +4 -4
- package/scripts/theme/extract-heic-frames.sh +114 -0
- package/scripts/theme/rebuild-themes.sh +8 -1
- package/scripts/theme/switch.sh +13 -6
- package/scripts/theme/wallpaper-sync.sh +297 -93
- package/scripts/tuning/linux.sh +2 -2
- package/scripts/tuning/macos.sh +2 -2
- package/scripts/version-sync.sh +55 -7
- package/dot_config/.module-manifest.json +0 -69
- package/dot_config/ai/identity.md +0 -23
- package/dot_config/ai/patterns/architect.md +0 -16
- package/dot_config/ai/patterns/hardener.md +0 -15
- package/dot_config/ai/patterns/refactor.md +0 -15
- package/dot_config/aider/aider.conf.yml +0 -32
- package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
- package/dot_config/ansible/ansible.cfg +0 -11
- package/dot_config/atuin/config.toml.tmpl +0 -47
- package/dot_config/bat/config +0 -23
- package/dot_config/brave-flags.conf.tmpl +0 -7
- package/dot_config/btop/btop.conf +0 -16
- package/dot_config/btop/themes/tokyonight.theme +0 -34
- package/dot_config/bun/bunfig.toml.tmpl +0 -33
- package/dot_config/claude/mcp_servers.json +0 -20
- package/dot_config/containers/containers.conf +0 -14
- package/dot_config/curl/dot_curlrc +0 -18
- package/dot_config/dlv/config.yml +0 -39
- package/dot_config/docker/config.json +0 -15
- package/dot_config/dotfiles/agent-card.json +0 -29
- package/dot_config/dotfiles/agent-profiles.json +0 -92
- package/dot_config/dotfiles/boot/README.md +0 -13
- package/dot_config/dotfiles/grub/README.md +0 -13
- package/dot_config/dotfiles/lock/README.md +0 -13
- package/dot_config/dotfiles/mcp-lock.json +0 -33
- package/dot_config/dotfiles/mcp-policy.json +0 -52
- package/dot_config/dotfiles/mcp-registry.json +0 -47
- package/dot_config/dotfiles/model-registry.json +0 -20
- package/dot_config/dotfiles/policy-bundles.json +0 -38
- package/dot_config/dotfiles/prompt-registry.json +0 -16
- package/dot_config/dotfiles/versions.env +0 -18
- package/dot_config/duf/duf.conf +0 -6
- package/dot_config/duti/defaults.duti +0 -5
- package/dot_config/emoji/emoji.txt +0 -34
- package/dot_config/environment.d/50-ssh-agent.conf +0 -2
- package/dot_config/environment.d/90-wayland.conf +0 -19
- package/dot_config/fastfetch/config.jsonc +0 -28
- package/dot_config/firefox/user.js.tmpl +0 -58
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
- package/dot_config/fish/completions/dot.fish.tmpl +0 -115
- package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
- package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
- package/dot_config/fish/conf.d/direnv.fish +0 -4
- package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
- package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
- package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
- package/dot_config/fish/conf.d/mise-activate.fish +0 -5
- package/dot_config/fish/config.fish.tmpl +0 -44
- package/dot_config/fish/fish_plugins +0 -1
- package/dot_config/fish/functions/_.fish +0 -3
- package/dot_config/fish/functions/_cached_eval.fish +0 -131
- package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
- package/dot_config/fish/functions/als.fish +0 -46
- package/dot_config/fish/functions/bg-upgrade.fish +0 -7
- package/dot_config/fish/functions/c.fish +0 -3
- package/dot_config/fish/functions/cat.fish +0 -9
- package/dot_config/fish/functions/d.fish +0 -7
- package/dot_config/fish/functions/dot.fish +0 -34
- package/dot_config/fish/functions/h.fish +0 -3
- package/dot_config/fish/functions/l.fish +0 -7
- package/dot_config/fish/functions/la.fish +0 -7
- package/dot_config/fish/functions/ll.fish +0 -7
- package/dot_config/fish/functions/log_error.fish +0 -13
- package/dot_config/fish/functions/log_info.fish +0 -13
- package/dot_config/fish/functions/lr.fish +0 -7
- package/dot_config/fish/functions/lra.fish +0 -7
- package/dot_config/fish/functions/ls.fish +0 -7
- package/dot_config/fish/functions/lt.fish +0 -7
- package/dot_config/fish/functions/lta.fish +0 -7
- package/dot_config/fish/functions/notify-run.fish +0 -11
- package/dot_config/fish/functions/q.fish +0 -3
- package/dot_config/fish/functions/silent-run.fish +0 -7
- package/dot_config/fish/functions/yy.fish +0 -8
- package/dot_config/flatpak/flatpak.list +0 -4
- package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
- package/dot_config/foot/foot.ini.tmpl +0 -33
- package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
- package/dot_config/fzf/fzf.zsh +0 -48
- package/dot_config/gem/gemrc +0 -9
- package/dot_config/gh/config.yml +0 -12
- package/dot_config/ghostty/config.tmpl +0 -165
- package/dot_config/git/allowed_signers.tmpl +0 -18
- package/dot_config/git/attributes +0 -12
- package/dot_config/git/commit-template +0 -10
- package/dot_config/git/hooks/executable_commit-msg +0 -146
- package/dot_config/git/ignore +0 -27
- package/dot_config/gnupg/gpg-agent.conf +0 -11
- package/dot_config/go/golangci.yml +0 -118
- package/dot_config/go/gopls.json +0 -30
- package/dot_config/goose/config.yaml +0 -29
- package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
- package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
- package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
- package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
- package/dot_config/htop/htoprc +0 -20
- package/dot_config/inputrc +0 -2
- package/dot_config/ipython/profile_default/ipython_config.py +0 -19
- package/dot_config/just/justfile +0 -122
- package/dot_config/k9s/config.yaml +0 -65
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
- package/dot_config/kanshi/config.tmpl +0 -22
- package/dot_config/karabiner/karabiner.json +0 -14
- package/dot_config/kitty/kitty.conf.tmpl +0 -53
- package/dot_config/lazydocker/config.yml +0 -186
- package/dot_config/lazygit/config.yml +0 -35
- package/dot_config/mako/config +0 -47
- package/dot_config/mas/masapps.txt +0 -5
- package/dot_config/micro/settings.json +0 -3
- package/dot_config/mimeapps.list +0 -77
- package/dot_config/minikube/config.json +0 -13
- package/dot_config/mise/config.toml +0 -99
- package/dot_config/mongosh/mongoshrc.js +0 -68
- package/dot_config/mpv/input.conf +0 -47
- package/dot_config/mpv/mpv.conf +0 -47
- package/dot_config/mycli/myclirc +0 -67
- package/dot_config/nano/nanorc +0 -28
- package/dot_config/ncdu/config +0 -12
- package/dot_config/niri/config.kdl.tmpl +0 -327
- package/dot_config/nushell/aliases.nu +0 -18
- package/dot_config/nushell/cached_eval.nu +0 -80
- package/dot_config/nushell/completions.nu.tmpl +0 -52
- package/dot_config/nushell/config.nu.tmpl +0 -86
- package/dot_config/nushell/env.nu.tmpl +0 -102
- package/dot_config/nushell/functions.nu.tmpl +0 -17
- package/dot_config/nvim/init.lua +0 -18
- package/dot_config/nvim/lazy-lock.json +0 -58
- package/dot_config/nvim/lua/config/autocmds.lua +0 -107
- package/dot_config/nvim/lua/config/keymaps.lua +0 -92
- package/dot_config/nvim/lua/config/lazy.lua +0 -44
- package/dot_config/nvim/lua/config/options.lua +0 -49
- package/dot_config/nvim/lua/plugins/ai.lua +0 -75
- package/dot_config/nvim/lua/plugins/coding.lua +0 -216
- package/dot_config/nvim/lua/plugins/completion.lua +0 -60
- package/dot_config/nvim/lua/plugins/dap.lua +0 -412
- package/dot_config/nvim/lua/plugins/editor.lua +0 -55
- package/dot_config/nvim/lua/plugins/git.lua +0 -10
- package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
- package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
- package/dot_config/nvim/lua/plugins/rust.lua +0 -34
- package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
- package/dot_config/nvim/lua/plugins/ui.lua +0 -509
- package/dot_config/paru/paru.conf +0 -10
- package/dot_config/pip/pip.conf.tmpl +0 -32
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
- package/dot_config/pueue/pueue.yml +0 -34
- package/dot_config/pypoetry/config.toml +0 -6
- package/dot_config/pyrightconfig.json +0 -5
- package/dot_config/raycast/README.md +0 -13
- package/dot_config/redis/redisclirc +0 -41
- package/dot_config/ripgrep/ripgreprc +0 -21
- package/dot_config/shell/00-core-paths.sh.tmpl +0 -141
- package/dot_config/shell/05-core-safety.sh +0 -48
- package/dot_config/shell/10-secrets.sh +0 -41
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
- package/dot_config/shell/40-ls-colors.sh +0 -49
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
- package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
- package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
- package/dot_config/shell/Brewfile +0 -207
- package/dot_config/shell/Brewfile.cask +0 -92
- package/dot_config/shell/Brewfile.cli +0 -127
- package/dot_config/shell/README.md +0 -284
- package/dot_config/shell/als_data.txt.tmpl +0 -65
- package/dot_config/shell/custom/auto_ls.zsh +0 -20
- package/dot_config/shell/custom/context_suggest.zsh +0 -68
- package/dot_config/shell/custom/error_analysis.zsh +0 -45
- package/dot_config/sops/dot_sops.yaml +0 -23
- package/dot_config/starship.toml.tmpl +0 -202
- package/dot_config/swaylock/config +0 -43
- package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
- package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
- package/dot_config/systemd/user/pueued.service +0 -12
- package/dot_config/systemd/user/ssh-agent.service +0 -12
- package/dot_config/task/Taskfile.yml +0 -86
- package/dot_config/tflint/tflint.hcl +0 -9
- package/dot_config/tmux/tmux.conf.tmpl +0 -223
- package/dot_config/topgrade.toml.tmpl +0 -54
- package/dot_config/user-dirs.dirs +0 -10
- package/dot_config/vscode/extensions.txt +0 -11
- package/dot_config/vscode/settings.json.tmpl +0 -82
- package/dot_config/waybar/config.jsonc.tmpl +0 -90
- package/dot_config/waybar/style.css.tmpl +0 -211
- package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
- package/dot_config/wget/wgetrc +0 -12
- package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
- package/dot_config/yarn/yarnrc.yml +0 -36
- package/dot_config/yazi/keymap.toml +0 -67
- package/dot_config/yazi/theme.toml +0 -102
- package/dot_config/yazi/yazi.toml +0 -40
- package/dot_config/zathura/zathurarc +0 -52
- package/dot_config/zellij/config.kdl.tmpl +0 -79
- package/dot_config/zsh/dot_zprofile +0 -7
- package/dot_config/zsh/dot_zshenv +0 -5
- package/dot_config/zsh/dot_zshrc.tmpl +0 -688
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
- package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
- package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
- package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
- package/dot_local/bin/executable_ai-update +0 -195
- package/dot_local/bin/executable_ai_core +0 -152
- package/dot_local/bin/executable_antigravity +0 -11
- package/dot_local/bin/executable_b64 +0 -84
- package/dot_local/bin/executable_bm +0 -79
- package/dot_local/bin/executable_cb +0 -39
- package/dot_local/bin/executable_dot +0 -636
- package/dot_local/bin/executable_dot-ai +0 -36
- package/dot_local/bin/executable_dot-bootstrap +0 -76
- package/dot_local/bin/executable_dot-launch-or-focus +0 -52
- package/dot_local/bin/executable_dot-load-benchmark +0 -31
- package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
- package/dot_local/bin/executable_dot-theme-sync +0 -952
- package/dot_local/bin/executable_dot_completion +0 -57
- package/dot_local/bin/executable_dtags +0 -28
- package/dot_local/bin/executable_epoch +0 -67
- package/dot_local/bin/executable_extract +0 -41
- package/dot_local/bin/executable_gbd +0 -52
- package/dot_local/bin/executable_gd +0 -42
- package/dot_local/bin/executable_git-ai-commit +0 -175
- package/dot_local/bin/executable_git-ai-diff +0 -169
- package/dot_local/bin/executable_gl +0 -101
- package/dot_local/bin/executable_hash +0 -161
- package/dot_local/bin/executable_hashsum +0 -160
- package/dot_local/bin/executable_hex +0 -115
- package/dot_local/bin/executable_jsonv +0 -78
- package/dot_local/bin/executable_jwt +0 -94
- package/dot_local/bin/executable_kill-port +0 -75
- package/dot_local/bin/executable_lorem +0 -118
- package/dot_local/bin/executable_mkscript +0 -35
- package/dot_local/bin/executable_monitor +0 -56
- package/dot_local/bin/executable_myip +0 -51
- package/dot_local/bin/executable_notify +0 -24
- package/dot_local/bin/executable_open +0 -38
- package/dot_local/bin/executable_pw +0 -27
- package/dot_local/bin/executable_rec-start +0 -46
- package/dot_local/bin/executable_rec-stop +0 -35
- package/dot_local/bin/executable_regex +0 -132
- package/dot_local/bin/executable_start-niri +0 -8
- package/dot_local/bin/executable_tmux-sessionizer +0 -314
- package/dot_local/bin/executable_tour +0 -177
- package/dot_local/bin/executable_up +0 -23
- package/dot_local/bin/executable_update +0 -142
- package/dot_local/bin/executable_uuid +0 -87
- package/dot_local/bin/executable_win +0 -32
- package/dot_local/bin/executable_yamlv +0 -57
- package/dot_local/share/bash-completion/completions/dot +0 -72
- package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
- package/dot_local/share/man/man1/dot.1 +0 -149
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/dot_local/share/zsh/completions/_dot +0 -287
- package/scripts/ci/check-dangerous-chmod.sh +0 -19
- package/scripts/ci/check-deps-dev.sh +0 -236
- package/scripts/ci/check-insecure-tls.sh +0 -61
- package/scripts/ci/check-regression-traceability.sh +0 -67
- package/scripts/ci/dot-cli-startup-bench.sh +0 -126
- package/scripts/ci/install-chezmoi-verified.sh +0 -67
- package/scripts/ci/lint-reusable-pins.sh +0 -78
- package/scripts/ci/run-coverage.sh +0 -451
- package/scripts/ci/validate-chezmoidata.sh +0 -25
- package/scripts/ci/validate-ci-config.sh +0 -224
- package/scripts/ci/windows-smoke-test.ps1 +0 -136
- package/scripts/docs/build-manual.sh +0 -883
- package/scripts/docs/check-manual.sh +0 -213
- package/scripts/dot/lib/bento.sh +0 -50
- package/scripts/dot/lib/log.sh +0 -200
- package/scripts/dot/lib/platform.sh +0 -112
- package/scripts/dot/lib/ui.sh +0 -650
- package/scripts/dot/lib/utils.sh +0 -377
- package/scripts/maintenance/check-updates.sh +0 -131
- package/scripts/release/package-policy-bundles.sh +0 -125
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
-- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
2
|
-
-- Completion engine: blink.cmp (replaces nvim-cmp + 6 plugins)
|
|
3
|
-
-- https://github.com/Saghen/blink.cmp
|
|
4
|
-
|
|
5
|
-
return {
|
|
6
|
-
{
|
|
7
|
-
"saghen/blink.cmp",
|
|
8
|
-
version = "1.*",
|
|
9
|
-
event = "InsertEnter",
|
|
10
|
-
dependencies = {
|
|
11
|
-
"rafamadriz/friendly-snippets",
|
|
12
|
-
},
|
|
13
|
-
opts = {
|
|
14
|
-
keymap = {
|
|
15
|
-
preset = "default",
|
|
16
|
-
["<C-space>"] = { "show", "show_documentation", "hide_documentation" },
|
|
17
|
-
["<C-e>"] = { "hide" },
|
|
18
|
-
["<CR>"] = { "accept", "fallback" },
|
|
19
|
-
["<Tab>"] = { "snippet_forward", "select_next", "fallback" },
|
|
20
|
-
["<S-Tab>"] = { "snippet_backward", "select_prev", "fallback" },
|
|
21
|
-
["<C-b>"] = { "scroll_documentation_up", "fallback" },
|
|
22
|
-
["<C-f>"] = { "scroll_documentation_down", "fallback" },
|
|
23
|
-
["<C-n>"] = { "select_next", "fallback" },
|
|
24
|
-
["<C-p>"] = { "select_prev", "fallback" },
|
|
25
|
-
},
|
|
26
|
-
appearance = {
|
|
27
|
-
nerd_font_variant = "mono",
|
|
28
|
-
},
|
|
29
|
-
completion = {
|
|
30
|
-
accept = { auto_brackets = { enabled = true } },
|
|
31
|
-
documentation = {
|
|
32
|
-
auto_show = true,
|
|
33
|
-
auto_show_delay_ms = 200,
|
|
34
|
-
window = { border = "rounded" },
|
|
35
|
-
},
|
|
36
|
-
menu = {
|
|
37
|
-
border = "rounded",
|
|
38
|
-
draw = {
|
|
39
|
-
columns = {
|
|
40
|
-
{ "kind_icon" },
|
|
41
|
-
{ "label", "label_description", gap = 1 },
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
list = {
|
|
46
|
-
selection = { preselect = true, auto_insert = false },
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
sources = {
|
|
50
|
-
default = { "lsp", "path", "snippets", "buffer" },
|
|
51
|
-
},
|
|
52
|
-
snippets = { preset = "default" },
|
|
53
|
-
signature = {
|
|
54
|
-
enabled = true,
|
|
55
|
-
window = { border = "rounded" },
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
opts_extend = { "sources.default" },
|
|
59
|
-
},
|
|
60
|
-
}
|
|
@@ -1,412 +0,0 @@
|
|
|
1
|
-
-- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
2
|
-
-- @module nvim.plugins.dap
|
|
3
|
-
-- Debug Adapter Protocol (DAP) Configuration.
|
|
4
|
-
-- Provides in-editor debugging with nvim-dap and a VS Code-like UI via dap-ui.
|
|
5
|
-
-- js-debug-adapter handles Node/Chrome/Edge; the dev server port defaults to
|
|
6
|
-
-- 3000 but can be overridden via DAP_DEV_SERVER_PORT.
|
|
7
|
-
|
|
8
|
-
-- Layout constants
|
|
9
|
-
local SIDEBAR_WIDTH = 40
|
|
10
|
-
local BOTTOM_PANEL_HEIGHT = 10
|
|
11
|
-
local QUARTER_SIZE = 0.25
|
|
12
|
-
local HALF_SIZE = 0.5
|
|
13
|
-
local DEFAULT_DEV_SERVER_PORT = tonumber(vim.env.DAP_DEV_SERVER_PORT) or 3000
|
|
14
|
-
|
|
15
|
-
return {
|
|
16
|
-
-- DAP Core
|
|
17
|
-
{
|
|
18
|
-
"mfussenegger/nvim-dap",
|
|
19
|
-
dependencies = {
|
|
20
|
-
"williamboman/mason.nvim",
|
|
21
|
-
"jay-babu/mason-nvim-dap.nvim",
|
|
22
|
-
"rcarriga/nvim-dap-ui",
|
|
23
|
-
"nvim-neotest/nvim-nio",
|
|
24
|
-
},
|
|
25
|
-
keys = {
|
|
26
|
-
{
|
|
27
|
-
"<leader>db",
|
|
28
|
-
function()
|
|
29
|
-
require("dap").toggle_breakpoint()
|
|
30
|
-
end,
|
|
31
|
-
desc = "Toggle Breakpoint",
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"<leader>dc",
|
|
35
|
-
function()
|
|
36
|
-
require("dap").continue()
|
|
37
|
-
end,
|
|
38
|
-
desc = "Continue",
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"<leader>di",
|
|
42
|
-
function()
|
|
43
|
-
require("dap").step_into()
|
|
44
|
-
end,
|
|
45
|
-
desc = "Step Into",
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"<leader>do",
|
|
49
|
-
function()
|
|
50
|
-
require("dap").step_over()
|
|
51
|
-
end,
|
|
52
|
-
desc = "Step Over",
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"<leader>dO",
|
|
56
|
-
function()
|
|
57
|
-
require("dap").step_out()
|
|
58
|
-
end,
|
|
59
|
-
desc = "Step Out",
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"<leader>dr",
|
|
63
|
-
function()
|
|
64
|
-
require("dap").repl.open()
|
|
65
|
-
end,
|
|
66
|
-
desc = "Open REPL",
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"<leader>dl",
|
|
70
|
-
function()
|
|
71
|
-
require("dap").run_last()
|
|
72
|
-
end,
|
|
73
|
-
desc = "Run Last",
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"<leader>dt",
|
|
77
|
-
function()
|
|
78
|
-
require("dap").terminate()
|
|
79
|
-
end,
|
|
80
|
-
desc = "Terminate",
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"<leader>du",
|
|
84
|
-
function()
|
|
85
|
-
require("dapui").toggle()
|
|
86
|
-
end,
|
|
87
|
-
desc = "Toggle DAP UI",
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
config = function()
|
|
91
|
-
local dap = require("dap")
|
|
92
|
-
|
|
93
|
-
-- JavaScript/TypeScript debugging with js-debug-adapter
|
|
94
|
-
-- Requires: MasonInstall js-debug-adapter
|
|
95
|
-
local js_debug_path = vim.fn.stdpath("data") .. "/mason/packages/js-debug-adapter/js-debug/src/dapDebugServer.js"
|
|
96
|
-
|
|
97
|
-
for _, adapter in ipairs({ "pwa-node", "pwa-chrome", "node-terminal" }) do
|
|
98
|
-
dap.adapters[adapter] = {
|
|
99
|
-
type = "server",
|
|
100
|
-
host = "localhost",
|
|
101
|
-
port = "${port}",
|
|
102
|
-
executable = {
|
|
103
|
-
command = "node",
|
|
104
|
-
args = { js_debug_path, "${port}" },
|
|
105
|
-
},
|
|
106
|
-
}
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
-- JavaScript/TypeScript configurations
|
|
110
|
-
for _, lang in ipairs({ "javascript", "typescript", "javascriptreact", "typescriptreact" }) do
|
|
111
|
-
dap.configurations[lang] = {
|
|
112
|
-
{
|
|
113
|
-
type = "pwa-node",
|
|
114
|
-
request = "launch",
|
|
115
|
-
name = "Launch file",
|
|
116
|
-
program = "${file}",
|
|
117
|
-
cwd = "${workspaceFolder}",
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
type = "pwa-node",
|
|
121
|
-
request = "attach",
|
|
122
|
-
name = "Attach to process",
|
|
123
|
-
processId = require("dap.utils").pick_process,
|
|
124
|
-
cwd = "${workspaceFolder}",
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
type = "pwa-chrome",
|
|
128
|
-
request = "launch",
|
|
129
|
-
name = "Launch Chrome",
|
|
130
|
-
url = "http://localhost:" .. DEFAULT_DEV_SERVER_PORT,
|
|
131
|
-
webRoot = "${workspaceFolder}",
|
|
132
|
-
},
|
|
133
|
-
}
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
-- Python debugging with debugpy
|
|
137
|
-
-- Requires: MasonInstall debugpy
|
|
138
|
-
dap.adapters.python = function(cb, config)
|
|
139
|
-
if config.request == "attach" then
|
|
140
|
-
local port = (config.connect or config).port
|
|
141
|
-
local host = (config.connect or config).host or "127.0.0.1"
|
|
142
|
-
cb({ type = "server", port = assert(port, "port required for attach"), host = host })
|
|
143
|
-
else
|
|
144
|
-
cb({
|
|
145
|
-
type = "executable",
|
|
146
|
-
command = vim.fn.exepath("python3"),
|
|
147
|
-
args = { "-m", "debugpy.adapter" },
|
|
148
|
-
})
|
|
149
|
-
end
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
dap.configurations.python = {
|
|
153
|
-
{
|
|
154
|
-
type = "python",
|
|
155
|
-
request = "launch",
|
|
156
|
-
name = "Launch file",
|
|
157
|
-
program = "${file}",
|
|
158
|
-
cwd = "${workspaceFolder}",
|
|
159
|
-
pythonPath = function()
|
|
160
|
-
-- Use venv if available, else system python
|
|
161
|
-
local venv = os.getenv("VIRTUAL_ENV")
|
|
162
|
-
if venv then
|
|
163
|
-
return venv .. "/bin/python"
|
|
164
|
-
end
|
|
165
|
-
return vim.fn.exepath("python3") or "python3"
|
|
166
|
-
end,
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
type = "python",
|
|
170
|
-
request = "launch",
|
|
171
|
-
name = "Launch with arguments",
|
|
172
|
-
program = "${file}",
|
|
173
|
-
args = function()
|
|
174
|
-
local args_str = vim.fn.input("Arguments: ")
|
|
175
|
-
return vim.split(args_str, " +")
|
|
176
|
-
end,
|
|
177
|
-
cwd = "${workspaceFolder}",
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
type = "python",
|
|
181
|
-
request = "launch",
|
|
182
|
-
name = "Launch module",
|
|
183
|
-
module = function()
|
|
184
|
-
return vim.fn.input("Module: ")
|
|
185
|
-
end,
|
|
186
|
-
cwd = "${workspaceFolder}",
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
type = "python",
|
|
190
|
-
request = "launch",
|
|
191
|
-
name = "Django",
|
|
192
|
-
program = "${workspaceFolder}/manage.py",
|
|
193
|
-
args = { "runserver", "--noreload" },
|
|
194
|
-
django = true,
|
|
195
|
-
cwd = "${workspaceFolder}",
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
type = "python",
|
|
199
|
-
request = "launch",
|
|
200
|
-
name = "FastAPI (uvicorn)",
|
|
201
|
-
module = "uvicorn",
|
|
202
|
-
args = function()
|
|
203
|
-
local app = vim.fn.input("App module (e.g. main:app): ", "main:app")
|
|
204
|
-
return { app, "--reload" }
|
|
205
|
-
end,
|
|
206
|
-
cwd = "${workspaceFolder}",
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
type = "python",
|
|
210
|
-
request = "launch",
|
|
211
|
-
name = "pytest",
|
|
212
|
-
module = "pytest",
|
|
213
|
-
args = { "${file}", "-v", "--tb=short" },
|
|
214
|
-
cwd = "${workspaceFolder}",
|
|
215
|
-
},
|
|
216
|
-
{
|
|
217
|
-
type = "python",
|
|
218
|
-
request = "attach",
|
|
219
|
-
name = "Attach to remote",
|
|
220
|
-
connect = function()
|
|
221
|
-
local host = vim.fn.input("Host (127.0.0.1): ", "127.0.0.1")
|
|
222
|
-
local port = tonumber(vim.fn.input("Port (5678): ", "5678"))
|
|
223
|
-
return { host = host, port = port }
|
|
224
|
-
end,
|
|
225
|
-
},
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
-- Go debugging with delve
|
|
229
|
-
-- Requires: MasonInstall delve
|
|
230
|
-
dap.adapters.delve = {
|
|
231
|
-
type = "server",
|
|
232
|
-
port = "${port}",
|
|
233
|
-
executable = {
|
|
234
|
-
command = "dlv",
|
|
235
|
-
args = { "dap", "-l", "127.0.0.1:${port}" },
|
|
236
|
-
},
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
dap.configurations.go = {
|
|
240
|
-
{
|
|
241
|
-
type = "delve",
|
|
242
|
-
name = "Launch file",
|
|
243
|
-
request = "launch",
|
|
244
|
-
program = "${file}",
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
type = "delve",
|
|
248
|
-
name = "Launch package",
|
|
249
|
-
request = "launch",
|
|
250
|
-
program = "${workspaceFolder}",
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
type = "delve",
|
|
254
|
-
name = "Launch test",
|
|
255
|
-
request = "launch",
|
|
256
|
-
mode = "test",
|
|
257
|
-
program = "${file}",
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
type = "delve",
|
|
261
|
-
name = "Launch test (package)",
|
|
262
|
-
request = "launch",
|
|
263
|
-
mode = "test",
|
|
264
|
-
program = "${workspaceFolder}",
|
|
265
|
-
},
|
|
266
|
-
{
|
|
267
|
-
type = "delve",
|
|
268
|
-
name = "Attach to process",
|
|
269
|
-
request = "attach",
|
|
270
|
-
mode = "local",
|
|
271
|
-
processId = require("dap.utils").pick_process,
|
|
272
|
-
},
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
-- Rust/C/C++ debugging with codelldb
|
|
276
|
-
-- Requires: MasonInstall codelldb
|
|
277
|
-
dap.adapters.codelldb = {
|
|
278
|
-
type = "server",
|
|
279
|
-
port = "${port}",
|
|
280
|
-
executable = {
|
|
281
|
-
command = vim.fn.stdpath("data") .. "/mason/bin/codelldb",
|
|
282
|
-
args = { "--port", "${port}" },
|
|
283
|
-
},
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
for _, lang in ipairs({ "rust", "c", "cpp" }) do
|
|
287
|
-
dap.configurations[lang] = {
|
|
288
|
-
{
|
|
289
|
-
type = "codelldb",
|
|
290
|
-
request = "launch",
|
|
291
|
-
name = "Launch executable",
|
|
292
|
-
program = function()
|
|
293
|
-
return vim.fn.input("Executable: ", vim.fn.getcwd() .. "/target/debug/", "file")
|
|
294
|
-
end,
|
|
295
|
-
cwd = "${workspaceFolder}",
|
|
296
|
-
stopOnEntry = false,
|
|
297
|
-
},
|
|
298
|
-
{
|
|
299
|
-
type = "codelldb",
|
|
300
|
-
request = "launch",
|
|
301
|
-
name = "Launch with arguments",
|
|
302
|
-
program = function()
|
|
303
|
-
return vim.fn.input("Executable: ", vim.fn.getcwd() .. "/target/debug/", "file")
|
|
304
|
-
end,
|
|
305
|
-
args = function()
|
|
306
|
-
return vim.split(vim.fn.input("Arguments: "), " +")
|
|
307
|
-
end,
|
|
308
|
-
cwd = "${workspaceFolder}",
|
|
309
|
-
},
|
|
310
|
-
}
|
|
311
|
-
end
|
|
312
|
-
|
|
313
|
-
-- Bash debugging with bash-debug-adapter
|
|
314
|
-
-- Requires: MasonInstall bash-debug-adapter
|
|
315
|
-
dap.adapters.bashdb = {
|
|
316
|
-
type = "executable",
|
|
317
|
-
command = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/bash-debug-adapter",
|
|
318
|
-
name = "bashdb",
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
dap.configurations.sh = {
|
|
322
|
-
{
|
|
323
|
-
type = "bashdb",
|
|
324
|
-
request = "launch",
|
|
325
|
-
name = "Launch script",
|
|
326
|
-
showDebugOutput = true,
|
|
327
|
-
pathBashdb = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/extension/bashdb_dir/bashdb",
|
|
328
|
-
pathBashdbLib = vim.fn.stdpath("data") .. "/mason/packages/bash-debug-adapter/extension/bashdb_dir",
|
|
329
|
-
trace = true,
|
|
330
|
-
file = "${file}",
|
|
331
|
-
program = "${file}",
|
|
332
|
-
cwd = "${workspaceFolder}",
|
|
333
|
-
pathCat = "cat",
|
|
334
|
-
pathBash = "/bin/bash",
|
|
335
|
-
pathMkfifo = "mkfifo",
|
|
336
|
-
pathPkill = "pkill",
|
|
337
|
-
env = {},
|
|
338
|
-
args = {},
|
|
339
|
-
},
|
|
340
|
-
}
|
|
341
|
-
end,
|
|
342
|
-
},
|
|
343
|
-
|
|
344
|
-
-- Mason DAP integration
|
|
345
|
-
{
|
|
346
|
-
"jay-babu/mason-nvim-dap.nvim",
|
|
347
|
-
dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap" },
|
|
348
|
-
opts = {
|
|
349
|
-
ensure_installed = { "js-debug-adapter", "debugpy", "delve", "codelldb", "bash-debug-adapter" },
|
|
350
|
-
automatic_installation = true,
|
|
351
|
-
handlers = {},
|
|
352
|
-
},
|
|
353
|
-
},
|
|
354
|
-
|
|
355
|
-
-- DAP UI
|
|
356
|
-
{
|
|
357
|
-
"rcarriga/nvim-dap-ui",
|
|
358
|
-
dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" },
|
|
359
|
-
config = function()
|
|
360
|
-
local dap = require("dap")
|
|
361
|
-
local dapui = require("dapui")
|
|
362
|
-
|
|
363
|
-
dapui.setup({
|
|
364
|
-
icons = { expanded = "▾", collapsed = "▸", current_frame = "▸" },
|
|
365
|
-
mappings = {
|
|
366
|
-
expand = { "<CR>", "<2-LeftMouse>" },
|
|
367
|
-
open = "o",
|
|
368
|
-
remove = "d",
|
|
369
|
-
edit = "e",
|
|
370
|
-
repl = "r",
|
|
371
|
-
toggle = "t",
|
|
372
|
-
},
|
|
373
|
-
layouts = {
|
|
374
|
-
{
|
|
375
|
-
elements = {
|
|
376
|
-
{ id = "scopes", size = QUARTER_SIZE },
|
|
377
|
-
{ id = "breakpoints", size = QUARTER_SIZE },
|
|
378
|
-
{ id = "stacks", size = QUARTER_SIZE },
|
|
379
|
-
{ id = "watches", size = QUARTER_SIZE },
|
|
380
|
-
},
|
|
381
|
-
size = SIDEBAR_WIDTH,
|
|
382
|
-
position = "left",
|
|
383
|
-
},
|
|
384
|
-
{
|
|
385
|
-
elements = {
|
|
386
|
-
{ id = "repl", size = HALF_SIZE },
|
|
387
|
-
{ id = "console", size = HALF_SIZE },
|
|
388
|
-
},
|
|
389
|
-
size = BOTTOM_PANEL_HEIGHT,
|
|
390
|
-
position = "bottom",
|
|
391
|
-
},
|
|
392
|
-
},
|
|
393
|
-
floating = {
|
|
394
|
-
border = "rounded",
|
|
395
|
-
mappings = { close = { "q", "<Esc>" } },
|
|
396
|
-
},
|
|
397
|
-
})
|
|
398
|
-
|
|
399
|
-
-- Auto open/close DAP UI on debug session lifecycle
|
|
400
|
-
local function open_dapui()
|
|
401
|
-
dapui.open()
|
|
402
|
-
end
|
|
403
|
-
local function close_dapui()
|
|
404
|
-
dapui.close()
|
|
405
|
-
end
|
|
406
|
-
|
|
407
|
-
dap.listeners.after.event_initialized["dapui_config"] = open_dapui
|
|
408
|
-
dap.listeners.before.event_terminated["dapui_config"] = close_dapui
|
|
409
|
-
dap.listeners.before.event_exited["dapui_config"] = close_dapui
|
|
410
|
-
end,
|
|
411
|
-
},
|
|
412
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
-- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
2
|
-
-- @module nvim.plugins.editor
|
|
3
|
-
-- Editor enhancement plugins.
|
|
4
|
-
-- toggleterm.nvim provides a floating terminal toggled with a single keymap,
|
|
5
|
-
-- pinned to ^2 for API stability.
|
|
6
|
-
return {
|
|
7
|
-
"akinsho/toggleterm.nvim",
|
|
8
|
-
version = "^2",
|
|
9
|
-
config = function()
|
|
10
|
-
require("toggleterm").setup({
|
|
11
|
-
-- Automatically close the terminal when the process exits.
|
|
12
|
-
close_on_exit = true,
|
|
13
|
-
|
|
14
|
-
-- Terminal window open mode (options: "vertical", "horizontal", "tab", "float").
|
|
15
|
-
direction = "float",
|
|
16
|
-
|
|
17
|
-
-- Options for the floating terminal window.
|
|
18
|
-
float_opts = {
|
|
19
|
-
-- Border style for the floating window.
|
|
20
|
-
border = "curved",
|
|
21
|
-
-- Set the floating window width to 80% of the current Neovim window width.
|
|
22
|
-
width = math.floor(vim.o.columns * 0.8),
|
|
23
|
-
-- Set the floating window height to 80% of the current Neovim window height.
|
|
24
|
-
height = math.floor(vim.o.lines * 0.8),
|
|
25
|
-
},
|
|
26
|
-
|
|
27
|
-
-- Hide line numbers in the terminal buffer.
|
|
28
|
-
hide_numbers = true,
|
|
29
|
-
|
|
30
|
-
-- Default key mapping to toggle the terminal.
|
|
31
|
-
open_mapping = [[<C-\>]],
|
|
32
|
-
|
|
33
|
-
-- Persist the terminal size across sessions.
|
|
34
|
-
persist_size = true,
|
|
35
|
-
|
|
36
|
-
-- List of filetypes where shading is disabled (empty table means no exclusions).
|
|
37
|
-
shade_filetypes = {},
|
|
38
|
-
|
|
39
|
-
-- Enable shading for the terminal window.
|
|
40
|
-
shade_terminals = true,
|
|
41
|
-
|
|
42
|
-
-- Shading factor for the terminal (the higher the value, the darker it becomes).
|
|
43
|
-
shading_factor = 2,
|
|
44
|
-
|
|
45
|
-
-- Start the terminal in insert mode.
|
|
46
|
-
start_in_insert = true,
|
|
47
|
-
|
|
48
|
-
-- Use the default shell as defined by Neovim.
|
|
49
|
-
shell = vim.o.shell,
|
|
50
|
-
|
|
51
|
-
-- Set the terminal size (this can also be a function returning a size).
|
|
52
|
-
size = 20,
|
|
53
|
-
})
|
|
54
|
-
end,
|
|
55
|
-
}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
-- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
|
|
2
|
-
-- @module nvim.plugins.lsp
|
|
3
|
-
-- Language Server Protocol configuration.
|
|
4
|
-
-- Mason manages external tool installation (LSP servers, formatters, linters).
|
|
5
|
-
-- mason-lspconfig bridges Mason with nvim-lspconfig for automatic server setup.
|
|
6
|
-
-- Servers: bashls, lua_ls, basedpyright, ruff, ts_ls — matching the project's
|
|
7
|
-
-- primary languages (shell, Lua, Python, TypeScript).
|
|
8
|
-
return {
|
|
9
|
-
-- Mason (Manage External Tools)
|
|
10
|
-
{
|
|
11
|
-
"williamboman/mason.nvim",
|
|
12
|
-
cmd = "Mason",
|
|
13
|
-
build = ":MasonUpdate",
|
|
14
|
-
config = function()
|
|
15
|
-
require("mason").setup()
|
|
16
|
-
end,
|
|
17
|
-
},
|
|
18
|
-
|
|
19
|
-
-- Mason LSP Config + Manual Server Setup
|
|
20
|
-
{
|
|
21
|
-
"neovim/nvim-lspconfig",
|
|
22
|
-
dependencies = {
|
|
23
|
-
"williamboman/mason.nvim",
|
|
24
|
-
"williamboman/mason-lspconfig.nvim",
|
|
25
|
-
"saghen/blink.cmp",
|
|
26
|
-
},
|
|
27
|
-
config = function()
|
|
28
|
-
-- 1. Setup capabilities for LSP (blink.cmp provides these)
|
|
29
|
-
local capabilities = require("blink.cmp").get_lsp_capabilities()
|
|
30
|
-
|
|
31
|
-
-- 2. Setup mason-lspconfig with custom handlers per server
|
|
32
|
-
require("mason-lspconfig").setup({
|
|
33
|
-
ensure_installed = { "bashls", "lua_ls", "basedpyright", "ruff", "ts_ls" },
|
|
34
|
-
automatic_installation = true,
|
|
35
|
-
handlers = {
|
|
36
|
-
-- Default handler for all servers
|
|
37
|
-
function(server_name)
|
|
38
|
-
require("lspconfig")[server_name].setup({
|
|
39
|
-
capabilities = capabilities,
|
|
40
|
-
})
|
|
41
|
-
end,
|
|
42
|
-
|
|
43
|
-
-- Custom handler for lua_ls
|
|
44
|
-
["lua_ls"] = function()
|
|
45
|
-
require("lspconfig").lua_ls.setup({
|
|
46
|
-
capabilities = capabilities,
|
|
47
|
-
settings = {
|
|
48
|
-
Lua = {
|
|
49
|
-
diagnostics = { globals = { "vim" } },
|
|
50
|
-
workspace = { checkThirdParty = false },
|
|
51
|
-
telemetry = { enable = false },
|
|
52
|
-
hint = { enable = true },
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
})
|
|
56
|
-
end,
|
|
57
|
-
|
|
58
|
-
-- Custom handler for ts_ls (TypeScript)
|
|
59
|
-
["ts_ls"] = function()
|
|
60
|
-
require("lspconfig").ts_ls.setup({
|
|
61
|
-
capabilities = capabilities,
|
|
62
|
-
settings = {
|
|
63
|
-
typescript = {
|
|
64
|
-
inlayHints = {
|
|
65
|
-
includeInlayParameterNameHints = "all",
|
|
66
|
-
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
|
|
67
|
-
includeInlayFunctionParameterTypeHints = true,
|
|
68
|
-
includeInlayVariableTypeHints = true,
|
|
69
|
-
includeInlayPropertyDeclarationTypeHints = true,
|
|
70
|
-
includeInlayFunctionLikeReturnTypeHints = true,
|
|
71
|
-
includeInlayEnumMemberValueHints = true,
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
javascript = {
|
|
75
|
-
inlayHints = {
|
|
76
|
-
includeInlayParameterNameHints = "all",
|
|
77
|
-
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
|
|
78
|
-
includeInlayFunctionParameterTypeHints = true,
|
|
79
|
-
includeInlayVariableTypeHints = true,
|
|
80
|
-
includeInlayPropertyDeclarationTypeHints = true,
|
|
81
|
-
includeInlayFunctionLikeReturnTypeHints = true,
|
|
82
|
-
includeInlayEnumMemberValueHints = true,
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
},
|
|
86
|
-
})
|
|
87
|
-
end,
|
|
88
|
-
|
|
89
|
-
-- Custom handler for basedpyright
|
|
90
|
-
["basedpyright"] = function()
|
|
91
|
-
require("lspconfig").basedpyright.setup({
|
|
92
|
-
capabilities = capabilities,
|
|
93
|
-
settings = {
|
|
94
|
-
basedpyright = {
|
|
95
|
-
analysis = {
|
|
96
|
-
typeCheckingMode = "basic",
|
|
97
|
-
autoSearchPaths = true,
|
|
98
|
-
useLibraryCodeForTypes = true,
|
|
99
|
-
diagnosticMode = "openFilesOnly",
|
|
100
|
-
inlayHints = {
|
|
101
|
-
variableTypes = true,
|
|
102
|
-
functionReturnTypes = true,
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
})
|
|
108
|
-
end,
|
|
109
|
-
},
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
-- Diagnostic Configuration
|
|
113
|
-
vim.diagnostic.config({
|
|
114
|
-
underline = true,
|
|
115
|
-
update_in_insert = false,
|
|
116
|
-
virtual_text = {
|
|
117
|
-
spacing = 4,
|
|
118
|
-
source = "if_many",
|
|
119
|
-
prefix = "●",
|
|
120
|
-
},
|
|
121
|
-
severity_sort = true,
|
|
122
|
-
})
|
|
123
|
-
end,
|
|
124
|
-
},
|
|
125
|
-
|
|
126
|
-
-- Formatting: Conform
|
|
127
|
-
{
|
|
128
|
-
"stevearc/conform.nvim",
|
|
129
|
-
event = { "BufWritePre" },
|
|
130
|
-
cmd = { "ConformInfo" },
|
|
131
|
-
keys = {
|
|
132
|
-
{
|
|
133
|
-
"<leader>cf",
|
|
134
|
-
function()
|
|
135
|
-
require("conform").format({ async = true, lsp_fallback = true })
|
|
136
|
-
end,
|
|
137
|
-
mode = "",
|
|
138
|
-
desc = "Format Buffer",
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
opts = {
|
|
142
|
-
formatters_by_ft = {
|
|
143
|
-
lua = { "stylua" },
|
|
144
|
-
python = { "ruff_format" },
|
|
145
|
-
rust = { "rustfmt" },
|
|
146
|
-
javascript = { "prettierd", "prettier", stop_after_first = true },
|
|
147
|
-
typescript = { "prettierd", "prettier", stop_after_first = true },
|
|
148
|
-
json = { "prettierd", "prettier", stop_after_first = true },
|
|
149
|
-
yaml = { "prettierd", "prettier", stop_after_first = true },
|
|
150
|
-
bash = { "shfmt" },
|
|
151
|
-
sh = { "shfmt" },
|
|
152
|
-
},
|
|
153
|
-
format_on_save = { timeout_ms = 500, lsp_fallback = true },
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
}
|