@heyitsiveen/dotfiles 1.0.0

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 (94) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +176 -0
  3. package/dist/index.mjs +1445 -0
  4. package/dotfiles/macos/.claude/CLAUDE.md +13 -0
  5. package/dotfiles/macos/.claude/settings.json +38 -0
  6. package/dotfiles/macos/.claude.json +32 -0
  7. package/dotfiles/macos/.config/bat/config +27 -0
  8. package/dotfiles/macos/.config/bat/themes/Vercel.tmTheme +308 -0
  9. package/dotfiles/macos/.config/bat/themes/Vesper.tmTheme +357 -0
  10. package/dotfiles/macos/.config/btop/btop.conf +272 -0
  11. package/dotfiles/macos/.config/btop/themes/Solarized_Dark.theme +89 -0
  12. package/dotfiles/macos/.config/btop/themes/Vercel.theme +89 -0
  13. package/dotfiles/macos/.config/btop/themes/Vesper.theme +89 -0
  14. package/dotfiles/macos/.config/fish/conf.d/00-platform.fish +19 -0
  15. package/dotfiles/macos/.config/fish/conf.d/10-homebrew.fish +33 -0
  16. package/dotfiles/macos/.config/fish/conf.d/20-environment.fish +12 -0
  17. package/dotfiles/macos/.config/fish/conf.d/30-aliases.fish +52 -0
  18. package/dotfiles/macos/.config/fish/conf.d/40-fzf.fish +120 -0
  19. package/dotfiles/macos/.config/fish/conf.d/50-tools.fish +51 -0
  20. package/dotfiles/macos/.config/fish/conf.d/60-tmux.fish +19 -0
  21. package/dotfiles/macos/.config/fish/conf.d/70-tide.fish +31 -0
  22. package/dotfiles/macos/.config/fish/config.fish +30 -0
  23. package/dotfiles/macos/.config/fish/functions/_tide_palette_heyitsiveen.fish +101 -0
  24. package/dotfiles/macos/.config/fish/functions/_tide_palette_vercel.fish +94 -0
  25. package/dotfiles/macos/.config/fish/functions/_tide_palette_vesper.fish +100 -0
  26. package/dotfiles/macos/.config/fish/functions/backup.fish +43 -0
  27. package/dotfiles/macos/.config/fish/functions/fish_greeting.fish +5 -0
  28. package/dotfiles/macos/.config/fish/functions/reload-fish.fish +4 -0
  29. package/dotfiles/macos/.config/fish/functions/tide_palette.fish +21 -0
  30. package/dotfiles/macos/.config/ghostty/config +46 -0
  31. package/dotfiles/macos/.config/nvim/.neoconf.json +15 -0
  32. package/dotfiles/macos/.config/nvim/init.lua +2 -0
  33. package/dotfiles/macos/.config/nvim/lazy-lock.json +42 -0
  34. package/dotfiles/macos/.config/nvim/lazyvim.json +11 -0
  35. package/dotfiles/macos/.config/nvim/lua/config/autocmds.lua +8 -0
  36. package/dotfiles/macos/.config/nvim/lua/config/keymaps.lua +21 -0
  37. package/dotfiles/macos/.config/nvim/lua/config/lazy.lua +72 -0
  38. package/dotfiles/macos/.config/nvim/lua/config/options.lua +13 -0
  39. package/dotfiles/macos/.config/nvim/lua/plugins/colorscheme.lua +12 -0
  40. package/dotfiles/macos/.config/nvim/lua/plugins/editor.lua +366 -0
  41. package/dotfiles/macos/.config/nvim/lua/plugins/example.lua +197 -0
  42. package/dotfiles/macos/.config/nvim/lua/plugins/mason.lua +11 -0
  43. package/dotfiles/macos/.config/nvim/lua/plugins/oxc.lua +64 -0
  44. package/dotfiles/macos/.config/nvim/lua/plugins/ui.lua +123 -0
  45. package/dotfiles/macos/.config/nvim/stylua.toml +3 -0
  46. package/dotfiles/macos/.config/ripgrep/config +9 -0
  47. package/dotfiles/macos/.config/tmux/STATUSBAR REFERENCE.md +1183 -0
  48. package/dotfiles/macos/.config/tmux/keybinds.conf +124 -0
  49. package/dotfiles/macos/.config/tmux/notifications.conf +39 -0
  50. package/dotfiles/macos/.config/tmux/pane.conf +33 -0
  51. package/dotfiles/macos/.config/tmux/popup-window.conf +27 -0
  52. package/dotfiles/macos/.config/tmux/statusbar.conf +281 -0
  53. package/dotfiles/macos/.config/tmux/tmux.conf +94 -0
  54. package/dotfiles/macos/.config/wezterm/wezterm.lua +143 -0
  55. package/dotfiles/windows/.claude/CLAUDE.md +13 -0
  56. package/dotfiles/windows/.claude/settings.json +38 -0
  57. package/dotfiles/windows/.claude.json +32 -0
  58. package/dotfiles/windows/.config/bat/config +27 -0
  59. package/dotfiles/windows/.config/bat/themes/Vercel.tmTheme +308 -0
  60. package/dotfiles/windows/.config/bat/themes/Vesper.tmTheme +357 -0
  61. package/dotfiles/windows/.config/btop/btop.conf +251 -0
  62. package/dotfiles/windows/.config/btop/themes/Solarized_Dark.theme +89 -0
  63. package/dotfiles/windows/.config/btop/themes/Vercel.theme +89 -0
  64. package/dotfiles/windows/.config/btop/themes/Vesper.theme +89 -0
  65. package/dotfiles/windows/.config/nvim/.neoconf.json +15 -0
  66. package/dotfiles/windows/.config/nvim/init.lua +2 -0
  67. package/dotfiles/windows/.config/nvim/lazy-lock.json +42 -0
  68. package/dotfiles/windows/.config/nvim/lazyvim.json +11 -0
  69. package/dotfiles/windows/.config/nvim/lua/config/autocmds.lua +8 -0
  70. package/dotfiles/windows/.config/nvim/lua/config/keymaps.lua +21 -0
  71. package/dotfiles/windows/.config/nvim/lua/config/lazy.lua +72 -0
  72. package/dotfiles/windows/.config/nvim/lua/config/options.lua +13 -0
  73. package/dotfiles/windows/.config/nvim/lua/plugins/colorscheme.lua +12 -0
  74. package/dotfiles/windows/.config/nvim/lua/plugins/editor.lua +366 -0
  75. package/dotfiles/windows/.config/nvim/lua/plugins/example.lua +197 -0
  76. package/dotfiles/windows/.config/nvim/lua/plugins/mason.lua +11 -0
  77. package/dotfiles/windows/.config/nvim/lua/plugins/oxc.lua +64 -0
  78. package/dotfiles/windows/.config/nvim/lua/plugins/ui.lua +123 -0
  79. package/dotfiles/windows/.config/nvim/stylua.toml +3 -0
  80. package/dotfiles/windows/.config/omp-themes/solarized-dark.omp.toml +197 -0
  81. package/dotfiles/windows/.config/omp-themes/vercel.omp.toml +197 -0
  82. package/dotfiles/windows/.config/omp-themes/vesper.omp.toml +197 -0
  83. package/dotfiles/windows/.config/ripgrep/config +9 -0
  84. package/dotfiles/windows/.config/wezterm/wezterm.lua +88 -0
  85. package/dotfiles/windows/powershell/Profile.ps1 +36 -0
  86. package/dotfiles/windows/powershell/functions/Switch-PromptPalette.ps1 +37 -0
  87. package/dotfiles/windows/powershell/functions/backup.ps1 +39 -0
  88. package/dotfiles/windows/powershell/functions/reload-shell.ps1 +8 -0
  89. package/dotfiles/windows/powershell/modules/aliases.ps1 +44 -0
  90. package/dotfiles/windows/powershell/modules/environment.ps1 +13 -0
  91. package/dotfiles/windows/powershell/modules/fzf.ps1 +82 -0
  92. package/dotfiles/windows/powershell/modules/prompt.ps1 +25 -0
  93. package/dotfiles/windows/powershell/modules/tools.ps1 +52 -0
  94. package/package.json +72 -0
