@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.
Files changed (412) hide show
  1. package/CHANGELOG.md +83 -9
  2. package/LICENSE +21 -1283
  3. package/README.md +5 -3
  4. package/docs/CONFIG_STRATEGY.md +124 -0
  5. package/docs/COPYRIGHT +1 -1
  6. package/docs/GOVERNANCE.md +98 -0
  7. package/docs/MAINTAINERS.md +41 -0
  8. package/docs/OPENCODE.md +127 -0
  9. package/docs/README.md +2 -0
  10. package/docs/STRUCTURE.md +102 -0
  11. package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
  12. package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
  13. package/docs/architecture/REPO_LAYOUT.md +8 -8
  14. package/docs/archive/MILESTONE_v0.2.493.md +1 -1
  15. package/docs/index.md +2 -2
  16. package/docs/interop/POWERSHELL.md +1 -1
  17. package/docs/manual/00-introduction.md +1 -1
  18. package/docs/manual/01-concepts/02-trust-model.md +1 -1
  19. package/docs/manual/03-reference/02-config-files.md +2 -2
  20. package/docs/manual/_toc.yml +1 -1
  21. package/docs/manual/command-index.md +72 -59
  22. package/docs/operations/CI_COMPOSITES.md +2 -2
  23. package/docs/operations/COMPLETIONS.md +2 -2
  24. package/docs/operations/COVERAGE.md +5 -5
  25. package/docs/operations/HARD_AUDIT_2026.md +11 -11
  26. package/docs/operations/MAINTENANCE.md +3 -3
  27. package/docs/operations/MANIFEST.md +127 -0
  28. package/docs/operations/RELEASE_PIPELINE.md +130 -0
  29. package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
  30. package/docs/operations/ROADMAP_2026.md +6 -6
  31. package/docs/operations/ROADMAP_V0_2_503.md +134 -0
  32. package/docs/operations/TESTING.md +17 -0
  33. package/docs/operations/TRACEABILITY.md +6 -3
  34. package/docs/operations/VERSION_SYNC.md +4 -4
  35. package/docs/reference/POWERSHELL_PARITY.md +8 -7
  36. package/docs/schema/dot-env-v1.json +110 -0
  37. package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
  38. package/docs/security/CI_PINNING.md +17 -9
  39. package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
  40. package/docs/security/FUZZING.md +114 -0
  41. package/docs/security/INSTALL_VERIFICATION.md +2 -2
  42. package/docs/security/POLICY_RELEASES.md +2 -2
  43. package/docs/security/SCORECARD.md +58 -3
  44. package/docs/security/SHELL_EXEMPTIONS.md +4 -4
  45. package/docs/security/VERIFY_RELEASE.md +201 -0
  46. package/install.sh +27 -5
  47. package/package.json +1 -1
  48. package/scripts/README.md +123 -0
  49. package/scripts/ci/check-copyright-headers.sh +4 -93
  50. package/scripts/ci/check-shell-preamble.sh +4 -103
  51. package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
  52. package/scripts/diagnostics/a2a-conformance.sh +4 -4
  53. package/scripts/diagnostics/alias-governance.sh +1 -1
  54. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
  55. package/scripts/diagnostics/benchmark.sh +4 -4
  56. package/scripts/diagnostics/conflicts.sh +2 -2
  57. package/scripts/diagnostics/doctor-unified.sh +2 -2
  58. package/scripts/diagnostics/doctor.sh +10 -10
  59. package/scripts/diagnostics/drift-dashboard.sh +2 -2
  60. package/scripts/diagnostics/health.sh +4 -4
  61. package/scripts/diagnostics/history-analysis.sh +2 -2
  62. package/scripts/diagnostics/mcp-doctor.sh +10 -7
  63. package/scripts/diagnostics/perf.sh +4 -4
  64. package/scripts/diagnostics/scorecard.sh +4 -4
  65. package/scripts/diagnostics/security-score.sh +2 -2
  66. package/scripts/diagnostics/smoke-test.sh +2 -2
  67. package/scripts/diagnostics/snapshot.sh +2 -2
  68. package/scripts/diagnostics/verify.sh +4 -4
  69. package/scripts/diagnostics/version-locks.sh +2 -2
  70. package/scripts/diagnostics/workstation-attestation.sh +14 -14
  71. package/scripts/dot/commands/agent.sh +8 -0
  72. package/scripts/dot/commands/agents.sh +14 -4
  73. package/scripts/dot/commands/ai.sh +144 -25
  74. package/scripts/dot/commands/appearance.sh +2 -2
  75. package/scripts/dot/commands/core.sh +2 -2
  76. package/scripts/dot/commands/diagnostics.sh +5 -5
  77. package/scripts/dot/commands/env-emit.sh +202 -0
  78. package/scripts/dot/commands/fleet.sh +12 -11
  79. package/scripts/dot/commands/init.sh +4 -4
  80. package/scripts/dot/commands/lint.sh +9 -4
  81. package/scripts/dot/commands/manual.sh +3 -3
  82. package/scripts/dot/commands/meta.sh +12 -6
  83. package/scripts/dot/commands/patterns.sh +2 -2
  84. package/scripts/dot/commands/registry.sh +4 -4
  85. package/scripts/dot/commands/restore.sh +4 -4
  86. package/scripts/dot/commands/secrets.sh +4 -3
  87. package/scripts/dot/commands/security.sh +2 -2
  88. package/scripts/dot/commands/tools.sh +13 -3
  89. package/scripts/dot/powershell/Dot.psm1 +199 -0
  90. package/scripts/fonts/install-nerd-fonts.sh +2 -2
  91. package/scripts/git-hooks/pre-commit-audit.sh +2 -2
  92. package/scripts/git-hooks/pre-push +13 -0
  93. package/scripts/ops/ai-setup.sh +1 -1
  94. package/scripts/ops/bundle.sh +2 -2
  95. package/scripts/ops/chaos.sh +2 -2
  96. package/scripts/ops/chezmoi-apply.sh +4 -4
  97. package/scripts/ops/heal.sh +4 -4
  98. package/scripts/ops/post-apply-repair.sh +2 -2
  99. package/scripts/ops/prewarm.sh +2 -2
  100. package/scripts/ops/release.sh +4 -4
  101. package/scripts/ops/rollback.sh +4 -4
  102. package/scripts/ops/setup.sh +2 -2
  103. package/scripts/qa/check-version-consistency.sh +123 -0
  104. package/scripts/qa/coverage-baseline.sh +1 -1
  105. package/scripts/qa/docs-coverage.sh +2 -2
  106. package/scripts/qa/powershell-contract.ps1 +1 -1
  107. package/scripts/qa/scorecard-snapshot.sh +127 -0
  108. package/scripts/security/backup.sh +2 -2
  109. package/scripts/security/dns-doh.sh +4 -4
  110. package/scripts/security/encryption-check.sh +4 -4
  111. package/scripts/security/enforce-policies.sh +2 -2
  112. package/scripts/security/firewall.sh +4 -4
  113. package/scripts/security/lock-screen.sh +4 -4
  114. package/scripts/security/manage-secrets.sh +2 -2
  115. package/scripts/security/ssh-cert.sh +2 -2
  116. package/scripts/security/telemetry-kill.sh +4 -4
  117. package/scripts/security/usb-safety.sh +4 -4
  118. package/scripts/theme/extract-heic-frames.sh +114 -0
  119. package/scripts/theme/rebuild-themes.sh +8 -1
  120. package/scripts/theme/switch.sh +13 -6
  121. package/scripts/theme/wallpaper-sync.sh +297 -93
  122. package/scripts/tuning/linux.sh +2 -2
  123. package/scripts/tuning/macos.sh +2 -2
  124. package/scripts/version-sync.sh +55 -7
  125. package/dot_config/.module-manifest.json +0 -69
  126. package/dot_config/ai/identity.md +0 -23
  127. package/dot_config/ai/patterns/architect.md +0 -16
  128. package/dot_config/ai/patterns/hardener.md +0 -15
  129. package/dot_config/ai/patterns/refactor.md +0 -15
  130. package/dot_config/aider/aider.conf.yml +0 -32
  131. package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
  132. package/dot_config/ansible/ansible.cfg +0 -11
  133. package/dot_config/atuin/config.toml.tmpl +0 -47
  134. package/dot_config/bat/config +0 -23
  135. package/dot_config/brave-flags.conf.tmpl +0 -7
  136. package/dot_config/btop/btop.conf +0 -16
  137. package/dot_config/btop/themes/tokyonight.theme +0 -34
  138. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  139. package/dot_config/claude/mcp_servers.json +0 -20
  140. package/dot_config/containers/containers.conf +0 -14
  141. package/dot_config/curl/dot_curlrc +0 -18
  142. package/dot_config/dlv/config.yml +0 -39
  143. package/dot_config/docker/config.json +0 -15
  144. package/dot_config/dotfiles/agent-card.json +0 -29
  145. package/dot_config/dotfiles/agent-profiles.json +0 -92
  146. package/dot_config/dotfiles/boot/README.md +0 -13
  147. package/dot_config/dotfiles/grub/README.md +0 -13
  148. package/dot_config/dotfiles/lock/README.md +0 -13
  149. package/dot_config/dotfiles/mcp-lock.json +0 -33
  150. package/dot_config/dotfiles/mcp-policy.json +0 -52
  151. package/dot_config/dotfiles/mcp-registry.json +0 -47
  152. package/dot_config/dotfiles/model-registry.json +0 -20
  153. package/dot_config/dotfiles/policy-bundles.json +0 -38
  154. package/dot_config/dotfiles/prompt-registry.json +0 -16
  155. package/dot_config/dotfiles/versions.env +0 -18
  156. package/dot_config/duf/duf.conf +0 -6
  157. package/dot_config/duti/defaults.duti +0 -5
  158. package/dot_config/emoji/emoji.txt +0 -34
  159. package/dot_config/environment.d/50-ssh-agent.conf +0 -2
  160. package/dot_config/environment.d/90-wayland.conf +0 -19
  161. package/dot_config/fastfetch/config.jsonc +0 -28
  162. package/dot_config/firefox/user.js.tmpl +0 -58
  163. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
  164. package/dot_config/fish/completions/dot.fish.tmpl +0 -115
  165. package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
  166. package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
  167. package/dot_config/fish/conf.d/direnv.fish +0 -4
  168. package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
  169. package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
  170. package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
  171. package/dot_config/fish/conf.d/mise-activate.fish +0 -5
  172. package/dot_config/fish/config.fish.tmpl +0 -44
  173. package/dot_config/fish/fish_plugins +0 -1
  174. package/dot_config/fish/functions/_.fish +0 -3
  175. package/dot_config/fish/functions/_cached_eval.fish +0 -131
  176. package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
  177. package/dot_config/fish/functions/als.fish +0 -46
  178. package/dot_config/fish/functions/bg-upgrade.fish +0 -7
  179. package/dot_config/fish/functions/c.fish +0 -3
  180. package/dot_config/fish/functions/cat.fish +0 -9
  181. package/dot_config/fish/functions/d.fish +0 -7
  182. package/dot_config/fish/functions/dot.fish +0 -34
  183. package/dot_config/fish/functions/h.fish +0 -3
  184. package/dot_config/fish/functions/l.fish +0 -7
  185. package/dot_config/fish/functions/la.fish +0 -7
  186. package/dot_config/fish/functions/ll.fish +0 -7
  187. package/dot_config/fish/functions/log_error.fish +0 -13
  188. package/dot_config/fish/functions/log_info.fish +0 -13
  189. package/dot_config/fish/functions/lr.fish +0 -7
  190. package/dot_config/fish/functions/lra.fish +0 -7
  191. package/dot_config/fish/functions/ls.fish +0 -7
  192. package/dot_config/fish/functions/lt.fish +0 -7
  193. package/dot_config/fish/functions/lta.fish +0 -7
  194. package/dot_config/fish/functions/notify-run.fish +0 -11
  195. package/dot_config/fish/functions/q.fish +0 -3
  196. package/dot_config/fish/functions/silent-run.fish +0 -7
  197. package/dot_config/fish/functions/yy.fish +0 -8
  198. package/dot_config/flatpak/flatpak.list +0 -4
  199. package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
  200. package/dot_config/foot/foot.ini.tmpl +0 -33
  201. package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
  202. package/dot_config/fzf/fzf.zsh +0 -48
  203. package/dot_config/gem/gemrc +0 -9
  204. package/dot_config/gh/config.yml +0 -12
  205. package/dot_config/ghostty/config.tmpl +0 -165
  206. package/dot_config/git/allowed_signers.tmpl +0 -18
  207. package/dot_config/git/attributes +0 -12
  208. package/dot_config/git/commit-template +0 -10
  209. package/dot_config/git/hooks/executable_commit-msg +0 -146
  210. package/dot_config/git/ignore +0 -27
  211. package/dot_config/gnupg/gpg-agent.conf +0 -11
  212. package/dot_config/go/golangci.yml +0 -118
  213. package/dot_config/go/gopls.json +0 -30
  214. package/dot_config/goose/config.yaml +0 -29
  215. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
  216. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
  217. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
  218. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
  219. package/dot_config/htop/htoprc +0 -20
  220. package/dot_config/inputrc +0 -2
  221. package/dot_config/ipython/profile_default/ipython_config.py +0 -19
  222. package/dot_config/just/justfile +0 -122
  223. package/dot_config/k9s/config.yaml +0 -65
  224. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  225. package/dot_config/kanshi/config.tmpl +0 -22
  226. package/dot_config/karabiner/karabiner.json +0 -14
  227. package/dot_config/kitty/kitty.conf.tmpl +0 -53
  228. package/dot_config/lazydocker/config.yml +0 -186
  229. package/dot_config/lazygit/config.yml +0 -35
  230. package/dot_config/mako/config +0 -47
  231. package/dot_config/mas/masapps.txt +0 -5
  232. package/dot_config/micro/settings.json +0 -3
  233. package/dot_config/mimeapps.list +0 -77
  234. package/dot_config/minikube/config.json +0 -13
  235. package/dot_config/mise/config.toml +0 -99
  236. package/dot_config/mongosh/mongoshrc.js +0 -68
  237. package/dot_config/mpv/input.conf +0 -47
  238. package/dot_config/mpv/mpv.conf +0 -47
  239. package/dot_config/mycli/myclirc +0 -67
  240. package/dot_config/nano/nanorc +0 -28
  241. package/dot_config/ncdu/config +0 -12
  242. package/dot_config/niri/config.kdl.tmpl +0 -327
  243. package/dot_config/nushell/aliases.nu +0 -18
  244. package/dot_config/nushell/cached_eval.nu +0 -80
  245. package/dot_config/nushell/completions.nu.tmpl +0 -52
  246. package/dot_config/nushell/config.nu.tmpl +0 -86
  247. package/dot_config/nushell/env.nu.tmpl +0 -102
  248. package/dot_config/nushell/functions.nu.tmpl +0 -17
  249. package/dot_config/nvim/init.lua +0 -18
  250. package/dot_config/nvim/lazy-lock.json +0 -58
  251. package/dot_config/nvim/lua/config/autocmds.lua +0 -107
  252. package/dot_config/nvim/lua/config/keymaps.lua +0 -92
  253. package/dot_config/nvim/lua/config/lazy.lua +0 -44
  254. package/dot_config/nvim/lua/config/options.lua +0 -49
  255. package/dot_config/nvim/lua/plugins/ai.lua +0 -75
  256. package/dot_config/nvim/lua/plugins/coding.lua +0 -216
  257. package/dot_config/nvim/lua/plugins/completion.lua +0 -60
  258. package/dot_config/nvim/lua/plugins/dap.lua +0 -412
  259. package/dot_config/nvim/lua/plugins/editor.lua +0 -55
  260. package/dot_config/nvim/lua/plugins/git.lua +0 -10
  261. package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
  262. package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
  263. package/dot_config/nvim/lua/plugins/rust.lua +0 -34
  264. package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
  265. package/dot_config/nvim/lua/plugins/ui.lua +0 -509
  266. package/dot_config/paru/paru.conf +0 -10
  267. package/dot_config/pip/pip.conf.tmpl +0 -32
  268. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
  269. package/dot_config/pueue/pueue.yml +0 -34
  270. package/dot_config/pypoetry/config.toml +0 -6
  271. package/dot_config/pyrightconfig.json +0 -5
  272. package/dot_config/raycast/README.md +0 -13
  273. package/dot_config/redis/redisclirc +0 -41
  274. package/dot_config/ripgrep/ripgreprc +0 -21
  275. package/dot_config/shell/00-core-paths.sh.tmpl +0 -141
  276. package/dot_config/shell/05-core-safety.sh +0 -48
  277. package/dot_config/shell/10-secrets.sh +0 -41
  278. package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
  279. package/dot_config/shell/40-ls-colors.sh +0 -49
  280. package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
  281. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
  282. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
  283. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
  284. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
  285. package/dot_config/shell/Brewfile +0 -207
  286. package/dot_config/shell/Brewfile.cask +0 -92
  287. package/dot_config/shell/Brewfile.cli +0 -127
  288. package/dot_config/shell/README.md +0 -284
  289. package/dot_config/shell/als_data.txt.tmpl +0 -65
  290. package/dot_config/shell/custom/auto_ls.zsh +0 -20
  291. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  292. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  293. package/dot_config/sops/dot_sops.yaml +0 -23
  294. package/dot_config/starship.toml.tmpl +0 -202
  295. package/dot_config/swaylock/config +0 -43
  296. package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
  297. package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
  298. package/dot_config/systemd/user/pueued.service +0 -12
  299. package/dot_config/systemd/user/ssh-agent.service +0 -12
  300. package/dot_config/task/Taskfile.yml +0 -86
  301. package/dot_config/tflint/tflint.hcl +0 -9
  302. package/dot_config/tmux/tmux.conf.tmpl +0 -223
  303. package/dot_config/topgrade.toml.tmpl +0 -54
  304. package/dot_config/user-dirs.dirs +0 -10
  305. package/dot_config/vscode/extensions.txt +0 -11
  306. package/dot_config/vscode/settings.json.tmpl +0 -82
  307. package/dot_config/waybar/config.jsonc.tmpl +0 -90
  308. package/dot_config/waybar/style.css.tmpl +0 -211
  309. package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
  310. package/dot_config/wget/wgetrc +0 -12
  311. package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
  312. package/dot_config/yarn/yarnrc.yml +0 -36
  313. package/dot_config/yazi/keymap.toml +0 -67
  314. package/dot_config/yazi/theme.toml +0 -102
  315. package/dot_config/yazi/yazi.toml +0 -40
  316. package/dot_config/zathura/zathurarc +0 -52
  317. package/dot_config/zellij/config.kdl.tmpl +0 -79
  318. package/dot_config/zsh/dot_zprofile +0 -7
  319. package/dot_config/zsh/dot_zshenv +0 -5
  320. package/dot_config/zsh/dot_zshrc.tmpl +0 -688
  321. package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
  322. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
  323. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  324. package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
  325. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
  326. package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
  327. package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
  328. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
  329. package/dot_local/bin/executable_ai-update +0 -195
  330. package/dot_local/bin/executable_ai_core +0 -152
  331. package/dot_local/bin/executable_antigravity +0 -11
  332. package/dot_local/bin/executable_b64 +0 -84
  333. package/dot_local/bin/executable_bm +0 -79
  334. package/dot_local/bin/executable_cb +0 -39
  335. package/dot_local/bin/executable_dot +0 -636
  336. package/dot_local/bin/executable_dot-ai +0 -36
  337. package/dot_local/bin/executable_dot-bootstrap +0 -76
  338. package/dot_local/bin/executable_dot-launch-or-focus +0 -52
  339. package/dot_local/bin/executable_dot-load-benchmark +0 -31
  340. package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
  341. package/dot_local/bin/executable_dot-theme-sync +0 -952
  342. package/dot_local/bin/executable_dot_completion +0 -57
  343. package/dot_local/bin/executable_dtags +0 -28
  344. package/dot_local/bin/executable_epoch +0 -67
  345. package/dot_local/bin/executable_extract +0 -41
  346. package/dot_local/bin/executable_gbd +0 -52
  347. package/dot_local/bin/executable_gd +0 -42
  348. package/dot_local/bin/executable_git-ai-commit +0 -175
  349. package/dot_local/bin/executable_git-ai-diff +0 -169
  350. package/dot_local/bin/executable_gl +0 -101
  351. package/dot_local/bin/executable_hash +0 -161
  352. package/dot_local/bin/executable_hashsum +0 -160
  353. package/dot_local/bin/executable_hex +0 -115
  354. package/dot_local/bin/executable_jsonv +0 -78
  355. package/dot_local/bin/executable_jwt +0 -94
  356. package/dot_local/bin/executable_kill-port +0 -75
  357. package/dot_local/bin/executable_lorem +0 -118
  358. package/dot_local/bin/executable_mkscript +0 -35
  359. package/dot_local/bin/executable_monitor +0 -56
  360. package/dot_local/bin/executable_myip +0 -51
  361. package/dot_local/bin/executable_notify +0 -24
  362. package/dot_local/bin/executable_open +0 -38
  363. package/dot_local/bin/executable_pw +0 -27
  364. package/dot_local/bin/executable_rec-start +0 -46
  365. package/dot_local/bin/executable_rec-stop +0 -35
  366. package/dot_local/bin/executable_regex +0 -132
  367. package/dot_local/bin/executable_start-niri +0 -8
  368. package/dot_local/bin/executable_tmux-sessionizer +0 -314
  369. package/dot_local/bin/executable_tour +0 -177
  370. package/dot_local/bin/executable_up +0 -23
  371. package/dot_local/bin/executable_update +0 -142
  372. package/dot_local/bin/executable_uuid +0 -87
  373. package/dot_local/bin/executable_win +0 -32
  374. package/dot_local/bin/executable_yamlv +0 -57
  375. package/dot_local/share/bash-completion/completions/dot +0 -72
  376. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  377. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  378. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  379. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  380. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  381. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  382. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  383. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  384. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  385. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  386. package/dot_local/share/man/man1/dot.1 +0 -149
  387. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
  388. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
  389. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
  390. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
  391. package/dot_local/share/zsh/completions/.keep +0 -0
  392. package/dot_local/share/zsh/completions/_dot +0 -287
  393. package/scripts/ci/check-dangerous-chmod.sh +0 -19
  394. package/scripts/ci/check-deps-dev.sh +0 -236
  395. package/scripts/ci/check-insecure-tls.sh +0 -61
  396. package/scripts/ci/check-regression-traceability.sh +0 -67
  397. package/scripts/ci/dot-cli-startup-bench.sh +0 -126
  398. package/scripts/ci/install-chezmoi-verified.sh +0 -67
  399. package/scripts/ci/lint-reusable-pins.sh +0 -78
  400. package/scripts/ci/run-coverage.sh +0 -451
  401. package/scripts/ci/validate-chezmoidata.sh +0 -25
  402. package/scripts/ci/validate-ci-config.sh +0 -224
  403. package/scripts/ci/windows-smoke-test.ps1 +0 -136
  404. package/scripts/docs/build-manual.sh +0 -883
  405. package/scripts/docs/check-manual.sh +0 -213
  406. package/scripts/dot/lib/bento.sh +0 -50
  407. package/scripts/dot/lib/log.sh +0 -200
  408. package/scripts/dot/lib/platform.sh +0 -112
  409. package/scripts/dot/lib/ui.sh +0 -650
  410. package/scripts/dot/lib/utils.sh +0 -377
  411. package/scripts/maintenance/check-updates.sh +0 -131
  412. 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,10 +0,0 @@
1
- -- Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
- return {
3
- {
4
- "ThePrimeagen/git-worktree.nvim",
5
- dependencies = { "nvim-lua/plenary.nvim" },
6
- config = function()
7
- require("git-worktree").setup({})
8
- end,
9
- },
10
- }
@@ -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
- }