-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.lua.example
More file actions
181 lines (154 loc) · 9.24 KB
/
Copy pathinit.lua.example
File metadata and controls
181 lines (154 loc) · 9.24 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
171
172
173
174
175
176
177
178
179
180
181
-- 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
-- Feel free to delete any comments if they feel like they overcrowd your init.lua
-- ── 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 (i.e. plain
-- `nvim` rather than `nvim {file}`). Uncomment to open straight into an
-- empty buffer instead.
-- vim.g.noethervim_dashboard = false
-- Enabling a bundle is how you ask for the tools it drives: the formatter,
-- linter and debug adapter it names are fetched through Mason, the same way
-- its language server already was. Uncomment to decline, and install those
-- yourself (see :help noethervim-auto-install).
-- vim.g.noethervim_auto_install = false
-- ── 2. Bootstrap lazy.nvim and NoetherVim ─────────────────────────────────
-- Clone both so they are on the runtime path before lazy.setup() runs.
-- Nothing else can install lazy.nvim, and NoetherVim has to be present for
-- the require() a few lines below to work on a 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)
-- Show startup errors (e.g. a bundle import below that no longer exists) as
-- a notification after startup, rather than a cmdline error that stops on a
-- "Press ENTER" prompt.
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. Each import string maps to a
-- file inside the cloned distribution:
-- noethervim.bundles.<category>.<name>
-- -> ~/.local/share/nvim/lazy/NoetherVim/lua/noethervim/bundles/<category>/<name>.lua
-- Press SearchLeader + cb (default <space>cb) to browse bundles and
-- their descriptions; <CR> on an entry opens that file.
-- languages/
-- { import = "noethervim.bundles.languages.c-cpp" }, -- clangd + codelldb (C and C++)
-- { 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.web-dev" }, -- JS/TS template string + color preview
-- tools/
-- { import = "noethervim.bundles.tools.debug" }, -- nvim-dap + UI (language adapters come from the language bundles)
-- { import = "noethervim.bundles.tools.test" }, -- neotest (language adapters come from the language bundles)
-- { 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.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
-- { import = "noethervim.bundles.writing.wrapsearch" }, -- make / and ? match across hard wraps
-- { import = "noethervim.bundles.writing.zotero" }, -- Zotero citation picker (tex, md, quarto, typst, org)
-- 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" }, -- 9 themes beyond the shipped gruvbox
-- { 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",
},
},
},
})