-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.lua.example
More file actions
170 lines (143 loc) · 8.46 KB
/
Copy pathinit.lua.example
File metadata and controls
170 lines (143 loc) · 8.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
-- noethervim-template-version: 3
-- NoetherVim user config template.
-- Copy this file to ~/.config/nvim/init.lua
--
-- Quick start (see README):
--
-- mkdir -p ~/.config/nvim
-- cp /path/to/NoetherVim/init.lua.example ~/.config/nvim/init.lua
-- nvim
--
-- This file is just the lazy.nvim bootstrap. All personal configuration
-- (colorscheme, statusline style, bundle settings, etc.) lives in
-- lua/user/config.lua -- see :help noethervim-user-config. The fastest
-- way to scaffold one is `:NoetherVim templates` (also bound to
-- SearchLeader+ct, default <Space>ct): pick a template, press <C-y>,
-- and the file is stamped into lua/user/ with a diff prompt first.
-- To debug without your overrides: NOETHERVIM_NO_USER=1 nvim
-- ── 1. Leaders -- must come before lazy.nvim loads ──────────────────────────
-- Plugins register keymaps at spec-load time using these globals.
vim.g.mapleader = "\\" -- <Leader> -- global actions
vim.g.maplocalleader = "," -- <LocalLeader> -- filetype actions
vim.g.mapsearchleader = "<space>" -- search/navigation prefix (default: <Space>)
-- Opt-out of the Snacks dashboard shown on empty-arg startup.
-- Uncomment to open straight into an empty buffer instead.
-- vim.g.noethervim_dashboard = false
-- ── 2. Bootstrap lazy.nvim and NoetherVim ─────────────────────────────────
-- Both must be on the rtp BEFORE lazy.setup() so that
-- `import = "noethervim.plugins"` resolves on first launch.
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.uv.fs_stat(lazypath) then
vim.fn.system({
"git", "clone", "--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
local noethervimpath = vim.fn.stdpath("data") .. "/lazy/NoetherVim"
if not vim.uv.fs_stat(noethervimpath) then
vim.fn.system({
"git", "clone", "--filter=blob:none",
"https://github.com/Chiarandini/NoetherVim.git",
noethervimpath,
})
end
vim.opt.rtp:prepend(noethervimpath)
-- Route lazy.nvim's startup notifications through `vim.notify` after
-- VimEnter so a stale bundle import in the spec below -- or any other
-- error lazy emits while resolving the spec -- surfaces as a snacks
-- toast instead of an ErrorMsg on the cmdline (which fires the
-- hit-enter prompt on top of the dashboard).
require("noethervim.util").buffer_notify()
-- ── 3. Start NoetherVim ────────────────────────────────────────────────────
require("lazy").setup({
spec = {
-- ── Distro core ──────────────────────────────────────────────────
-- Installs NoetherVim as a lazy plugin and imports all core plugins.
-- Update with :Lazy update (or :Lazy sync).
{
"Chiarandini/NoetherVim",
import = "noethervim.plugins",
-- All user-facing options (colorscheme, statusline, bundle
-- settings, etc.) live in lua/user/config.lua. This entry
-- is just the lazy spec; setup() reads the user config itself.
config = function() require("noethervim").setup() end,
},
-- ── Bundles (opt-in) ─────────────────────────────────────────────
-- Uncomment the bundles you want. Categories are filesystem-derived:
-- lua/noethervim/bundles/<category>/<name>.lua.
-- languages/
-- { import = "noethervim.bundles.languages.rust" }, -- rustaceanvim (beyond plain rust-analyzer)
-- { import = "noethervim.bundles.languages.go" }, -- go.nvim (test gen, struct tags, fill struct)
-- { import = "noethervim.bundles.languages.java" }, -- nvim-jdtls (proper Java LSP support)
-- { import = "noethervim.bundles.languages.python" }, -- venv-selector (virtual environment switching)
-- { import = "noethervim.bundles.languages.latex" }, -- VimTeX + snippets/textobjects
-- { import = "noethervim.bundles.languages.latex-zotero" }, -- Zotero citation picker (needs Zotero + Better BibTeX)
-- { import = "noethervim.bundles.languages.web-dev" }, -- JS/TS template string + color preview
-- tools/
-- { import = "noethervim.bundles.tools.debug" }, -- nvim-dap + UI (Python, Lua, JS/TS, Go)
-- { import = "noethervim.bundles.tools.test" }, -- neotest test runner
-- { import = "noethervim.bundles.tools.repl" }, -- iron.nvim REPL
-- { import = "noethervim.bundles.tools.task-runner" }, -- overseer + compiler.nvim
-- { import = "noethervim.bundles.tools.database" }, -- vim-dadbod + UI + SQL completion
-- { import = "noethervim.bundles.tools.http" }, -- kulala.nvim HTTP/REST client
-- { import = "noethervim.bundles.tools.git" }, -- Fugit2, diffview, git-conflict
-- { import = "noethervim.bundles.tools.ai" }, -- CodeCompanion (needs ANTHROPIC_API_KEY)
-- { import = "noethervim.bundles.tools.smart-actions" }, -- AI code actions on grA (Claude Code / Anthropic)
-- { import = "noethervim.bundles.tools.refactoring" }, -- extract function/variable/block
-- { import = "noethervim.bundles.tools.octo" }, -- GitHub PRs/issues (needs gh CLI)
-- { import = "noethervim.bundles.tools.nvim-dev" }, -- StartupTime, Luapad, vimls (config-dev)
-- navigation/
-- { import = "noethervim.bundles.navigation.harpoon" }, -- fast per-project file marks
-- { import = "noethervim.bundles.navigation.flash" }, -- enhanced f/t and / motions
-- lighter alternative: drop yorickpeterse/nvim-jump into user/plugins/
-- { import = "noethervim.bundles.navigation.projects" }, -- project switcher (snacks.picker)
-- { import = "noethervim.bundles.navigation.editing-extras" }, -- argmark + comment boxes
-- { import = "noethervim.bundles.navigation.yanky" }, -- yank ring (<C-p>/<C-n> after paste)
-- writing/
-- { import = "noethervim.bundles.writing.markdown" }, -- render, preview, tables, math, image paste
-- { import = "noethervim.bundles.writing.obsidian" }, -- Obsidian vault (also enable markdown bundle)
-- { import = "noethervim.bundles.writing.neorg" }, -- .norg wiki / note-taking
-- terminal/
-- { import = "noethervim.bundles.terminal.better-term" }, -- named terminal windows
-- { import = "noethervim.bundles.terminal.tmux" }, -- tmux window naming
-- { import = "noethervim.bundles.terminal.remote-dev" }, -- distant.nvim SSH editing
-- ui/
-- { import = "noethervim.bundles.ui.colorscheme" }, -- 10 popular themes + persistence
-- { import = "noethervim.bundles.ui.eye-candy" }, -- animations, scrollbar, block display
-- { import = "noethervim.bundles.ui.minimap" }, -- sidebar minimap
-- { import = "noethervim.bundles.ui.helpview" }, -- rendered :help pages
-- { import = "noethervim.bundles.ui.tableaux" }, -- noethervim-tableaux -- animated math dashboard scenes
-- practice/
-- { import = "noethervim.bundles.practice.training" }, -- vim-be-good, speedtyper, typr
-- { import = "noethervim.bundles.practice.presentation" }, -- presenting.nvim + showkeys
-- { import = "noethervim.bundles.practice.hardtime" }, -- motion habit trainer
-- ── Your personal plugins & plugin overrides ─────────────────────
-- Drop .lua files in lua/user/plugins/ to add new plugins or
-- override existing plugin opts. See templates/user/plugins/example.lua.
-- Skipped when NOETHERVIM_NO_USER is set, vim.g.noethervim_no_user is
-- true, or lua/user/plugins/ doesn't exist.
not vim.env.NOETHERVIM_NO_USER
and not vim.g.noethervim_no_user
and vim.uv.fs_stat(vim.fn.stdpath("config") .. "/lua/user/plugins")
and { import = "user.plugins" } or nil,
},
-- lazy-lock.json stores the version-number of each plugin.
-- It lives in your config dir (the default).
-- :Lazy update pins versions there; :Lazy restore reverts to them.
install = { colorscheme = { "gruvbox", "habamax" } },
checker = { enabled = true },
performance = {
rtp = {
-- Keep the user config dir on the rtp after lazy's reset,
-- so that user.plugins and user.configs are importable.
paths = { vim.fn.stdpath("config") },
disabled_plugins = {
"gzip", "matchit", "matchparen", "netrwPlugin",
"tarPlugin", "tutor", "zipPlugin",
},
},
},
})