nvim/lua/plugins/common.lua

175 lines
4.3 KiB
Lua
Raw Normal View History

2023-02-19 23:01:47 +01:00
return {
-- NOTE: Theme
{
2023-02-24 11:04:06 +01:00
'sainnhe/gruvbox-material',
priority = 1000,
config = function()
2023-02-24 11:04:06 +01:00
vim.g.gruvbox_material_background = 'soft'
vim.g.gruvbox_material_better_performance = 1
vim.g.gruvbox_material_enable_italic = 1
2023-02-24 11:04:06 +01:00
vim.cmd.colorscheme 'gruvbox-material'
end,
},
2023-02-19 23:01:47 +01:00
-- 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',
2023-02-24 11:04:06 +01:00
-- NOTE: Second, plugins that require setup call (done via opts)
2023-02-19 23:01:47 +01:00
-- 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
2023-03-27 14:42:59 +02:00
{ 'norcalli/nvim-colorizer.lua', opts = {} },
2023-02-19 23:01:47 +01:00
2023-03-29 13:58:18 +02:00
-- autopairs on newline
{ 'windwp/nvim-autopairs', opts = {} },
2023-02-19 23:01:47 +01:00
-- highlighting for comments
2023-03-27 14:42:59 +02:00
{ 'folke/todo-comments.nvim', dependencies = 'nvim-lua/plenary.nvim', opts = {} },
2023-02-19 23:01:47 +01:00
2023-03-21 16:00:47 +01:00
-- permanent links to fileranges
2023-03-27 14:42:59 +02:00
{
'ruifm/gitlinker.nvim',
2023-03-21 16:00:47 +01:00
config = function()
2023-03-27 14:42:59 +02:00
require('gitlinker').setup {
callbacks = {
['git.aflabs.org'] = require('gitlinker.hosts').get_gitlab_type_url,
},
}
end,
2023-03-21 16:00:47 +01:00
},
2023-02-19 23:01:47 +01:00
-- NOTE: Third, plugins that require some setup, but not enugh for separate file
2023-03-27 14:42:59 +02:00
{
-- Adds git releated signs to the gutter, as well as utilities for managing changes
2023-02-19 23:01:47 +01:00
'lewis6991/gitsigns.nvim',
opts = {
-- See `:help gitsigns.txt`
signs = {
add = { text = '+' },
change = { text = '~' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
},
},
},
2023-03-27 14:42:59 +02:00
{
-- Set lualine as statusline
2023-02-19 23:01:47 +01:00
'nvim-lualine/lualine.nvim',
-- See `:help lualine.txt`
opts = {
options = {
icons_enabled = false,
2023-02-24 11:04:06 +01:00
theme = 'gruvbox-material',
statusline_style = 'mix',
2023-02-19 23:01:47 +01:00
component_separators = '|',
section_separators = '',
},
2023-03-29 11:54:47 +02:00
sections = {
lualine_c = {
{
'filename',
file_status = true,
path = 1,
},
},
},
2023-02-19 23:01:47 +01:00
},
},
2023-03-27 14:42:59 +02:00
{
-- Add indentation guides even on blank lines
2023-02-19 23:01:47 +01:00
'lukas-reineke/indent-blankline.nvim',
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help indent_blankline.txt`
opts = {
char = '',
show_trailing_blankline_indent = false,
},
},
2023-03-27 14:42:59 +02:00
{
-- git blame annotations
2023-02-19 23:01:47 +01:00
'f-person/git-blame.nvim',
config = function()
-- disable on startup
vim.g.gitblame_enabled = 0
2023-02-19 23:01:47 +01:00
vim.api.nvim_set_keymap('n', '<leader>gt', ':GitBlameToggle<CR>', { desc = '[G]it Blame [T]oggle', noremap = true })
vim.api.nvim_set_keymap('n', '<leader>gu', ':GitBlameOpenCommitURL<CR>',
2023-03-27 14:42:59 +02:00
{ desc = '[G]it Blame Open Commit [U]rl', noremap = true })
end,
2023-02-19 23:01:47 +01:00
},
2023-03-27 14:42:59 +02:00
{
-- a more adventurous wildmenu
2023-02-19 23:01:47 +01:00
'gelguy/wilder.nvim',
dependencies = { 'romgrk/fzy-lua-native' },
config = function()
2023-03-27 14:42:59 +02:00
local wilder = require 'wilder'
wilder.setup { modes = { ':', '/', '?' } }
2023-02-19 23:01:47 +01:00
-- Disable Python remote plugin
wilder.set_option('use_python_remote_plugin', 0)
wilder.set_option('pipeline', {
wilder.branch(
2023-03-27 14:42:59 +02:00
wilder.cmdline_pipeline {
2023-02-19 23:01:47 +01:00
fuzzy = 1,
fuzzy_filter = wilder.lua_fzy_filter(),
2023-03-27 14:42:59 +02:00
},
2023-02-19 23:01:47 +01:00
wilder.vim_search_pipeline()
2023-03-27 14:42:59 +02:00
),
2023-02-19 23:01:47 +01:00
})
2023-03-27 14:42:59 +02:00
wilder.set_option(
'renderer',
wilder.popupmenu_renderer(wilder.popupmenu_border_theme {
2023-02-19 23:01:47 +01:00
highlights = {
border = 'Normal',
},
border = 'rounded',
highlighter = wilder.lua_fzy_highlighter(),
left = { ' ', wilder.popupmenu_devicons() },
right = { ' ', wilder.popupmenu_scrollbar() },
})
2023-03-27 14:42:59 +02:00
)
2023-02-19 23:01:47 +01:00
end,
},
2023-03-27 14:42:59 +02:00
{
'projekt0n/circles.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' },
opts = {
icons = { empty = '', filled = '', lsp_prefix = '' },
2023-02-19 23:18:06 +01:00
},
},
-- file menu
{
'nvim-tree/nvim-tree.lua',
config = function()
require('nvim-tree').setup {
renderer = {
icons = {
glyphs = require('circles').get_nvimtree_glyphs(),
2023-03-21 16:00:33 +01:00
},
2023-03-27 14:42:59 +02:00
},
2023-03-21 16:00:33 +01:00
}
2023-02-19 23:18:06 +01:00
end,
},
2023-02-19 23:01:47 +01:00
}