@sebastienrousseau/dotfiles 0.2.481 → 0.2.499

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 (317) hide show
  1. package/docs/ARCHITECTURE.md +29 -196
  2. package/docs/COMPLIANCE.md +10 -10
  3. package/docs/COPYRIGHT +3 -4
  4. package/docs/OPERATIONS.md +38 -65
  5. package/docs/PLAN.md +3 -3
  6. package/docs/PR_DESCRIPTION.md +85 -84
  7. package/docs/ROADMAP.md +11 -11
  8. package/docs/ROADMAP_legacy.md +556 -0
  9. package/docs/SECURITY_CHECKLIST.md +1 -1
  10. package/docs/TASK.md +4 -4
  11. package/docs/WALKTHROUGH.md +33 -152
  12. package/package.json +17 -5
  13. package/scripts/backup.sh +142 -0
  14. package/scripts/banner.sh +20 -0
  15. package/scripts/benchmark.sh +20 -0
  16. package/scripts/build.sh +41 -0
  17. package/scripts/clean.sh +31 -0
  18. package/scripts/compile.sh +54 -0
  19. package/scripts/copy.sh +108 -0
  20. package/scripts/{tools/detect-collisions.py → detect-collisions.py} +1 -1
  21. package/scripts/doctor.sh +79 -0
  22. package/scripts/dotfiles.sh +63 -0
  23. package/scripts/download.sh +35 -0
  24. package/scripts/help.sh +57 -0
  25. package/scripts/lock-configs.sh +57 -0
  26. package/scripts/package.sh +46 -0
  27. package/scripts/ssh.sh +55 -0
  28. package/scripts/teleport.sh +23 -0
  29. package/scripts/{tests/test-aliases.sh → test-aliases.sh} +3 -3
  30. package/scripts/test_smoke.sh +88 -0
  31. package/scripts/unpack.sh +28 -0
  32. package/scripts/{diagnostics/verify_state.sh → verify_state.sh} +21 -21
  33. package/templates/projects/go/README.md +0 -4
  34. package/templates/projects/node/README.md +0 -4
  35. package/templates/projects/python/README.md +0 -4
  36. package/templates/projects/python/pyproject.toml +0 -15
  37. package/CHANGELOG.md +0 -285
  38. package/LICENSE +0 -1283
  39. package/README.md +0 -315
  40. package/docs/ALIASES.md +0 -128
  41. package/docs/FEATURES.md +0 -166
  42. package/docs/FONTS.md +0 -147
  43. package/docs/INSTALL.md +0 -119
  44. package/docs/KEYS.md +0 -40
  45. package/docs/KEY_ROTATION.md +0 -219
  46. package/docs/LEGACY_ROADMAP.md +0 -142
  47. package/docs/NEOVIM_IDE_GUIDE.md +0 -52
  48. package/docs/README.md +0 -269
  49. package/docs/REPO_AUDIT.md +0 -23
  50. package/docs/SCREENSHOTS.md +0 -116
  51. package/docs/SECRETS.md +0 -76
  52. package/docs/SECURITY.md +0 -30
  53. package/docs/TESTING.md +0 -190
  54. package/docs/TOOLS.md +0 -146
  55. package/docs/TROUBLESHOOTING.md +0 -112
  56. package/docs/UTILS.md +0 -105
  57. package/docs/WSL2_NIX_TROUBLESHOOTING.md +0 -723
  58. package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -101
  59. package/docs/adr/ADR-002-shell-performance.md +0 -121
  60. package/docs/adr/ADR-003-security-first.md +0 -140
  61. package/docs/adr/ADR-004-cli-architecture.md +0 -157
  62. package/docs/adr/ADR-005-chezmoi-choice.md +0 -89
  63. package/docs/adr/ADR-006-shell-selection.md +0 -115
  64. package/docs/adr/README.md +0 -33
  65. package/docs/themes/README.md +0 -20
  66. package/dot_config/aider/aider.conf.yml +0 -32
  67. package/dot_config/alacritty/alacritty.toml.tmpl +0 -483
  68. package/dot_config/ansible/ansible.cfg.tmpl +0 -11
  69. package/dot_config/atuin/config.toml +0 -23
  70. package/dot_config/bat/config +0 -8
  71. package/dot_config/brave-flags.conf.tmpl +0 -7
  72. package/dot_config/btop/btop.conf +0 -16
  73. package/dot_config/btop/themes/tokyonight.theme +0 -34
  74. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  75. package/dot_config/claude/mcp_servers.json +0 -49
  76. package/dot_config/clippy.toml +0 -55
  77. package/dot_config/containers/containers.conf +0 -14
  78. package/dot_config/curl/dot_curlrc +0 -18
  79. package/dot_config/dlv/config.yml +0 -39
  80. package/dot_config/docker/config.json.tmpl +0 -15
  81. package/dot_config/dotfiles/boot/README.md +0 -11
  82. package/dot_config/dotfiles/grub/README.md +0 -11
  83. package/dot_config/dotfiles/lock/README.md +0 -11
  84. package/dot_config/dotfiles/versions.env.tmpl +0 -19
  85. package/dot_config/duf/duf.conf +0 -6
  86. package/dot_config/duti/defaults.duti +0 -5
  87. package/dot_config/emoji/emoji.txt +0 -34
  88. package/dot_config/fastfetch/config.jsonc +0 -28
  89. package/dot_config/firefox/user.js +0 -8
  90. package/dot_config/flatpak/flatpak.list +0 -4
  91. package/dot_config/fontconfig/fonts.conf.tmpl +0 -44
  92. package/dot_config/gem/gemrc +0 -9
  93. package/dot_config/gh/config.yml +0 -12
  94. package/dot_config/ghostty/config.tmpl +0 -661
  95. package/dot_config/git/attributes +0 -12
  96. package/dot_config/git/config.tmpl +0 -77
  97. package/dot_config/git/ignore +0 -27
  98. package/dot_config/gnupg/gpg-agent.conf.tmpl +0 -11
  99. package/dot_config/go/aliases.sh +0 -61
  100. package/dot_config/go/env.sh +0 -24
  101. package/dot_config/go/golangci.yml +0 -118
  102. package/dot_config/go/gopls.json +0 -30
  103. package/dot_config/goose/config.yaml +0 -29
  104. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -305
  105. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -66
  106. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -309
  107. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -21
  108. package/dot_config/htop/htoprc +0 -20
  109. package/dot_config/ice/README.md +0 -13
  110. package/dot_config/inputrc +0 -2
  111. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +0 -5
  112. package/dot_config/just/justfile +0 -104
  113. package/dot_config/k9s/config.yaml.tmpl +0 -65
  114. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  115. package/dot_config/karabiner/karabiner.json +0 -14
  116. package/dot_config/kitty/kitty.conf.tmpl +0 -517
  117. package/dot_config/lazydocker/config.yml +0 -186
  118. package/dot_config/lazygit/config.yml +0 -23
  119. package/dot_config/lsd/config.yaml +0 -19
  120. package/dot_config/mas/masapps.txt +0 -5
  121. package/dot_config/minikube/config.json +0 -13
  122. package/dot_config/mise/config.toml +0 -41
  123. package/dot_config/mongosh/mongoshrc.js +0 -67
  124. package/dot_config/mycli/myclirc +0 -67
  125. package/dot_config/nano/nanorc +0 -28
  126. package/dot_config/ncdu/config +0 -12
  127. package/dot_config/nvim/init.lua +0 -4
  128. package/dot_config/nvim/lazy-lock.json +0 -27
  129. package/dot_config/nvim/lua/config/autocmds.lua +0 -63
  130. package/dot_config/nvim/lua/config/keymaps.lua +0 -87
  131. package/dot_config/nvim/lua/config/lazy.lua +0 -34
  132. package/dot_config/nvim/lua/config/options.lua +0 -48
  133. package/dot_config/nvim/lua/plugins/coding.lua +0 -234
  134. package/dot_config/nvim/lua/plugins/dap.lua +0 -201
  135. package/dot_config/nvim/lua/plugins/editor.lua +0 -59
  136. package/dot_config/nvim/lua/plugins/git.lua +0 -9
  137. package/dot_config/nvim/lua/plugins/lsp.lua +0 -221
  138. package/dot_config/nvim/lua/plugins/markdown.lua +0 -17
  139. package/dot_config/nvim/lua/plugins/rust.lua +0 -33
  140. package/dot_config/nvim/lua/plugins/sessions.lua +0 -32
  141. package/dot_config/nvim/lua/plugins/ui.lua +0 -537
  142. package/dot_config/nvim/snippets/all.lua +0 -9
  143. package/dot_config/nvim/snippets/python.lua +0 -16
  144. package/dot_config/pip/pip.conf.tmpl +0 -32
  145. package/dot_config/pypoetry/config.toml.tmpl +0 -6
  146. package/dot_config/pyrightconfig.json.tmpl +0 -5
  147. package/dot_config/raycast/README.md +0 -13
  148. package/dot_config/redis/redisclirc +0 -41
  149. package/dot_config/shell/00-container-detect.sh +0 -53
  150. package/dot_config/shell/00-core-paths.sh.tmpl +0 -95
  151. package/dot_config/shell/05-core-safety.sh.tmpl +0 -13
  152. package/dot_config/shell/40-ls-colors.sh.tmpl +0 -31
  153. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -10
  154. package/dot_config/shell/90-theme-switch.sh +0 -70
  155. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -35
  156. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -23
  157. package/dot_config/shell/Brewfile +0 -207
  158. package/dot_config/shell/Brewfile.cask +0 -92
  159. package/dot_config/shell/Brewfile.cli +0 -119
  160. package/dot_config/shell/README.md +0 -267
  161. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  162. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  163. package/dot_config/sops/dot_sops.yaml +0 -23
  164. package/dot_config/starship.toml.tmpl +0 -124
  165. package/dot_config/task/Taskfile.yml +0 -86
  166. package/dot_config/tflint/tflint.hcl.tmpl +0 -9
  167. package/dot_config/tmux/tmux.conf.tmpl +0 -181
  168. package/dot_config/topgrade/topgrade.toml.tmpl +0 -42
  169. package/dot_config/vscode/extensions.txt +0 -11
  170. package/dot_config/vscode/settings.json.tmpl +0 -123
  171. package/dot_config/waybar/style.css +0 -8
  172. package/dot_config/wezterm/wezterm.lua.tmpl +0 -236
  173. package/dot_config/wget/wgetrc +0 -12
  174. package/dot_config/yarn/yarnrc.yml.tmpl +0 -36
  175. package/dot_config/yazi/yazi.toml +0 -40
  176. package/dot_config/zellij/config.kdl +0 -79
  177. package/dot_config/zsh/dot_zprofile +0 -13
  178. package/dot_config/zsh/dot_zshenv +0 -6
  179. package/dot_config/zsh/dot_zshrc.tmpl +0 -199
  180. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -5
  181. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  182. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +0 -22
  183. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -123
  184. package/dot_config/zsh/rc.d/40-bell.zsh.tmpl +0 -20
  185. package/dot_config/zsh/rc.d/50-login-fortune.zsh.tmpl +0 -9
  186. package/dot_local/bin/executable_ai_core +0 -130
  187. package/dot_local/bin/executable_b64 +0 -59
  188. package/dot_local/bin/executable_dot +0 -178
  189. package/dot_local/bin/executable_dot_completion +0 -55
  190. package/dot_local/bin/executable_epoch +0 -62
  191. package/dot_local/bin/executable_extract +0 -108
  192. package/dot_local/bin/executable_git-ai-commit +0 -160
  193. package/dot_local/bin/executable_git-ai-diff +0 -154
  194. package/dot_local/bin/executable_hash +0 -123
  195. package/dot_local/bin/executable_hex +0 -79
  196. package/dot_local/bin/executable_ip +0 -37
  197. package/dot_local/bin/executable_jsonv +0 -54
  198. package/dot_local/bin/executable_jwt +0 -78
  199. package/dot_local/bin/executable_kill-port +0 -59
  200. package/dot_local/bin/executable_lorem +0 -103
  201. package/dot_local/bin/executable_regex +0 -96
  202. package/dot_local/bin/executable_tmux-sessionizer +0 -187
  203. package/dot_local/bin/executable_tour +0 -137
  204. package/dot_local/bin/executable_update +0 -108
  205. package/dot_local/bin/executable_uuid +0 -57
  206. package/dot_local/bin/executable_yamlv +0 -39
  207. package/dot_local/bin/executable_zig-install +0 -89
  208. package/dot_local/bin/voice_ops +0 -7
  209. package/dot_local/share/bash-completion/completions/dot +0 -54
  210. package/dot_local/share/zsh/completions/.keep +0 -0
  211. package/install.sh +0 -255
  212. package/scripts/ci/validate-ci-config.sh +0 -222
  213. package/scripts/demo/record.sh +0 -41
  214. package/scripts/diagnostics/benchmark.sh +0 -201
  215. package/scripts/diagnostics/doctor.sh +0 -115
  216. package/scripts/diagnostics/drift-dashboard.sh +0 -26
  217. package/scripts/diagnostics/health.sh +0 -356
  218. package/scripts/diagnostics/history-analysis.sh +0 -77
  219. package/scripts/diagnostics/security-score.sh +0 -392
  220. package/scripts/dot/commands/appearance.sh +0 -63
  221. package/scripts/dot/commands/core.sh +0 -130
  222. package/scripts/dot/commands/diagnostics.sh +0 -100
  223. package/scripts/dot/commands/meta.sh +0 -117
  224. package/scripts/dot/commands/restore.sh +0 -209
  225. package/scripts/dot/commands/secrets.sh +0 -81
  226. package/scripts/dot/commands/security.sh +0 -73
  227. package/scripts/dot/commands/tools.sh +0 -228
  228. package/scripts/dot/lib/utils.sh +0 -72
  229. package/scripts/fonts/install-nerd-fonts.sh +0 -59
  230. package/scripts/fonts/patch-fonts.sh +0 -34
  231. package/scripts/ops/chezmoi-apply.sh +0 -42
  232. package/scripts/ops/chezmoi-diff.sh +0 -14
  233. package/scripts/ops/chezmoi-remove.sh +0 -43
  234. package/scripts/ops/chezmoi-update.sh +0 -16
  235. package/scripts/ops/heal.sh +0 -466
  236. package/scripts/ops/health-check.sh +0 -380
  237. package/scripts/ops/rollback.sh +0 -531
  238. package/scripts/ops/teleport.sh +0 -32
  239. package/scripts/secrets/age-init.sh +0 -69
  240. package/scripts/secrets/create-secrets-file.sh +0 -44
  241. package/scripts/secrets/encrypt-ssh-key.sh +0 -42
  242. package/scripts/security/backup.sh +0 -17
  243. package/scripts/security/dns-doh.sh +0 -29
  244. package/scripts/security/encryption-check.sh +0 -39
  245. package/scripts/security/enforce-policies.sh +0 -339
  246. package/scripts/security/firewall.sh +0 -34
  247. package/scripts/security/lock-configs.sh +0 -57
  248. package/scripts/security/lock-screen.sh +0 -33
  249. package/scripts/security/manage-secrets.sh +0 -415
  250. package/scripts/security/telemetry-kill.sh +0 -28
  251. package/scripts/security/usb-safety.sh +0 -29
  252. package/scripts/tests/README.md +0 -241
  253. package/scripts/tests/benchmark.sh +0 -91
  254. package/scripts/tests/framework/assertions.sh +0 -283
  255. package/scripts/tests/framework/mocks.sh +0 -201
  256. package/scripts/tests/framework/test_runner.sh +0 -189
  257. package/scripts/tests/integration/test_install.sh +0 -237
  258. package/scripts/tests/performance/benchmark_runner.sh +0 -156
  259. package/scripts/tests/performance/regression_check.sh +0 -73
  260. package/scripts/tests/performance/stress_test.sh +0 -65
  261. package/scripts/tests/test-docker.sh +0 -48
  262. package/scripts/tests/unit/test_ai_aliases.sh +0 -158
  263. package/scripts/tests/unit/test_ai_cli_checks.sh +0 -47
  264. package/scripts/tests/unit/test_backup.sh +0 -227
  265. package/scripts/tests/unit/test_case_functions.sh +0 -238
  266. package/scripts/tests/unit/test_cd_aliases.sh +0 -367
  267. package/scripts/tests/unit/test_dot_cli.sh +0 -217
  268. package/scripts/tests/unit/test_encode64.sh +0 -67
  269. package/scripts/tests/unit/test_environment.sh +0 -78
  270. package/scripts/tests/unit/test_extract.sh +0 -163
  271. package/scripts/tests/unit/test_framework_edge_cases.sh +0 -113
  272. package/scripts/tests/unit/test_genpass.sh +0 -298
  273. package/scripts/tests/unit/test_install_edge_cases.sh +0 -167
  274. package/scripts/tests/unit/test_installers.sh +0 -172
  275. package/scripts/tests/unit/test_keygen.sh +0 -68
  276. package/scripts/tests/unit/test_logging.sh +0 -96
  277. package/scripts/tests/unit/test_os_detection_comprehensive.sh +0 -388
  278. package/scripts/tests/unit/test_package_managers_comprehensive.sh +0 -321
  279. package/scripts/tests/unit/test_prependpath.sh +0 -66
  280. package/scripts/tests/unit/test_prependpath_refactored.sh +0 -89
  281. package/scripts/tests/unit/test_rd.sh +0 -230
  282. package/scripts/tests/unit/test_security_fixes.sh +0 -130
  283. package/scripts/tests/unit/test_security_scripts.sh +0 -87
  284. package/scripts/tests/unit/test_template_validation.sh +0 -238
  285. package/scripts/tests/unit/test_utility_functions.sh +0 -144
  286. package/scripts/tests/unit/test_wave1_alias_split.sh +0 -132
  287. package/scripts/tests/unit/test_wave1_ci_pinning.sh +0 -61
  288. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +0 -52
  289. package/scripts/tests/unit/test_wave1_heal_fixes.sh +0 -97
  290. package/scripts/tests/unit/test_wave1_install_gpg.sh +0 -35
  291. package/scripts/tests/unit/test_wave1_zshenv_path.sh +0 -89
  292. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +0 -115
  293. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +0 -75
  294. package/scripts/tests/unit/test_zipf.sh +0 -76
  295. package/scripts/theme/apply-gnome-theme.sh +0 -297
  296. package/scripts/theme/install-boot-logo.sh +0 -61
  297. package/scripts/theme/install-catppuccin-themes.sh +0 -346
  298. package/scripts/theme/install-cursors.sh +0 -24
  299. package/scripts/theme/install-file-icons.sh +0 -25
  300. package/scripts/theme/install-grub-theme.sh +0 -51
  301. package/scripts/theme/install-lock-icon.sh +0 -29
  302. package/scripts/theme/switch.sh +0 -250
  303. package/scripts/theme/wallpaper-rotate.sh +0 -82
  304. package/scripts/theme/wallpaper-sync.sh +0 -42
  305. package/scripts/tools/cmatrix.sh +0 -20
  306. package/scripts/tools/emoji-picker.sh +0 -45
  307. package/scripts/tools/figlet-banner.sh +0 -17
  308. package/scripts/tools/log-rotate.sh +0 -29
  309. package/scripts/tools/lolcat-wrap.sh +0 -18
  310. package/scripts/tools/pipes.sh +0 -47
  311. package/scripts/tuning/linux.sh +0 -175
  312. package/scripts/tuning/macos.sh +0 -46
  313. package/templates/projects/molecule/README.md +0 -7
  314. package/templates/projects/molecule/converge.yml +0 -7
  315. package/templates/projects/molecule/molecule.yml +0 -16
  316. package/templates/projects/packer/README.md +0 -15
  317. package/templates/projects/packer/main.pkr.hcl +0 -15
