return { -- NOTE: Theme { 'sainnhe/gruvbox-material', priority = 1000, config = function() vim.g.gruvbox_material_background = 'soft' vim.g.gruvbox_material_foreground = 'original' vim.g.gruvbox_material_better_performance = 1 vim.cmd.colorscheme 'gruvbox-material' end, }, -- NOTE: First, some plugins that don't require any configuration -- Git related plugins 'tpope/vim-fugitive', 'tpope/vim-rhubarb', -- Detect tabstop and shiftwidth automatically 'tpope/vim-sleuth', -- NOTE: Second, plugins that require setup call (done via opts) -- Useful plugin to show you pending keybinds. { 'folke/which-key.nvim', opts = {} }, -- "gc" to comment visual regions/lines { 'numToStr/Comment.nvim', opts = {} }, -- colorize in files { 'norcalli/nvim-colorizer.lua', opts = {} }, -- highlighting for comments { 'folke/todo-comments.nvim', dependencies = 'nvim-lua/plenary.nvim', opts = {} }, -- markdown preview using glow { 'ellisonleao/glow.nvim', config = true, cmd = 'Glow' }, -- permanent links to fileranges { 'ruifm/gitlinker.nvim', config = function() require('gitlinker').setup { callbacks = { ['git.aflabs.org'] = require('gitlinker.hosts').get_gitlab_type_url, }, } end, }, -- NOTE: Third, plugins that require some setup, but not enugh for separate file { -- Adds git releated signs to the gutter, as well as utilities for managing changes 'lewis6991/gitsigns.nvim', opts = { -- See `:help gitsigns.txt` signs = { add = { text = '+' }, change = { text = '~' }, delete = { text = '_' }, topdelete = { text = '‾' }, changedelete = { text = '~' }, }, }, }, { -- Set lualine as statusline 'nvim-lualine/lualine.nvim', -- See `:help lualine.txt` opts = { options = { icons_enabled = false, theme = 'gruvbox-material', statusline_style = 'mix', component_separators = '|', section_separators = '', }, sections = { lualine_c = { { 'filename', file_status = true, path = 1, }, }, }, }, }, { -- Add indentation guides even on blank lines 'lukas-reineke/indent-blankline.nvim', -- Enable `lukas-reineke/indent-blankline.nvim` -- See `:help indent_blankline.txt` opts = { char = '┊', show_trailing_blankline_indent = false, }, }, { -- git blame annotations 'f-person/git-blame.nvim', config = function() vim.api.nvim_set_keymap('n', 'gt', ':GitBlameToggle', { desc = '[G]it Blame [T]oggle', noremap = true }) vim.api.nvim_set_keymap('n', 'gu', ':GitBlameOpenCommitURL', { desc = '[G]it Blame Open Commit [U]rl', noremap = true }) end, }, { -- a more adventurous wildmenu 'gelguy/wilder.nvim', dependencies = { 'romgrk/fzy-lua-native' }, config = function() local wilder = require 'wilder' wilder.setup { modes = { ':', '/', '?' } } -- Disable Python remote plugin wilder.set_option('use_python_remote_plugin', 0) wilder.set_option('pipeline', { wilder.branch( wilder.cmdline_pipeline { fuzzy = 1, fuzzy_filter = wilder.lua_fzy_filter(), }, wilder.vim_search_pipeline() ), }) wilder.set_option( 'renderer', wilder.popupmenu_renderer(wilder.popupmenu_border_theme { highlights = { border = 'Normal', }, border = 'rounded', highlighter = wilder.lua_fzy_highlighter(), left = { ' ', wilder.popupmenu_devicons() }, right = { ' ', wilder.popupmenu_scrollbar() }, }) ) end, }, { 'projekt0n/circles.nvim', dependencies = { 'nvim-tree/nvim-web-devicons' }, opts = { icons = { empty = '●', filled = '○', lsp_prefix = '●' }, }, }, -- file menu { 'nvim-tree/nvim-tree.lua', config = function() require('nvim-tree').setup { renderer = { icons = { glyphs = require('circles').get_nvimtree_glyphs(), }, }, } end, }, }