@@ -0,0 +1,366 @@
1
+ return {
2
+ {
3
+ "folke/snacks.nvim",
4
+ keys = {
5
+ -- Find Plugin File
6
+ {
7
+ "<leader>fP",
8
+ function()
9
+ Snacks.picker.files({
10
+ cwd = require("lazy.core.config").options.root,
11
+ })
12
+ end,
13
+ desc = "Find Plugin File",
14
+ },
15
+ -- Find files (respects .gitignore, shows hidden)
16
+ {
17
+ ";f",
18
+ function()
19
+ Snacks.picker.files({
20
+ hidden = true,
21
+ })
22
+ end,
23
+ desc = "Lists files in your current working directory, respects .gitignore",
24
+ },
25
+ -- Live grep
26
+ {
27
+ ";r",
28
+ function()
29
+ Snacks.picker.grep({
30
+ hidden = true,
31
+ })
32
+ end,
33
+ desc = "Search for a string in your current working directory",
34
+ },
35
+ -- Buffers
36
+ {
37
+ "\\\\",
38
+ function()
39
+ Snacks.picker.buffers()
40
+ end,
41
+ desc = "Lists open buffers",
42
+ },
43
+ -- Help tags
44
+ {
45
+ ";t",
46
+ function()
47
+ Snacks.picker.help()
48
+ end,
49
+ desc = "Lists available help tags",
50
+ },
51
+ -- Resume
52
+ {
53
+ ";;",
54
+ function()
55
+ Snacks.picker.resume()
56
+ end,
57
+ desc = "Resume the previous picker",
58
+ },
59
+ -- Diagnostics
60
+ {
61
+ ";e",
62
+ function()
63
+ Snacks.picker.diagnostics()
64
+ end,
65
+ desc = "Lists Diagnostics for all open buffers",
66
+ },
67
+ -- Treesitter symbols
68
+ {
69
+ ";s",
70
+ function()
71
+ Snacks.picker.treesitter()
72
+ end,
73
+ desc = "Lists Function names, variables, from Treesitter",
74
+ },
75
+ -- LSP incoming calls
76
+ {
77
+ ";c",
78
+ function()
79
+ Snacks.picker.lsp_incoming_calls()
80
+ end,
81
+ desc = "Lists LSP incoming calls for word under the cursor",
82
+ },
83
+ -- File browser (snacks explorer)
84
+ -- {
85
+ -- "sf",
86
+ -- function()
87
+ -- Snacks.picker.explorer({
88
+ -- cwd = vim.fn.expand("%:p:h"),
89
+ -- hidden = true,
90
+ -- ignored = false,
91
+ -- layout = {
92
+ -- preset = "dropdown",
93
+ -- },
94
+ -- })
95
+ -- end,
96
+ -- desc = "Open File Browser with the path of the current buffer",
97
+ -- },
98
+ },
99
+ },
100
+
101
+ -- File browser (telescope)
102
+ -- We used telescope for the file browser because it's customizable
103
+ {
104
+ "nvim-telescope/telescope.nvim",
105
+ dependencies = {
106
+ "nvim-telescope/telescope-file-browser.nvim",
107
+ },
108
+ keys = {
109
+ {
110
+ "sf",
111
+ function()
112
+ local telescope = require("telescope")
113
+
114
+ local function telescope_buffer_dir()
115
+ return vim.fn.expand("%:p:h")
116
+ end
117
+
118
+ telescope.extensions.file_browser.file_browser({
119
+ path = "%:p:h",
120
+ cwd = telescope_buffer_dir(),
121
+ respect_gitignore = false,
122
+ hidden = true,
123
+ grouped = true,
124
+ previewer = false,
125
+ initial_mode = "normal",
126
+ layout_config = { height = 40 },
127
+ winblend = 10,
128
+ })
129
+ end,
130
+ desc = "Open File Browser with the path of the current buffer",
131
+ },
132
+ },
133
+ config = function(_, opts)
134
+ local telescope = require("telescope")
135
+ local actions = require("telescope.actions")
136
+ local fb_actions = telescope.extensions.file_browser.actions
137
+
138
+ opts = opts or {}
139
+ opts.extensions = {
140
+ file_browser = {
141
+ theme = "dropdown",
142
+ hijack_netrw = true,
143
+ mappings = {
144
+ ["n"] = {
145
+ ["N"] = fb_actions.create,
146
+ ["h"] = fb_actions.goto_parent_dir,
147
+ ["/"] = function()
148
+ vim.cmd("startinsert")
149
+ end,
150
+ ["<C-u>"] = function(prompt_bufnr)
151
+ for i = 1, 10 do
152
+ actions.move_selection_previous(prompt_bufnr)
153
+ end
154
+ end,
155
+ ["<C-d>"] = function(prompt_bufnr)
156
+ for i = 1, 10 do
157
+ actions.move_selection_next(prompt_bufnr)
158
+ end
159
+ end,
160
+ ["<PageUp>"] = actions.preview_scrolling_up,
161
+ ["<PageDown>"] = actions.preview_scrolling_down,
162
+ },
163
+ },
164
+ },
165
+ }
166
+
167
+ telescope.setup(opts)
168
+ telescope.load_extension("file_browser")
169
+ end,
170
+ },
171
+ }
172
+
173
+ -- return {
174
+ -- {
175
+ -- "nvim-telescope/telescope.nvim",
176
+ -- dependencies = {
177
+ -- {
178
+ -- "nvim-telescope/telescope-fzf-native.nvim",
179
+ -- build = "make",
180
+ -- },
181
+ -- "nvim-telescope/telescope-file-browser.nvim",
182
+ -- },
183
+ -- opts = {
184
+ -- defaults = {
185
+ -- wrap_results = true,
186
+ -- layout_strategy = "horizontal",
187
+ -- layout_config = { prompt_position = "top" },
188
+ -- sorting_strategy = "ascending",
189
+ -- winblend = 0,
190
+ -- mappings = {
191
+ -- n = {},
192
+ -- },
193
+ -- },
194
+ -- pickers = {
195
+ -- diagnostics = {
196
+ -- theme = "ivy",
197
+ -- initial_mode = "normal",
198
+ -- layout_config = {
199
+ -- preview_cutoff = 9999,
200
+ -- },
201
+ -- },
202
+ -- },
203
+ -- },
204
+ -- keys = {
205
+ -- {
206
+ -- "<leader>fP",
207
+ -- function()
208
+ -- require("telescope.builtin").find_files({
209
+ -- cwd = require("lazy.core.config").options.root,
210
+ -- })
211
+ -- end,
212
+ -- desc = "Find Plugin File",
213
+ -- },
214
+ -- {
215
+ -- ";f",
216
+ -- function()
217
+ -- local builtin = require("telescope.builtin")
218
+ -- builtin.find_files({
219
+ -- no_ignore = false,
220
+ -- hidden = true,
221
+ -- })
222
+ -- end,
223
+ -- desc = "Lists files in your current working directory, respects .gitignore",
224
+ -- },
225
+ -- {
226
+ -- ";r",
227
+ -- function()
228
+ -- local builtin = require("telescope.builtin")
229
+ -- builtin.live_grep({
230
+ -- additional_args = { "--hidden" },
231
+ -- })
232
+ -- end,
233
+ -- desc = "Search for a string in your current working directory",
234
+ -- },
235
+ --
236
+ -- Live Grep with Preview similar to Snacks Picker Grep
237
+ -- {
238
+ -- ";r",
239
+ -- function()
240
+ -- local builtin = require("telescope.builtin")
241
+ -- builtin.live_grep({
242
+ -- additional_args = { "--hidden" },
243
+ -- layout_strategy = "vertical",
244
+ -- layout_config = {
245
+ -- vertical = {
246
+ -- prompt_position = "top",
247
+ -- mirror = true, -- flip: prompt top, preview bottom
248
+ -- },
249
+ -- preview_cutoff = 1,
250
+ -- },
251
+ -- sorting_strategy = "ascending",
252
+ -- })
253
+ -- end,
254
+ -- desc = "Search for a string in your current working directory",
255
+ -- },
256
+ --
257
+ -- {
258
+ -- "\\\\",
259
+ -- function()
260
+ -- local builtin = require("telescope.builtin")
261
+ -- builtin.buffers()
262
+ -- end,
263
+ -- desc = "Lists open buffers",
264
+ -- },
265
+ -- {
266
+ -- ";t",
267
+ -- function()
268
+ -- local builtin = require("telescope.builtin")
269
+ -- builtin.help_tags()
270
+ -- end,
271
+ -- desc = "Lists available help tags",
272
+ -- },
273
+ -- {
274
+ -- ";;",
275
+ -- function()
276
+ -- local builtin = require("telescope.builtin")
277
+ -- builtin.resume()
278
+ -- end,
279
+ -- desc = "Resume the previous telescope picker",
280
+ -- },
281
+ -- {
282
+ -- ";e",
283
+ -- function()
284
+ -- local builtin = require("telescope.builtin")
285
+ -- builtin.diagnostics()
286
+ -- end,
287
+ -- desc = "Lists Diagnostics for all open buffers",
288
+ -- },
289
+ -- {
290
+ -- ";s",
291
+ -- function()
292
+ -- local builtin = require("telescope.builtin")
293
+ -- builtin.treesitter()
294
+ -- end,
295
+ -- desc = "Lists Function names, variables, from Treesitter",
296
+ -- },
297
+ -- {
298
+ -- ";c",
299
+ -- function()
300
+ -- local builtin = require("telescope.builtin")
301
+ -- builtin.lsp_incoming_calls()
302
+ -- end,
303
+ -- desc = "Lists LSP incoming calls for word under the cursor",
304
+ -- },
305
+ -- {
306
+ -- "sf",
307
+ -- function()
308
+ -- local telescope = require("telescope")
309
+ --
310
+ -- local function telescope_buffer_dir()
311
+ -- return vim.fn.expand("%:p:h")
312
+ -- end
313
+ --
314
+ -- telescope.extensions.file_browser.file_browser({
315
+ -- path = "%:p:h",
316
+ -- cwd = telescope_buffer_dir(),
317
+ -- respect_gitignore = false,
318
+ -- hidden = true,
319
+ -- grouped = true,
320
+ -- previewer = false,
321
+ -- initial_mode = "normal",
322
+ -- layout_config = { height = 40 },
323
+ -- })
324
+ -- end,
325
+ -- desc = "Open File Browser with the path of the current buffer",
326
+ -- },
327
+ -- },
328
+ -- config = function(_, opts)
329
+ -- local telescope = require("telescope")
330
+ -- local actions = require("telescope.actions")
331
+ -- local fb_actions = telescope.extensions.file_browser.actions
332
+ --
333
+ -- opts.extensions = {
334
+ -- file_browser = {
335
+ -- theme = "dropdown",
336
+ -- hijack_netrw = true,
337
+ -- mappings = {
338
+ -- ["n"] = {
339
+ -- ["N"] = fb_actions.create,
340
+ -- ["h"] = fb_actions.goto_parent_dir,
341
+ -- ["/"] = function()
342
+ -- vim.cmd("startinsert")
343
+ -- end,
344
+ -- ["<C-u>"] = function(prompt_bufnr)
345
+ -- for i = 1, 10 do
346
+ -- actions.move_selection_previous(prompt_bufnr)
347
+ -- end
348
+ -- end,
349
+ -- ["<C-d>"] = function(prompt_bufnr)
350
+ -- for i = 1, 10 do
351
+ -- actions.move_selection_next(prompt_bufnr)
352
+ -- end
353
+ -- end,
354
+ -- ["<PageUp>"] = actions.preview_scrolling_up,
355
+ -- ["<PageDown>"] = actions.preview_scrolling_down,
356
+ -- },
357
+ -- },
358
+ -- },
359
+ -- }
360
+ --
361
+ -- telescope.setup(opts)
362
+ -- telescope.load_extension("fzf")
363
+ -- telescope.load_extension("file_browser")
364
+ -- end,
365
+ -- },
366
+ -- }
@@ -0,0 +1,197 @@
1
+ -- since this is just an example spec, don't actually load anything here and return an empty spec
2
+ -- stylua: ignore
3
+ if true then return {} end
4
+
5
+ -- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
6
+ --
7
+ -- In your plugin files, you can:
8
+ -- * add extra plugins
9
+ -- * disable/enabled LazyVim plugins
10
+ -- * override the configuration of LazyVim plugins
11
+ return {
12
+ -- add gruvbox
13
+ { "ellisonleao/gruvbox.nvim" },
14
+
15
+ -- Configure LazyVim to load gruvbox
16
+ {
17
+ "LazyVim/LazyVim",
18
+ opts = {
19
+ colorscheme = "gruvbox",
20
+ },
21
+ },
22
+
23
+ -- change trouble config
24
+ {
25
+ "folke/trouble.nvim",
26
+ -- opts will be merged with the parent spec
27
+ opts = { use_diagnostic_signs = true },
28
+ },
29
+
30
+ -- disable trouble
31
+ { "folke/trouble.nvim", enabled = false },
32
+
33
+ -- override nvim-cmp and add cmp-emoji
34
+ {
35
+ "hrsh7th/nvim-cmp",
36
+ dependencies = { "hrsh7th/cmp-emoji" },
37
+ ---@param opts cmp.ConfigSchema
38
+ opts = function(_, opts)
39
+ table.insert(opts.sources, { name = "emoji" })
40
+ end,
41
+ },
42
+
43
+ -- change some telescope options and a keymap to browse plugin files
44
+ {
45
+ "nvim-telescope/telescope.nvim",
46
+ keys = {
47
+ -- add a keymap to browse plugin files
48
+ -- stylua: ignore
49
+ {
50
+ "<leader>fp",
51
+ function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
52
+ desc = "Find Plugin File",
53
+ },
54
+ },
55
+ -- change some options
56
+ opts = {
57
+ defaults = {
58
+ layout_strategy = "horizontal",
59
+ layout_config = { prompt_position = "top" },
60
+ sorting_strategy = "ascending",
61
+ winblend = 0,
62
+ },
63
+ },
64
+ },
65
+
66
+ -- add pyright to lspconfig
67
+ {
68
+ "neovim/nvim-lspconfig",
69
+ ---@class PluginLspOpts
70
+ opts = {
71
+ ---@type lspconfig.options
72
+ servers = {
73
+ -- pyright will be automatically installed with mason and loaded with lspconfig
74
+ pyright = {},
75
+ },
76
+ },
77
+ },
78
+
79
+ -- add tsserver and setup with typescript.nvim instead of lspconfig
80
+ {
81
+ "neovim/nvim-lspconfig",
82
+ dependencies = {
83
+ "jose-elias-alvarez/typescript.nvim",
84
+ init = function()
85
+ require("lazyvim.util").lsp.on_attach(function(_, buffer)
86
+ -- stylua: ignore
87
+ vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
88
+ vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
89
+ end)
90
+ end,
91
+ },
92
+ ---@class PluginLspOpts
93
+ opts = {
94
+ ---@type lspconfig.options
95
+ servers = {
96
+ -- tsserver will be automatically installed with mason and loaded with lspconfig
97
+ tsserver = {},
98
+ },
99
+ -- you can do any additional lsp server setup here
100
+ -- return true if you don't want this server to be setup with lspconfig
101
+ ---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
102
+ setup = {
103
+ -- example to setup with typescript.nvim
104
+ tsserver = function(_, opts)
105
+ require("typescript").setup({ server = opts })
106
+ return true
107
+ end,
108
+ -- Specify * to use this function as a fallback for any server
109
+ -- ["*"] = function(server, opts) end,
110
+ },
111
+ },
112
+ },
113
+
114
+ -- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
115
+ -- treesitter, mason and typescript.nvim. So instead of the above, you can use:
116
+ { import = "lazyvim.plugins.extras.lang.typescript" },
117
+
118
+ -- add more treesitter parsers
119
+ {
120
+ "nvim-treesitter/nvim-treesitter",
121
+ opts = {
122
+ ensure_installed = {
123
+ "bash",
124
+ "html",
125
+ "javascript",
126
+ "json",
127
+ "lua",
128
+ "markdown",
129
+ "markdown_inline",
130
+ "python",
131
+ "query",
132
+ "regex",
133
+ "tsx",
134
+ "typescript",
135
+ "vim",
136
+ "yaml",
137
+ },
138
+ },
139
+ },
140
+
141
+ -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
142
+ -- would overwrite `ensure_installed` with the new value.
143
+ -- If you'd rather extend the default config, use the code below instead:
144
+ {
145
+ "nvim-treesitter/nvim-treesitter",
146
+ opts = function(_, opts)
147
+ -- add tsx and treesitter
148
+ vim.list_extend(opts.ensure_installed, {
149
+ "tsx",
150
+ "typescript",
151
+ })
152
+ end,
153
+ },
154
+
155
+ -- the opts function can also be used to change the default opts:
156
+ {
157
+ "nvim-lualine/lualine.nvim",
158
+ event = "VeryLazy",
159
+ opts = function(_, opts)
160
+ table.insert(opts.sections.lualine_x, {
161
+ function()
162
+ return "😄"
163
+ end,
164
+ })
165
+ end,
166
+ },
167
+
168
+ -- or you can return new options to override all the defaults
169
+ {
170
+ "nvim-lualine/lualine.nvim",
171
+ event = "VeryLazy",
172
+ opts = function()
173
+ return {
174
+ --[[add your custom lualine config here]]
175
+ }
176
+ end,
177
+ },
178
+
179
+ -- use mini.starter instead of alpha
180
+ { import = "lazyvim.plugins.extras.ui.mini-starter" },
181
+
182
+ -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
183
+ { import = "lazyvim.plugins.extras.lang.json" },
184
+
185
+ -- add any tools you want to have installed below
186
+ {
187
+ "williamboman/mason.nvim",
188
+ opts = {
189
+ ensure_installed = {
190
+ "stylua",
191
+ "shellcheck",
192
+ "shfmt",
193
+ "flake8",
194
+ },
195
+ },
196
+ },
197
+ }
@@ -0,0 +1,11 @@
1
+ return {
2
+ {
3
+ "mason-org/mason.nvim",
4
+ opts = {
5
+ ensure_installed = {
6
+ "oxfmt",
7
+ "oxlint",
8
+ },
9
+ },
10
+ },
11
+ }
@@ -0,0 +1,64 @@
1
+ return {
2
+ {
3
+ "neovim/nvim-lspconfig",
4
+ opts = function()
5
+ -- oxlint: linting only (JS/TS)
6
+ vim.lsp.config("oxlint", {
7
+ on_attach = function(client, bufnr)
8
+ -- auto fix on save
9
+ vim.api.nvim_create_autocmd("BufWritePre", {
10
+ buffer = bufnr,
11
+ callback = function()
12
+ client:request_sync("workspace/executeCommand", {
13
+ command = "oxc.fixAll",
14
+ arguments = { { uri = vim.uri_from_bufnr(bufnr) } },
15
+ })
16
+ end,
17
+ })
18
+ end,
19
+ })
20
+
21
+ vim.lsp.enable("oxlint")
22
+ vim.lsp.enable("oxfmt")
23
+ end,
24
+ },
25
+
26
+ -- oxfmt via conform for ALL supported filetypes
27
+ {
28
+ "stevearc/conform.nvim",
29
+ opts = {
30
+ formatters_by_ft = {
31
+ -- JS/TS (also handled by oxfmt LSP above)
32
+ javascript = { "oxfmt" },
33
+ javascriptreact = { "oxfmt" },
34
+ typescript = { "oxfmt" },
35
+ typescriptreact = { "oxfmt" },
36
+ vue = { "oxfmt" },
37
+
38
+ -- Data
39
+ json = { "oxfmt" },
40
+ jsonc = { "oxfmt" },
41
+ json5 = { "oxfmt" },
42
+ yaml = { "oxfmt" },
43
+ toml = { "oxfmt" },
44
+
45
+ -- Web
46
+ html = { "oxfmt" },
47
+ css = { "oxfmt" },
48
+ scss = { "oxfmt" },
49
+ less = { "oxfmt" },
50
+
51
+ -- Docs
52
+ markdown = { "oxfmt" },
53
+ mdx = { "oxfmt" },
54
+
55
+ -- Query
56
+ graphql = { "oxfmt" },
57
+ },
58
+ format_on_save = {
59
+ timeout_ms = 500,
60
+ lsp_format = "fallback",
61
+ },
62
+ },
63
+ },
64
+ }