110 lines
3.1 KiB
Lua
110 lines
3.1 KiB
Lua
vim.cmd [[packadd packer.nvim]]
|
|
|
|
return require('packer').startup(function(use)
|
|
-- Packer can manage itself
|
|
use 'wbthomason/packer.nvim'
|
|
|
|
-- LSP stuff
|
|
use {
|
|
"williamboman/mason.nvim",
|
|
"williamboman/mason-lspconfig.nvim",
|
|
"neovim/nvim-lspconfig",
|
|
"hrsh7th/nvim-cmp",
|
|
"hrsh7th/cmp-nvim-lsp",
|
|
}
|
|
|
|
-- Gruvbox theme
|
|
use {
|
|
"ellisonleao/gruvbox.nvim",
|
|
config = function()
|
|
require("gruvbox").setup({
|
|
bold = false,
|
|
italic = true,
|
|
strikethrough = true,
|
|
overrides = {
|
|
Directory = { link = "GruvboxFg2" },
|
|
},
|
|
})
|
|
vim.cmd("colorscheme gruvbox")
|
|
end,
|
|
}
|
|
|
|
-- A way saner buffer closing implementation
|
|
use "ojroques/nvim-bufdel"
|
|
|
|
-- Directory tree
|
|
use {
|
|
"nvim-neo-tree/neo-tree.nvim",
|
|
branch = "v2.x",
|
|
requires = {
|
|
"nvim-lua/plenary.nvim",
|
|
"kyazdani42/nvim-web-devicons",
|
|
"MunifTanjim/nui.nvim",
|
|
},
|
|
config = function()
|
|
require("neo-tree").setup({
|
|
window = {
|
|
position = "left",
|
|
width = 36,
|
|
},
|
|
})
|
|
require("neo-tree.sources.manager").show("filesystem")
|
|
end,
|
|
}
|
|
|
|
-- Tabs
|
|
use {
|
|
"akinsho/bufferline.nvim", tag = "v2.*", requires = "kyazdani42/nvim-web-devicons",
|
|
config = function() require("bufferline").setup({
|
|
options = {
|
|
close_command = "BufDel %d",
|
|
right_mouse_command = "BufDel %d",
|
|
offsets = {
|
|
{
|
|
filetype = "neo-tree",
|
|
text = "Files",
|
|
highlight = "Directory",
|
|
text_align = "left",
|
|
}
|
|
},
|
|
separator_style = "slant",
|
|
}
|
|
}) end,
|
|
}
|
|
|
|
-- Status line
|
|
use {
|
|
"nvim-lualine/lualine.nvim", requires = { 'kyazdani42/nvim-web-devicons', opt = true },
|
|
config = function() require("lualine").setup({
|
|
options = {
|
|
theme = "gruvbox",
|
|
disabled_filetypes = {
|
|
statusline = { "neo-tree" },
|
|
},
|
|
},
|
|
}) end,
|
|
}
|
|
|
|
-- Terminal
|
|
use {
|
|
"akinsho/toggleterm.nvim", tag = "v2.*",
|
|
config = function() require("toggleterm").setup({
|
|
open_mapping = [[<c-\>]],
|
|
persist_size = false,
|
|
shade_terminals = false,
|
|
hide_numbers = false,
|
|
winbar = {
|
|
enabled = false,
|
|
},
|
|
on_open = function()
|
|
-- Toggle the neo-tree file view such that it is
|
|
-- always full height; This is a dirty workaround
|
|
local manager = require('neo-tree.sources.manager')
|
|
if manager.close('filesystem') then
|
|
manager.show('filesystem')
|
|
end
|
|
end,
|
|
}) end,
|
|
}
|
|
end)
|