mirror of https://github.com/zpl-zak/nvimrc
167 lines
4.6 KiB
Lua
167 lines
4.6 KiB
Lua
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
||
if not vim.loop.fs_stat(lazypath) then
|
||
vim.fn.system {
|
||
'git',
|
||
'clone',
|
||
'--filter=blob:none',
|
||
'https://github.com/folke/lazy.nvim.git',
|
||
'--branch=stable', -- latest stable release
|
||
lazypath,
|
||
}
|
||
end
|
||
|
||
vim.opt.rtp:prepend(lazypath)
|
||
|
||
require('lazy').setup({
|
||
-- Git related plugins
|
||
'tpope/vim-fugitive',
|
||
'tpope/vim-rhubarb',
|
||
|
||
-- Detect tabstop and shiftwidth automatically
|
||
'tpope/vim-sleuth',
|
||
|
||
{ -- LSP Configuration & Plugins
|
||
'neovim/nvim-lspconfig',
|
||
dependencies = {
|
||
{ 'williamboman/mason.nvim', config = true },
|
||
'williamboman/mason-lspconfig.nvim',
|
||
{ 'j-hui/fidget.nvim', opts = { }, tag = "legacy" },
|
||
'folke/neodev.nvim',
|
||
},
|
||
},
|
||
|
||
{ -- Autocompletion
|
||
'hrsh7th/nvim-cmp',
|
||
dependencies = { 'hrsh7th/cmp-nvim-lsp', 'L3MON4D3/LuaSnip', 'saadparwaiz1/cmp_luasnip' },
|
||
},
|
||
|
||
{ 'folke/which-key.nvim', opts = {} },
|
||
{ -- 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 = '~' },
|
||
},
|
||
},
|
||
},
|
||
|
||
{ -- Theme inspired by Atom
|
||
'navarasu/onedark.nvim',
|
||
priority = 1000,
|
||
config = function()
|
||
vim.cmd.colorscheme 'onedark'
|
||
end,
|
||
},
|
||
|
||
{ -- Set lualine as statusline
|
||
'nvim-lualine/lualine.nvim',
|
||
-- See `:help lualine.txt`
|
||
opts = {
|
||
options = {
|
||
icons_enabled = true,
|
||
theme = 'onedark',
|
||
component_separators = '|',
|
||
section_separators = '',
|
||
},
|
||
},
|
||
},
|
||
|
||
{ -- Add indentation guides even on blank lines
|
||
'lukas-reineke/indent-blankline.nvim',
|
||
opts = {
|
||
char = '┊',
|
||
space_char_blankline = " ",
|
||
show_current_context = true,
|
||
show_current_context_start = false,
|
||
show_trailing_blankline_indent = false,
|
||
},
|
||
},
|
||
|
||
{
|
||
'simrat39/symbols-outline.nvim',
|
||
highlight_hovered_item = true,
|
||
show_guides = true,
|
||
auto_preview = false,
|
||
position = 'right',
|
||
relative_width = true,
|
||
width = 40,
|
||
auto_close = false,
|
||
show_numbers = true,
|
||
show_relative_numbers = false,
|
||
show_symbol_details = true,
|
||
preview_bg_highlight = 'Pmenu',
|
||
keymaps = {
|
||
close = {"<Esc>", "q"},
|
||
goto_location = "<Cr>",
|
||
focus_location = "o",
|
||
hover_symbol = "<C-space>",
|
||
toggle_preview = "K",
|
||
rename_symbol = "r",
|
||
code_actions = "a",
|
||
},
|
||
lsp_blacklist = {},
|
||
symbol_blacklist = {},
|
||
symbols = {
|
||
File = {icon = "", hl = "TSURI"},
|
||
Module = {icon = "", hl = "TSNamespace"},
|
||
Namespace = {icon = "", hl = "TSNamespace"},
|
||
Package = {icon = "", hl = "TSNamespace"},
|
||
Class = {icon = "𝓒", hl = "TSType"},
|
||
Method = {icon = "ƒ", hl = "TSMethod"},
|
||
Property = {icon = "", hl = "TSMethod"},
|
||
Field = {icon = "", hl = "TSField"},
|
||
Constructor = {icon = "", hl = "TSConstructor"},
|
||
Enum = {icon = "ℰ", hl = "TSType"},
|
||
Interface = {icon = "ﰮ", hl = "TSType"},
|
||
Function = {icon = "λ", hl = "TSFunction"},
|
||
Variable = {icon = "", hl = "TSConstant"},
|
||
Constant = {icon = "", hl = "TSConstant"},
|
||
String = {icon = "𝓐", hl = "TSString"},
|
||
Number = {icon = "#", hl = "TSNumber"},
|
||
Boolean = {icon = "⊨", hl = "TSBoolean"},
|
||
Array = {icon = "", hl = "TSConstant"},
|
||
Object = {icon = "⦿", hl = "TSType"},
|
||
Key = {icon = "🔐", hl = "TSType"},
|
||
Null = {icon = "NULL", hl = "TSType"},
|
||
EnumMember = {icon = "", hl = "TSField"},
|
||
Struct = {icon = "𝓢", hl = "TSType"},
|
||
Event = {icon = "🗲", hl = "TSType"},
|
||
Operator = {icon = "+", hl = "TSOperator"},
|
||
TypeParameter = {icon = "𝙏", hl = "TSParameter"}
|
||
}
|
||
},
|
||
|
||
-- "gc" to comment visual regions/lines
|
||
{ 'numToStr/Comment.nvim', opts = {} },
|
||
|
||
-- Fuzzy Finder (files, lsp, etc)
|
||
{ 'nvim-telescope/telescope.nvim', version = '*', dependencies = { 'nvim-lua/plenary.nvim' } },
|
||
|
||
{
|
||
'nvim-telescope/telescope-fzf-native.nvim',
|
||
build = 'make',
|
||
cond = function()
|
||
return vim.fn.executable 'make' == 1
|
||
end,
|
||
},
|
||
|
||
{ -- Highlight, edit, and navigate code
|
||
'nvim-treesitter/nvim-treesitter',
|
||
dependencies = {
|
||
'nvim-treesitter/nvim-treesitter-textobjects',
|
||
},
|
||
build = ":TSUpdate",
|
||
},
|
||
|
||
{
|
||
'dense-analysis/ale'
|
||
},
|
||
|
||
{ import = 'zak.plugins' },
|
||
}, {})
|