263 lines
8.4 KiB
Lua
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" })
|