-
Notifications
You must be signed in to change notification settings - Fork 0
/
init.lua
121 lines (108 loc) · 11.5 KB
/
init.lua
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
-- Copyright (C) 2024 Chris Laprade ([email protected])
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU Affero General Public License as
-- published by the Free Software Foundation, either version 3 of the
-- License, or (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU Affero General Public License for more details.
--
-- You should have received a copy of the GNU Affero General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
--
-- ██████╗ ██████╗ ██████╗ ████████╗██╗███████╗███████╗████████╗
-- ██╔══██╗██╔═══██╗██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝╚══██╔══╝
-- ██████╔╝██║ ██║██║ ██║ ██║ ██║█████╗ ███████╗ ██
-- ██╔══██╗██║ ██║██║ ██║ ██║ ██║██╔══╝ ╚════██║ ██║
-- ██║ ██║╚██████╔╝╚██████╔╝ ██║ ██║███████╗███████║ ██║
-- ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝
--
-- ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗
-- ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║
-- ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║
-- ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║
-- ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║
-- ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝
--
-- ,l; c,
-- .:ooool' loo:.
-- .,oooooooo:. looooc, /VVVVVVVV\++++ /VVVVVVVV\
-- ll:,loooooool, looooool \VVVVVVVV/++++++\VVVVVVVV/
-- llll,;ooooooooc. looooooo |VVVVVV|++++++++/VVVVV/'
-- lllllc,coooooooo; looooooo |VVVVVV|++++++/VVVVV/'
-- lllllll;,loooooool' looooooo +|VVVVVV|++++/VVVVV/'+
-- lllllllc .:oooooooo:. looooooo +++|VVVVVV|++/VVVVV/'+++++
-- lllllllc 'loooooool,:ooooooo +++++|VVVVVV|/VVV___++++++++++
-- lllllllc ;ooooooooc,cooooo +++|VVVVVVVVVV/##/ +_+_+_+
-- lllllllc .coooooooo;;looo +|VVVVVVVVV___ +/#_#,#_#,\
-- lllllllc ,loooooool,:ol |VVVVVVV//##/+/#/+/#/'/#/
-- 'cllllc .:oooooooo;. |VVVVV/'+/#/+/#/+/#/ /#/
-- .;llc .loooo:. |VVV/'++/#/+/#/ /#/ /#/
-- ,; ;l; 'V/' /##//##//##//###/
--
-- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ Rootiest NVim ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ Configuration ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-- The rootiest NeoVim configuration!
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ROOTIEST ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Rootiest Configuration
require('config.rootiest').setup() -- Set up Rootiest options
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ LAZY ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Load Lazy package manager and plugins
require('config.lazy') -- Bootstrap lazy.nvim and initialize plugins
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ROCKS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Load LuaRocks package manager and plugins
require('config.rocks') -- Bootstrap LuaRocks and initialize plugins
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ PROFILING ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Load profiling package
require('config.profile') -- Set profiling options with environment variables:
-- ╭─────────────────────────────────────────────────────────────────────╮
-- │ NVIM_PROFILE=1 Start profiling at startup │
-- │ NVIM_PROFILE_MODULE="lualine" Set profiling target module │
-- │ NVIM_PROFILE_MODULE="*" Set profiling to all modules │
-- │ │
-- │ ex: NVIM_PROFILE=1 NVIM_PROFILE_MODULE="lualine" nvim │
-- │ :lua require("profile").start("lualine") │
-- ╰─────────────────────────────────────────────────────────────────────╯
-- ╔═════════════════════════════════════════════════════════╗
-- ║ CONFIGURATION STRUCTURE ║
-- ╚═════════════════════════════════════════════════════════╝
-- ╭─────────────────────────────────────────────────────────────────────╮
-- │ Configuration modules are organized into categories: │
-- │ - Options │
-- │ - Keymaps │
-- │ - Autocommands │
-- │ - Utility functions │
-- │ - Plugins │
-- │ - Commands │
-- │ - Dashboards │
-- │ - Types │
-- │ - Dependencies │
-- ╰─────────────────────────────────────────────────────────────────────╯
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ OPTIONS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Neovim options are configured in the lua/config/options.lua file
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ KEYMAPS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Custom keymaps and plugin keys are configured in the lua/data/keys.lua file
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ AUTOCOMMANDS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Custom autocommands are configured in the lua/config/autocmds.lua file
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ UTILITY FUNCTIONS ━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Utility functions can be found in the lua/data/func.lua file
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ PLUGINS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Plugin specs are defined in the lua/config/plugins.lua file
-- Plugin keys, cmds, dependencies, and opts/config tables are
-- defined in the lua/data/*.lua files. This allows all plugin configurations
-- to be defined in a centralized location and keeps them organised.
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ COMMANDS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Plugin cmds are configured in the lua/data/cmds.lua file
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ DASHBOARDS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Dashboard configurations can be found in the lua/data/dash.lua file
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ TYPES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Plugin configuration tables are configured in the lua/data/types.lua file
---━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ DEPENDENCIES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Plugin depenendencies are configured in the lua/data/deps.lua file