switched over to lazy for nvim plugins.

This commit is contained in:
Gabe Venberg 2023-10-20 23:59:41 -05:00
parent 48cd968cd6
commit 337ef885aa
4 changed files with 212 additions and 449 deletions

View file

@ -160,7 +160,7 @@ font_family Cascadia Code
#: suffix px for pixels or % for percentage of original value. No
#: suffix means use pts. For example::
#: modify_font underline_position -2
modify_font underline_position 2
#: modify_font underline_thickness 150%
#: modify_font strikethrough_position 2px

View file

@ -3,13 +3,10 @@ local cmd = vim.cmd
local opt = vim.opt
local fn = vim.fn
local map = vim.keymap.set
local wk = require("which-key")
--leader key is set through a variable, for some reason.
vim.g.mapleader = ';'
--this plugin makes startup time a bit faster. To bootsrap configuration, you need to comment this one out, ignore any errors you get, do packersync, then uncomment it.
require('impatient')
--do package management
require('packages')
@ -18,6 +15,8 @@ local function keyCode(string)
return vim.api.nvim_replace_termcodes(str, true, true, true, true)
end
local wk = require("which-key")
--options using vim.opt (aliased, of course.)
opt.mouse = 'a'
opt.lazyredraw = true
@ -117,7 +116,7 @@ map('n', '<leader>t', ':NvimTreeToggle<CR>', optsWithDesc("toggle file browser")
--open symbols-outline with leader+o
map('n', '<leader>o', ':SymbolsOutline<CR>', optsWithDesc("toggle LSP symbol outline"))
--telescope stuff
--setup leader-f prefix in whitch-key
-- setup leader-f prefix in whitch-key
wk.register {
["<leader>f"]={
name="+telescope"
@ -143,19 +142,6 @@ map('n', 'gf', ':TablineBufferNext<CR>', optsWithDesc("next buffer"))
map('n', 'gF', ':TablineBufferPrevious<CR>', optsWithDesc("prev buffer"))
--gitsigns
map('n', '<leader>bl', ':Gitsigns toggle_current_line_blame<CR>', optsWithDesc("toggle inline git blame"))
--trouble plugin.
wk.register {
["<leader>x"]={
name="+trouble"
}
}
map("n", "<leader>xx", "<cmd>TroubleToggle<cr>", optsWithDesc("toggle trouble"))
map("n", "<leader>xw", "<cmd>TroubleToggle workspace_diagnostics<cr>", optsWithDesc("workspace diagnostics"))
map("n", "<leader>xd", "<cmd>TroubleToggle document_diagnostics<cr>", optsWithDesc("document diagnostics"))
map("n", "<leader>xl", "<cmd>TroubleToggle loclist<cr>", optsWithDesc("location list"))
map("n", "<leader>xq", "<cmd>TroubleToggle quickfix<cr>", optsWithDesc("quickfix list"))
map("n", "<leader>lR", "<cmd>TroubleToggle lsp_references<cr>", optsWithDesc("lsp references"))
map("n", "<leader>lD", "<cmd>TroubleToggle lsp_definitions<cr>", optsWithDesc("lsp definitions"))
-- toggle keymappings for venn using <leader>v
map('n', '<leader>v', ":lua Toggle_venn()<CR>", optsWithDesc("toggle venn.nvim"))
-- treesj

View file

@ -1,23 +1,23 @@
-- bootstrapping packer
local fn = vim.fn
local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
Packer_Bootstrap = fn.system({ 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim',
install_path })
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)
return require('packer').startup(function(use)
--startup speed
use 'lewis6991/impatient.nvim'
--base plugins.
use 'wbthomason/packer.nvim'
use { 'nvim-treesitter/nvim-treesitter',
run = ':TSUpdate',
require('lazy').setup({
{
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
config = function()
require('nvim-treesitter').setup {
local configs = require('nvim-treesitter.configs')
configs.setup {
ensure_installed = {
'c',
'lua',
@ -48,12 +48,10 @@ return require('packer').startup(function(use)
incremental_selection = { enable = true }
}
end,
}
use {
},
{
"williamboman/mason.nvim",
config = function()
require("mason").setup({
'williamboman/mason.nvim',
opts = {
ui = {
icons = {
package_installed = "",
@ -61,18 +59,15 @@ return require('packer').startup(function(use)
package_uninstalled = ""
}
}
})
end
}
},
{
"williamboman/mason-lspconfig.nvim",
after = "mason.nvim",
config = function()
require("mason-lspconfig").setup({
ensure_installed = {
'lua_ls',
'rust_analyzer',
'pyright',
'bashls',
'pylsp', -- run PylspInstall pylsp-rope python-lsp-black python-lsp-ruff
'pyright',
@ -85,17 +80,22 @@ return require('packer').startup(function(use)
},
{
"neovim/nvim-lspconfig",
after = { "mason-lspconfig.nvim", "rust-tools.nvim" },
config = function()
require('LSPconfig')
end
},
{ 'simrat39/rust-tools.nvim', },
{ 'mfussenegger/nvim-jdtls', },
}
use { 'hrsh7th/nvim-cmp',
requires = {
{
'simrat39/rust-tools.nvim',
-- config = function()
-- require('rust-tools-setup')
-- end
},
{
'hrsh7th/nvim-cmp',
config = function()
require('rust-tools-setup')
end,
dependencies = {
'neovim/nvim-lspconfig',
'hrsh7th/cmp-nvim-lsp',
'saadparwaiz1/cmp_luasnip',
@ -110,239 +110,41 @@ return require('packer').startup(function(use)
'hrsh7th/cmp-emoji',
'ray-x/cmp-treesitter',
'uga-rosa/cmp-dictionary',
},
config = function()
require('cmp-lsp')
end
}
use { 'L3MON4D3/LuaSnip',
requires = {
},
{
'L3MON4D3/LuaSnip',
dependencies = {
'rafamadriz/friendly-snippets'
},
config = function()
require("luasnip.loaders.from_snipmate").load()
require("luasnip.loaders.from_vscode").load()
end
}
use { 'nvim-telescope/telescope.nvim',
requires = {
{ 'nvim-lua/plenary.nvim' },
},
{
'nvim-telescope/telescope.nvim',
config = true,
dependencies = {
{ 'nvim-lua/popup.nvim' },
{ 'nvim-treesitter/nvim-treesitter' },
{ 'nvim-telescope/telescope-symbols.nvim' },
{ 'nvim-telescope/telescope-file-browser.nvim' },
{ 'folke/trouble.nvim' },
},
config = function()
local trouble = require("trouble.providers.telescope")
require('telescope').setup {
defaults = {
mappings = {
i = { ["<c-t>"] = trouble.open_with_trouble },
n = { ["<c-t>"] = trouble.open_with_trouble },
},
},
}
end
}
use { 'folke/trouble.nvim',
requires = "kyazdani42/nvim-web-devicons",
config = function()
require("trouble").setup {
position = "bottom", -- position of the list can be: bottom, top, left, right
height = 10, -- height of the trouble list when position is top or bottom
width = 50, -- width of the list when position is left or right
icons = true, -- use devicons for filenames
mode = "workspace_diagnostics", -- "workspace_diagnostics", "document_diagnostics", "quickfix", "lsp_references", "loclist"
fold_open = "", -- icon used for open folds
fold_closed = "", -- icon used for closed folds
group = true, -- group results by file
padding = true, -- add an extra new line on top of the list
action_keys = {
-- key mappings for actions in the trouble list
-- map to {} to remove a mapping, for example:
-- close = {},
close = "q", -- close the list
cancel = "<esc>", -- cancel the preview and get back to your last window / buffer / cursor
refresh = "r", -- manually refresh
jump = { "<cr>", "<tab>" }, -- jump to the diagnostic or open / close folds
open_split = { "<c-x>" }, -- open buffer in new split
open_vsplit = { "<c-v>" }, -- open buffer in new vsplit
open_tab = { "<c-t>" }, -- open buffer in new tab
jump_close = { "o" }, -- jump to the diagnostic and close the list
toggle_mode = "m", -- toggle between "workspace" and "document" diagnostics mode
toggle_preview = "P", -- toggle auto_preview
hover = "K", -- opens a small popup with the full multiline message
preview = "p", -- preview the diagnostic location
close_folds = { "zM", "zm" }, -- close all folds
open_folds = { "zR", "zr" }, -- open all folds
toggle_fold = { "zA", "za", '<space>' }, -- toggle fold of current file
previous = "k", -- previous item
next = "j" -- next item
},
indent_lines = true, -- add an indent guide below the fold icons
auto_open = false, -- automatically open the list when you have diagnostics
auto_close = false, -- automatically close the list when you have no diagnostics
auto_preview = true, -- automatically preview the location of the diagnostic. <esc> to close preview and go back to last window
auto_fold = false, -- automatically fold a file trouble list at creation
auto_jump = { "lsp_definitions" }, -- for the given modes, automatically jump if there is only a single result
signs = {
-- icons / text used for a diagnostic
error = "",
warning = "",
hint = "",
information = "",
other = ""
},
use_diagnostic_signs = false -- enabling this will use the signs defined in your lsp client
}
end
}
use {
{
"folke/todo-comments.nvim",
requires = { "nvim-lua/plenary.nvim" },
config = function()
local opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
}
require("todo-comments").setup(opts)
end
}
--file browser
use { 'kyazdani42/nvim-tree.lua',
requires = {
dependencies = { "nvim-lua/plenary.nvim" },
},
{
'kyazdani42/nvim-tree.lua',
config = true,
dependencies = {
'kyazdani42/nvim-web-devicons', -- optional, for file icon
},
config = function()
require 'nvim-tree'.setup {
on_attach = function(bufnr)
local api = require('nvim-tree.api')
local function opts(desc)
return {
desc = 'nvim-tree: ' .. desc,
buffer = bufnr,
noremap = true,
silent = true,
nowait = true
}
end
-- Default mappings. Feel free to modify or remove as you wish.
--
-- BEGIN_DEFAULT_ON_ATTACH
vim.keymap.set('n', '<C-]>', api.tree.change_root_to_node, opts('CD'))
vim.keymap.set('n', '<C-e>', api.node.open.replace_tree_buffer, opts('Open: In Place'))
vim.keymap.set('n', '<C-k>', api.node.show_info_popup, opts('Info'))
vim.keymap.set('n', '<C-r>', api.fs.rename_sub, opts('Rename: Omit Filename'))
vim.keymap.set('n', '<C-t>', api.node.open.tab, opts('Open: New Tab'))
vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split'))
vim.keymap.set('n', '<C-x>', api.node.open.horizontal, opts('Open: Horizontal Split'))
vim.keymap.set('n', '<BS>', api.node.navigate.parent_close, opts('Close Directory'))
vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', '<Tab>', api.node.open.preview, opts('Open Preview'))
vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling'))
vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling'))
vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command'))
vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up'))
vim.keymap.set('n', 'a', api.fs.create, opts('Create'))
vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked'))
vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle No Buffer'))
vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Git Clean'))
vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git'))
vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git'))
vim.keymap.set('n', 'd', api.fs.remove, opts('Delete'))
vim.keymap.set('n', 'D', api.fs.trash, opts('Trash'))
vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All'))
vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename'))
vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic'))
vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic'))
vim.keymap.set('n', 'F', api.live_filter.clear, opts('Clean Filter'))
vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter'))
vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help'))
vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path'))
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles'))
vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore'))
vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling'))
vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling'))
vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark'))
vim.keymap.set('n', 'o', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker'))
vim.keymap.set('n', 'p', api.fs.paste, opts('Paste'))
vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory'))
vim.keymap.set('n', 'q', api.tree.close, opts('Close'))
vim.keymap.set('n', 'r', api.fs.rename, opts('Rename'))
vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh'))
vim.keymap.set('n', 's', api.node.run.system, opts('Run System'))
vim.keymap.set('n', 'S', api.tree.search_node, opts('Search'))
vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Hidden'))
vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse'))
vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))
vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path'))
vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD'))
-- END_DEFAULT_ON_ATTACH
-- Mappings migrated from view.mappings.list
--
-- You will need to insert "your code goes here" for any mappings with a custom action_cb
vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', 'o', api.node.open.edit, opts('Open'))
vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', '<C-e>', api.node.open.replace_tree_buffer, opts('Open: In Place'))
vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker'))
vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD'))
vim.keymap.set('n', '<C-]>', api.tree.change_root_to_node, opts('CD'))
vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split'))
vim.keymap.set('n', '<C-x>', api.node.open.horizontal, opts('Open: Horizontal Split'))
vim.keymap.set('n', '<C-t>', api.node.open.tab, opts('Open: New Tab'))
vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling'))
vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling'))
vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory'))
vim.keymap.set('n', '<BS>', api.node.navigate.parent_close, opts('Close Directory'))
vim.keymap.set('n', '<Tab>', api.node.open.preview, opts('Open Preview'))
vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling'))
vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling'))
vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore'))
vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles'))
vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh'))
vim.keymap.set('n', 'a', api.fs.create, opts('Create'))
vim.keymap.set('n', 'd', api.fs.remove, opts('Delete'))
vim.keymap.set('n', 'D', api.fs.trash, opts('Trash'))
vim.keymap.set('n', 'r', api.fs.rename, opts('Rename'))
vim.keymap.set('n', '<C-r>', api.fs.rename_sub, opts('Rename: Omit Filename'))
vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
vim.keymap.set('n', 'p', api.fs.paste, opts('Paste'))
vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))
vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path'))
vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path'))
vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git'))
vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git'))
vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up'))
vim.keymap.set('n', 's', api.node.run.system, opts('Run System'))
vim.keymap.set('n', 'q', api.tree.close, opts('Close'))
vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help'))
vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse'))
end,
-- on_attach = on_attach
}
end
}
use {
"folke/which-key.nvim",
},
{
'folke/which-key.nvim',
config = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
@ -361,21 +163,18 @@ return require('packer').startup(function(use)
-- local wk = require("which-key")
}
end
}
--UI stuff
use { "akinsho/toggleterm.nvim", tag = '*', config = function()
require("toggleterm").setup {
},
{
"akinsho/toggleterm.nvim",
opts = {
insert_mappings = false,
terminal_mappings = false,
open_mapping = [[<c-\>]],
}
end }
use { 'simrat39/symbols-outline.nvim',
config = function()
local opts = {
},
{
'simrat39/symbols-outline.nvim',
opts = {
highlight_hovered_item = true,
show_guides = true,
auto_preview = false,
@ -392,20 +191,15 @@ return require('packer').startup(function(use)
fold_markers = { '', '' },
wrap = false,
}
require("symbols-outline").setup(opts)
end
}
use { 'stevearc/dressing.nvim',
config = function()
require('dressing').setup {}
end
}
use { 'nvim-lualine/lualine.nvim',
requires = { 'kyazdani42/nvim-web-devicons', opt = true },
config = function()
require('lualine').setup {
},
{
'stevearc/dressing.nvim',
config = true,
},
{
'nvim-lualine/lualine.nvim',
dependencies = { 'kyazdani42/nvim-web-devicons' },
opts = {
options = {
icons_enabled = true,
theme = 'auto',
@ -431,11 +225,12 @@ return require('packer').startup(function(use)
lualine_z = {}
},
extensions = {}
}
end,
}
},
use { 'kdheepak/tabline.nvim',
},
{
'kdheepak/tabline.nvim',
dependencies = { 'nvim-lualine/lualine.nvim' },
config = function()
require 'tabline'.setup {
-- Defaults configuration options
@ -457,13 +252,11 @@ return require('packer').startup(function(use)
set sessionoptions+=tabpages,globals " store tabpages and globals in session
]]
end,
requires = { { 'hoob3rt/lualine.nvim', opt = true }, { 'kyazdani42/nvim-web-devicons', opt = true } }
}
use { 'romgrk/nvim-treesitter-context',
requires = 'nvim-treesitter/nvim-treesitter',
config = function()
require('treesitter-context').setup {
},
{
'romgrk/nvim-treesitter-context',
dependencies = { 'nvim-treesitter/nvim-treesitter' },
opts = {
enable = true, -- Enable this plugin (Can be enabled/disabled later via commands)
max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit.
trim_scope = 'outer', -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer'
@ -474,62 +267,47 @@ return require('packer').startup(function(use)
-- When separator is set, the context will only show up when there are at least 2 lines above cursorline.
separator = nil,
}
end
}
use { 'lewis6991/gitsigns.nvim',
-- tag = 'release', -- To use the latest release. currently bugged
config = function() require('gitsigns').setup() end
}
use { 'chentau/marks.nvim' }
use { 'sitiom/nvim-numbertoggle' }
use { 'lukas-reineke/indent-blankline.nvim',
config = function()
vim.opt.list = true
vim.opt.listchars:append("eol:↴")
require('ibl').setup {}
end
}
--editing utilities
use { 'numToStr/Comment.nvim',
config = function()
require('Comment').setup()
end
}
use {
"tversteeg/registers.nvim",
config = function()
require("registers").setup()
end,
}
use { 'Wansmer/treesj',
requires = { 'nvim-treesitter' },
config = function()
require('treesj').setup({
},
{
"lukas-reineke/indent-blankline.nvim",
main = "ibl",
opts = {}
},
{
'lewis6991/gitsigns.nvim',
config = true,
},
'chentau/marks.nvim',
'sitiom/nvim-numbertoggle',
{
'numToStr/Comment.nvim',
config = true,
},
-- {
-- "tversteeg/registers.nvim",
-- config = true,
-- },
{
'Wansmer/treesj',
dependencies = { 'nvim-treesitter' },
opts = {
-- Use default keymaps
-- (<space>m - toggle, <space>j - join, <space>s - split)
use_default_keymaps = false,
max_join_length = 256,
})
end,
}
},
"jbyuki/venn.nvim",
use "jbyuki/venn.nvim"
--colorscheme
{
'bluz71/vim-moonfly-colors',
lazy = true,
},
--color scheme stuff.
{
'bluz71/vim-nightfly-guicolors',
lazy = true,
},
use 'bluz71/vim-moonfly-colors'
use 'bluz71/vim-nightfly-guicolors'
if Packer_Bootstrap then
require('packer').sync()
end
end)
})

View file

@ -1,4 +1,3 @@
local nvim_lsp = require'lspconfig'
local opts = {
tools = {
autoSetHints = true,
@ -15,7 +14,7 @@ local opts = {
-- whether to show parameter hints with the inlay hints or not
show_parameter_hints = true,
-- whether to show variable name before type hints with the inlay hints or not
show_variable_name = false,
show_variable_name = true,
-- prefix for parameter hints
parameter_hints_prefix = "<- ",
-- prefix for all the other hints (type, chaining)
@ -27,7 +26,7 @@ local opts = {
-- whether to align to the extreme right or not
right_align = true,
-- padding from the right if right_align is true
right_align_padding = 7,
right_align_padding = 1,
-- The color of the hints
highlight = "Comment",
},