kickstart.nvim/lua/plugins/core/ui.lua

94 lines
2.3 KiB
Lua

-- ========================================================================
-- UI PLUGINS
-- ========================================================================
-- Visual enhancements and UI components
-- - Colorscheme: tokyonight
-- - Statusline: mini.statusline
-- - Treesitter: Syntax highlighting
-- - Mini modules: Textobjects, surround, pairs
-- - Todo comments: Highlight TODOs/FIXMEs
-- ========================================================================
return {
-- Colorscheme
{
'folke/tokyonight.nvim',
priority = 1000,
config = function()
require('tokyonight').setup {
styles = {
comments = { italic = false },
},
}
vim.cmd.colorscheme 'tokyonight-night'
end,
},
-- Highlight todo, notes, etc in comments
{
'folke/todo-comments.nvim',
event = 'VimEnter',
dependencies = { 'nvim-lua/plenary.nvim' },
opts = { signs = false },
},
-- Mini.nvim collection
{
'echasnovski/mini.nvim',
config = function()
-- Better Around/Inside textobjects
require('mini.ai').setup { n_lines = 500 }
-- Add/delete/replace surroundings (brackets, quotes, etc.)
require('mini.surround').setup()
-- Autopairs - automatically close brackets, quotes, etc.
require('mini.pairs').setup()
-- Simple and easy statusline
local statusline = require 'mini.statusline'
statusline.setup { use_icons = vim.g.have_nerd_font }
---@diagnostic disable-next-line: duplicate-set-field
statusline.section_location = function()
return '%2l:%-2v'
end
end,
},
-- Treesitter: Syntax highlighting and code understanding
{
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
main = 'nvim-treesitter.configs',
opts = {
ensure_installed = {
'bash',
'c',
'diff',
'html',
'lua',
'luadoc',
'markdown',
'markdown_inline',
'query',
'vim',
'vimdoc',
'javascript',
'typescript',
'css',
'json',
},
auto_install = true,
highlight = {
enable = true,
additional_vim_regex_highlighting = { 'ruby' },
},
indent = { enable = true, disable = { 'ruby' } },
fold = {
enable = true,
},
},
},
}