1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
-- Packer package manager found here: https://github.com/wbthomason/packer.nvim
--
-- Only required if you have packer configured as `opt`
vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function(use)
-- Packer can manage itself
use 'wbthomason/packer.nvim' -- Package manager
-- Quality of life things
use 'tpope/vim-commentary' -- Really nice commenting functions
use 'ap/vim-css-color' -- highlights color codes in that color
use 'preservim/nerdtree' -- Folder tree on the left
use 'Raimondi/delimitMate' -- Auto delimits characters
use 'sheerun/vim-polyglot' -- Syntax highlighting for a ton of languages
use { -- Finder bar (Kinda like fzf)
'nvim-telescope/telescope.nvim', tag = '0.1.1',
requires = { {'nvim-lua/plenary.nvim'} }
}
use 'nvim-tree/nvim-web-devicons' -- Icons for other plugins
use 'preservim/tagbar' -- Ctags but in memory. Typescript does not work very well with exuberant ctags. Might work better with Universal ctags
use 'qpkorr/vim-bufkill' -- Closes buffer, but doesn't effect the window placement (splits)
use { -- Highlights TODO comments
"folke/todo-comments.nvim",
requires = "nvim-lua/plenary.nvim",
config = function()
require("todo-comments").setup {
-- leave this empty to use the default settings
-- https://github.com/folke/todo-comments.nvim#%EF%B8%8F-configuration
-- TODO: Change up colors maybe, and provide alternate words so that FIX also triggers FIXME colors/settings for example
}
end
}
use "junegunn/goyo.vim" -- "Zen" mode
use "mattn/calendar-vim" -- Calendar for use with
use "lukas-reineke/indent-blankline.nvim" -- Provides whitespace/indent markers
use 'HiPhish/rainbow-delimiters.nvim' -- This highlights things like curly braces in different colors so the matching one is seen easier
-- Anything to do with git
use 'tpope/vim-fugitive' -- Git plugin
use 'mhinz/vim-signify' -- Shows line changes
use 'APZelos/blamer.nvim' -- Shows who changed the line last
use 'junegunn/gv.vim' -- Git viewer to read out commits and view them in a pretty way
-- Different vim modes
use {
'vimwiki/vimwiki', -- Diary and wiki suite
config = function()
-- Changes to this don't seem to take effect until I run PackerCompile
vim.g.vimwiki_list = {
{
path = '~/vimwiki/personal/',
path_html = '~/vimwiki/personal/html',
syntax = 'markdown',
ext = '.md',
custom_wiki2html = 'wiki2html.sh',
},
{
path = '~/vimwiki/test/',
path_html = '~/vimwiki/test/html',
syntax = 'markdown',
ext = '.md'
},
{
path = '~/vimwiki/work/',
path_html = '~/vimwiki/work/html',
-- syntax = 'default',
-- ext = '.wiki'
syntax = 'markdown',
ext = '.md'
},
}
end
}
-- Fancy stuff
use 'vim-airline/vim-airline' -- Fancy status bar
use 'vim-airline/vim-airline-themes' -- Fancy status bar themes
use 'mhinz/vim-startify' -- Fancy startup script
use "folke/which-key.nvim" -- Fancy keybind menu
use 'ryanoasis/vim-devicons' -- Fancy icons for file types in nerdtree and other places
-- Themes
use 'ayu-theme/ayu-vim' -- Nice blue theme. Closer to the gotham theme I had in VS code than the vim theme it was inspired by.
use "rebelot/kanagawa.nvim"
use "savq/melange-nvim"
use 'rafi/awesome-vim-colorschemes'
use "lunarvim/templeos.nvim"
-- Language supports
use 'SuneelFreimuth/vim-gemtext' -- Syntax support for gemini markdown
use { -- Better syntax highlighting
'nvim-treesitter/nvim-treesitter',
run = function()
local ts_update = require('nvim-treesitter.install').update({ with_sync = true })
ts_update()
end,
}
use { -- A super simple way to setup all the lsp stuff.
'VonHeikemen/lsp-zero.nvim',
branch = 'v1.x',
requires = {
-- LSP Support
{'neovim/nvim-lspconfig'}, -- Required
{'williamboman/mason.nvim'}, -- Optional -- Package manager for LSPs, formatters and linters
{'williamboman/mason-lspconfig.nvim'}, -- Optional -- Manages the connection between what's installed with mason and the lsp config
-- Autocompletion
{'hrsh7th/nvim-cmp'}, -- Required -- Completion engine, gets what to complete from different sources (LSP for one)
{'hrsh7th/cmp-nvim-lsp'}, -- Required
{'hrsh7th/cmp-buffer'}, -- Optional
{'hrsh7th/cmp-path'}, -- Optional
{'saadparwaiz1/cmp_luasnip'}, -- Optional
{'hrsh7th/cmp-nvim-lua'}, -- Optional
-- Snippets
{'L3MON4D3/LuaSnip'}, -- Required -- Snippet engine
{'rafamadriz/friendly-snippets'}, -- Optional -- The actual snippets
}
}
use {'fatih/vim-go', run = ':GoUpdateBinaries' } -- Nice Golang plugin
use 'buoto/gotests-vim' -- Better Golang Testing (generates tests for you)
use({ -- Test runner (WIP)
'nvim-neotest/neotest',
requires = {
'nvim-neotest/neotest-jest',
},
config = function()
require('neotest').setup({
adapters = {
require('neotest-jest')({
jestCommand = "npm test --",
jestConfigFile = "custom.jest.config.ts",
env = { CI = true },
cwd = function(path)
return vim.fn.getcwd()
end,
}),
}
})
end
})
-- Fun things
use 'eandrju/cellular-automaton.nvim' -- Animations on your code
end)
|