Compare commits

...

11 Commits

9 changed files with 221 additions and 45 deletions

View File

@ -15,5 +15,24 @@ return {
warn = "",
hint = "",
info = ""
}
},
comments = {
fix = '',
todo = '',
hack = '',
warn = '',
perf = '',
note = '',
test = ''
},
folds = {
open = '',
closed = ''
},
folder = {
closed = '',
open = '',
empty = ''
},
file = ''
}

View File

@ -9,6 +9,8 @@
--
-- ==============================================
local icons = require'config.icons'
--
-- neovim global options
-- ..............................................
@ -31,6 +33,27 @@ opt.wrap = false
opt.smoothscroll = true
opt.swapfile = false -- disable swapfiles because they are fucking garbage
opt.smartindent = true
opt.confirm = true
opt.number = true
opt.foldcolumn = "1"
opt.foldlevel = 99
opt.foldlevelstart = 99
opt.foldenable = true
opt.fillchars = {
foldopen = icons.folds.open,
foldclose = icons.folds.closed,
fold = " ",
foldsep = " ",
diff = "",
eob = " ",
horiz = "",
horizup = "",
horizdown = "",
vert = "",
vertleft = "",
vertright = "",
verthoriz = "",
}
--
-- VIM global options

View File

@ -0,0 +1,26 @@
--
-- Soothing pastel theme for Neovim.
--
-- Source: https://github.com/catppuccin/nvim
-- ..............................................
--
-- Author: Sven Vogel
-- Created: 24.11.2024
-- Edited: 24.11.2024
--
-- ==============================================
return {
{
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
config = function(opts)
require('catppuccin').setup(opts)
-- setup must be called before loading
vim.cmd.colorscheme "catppuccin"
end
}
}

View File

@ -16,10 +16,38 @@ return {
main = "ibl",
---@module "ibl"
---@type ibl.config
opts = {
scope = {
enabled = true
config = function(opts)
local highlight = {
"RainbowRed",
"RainbowYellow",
"RainbowBlue",
"RainbowOrange",
"RainbowGreen",
"RainbowViolet",
"RainbowCyan",
}
}
local hooks = require "ibl.hooks"
-- create the highlight groups in the highlight setup hook, so they are reset
-- every time the colorscheme changes
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" })
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" })
vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" })
vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" })
vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" })
vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" })
vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" })
end)
vim.g.rainbow_delimiters = { highlight = highlight }
require("ibl").setup {
scope = {
enabled = true,
highlight = highlight
}
}
hooks.register(hooks.type.SCOPE_HIGHLIGHT, hooks.builtin.scope_highlight_from_extmark)
end
}
}

View File

@ -10,7 +10,8 @@
--
-- ==============================================
ui = require 'config.ui'
local ui = require 'config.ui'
local icons = require 'config.icons'
return {
"nvim-neo-tree/neo-tree.nvim",
@ -20,48 +21,17 @@ return {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
--
-- List language server diagnostics
--
-- Source: https://github.com/mrbjarksen/neo-tree-diagnostics.nvim
-- ..............................................
--
'mrbjarksen/neo-tree-diagnostics.nvim'
},
cmd = "Neotree",
opts = {
popup_border_style = ui.border,
sources = {
"filesystem",
"document_symbols",
"git_status",
"diagnostics"
},
source_selector = {
winbar = true,
statusline = false,
sources = {
{
source = "filesystem",
display_name = " 󰉓 Files "
},
{
source = "document_symbols",
display_name = "  Symbols "
},
{
source = "diagnostics",
display_name = "  Diagnostics "
}
},
},
diagnostics = {
follow_current_file = { -- May also be set to `true` or `false`
enabled = true, -- This will find and focus the file in the active buffer every time
follow_current_file = { -- May also be set to `true` or `false`
enabled = true, -- This will find and focus the file in the active buffer every time
always_focus_file = false, -- Focus the followed file, even when focus is currently on a diagnostic item belonging to that file
expand_followed = true, -- Ensure the node of the followed file is expanded
leave_dirs_open = true, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
leave_files_open = true, -- `false` closes auto expanded files, such as with `:Neotree reveal`
expand_followed = true, -- Ensure the node of the followed file is expanded
leave_dirs_open = true, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
leave_files_open = true, -- `false` closes auto expanded files, such as with `:Neotree reveal`
}
},
filesystem = {
@ -90,9 +60,15 @@ return {
indent_marker = "",
last_indent_marker = "",
with_expanders = true, -- if nil and file nesting is enabled, will enable expanders
expander_collapsed = "",
expander_expanded = "",
expander_collapsed = icons.folds.open,
expander_expanded = icons.folds.closed,
expander_highlight = "NeoTreeExpander",
},
icon = {
folder_closed = icons.folder.closed,
folder_open = icons.folder.open,
folder_empty = icons.folder.empty,
default = icons.file
}
}
}

View File

@ -41,7 +41,7 @@ return {
source = "if_many",
-- this will set set the prefix to a function that returns the diagnostics icon based on the severity
-- this only works on a recent 0.10.0 build. Will be set to "●" when not supported
prefix = "icons"
prefix = ""
},
signs = {
text = {

29
lua/plugins/nvim-ufo.lua Normal file
View File

@ -0,0 +1,29 @@
--
-- High performance and modern folds.
--
-- Source: https://github.com/kevinhwang91/nvim-ufo
-- ..............................................
--
-- Author: Sven Vogel
-- Created: 20.11.2024
-- Edited: 20.11.2024
--
-- ==============================================
return {
{
"kevinhwang91/nvim-ufo",
event = {
"LspAttach",
},
dependencies = {
"kevinhwang91/promise-async",
},
opts = {
-- register treesitter as source for scopes
provider_selector = function(_, _, _)
return { "treesitter", "indent" }
end
}
}
}

View File

@ -0,0 +1,23 @@
--
-- Neovim plugin to animate the cursor with a smear effect in all terminals.
--
-- Source: https://github.com/sphamba/smear-cursor.nvim
-- ..............................................
--
-- Author: Sven Vogel
-- Created: 09.12.2024
-- Edited: 09.12.2024
--
-- ==============================================
return {
{
"sphamba/smear-cursor.nvim",
opts = {
stiffness = 0.7, -- 0.6 [0, 1]
trailing_stiffness = 0.4, -- 0.3 [0, 1]
distance_stop_animating = 0.4, -- 0.1 > 0
hide_target_hack = true, -- true boolean
}
}
}

52
lua/plugins/statuscol.lua Normal file
View File

@ -0,0 +1,52 @@
--
-- Status column with click handlers
--
-- Source: https://github.com/luukvbaal/statuscol.nvim
-- ..............................................
--
-- Author: Sven Vogel
-- Created: 07.11.2024
-- Edited: 07.11.2024
--
-- ==============================================
return {
{
'luukvbaal/statuscol.nvim',
lazy = true,
event = {
"BufEnter",
"LspAttach"
},
config = function()
local builtin = require("statuscol.builtin")
require("statuscol").setup({
setopt = true,
ft_ignore = {
"neo-tree"
},
segments = {
{
sign = { namespace = { "diagnostic/signs" }, maxwidth = 2, auto = true },
click = "v:lua.ScSa"
},
-- line numbers
{
text = { builtin.lnumfunc, " " },
click = "v:lua.ScLa",
},
-- folds
{
text = { builtin.foldfunc },
click = "v:lua.ScFa"
},
-- git signs
{
sign = { namespace = { "gitsigns" } },
click = "v:lua.ScSa"
}
}
})
end
}
}