@@ -1,48 +0,0 @@
1
- vim.g.mapleader = " "
2
- vim.g.maplocalleader = " "
3
-
4
- local opt = vim.opt
5
-
6
- opt.autowrite = true -- Enable auto write
7
- opt.clipboard = "unnamedplus" -- Sync with system clipboard
8
- opt.completeopt = "menu,menuone,noselect"
9
- opt.conceallevel = 2 -- Hide * markup for bold and italic
10
- opt.confirm = true -- Confirm to save changes before exiting modified buffer
11
- opt.cursorline = true -- Enable highlighting of the current line
12
- opt.expandtab = true -- Use spaces instead of tabs
13
- opt.formatoptions = "jcroqlnt" -- tcqj
14
- opt.grepformat = "%f:%l:%c:%m"
15
- opt.grepprg = "rg --vimgrep"
16
- opt.ignorecase = true -- Ignore case
17
- opt.inccommand = "nosplit" -- preview incremental substitute
18
- opt.laststatus = 3 -- global statusline
19
- opt.list = true -- Show some invisible characters (tabs...
20
- opt.mouse = "a" -- Enable mouse mode
21
- opt.number = true -- Print line number
22
- opt.pumblend = 10 -- Popup blend
23
- opt.pumheight = 10 -- Maximum number of entries in a popup
24
- opt.relativenumber = true -- Relative line numbers
25
- opt.scrolloff = 4 -- Lines of context
26
- opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp", "folds" }
27
- opt.shiftround = true -- Round indent
28
- opt.shiftwidth = 2 -- Size of an indent
29
- opt.shortmess:append({ W = true, I = true, c = true, C = true })
30
- opt.showmode = false -- Dont show mode since we have a statusline
31
- opt.sidescrolloff = 8 -- Columns of context
32
- opt.signcolumn = "yes" -- Always show the signcolumn
33
- opt.smartcase = true -- Don't ignore case with capitals
34
- opt.smartindent = true -- Insert indents automatically
35
- opt.spelllang = { "en" }
36
- opt.splitbelow = true -- Put new windows below current
37
- opt.splitkeep = "screen"
38
- opt.splitright = true -- Put new windows right of current
39
- opt.tabstop = 2 -- Number of spaces tabs count for
40
- opt.termguicolors = true -- True color support
41
- opt.timeoutlen = 300
42
- opt.undofile = true
43
- opt.undolevels = 10000
44
- opt.updatetime = 200 -- Save swap file and trigger CursorHold
45
- opt.virtualedit = "block" -- Allow cursor to move where there is no text in visual block mode
46
- opt.wildmode = "longest:full,full" -- Command-line completion mode
47
- opt.winminwidth = 5 -- Minimum window width
48
- opt.wrap = false -- Disable line wrap
@@ -1,234 +0,0 @@
1
- return {
2
- -- Treesitter (Syntax Highlighting)
3
- {
4
- "nvim-treesitter/nvim-treesitter",
5
- build = ":TSUpdate",
6
- event = { "BufReadPost", "BufNewFile" },
7
- config = function()
8
- -- Use correct module path (configs)
9
- local ok, ts_config = pcall(require, "nvim-treesitter.configs")
10
- if not ok then
11
- -- Treesitter not installed yet, skip configuration
12
- return
13
- end
14
-
15
- ts_config.setup({
16
- ensure_installed = {
17
- "python",
18
- "go",
19
- "markdown",
20
- "json",
21
- "toml",
22
- "yaml",
23
- "bash",
24
- "vim",
25
- "regex",
26
- "lua",
27
- "rust",
28
- "dockerfile",
29
- },
30
- highlight = { enable = true },
31
- indent = { enable = true },
32
- })
33
- end,
34
- },
35
-
36
- -- Neotest (Testing)
37
- {
38
- "nvim-neotest/neotest",
39
- dependencies = {
40
- "nvim-neotest/nvim-nio",
41
- "nvim-neotest/neotest-python",
42
- "nvim-neotest/neotest-plenary",
43
- "nvim-lua/plenary.nvim",
44
- "antoinemadec/FixCursorHold.nvim",
45
- "nvim-treesitter/nvim-treesitter",
46
- },
47
- config = function()
48
- require("neotest").setup({
49
- adapters = {
50
- require("neotest-python")({
51
- dap = { justMyCode = false },
52
- runner = "pytest",
53
- args = { "--cov", "--cov-report=term-missing", "-v" },
54
- }),
55
- require("neotest-plenary"),
56
- },
57
- })
58
- -- Keymaps
59
- vim.keymap.set("n", "<leader>tn", function()
60
- require("neotest").run.run()
61
- end, { desc = "Run nearest test" })
62
- vim.keymap.set("n", "<leader>tf", function()
63
- require("neotest").run.run(vim.fn.expand("%"))
64
- end, { desc = "Run test file" })
65
- vim.keymap.set("n", "<leader>ts", function()
66
- require("neotest").summary.toggle()
67
- end, { desc = "Toggle test summary" })
68
- vim.keymap.set("n", "<leader>to", function()
69
- require("neotest").output.open({ enter = true })
70
- end, { desc = "Show test output" })
71
- end,
72
- },
73
-
74
- -- Debugging (DAP + Python)
75
- {
76
- "mfussenegger/nvim-dap",
77
- dependencies = {
78
- "rcarriga/nvim-dap-ui",
79
- "mfussenegger/nvim-dap-python",
80
- "nvim-neotest/nvim-nio",
81
- "theHamsta/nvim-dap-virtual-text",
82
- "jbyuki/one-small-step-for-vimkind",
83
- },
84
- config = function()
85
- local dap = require("dap")
86
- local dapui = require("dapui")
87
- local dap_python = require("dap-python")
88
- local osv = require("osv")
89
-
90
- -- Enhanced UI setup
91
- dapui.setup()
92
- require("nvim-dap-virtual-text").setup()
93
-
94
- -- Python path resolution (Robust for Venv/System)
95
- -- 1. Check for VIRTUAL_ENV env var
96
- -- 2. Check for .venv directory
97
- -- 3. Fallback to specific masonry path (if installed) or system python
98
- local venv_path = os.getenv("VIRTUAL_ENV")
99
- local python_path
100
- if venv_path then
101
- python_path = venv_path .. "/bin/python"
102
- else
103
- python_path = vim.fn.exepath("python3") or vim.fn.exepath("python")
104
- end
105
-
106
- dap_python.setup(python_path)
107
- dap_python.test_runner = "pytest"
108
-
109
- -- Auto-open UI
110
- dap.listeners.after.event_initialized["dapui_config"] = function()
111
- dapui.open()
112
- end
113
- dap.listeners.before.event_terminated["dapui_config"] = function()
114
- dapui.close()
115
- end
116
- dap.listeners.before.event_exited["dapui_config"] = function()
117
- dapui.close()
118
- end
119
-
120
- -- Local Lua debugger (OSV)
121
- osv.setup({ port = 8086 })
122
- dap.adapters.nlua = function(callback, config)
123
- callback({ type = "server", host = config.host or "127.0.0.1", port = config.port or 8086 })
124
- end
125
- dap.configurations.lua = {
126
- {
127
- type = "nlua",
128
- request = "attach",
129
- name = "Attach to running Neovim instance",
130
- },
131
- }
132
-
133
- -- Signs
134
- vim.fn.sign_define("DapBreakpoint", { text = "B", texthl = "DapBreakpoint", linehl = "", numhl = "" })
135
- vim.fn.sign_define(
136
- "DapStopped",
137
- { text = "S", texthl = "DapStopped", linehl = "DapStopped", numhl = "DapStopped" }
138
- )
139
- end,
140
- },
141
-
142
- -- Debugging (DAP + Go)
143
- {
144
- "leoluz/nvim-dap-go",
145
- ft = { "go" },
146
- dependencies = { "mfussenegger/nvim-dap" },
147
- config = function()
148
- require("dap-go").setup()
149
- end,
150
- },
151
-
152
- -- Linting (Nvim-Lint)
153
- {
154
- "mfussenegger/nvim-lint",
155
- event = { "BufReadPre", "BufNewFile" },
156
- config = function()
157
- local lint = require("lint")
158
- lint.linters_by_ft = {
159
- python = { "mypy", "codespell" },
160
- markdown = { "codespell" },
161
- dockerfile = { "hadolint" },
162
- }
163
-
164
- vim.api.nvim_create_autocmd({ "BufWritePost", "BufEnter", "InsertLeave" }, {
165
- group = vim.api.nvim_create_augroup("lint", { clear = true }),
166
- callback = function()
167
- lint.try_lint()
168
- end,
169
- })
170
- end,
171
- },
172
-
173
- -- Neogen (Docstrings)
174
- {
175
- "danymat/neogen",
176
- dependencies = "nvim-treesitter/nvim-treesitter",
177
- cmd = "Neogen",
178
- keys = {
179
- { "<leader>nd", ":Neogen<CR>", desc = "Generate Docstring" },
180
- },
181
- config = function()
182
- require("neogen").setup({ snippet_engine = "luasnip" })
183
- end,
184
- },
185
-
186
- -- Telescope (Fuzzy Finder)
187
- {
188
- "nvim-telescope/telescope.nvim",
189
- dependencies = { "nvim-telescope/telescope-fzf-native.nvim", "ThePrimeagen/git-worktree.nvim" },
190
- cmd = "Telescope",
191
- config = function()
192
- local telescope = require("telescope")
193
- telescope.setup({
194
- defaults = {
195
- file_ignore_patterns = { ".git/", "node_modules", ".venv" },
196
- layout_strategy = "horizontal",
197
- layout_config = { prompt_position = "top" },
198
- sorting_strategy = "ascending",
199
- winblend = 0,
200
- },
201
- pickers = {
202
- find_files = { hidden = true },
203
- },
204
- })
205
- pcall(telescope.load_extension, "fzf")
206
- pcall(telescope.load_extension, "git_worktree")
207
- end,
208
- },
209
- { "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
210
- {
211
- "ThePrimeagen/git-worktree.nvim",
212
- config = function()
213
- require("git-worktree").setup()
214
- end,
215
- },
216
-
217
- -- Venv Selector (Python Env Management)
218
- {
219
- "linux-cultist/venv-selector.nvim",
220
- branch = "main", -- Explicitly switch back to main
221
- dependencies = {
222
- "neovim/nvim-lspconfig",
223
- "nvim-telescope/telescope.nvim",
224
- "mfussenegger/nvim-dap-python",
225
- },
226
- cmd = "VenvSelect",
227
- keys = { { "<leader>cv", "<cmd>VenvSelect<cr>", desc = "Select VirtualEnv" } },
228
- opts = {
229
- name = { "venv", ".venv", "env", ".env" },
230
- auto_refresh = false, -- Disable auto-scan to prevent home dir timeouts
231
- dap_enabled = true,
232
- },
233
- },
234
- }
@@ -1,201 +0,0 @@
1
- -- Debug Adapter Protocol (DAP) Configuration
2
-
3
- -- Layout constants
4
- local SIDEBAR_WIDTH = 40
5
- local BOTTOM_PANEL_HEIGHT = 10
6
- local QUARTER_SIZE = 0.25
7
- local HALF_SIZE = 0.5
8
- local DEFAULT_DEV_SERVER_PORT = 3000
9
-
10
- return {
11
- -- DAP Core
12
- {
13
- "mfussenegger/nvim-dap",
14
- dependencies = {
15
- "williamboman/mason.nvim",
16
- "jay-babu/mason-nvim-dap.nvim",
17
- "rcarriga/nvim-dap-ui",
18
- "nvim-neotest/nvim-nio",
19
- },
20
- keys = {
21
- {
22
- "<leader>db",
23
- function()
24
- require("dap").toggle_breakpoint()
25
- end,
26
- desc = "Toggle Breakpoint",
27
- },
28
- {
29
- "<leader>dc",
30
- function()
31
- require("dap").continue()
32
- end,
33
- desc = "Continue",
34
- },
35
- {
36
- "<leader>di",
37
- function()
38
- require("dap").step_into()
39
- end,
40
- desc = "Step Into",
41
- },
42
- {
43
- "<leader>do",
44
- function()
45
- require("dap").step_over()
46
- end,
47
- desc = "Step Over",
48
- },
49
- {
50
- "<leader>dO",
51
- function()
52
- require("dap").step_out()
53
- end,
54
- desc = "Step Out",
55
- },
56
- {
57
- "<leader>dr",
58
- function()
59
- require("dap").repl.open()
60
- end,
61
- desc = "Open REPL",
62
- },
63
- {
64
- "<leader>dl",
65
- function()
66
- require("dap").run_last()
67
- end,
68
- desc = "Run Last",
69
- },
70
- {
71
- "<leader>dt",
72
- function()
73
- require("dap").terminate()
74
- end,
75
- desc = "Terminate",
76
- },
77
- {
78
- "<leader>du",
79
- function()
80
- require("dapui").toggle()
81
- end,
82
- desc = "Toggle DAP UI",
83
- },
84
- },
85
- config = function()
86
- local dap = require("dap")
87
-
88
- -- JavaScript/TypeScript debugging with js-debug-adapter
89
- -- Requires: MasonInstall js-debug-adapter
90
- local js_debug_path = vim.fn.stdpath("data") .. "/mason/packages/js-debug-adapter/js-debug/src/dapDebugServer.js"
91
-
92
- for _, adapter in ipairs({ "pwa-node", "pwa-chrome", "node-terminal" }) do
93
- dap.adapters[adapter] = {
94
- type = "server",
95
- host = "localhost",
96
- port = "${port}",
97
- executable = {
98
- command = "node",
99
- args = { js_debug_path, "${port}" },
100
- },
101
- }
102
- end
103
-
104
- -- JavaScript configurations
105
- for _, lang in ipairs({ "javascript", "typescript", "javascriptreact", "typescriptreact" }) do
106
- dap.configurations[lang] = {
107
- {
108
- type = "pwa-node",
109
- request = "launch",
110
- name = "Launch file",
111
- program = "${file}",
112
- cwd = "${workspaceFolder}",
113
- },
114
- {
115
- type = "pwa-node",
116
- request = "attach",
117
- name = "Attach to process",
118
- processId = require("dap.utils").pick_process,
119
- cwd = "${workspaceFolder}",
120
- },
121
- {
122
- type = "pwa-chrome",
123
- request = "launch",
124
- name = "Launch Chrome",
125
- url = "http://localhost:" .. DEFAULT_DEV_SERVER_PORT,
126
- webRoot = "${workspaceFolder}",
127
- },
128
- }
129
- end
130
- end,
131
- },
132
-
133
- -- Mason DAP integration
134
- {
135
- "jay-babu/mason-nvim-dap.nvim",
136
- dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap" },
137
- opts = {
138
- ensure_installed = { "js-debug-adapter" },
139
- automatic_installation = true,
140
- handlers = {},
141
- },
142
- },
143
-
144
- -- DAP UI
145
- {
146
- "rcarriga/nvim-dap-ui",
147
- dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" },
148
- config = function()
149
- local dap = require("dap")
150
- local dapui = require("dapui")
151
-
152
- dapui.setup({
153
- icons = { expanded = "▾", collapsed = "▸", current_frame = "▸" },
154
- mappings = {
155
- expand = { "<CR>", "<2-LeftMouse>" },
156
- open = "o",
157
- remove = "d",
158
- edit = "e",
159
- repl = "r",
160
- toggle = "t",
161
- },
162
- layouts = {
163
- {
164
- elements = {
165
- { id = "scopes", size = QUARTER_SIZE },
166
- { id = "breakpoints", size = QUARTER_SIZE },
167
- { id = "stacks", size = QUARTER_SIZE },
168
- { id = "watches", size = QUARTER_SIZE },
169
- },
170
- size = SIDEBAR_WIDTH,
171
- position = "left",
172
- },
173
- {
174
- elements = {
175
- { id = "repl", size = HALF_SIZE },
176
- { id = "console", size = HALF_SIZE },
177
- },
178
- size = BOTTOM_PANEL_HEIGHT,
179
- position = "bottom",
180
- },
181
- },
182
- floating = {
183
- border = "rounded",
184
- mappings = { close = { "q", "<Esc>" } },
185
- },
186
- })
187
-
188
- -- Auto open/close DAP UI on debug session lifecycle
189
- local function open_dapui()
190
- dapui.open()
191
- end
192
- local function close_dapui()
193
- dapui.close()
194
- end
195
-
196
- dap.listeners.after.event_initialized["dapui_config"] = open_dapui
197
- dap.listeners.before.event_terminated["dapui_config"] = close_dapui
198
- dap.listeners.before.event_exited["dapui_config"] = close_dapui
199
- end,
200
- },
201
- }
@@ -1,59 +0,0 @@
1
- return {
2
- "akinsho/toggleterm.nvim",
3
- version = "*",
4
- config = function()
5
- require("toggleterm").setup({
6
- -- Automatically close the terminal when the process exits.
7
- close_on_exit = true,
8
-
9
- -- Terminal window open mode (options: "vertical", "horizontal", "tab", "float").
10
- direction = "float",
11
-
12
- -- Options for the floating terminal window.
13
- float_opts = {
14
- -- Border style for the floating window.
15
- border = "curved",
16
- -- Set the floating window width to 80% of the current Neovim window width.
17
- width = math.floor(vim.o.columns * 0.8),
18
- -- Set the floating window height to 80% of the current Neovim window height.
19
- height = math.floor(vim.o.lines * 0.8),
20
- },
21
-
22
- -- Hide line numbers in the terminal buffer.
23
- hide_numbers = true,
24
-
25
- -- Default key mapping to toggle the terminal.
26
- open_mapping = [[<C-\>]],
27
-
28
- -- Persist the terminal size across sessions.
29
- persist_size = true,
30
-
31
- -- List of filetypes where shading is disabled (empty table means no exclusions).
32
- shade_filetypes = {},
33
-
34
- -- Enable shading for the terminal window.
35
- shade_terminals = true,
36
-
37
- -- Shading factor for the terminal (the higher the value, the darker it becomes).
38
- shading_factor = 2,
39
-
40
- -- Start the terminal in insert mode.
41
- start_in_insert = true,
42
-
43
- -- Use the default shell as defined by Neovim.
44
- shell = vim.o.shell,
45
-
46
- -- Set the terminal size (this can also be a function returning a size).
47
- size = 20,
48
- })
49
-
50
- -- Custom keybindings for toggling a floating terminal:
51
- -- <leader>ft toggles the floating terminal.
52
- vim.api.nvim_set_keymap(
53
- "n", -- Mode: normal
54
- "<leader>ft", -- Key combination
55
- "<Cmd>ToggleTerm direction=float<CR>", -- Command to execute
56
- { noremap = true, silent = true } -- Options: no recursive mapping, silent execution
57
- )
58
- end,
59
- }
@@ -1,9 +0,0 @@
1
- return {
2
- {
3
- "ThePrimeagen/git-worktree.nvim",
4
- dependencies = { "nvim-lua/plenary.nvim" },
5
- config = function()
6
- require("git-worktree").setup({})
7
- end,
8
- },
9
- }