lvim/config.lua
2023-09-23 12:18:37 -04:00

263 lines
8.4 KiB
Lua

-- Read the docs: https://www.lunarvim.org/docs/configuration
-- Example configs: https://github.com/LunarVim/starter.lvim
-- Video Tutorials: https://www.youtube.com/watch?v=sFA9kX-Ud_c&list=PLhoH5vyxr6QqGu0i7tt_XoVK9v-KvZ3m6
-- Forum: https://www.reddit.com/r/lunarvim/
-- Discord: https://discord.com/invite/Xb9B4Ny
require("user.c")
require("user.python")
require("user.latex")
lvim.builtin.telescope.on_config_done = function(telescope)
pcall(telescope.load_extension, "fzy_native")
pcall(telescope.load_extension, "media_files")
pcall(telescope.load_extension, "frecency")
pcall(telescope.load_extension, "neoclip")
-- any other extensions loading
end
lvim.transparent_window = true
lvim.colorscheme = "rose-pine-moon"
vim.opt.rnu = true -- relative numbers
vim.opt.cb = "unnamedplus"
vim.opt.nf = "alpha,octal,hex,bin,unsigned"
vim.opt.si = true
vim.opt.backup = false
vim.opt.cc = "80"
vim.opt.textwidth = 0
vim.opt.wrap = true
vim.opt.linebreak = true
vim.opt.breakindent = true
lvim.builtin.nvimtree.active = false -- NOTE: using neo-tree
lvim.builtin.indentlines.active = true
lvim.builtin.alpha.dashboard.section.header.val = {
[[ ;,_ , ]],
[[ _uP~"b d"u, ]],
[[ dP' "b ,d" "o ]],
[[ d" , `b d"' "b ]],
[[ l] [ " `l, d" lb ]],
[[ Ol ? " "b`"=uoqo,_ "l ]],
[[ ,dBb "b "b, `"~~TObup,_ ]],
[[ ,d" (db.`" "" "tbc,_ `~"Yuu,_ ]],
[[ .d" l`T' '= ~ `""Yu, ]],
[[ ,dO` gP, `u, b,_ "b7 ]],
[[ d?' ,d" l, `"b,_ `~b "1 ]],
[[ ,8i' dl `l ,ggQOV",dbgq,._" `l lb ]],
[[ .df' (O, " ,ggQY"~ , @@@@@d"bd~ `b "1 ]],
[[.df' `" -=@QgpOY"" (b @@@@P db `Lp"b, ]],
[[.d( _ "ko "=d_,Q` ,_ " "b, ]],
[[Ql . `"qo,._ "tQo,_`""bo ;tb, `"b, ]],
[[qQ |L ~"QQQgggc,_.,dObc,opooO `"~~";. __,7, ]],
[[qp t\io,_ `~"TOOggQV"""" _,dg,_ =PIQHib. ]],
[[`qp `Q["tQQQo,_ ,pl{QOP"' 7AFR` ]],
[[ ` `tb '""tQQQg,_ p" "b ` .;-.`Vl' ]],
[[ "Yb `"tQOOo,__ _,edb ` .__ /`/'| |b;=;.__ ]],
[[ `"tQQQOOOOP""`"\QV;qQObob"`-._`\_~~-._ ]],
[[ """" ._ / | |oP"\_ ~\ ~\_~\ ]],
[[ `~"\ic,qggddOOP"| | ~\ `\~-._ ]],
[[ ,qP`"""|" | `\ `; `\ `\ ]],
[[ _ _,p" | | `\`; | | ]],
[[ "boo,._dP" `\_ `\ `\| `\ ; ]],
[[ `"7tY~' `\ `\ `|_ | ]],
[[ `~\ | ]],
}
vim.o.timeoutlen = 250
vim.opt.ts = 2
vim.opt.sw = 0
vim.opt.et = false
lvim.keys.normal_mode["<A-e>"] = ":NeoTreeFocusToggle<CR>"
lvim.keys.normal_mode["<C-h>"] = ":BufferLineCyclePrev<CR>"
lvim.keys.normal_mode["<C-l>"] = ":BufferLineCycleNext<CR>"
lvim.keys.normal_mode["<C-s>"] = ":set spell!<CR>"
lvim.keys.normal_mode["<C-c>"] = ":Telescope neoclip<CR>"
lvim.keys.normal_mode["j"] = "gj"
lvim.keys.normal_mode["k"] = "gk"
lvim.builtin.which_key.mappings["r"] = {
":RnvimrToggle<CR>", "Rnvimr"
}
lvim.builtin.which_key.mappings["e"] = {
"<Plug>(leap-forward-to)", "Leap Forward"
}
lvim.builtin.which_key.mappings["E"] = {
"<Plug>(leap-backward-to)", "Leap Backward"
}
lvim.format_on_save = false
vim.diagnostic.config({ virtual_text = true })
lvim.builtin.treesitter.highlight.enable = true
-- auto install treesitter parsers
lvim.builtin.treesitter.ensure_installed = { "cpp", "c", "python", "latex" }
-- Additional Plugins
table.insert(lvim.plugins, {
--colorschemes
"lunarvim/colorschemes",
"kvrohit/mellow.nvim",
"p00f/clangd_extensions.nvim",
"catppuccin/nvim",
"rose-pine/neovim",
"kyazdani42/blue-moon",
"neanias/everforest-nvim",
"kdheepak/monochrome.nvim",
"FrenzyExists/aquarium-vim",
"rebelot/kanagawa.nvim",
--functional
{
"nvim-neo-tree/neo-tree.nvim",
branch = "v2.x",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
config = function()
require("neo-tree").setup({
close_if_last_window = true,
window = {
width = 30,
},
buffers = {
follow_current_file = true,
},
filesystem = {
follow_current_file = true,
filtered_items = {
hide_dotfiles = false,
hide_gitignored = false,
hide_by_name = {
"node_modules"
},
never_show = {
".DS_Store",
"thumbs.db"
},
},
},
})
end
},
"SirVer/ultisnips",
{
"ggandor/leap.nvim",
name = "leap",
config = function()
require("leap").add_default_mappings()
end,
},
"mrjones2014/nvim-ts-rainbow",
{
"nacro90/numb.nvim",
event = "BufRead",
config = function()
require("numb").setup {
show_numbers = true, -- Enable 'number' for the window while peeking
show_cursorline = true, -- Enable 'cursorline' for the window while peeking
}
end,
},
{
"kevinhwang91/rnvimr",
cmd = "RnvimrToggle",
config = function()
vim.g.rnvimr_draw_border = 1
vim.g.rnvimr_pick_enable = 1
vim.g.rnvimr_bw_enable = 1
end,
},
"ChristianChiarulli/swenv.nvim",
"stevearc/dressing.nvim",
"mfussenegger/nvim-dap-python",
"nvim-neotest/neotest",
"nvim-neotest/neotest-python",
"lervag/vimtex",
"KeitaNakamura/tex-conceal.vim",
{
"npxbr/glow.nvim",
ft = {"markdown"}
},
{
"kevinhwang91/nvim-bqf",
event = { "BufRead", "BufNew" },
config = function()
require("bqf").setup({
auto_enable = true,
preview = {
win_height = 12,
win_vheight = 12,
delay_syntax = 80,
border_chars = { "", "", "", "", "", "", "", "", "" },
},
func_map = {
vsplit = "",
ptogglemode = "z,",
stoggleup = "",
},
filter = {
fzf = {
action_for = { ["ctrl-s"] = "split" },
extra_opts = { "--bind", "ctrl-o:toggle-all", "--prompt", "> " },
},
},
})
end,
},
{
"windwp/nvim-spectre",
event = "BufRead",
config = function()
require("spectre").setup()
end,
},
{
"tpope/vim-surround",
-- make sure to change the value of `timeoutlen` if it's not triggering correctly, see https://github.com/tpope/vim-surround/issues/117
-- setup = function()
-- vim.o.timeoutlen = 500
-- end
},
{
"norcalli/nvim-colorizer.lua",
config = function()
require("colorizer").setup({ "css", "scss", "html", "javascript" }, {
RGB = true, -- #RGB hex codes
RRGGBB = true, -- #RRGGBB hex codes
RRGGBBAA = true, -- #RRGGBBAA hex codes
rgb_fn = true, -- CSS rgb() and rgba() functions
hsl_fn = true, -- CSS hsl() and hsla() functions
css = true, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn
})
end,
},
{
"nvim-telescope/telescope-fzy-native.nvim",
build = "make",
event = "BufRead",
},
"nvim-telescope/telescope-media-files.nvim",
{
"AckslD/nvim-neoclip.lua",
requires = {
{'kkharji/sqlite.lua', module = 'sqlite'},
{'nvim-telescope/telescope.nvim'},
},
config = function()
require('neoclip').setup()
end,
},
{
"nvim-telescope/telescope-frecency.nvim",
config = function()
-- require("telescope").load_extension "frecency"
end,
dependencies = { "kkharji/sqlite.lua" },
}
})
vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "clangd" })