-
Notifications
You must be signed in to change notification settings - Fork 1
/
init.lua
162 lines (157 loc) · 9.53 KB
/
init.lua
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
local use = require('utils').use
-- General configs
require('configs.options')
require('configs.keymaps')
require('configs.autocmds')
require('configs.commands')
require('configs.diagnostics')
require('configs.neovide')
-- Lazy
require('utils.lazy')
local plugins = {
'folke/lazy.nvim', -- Package manager
use 'eunuch', -- :Rename, :Delete, etc. file
use 'easy-align', -- Align characters vertically
use 'treesj', -- Multiline split
use 'autolist', -- Autocomplete lists
use 'printer', -- Print text-object
use 'windows', -- Automatic window resizing
use 'undotree', -- Tree of file histories
use 'smart-splits', -- Better resizing mappings
use 'cheat', -- cheat.sh
use 'nvim-colorizer', -- Display colour values
use 'alpha', -- Nicer start screen
use 'indent-blankline', -- Indent markers
use 'mini-indentscope', -- Indentation scope
use 'fzf', -- Fuzzy finder
use 'nvim-web-devicons', -- File icons
use 'nvim-tree', -- File explorer
use 'oil', -- Single directory file browser
use 'barbar', -- Sexiest buffer tabline
use 'null-ls', -- Autoformatting, etc.
use 'neoscroll', -- Smooth scrolling animations
use 'feline', -- Statusline framework
use 'barbecue', -- Treesitter breadcrumbs
use 'fidget', -- LSP progress indicator
use 'gitsigns', -- Git status in sign column
use 'mason', -- LSP/DAP/etc. package manager
use 'mason-tool-installer', -- Auto-install list of mason binaries
use 'lsp', -- Built-in LSP
use 'lsp-inlay-hints', -- LSP inlay hints
use 'rustaceanvim', -- rust-analyzer client
use 'go', -- gopls client
use 'elixir', -- Elixir LSP setup
use 'fastaction', -- Predictable LSP code actions
use 'java', -- JDTLS client
use 'typescript', -- TypeScript LSP client wrapper
use 'tsc', -- TypeScript type checking
use 'ltex', -- LTeX utils
use 'luasnip', -- Snippet engine
-- use 'cmp-tabnine', -- Tabnine autocompletion
use 'cmp', -- Autocompletion
use 'cmp-lsp-rs', -- Better Rust sorting
use 'lazydev', -- Neovim-aware lua-ls config
use 'treesitter', -- Abstract syntax tree
use 'outline', -- Code outline sidebar
use 'neogen', -- Generate type annotations
use 'trouble', -- Nicer list of diagnostics
use 'telescope', -- Fuzzy finder
use 'dressing', -- Improves `vim.ui` interfaces
use 'noice', -- Nicer UI features
use 'lastplace', -- Restore cursor position
use 'dial', -- Enhanced increment/decrement
use 'comment', -- Adds `comment` verb
use 'rest', -- Sending HTTP requests
use 'dap', -- Debugger
use 'dap-ui', -- UI for nvim-dap
use 'overseer', -- Task runner
-- { 'jbyuki/one-small-step-for-vimkind' } -- Lua plugin debug adapter
use 'onedark', -- Colorscheme
use 'catppuccin', -- Colorscheme
use 'refactoring', -- Refactoring tools
use 'guess-indent', -- Guess file's indent level
use 'yanky', -- Cycle register history, etc.
use 'surround', -- Adds `surround` verb
use 'eyeliner', -- Highlight uniques on f/F/t/T
use 'matchup', -- Adds additional `%` commands
use 'ultimate-autopair', -- Auto-close brackets, etc.
use 'capslock', -- Virtual CapsLock
use 'trim', -- Trim trailing whitespace
use 'git-conflict', -- Git conflict mappings
use 'vim-textobj', -- Custom text objects
use 'vimtex', -- LaTeX utilities
use 'ai', -- next/previous text objects
use 'hlsearch', -- Auto remove search highlights
use 'markview', -- Improved Markdown rendering
use 'helpview', -- Improved Helpdocs rendering
use 'markdown-togglecheck', -- Toggle Markdown check marks
use 'substitute', -- Replace/exchange operators
use 'highlighturl', -- Highlight URLs
use 'messages', -- Floating :messages window
use 'possession', -- Session manager
use 'copilot', -- GitHub Copilot
use 'diffview', -- Git diff and file history
use 'leap', -- Move cursor anywhere
use 'winshift', -- Improved window movement
use 'notify', -- Floating notifications popups
use 'toggleterm', -- Toggleable terminal
use 'term-edit', -- Better editing in :terminal
use 'bqf', -- Better quickfix
use 'qf', -- Quickfix utilities
use 'neogit', -- Git wrapper
use 'blame', -- Git blame file
use 'reloader', -- Hot reload Neovim config
use 'template-string', -- Automatic template string
use 'csv', -- CSV highlighting, etc.
use 'modicator', -- Line number mode indicator
use 'demicolon', -- Overloaded `;`/`,` keys
use 'refjump', -- Jump to next/previous reference
use 'unception', -- Open files in Neovim from terminal
use 'git-worktree', -- Manage git worktrees
use 'octo', -- GitHub client
use 'other', -- Go to alternate file
use 'neotest', -- Testing framework
use 'package-info', -- Show package.json versions
use 'output-panel', -- LSP logs panel
use 'typst', -- Typst highlighting, etc.
use 'zk', -- Zettlekasten (note taking)
use 'crates', -- Cargo.toml helper
use 'gx', -- Improved link opening with gx
use 'various-textobjs', -- Various text-objects
use 'icon-picker', -- Emoji, Nerd Font icons, etc.
use 'image', -- ASCII art image viewer
use 'text-case', -- Convert between text cases
{ 'mawkler/hml.nvim', opts = {} }, -- H/M/L line number indicators
{ 'tpope/vim-fugitive', -- :Git commands
dependencies = 'tpope/vim-dispatch', -- Asynchronous `:Gpush`, etc.
cmd = { 'G', 'Git', 'Gvdiffsplit' },
},
{ 'tpope/vim-abolish', cmd = {'Abolish', 'S'} },
{ 'inkarkat/vim-visualrepeat',
dependencies = { 'inkarkat/vim-ingo-library', 'tpope/vim-repeat' },
event = 'ModeChanged *:[vV]',
},
{ 'milkypostman/vim-togglelist', -- Toggle quickfix window
event = 'QuickFixCmdPre',
},
{ 'kana/vim-niceblock', -- Improves visual mode
event = 'ModeChanged *:[vV]',
},
{ 'wsdjeg/vim-fetch', event = 'VeryLazy' }, -- Line and column position when opening file
{ 'milisims/nvim-luaref', event = 'VeryLazy' },-- Vim :help reference for lua
{ 'tvaintrob/bicep.vim', ft = 'bicep' },
{ 'jghauser/mkdir.nvim', -- Create missing folders on :w
event = 'CmdlineEnter'
},
}
require('lazy').setup({
spec = plugins,
install = {
colorscheme = { 'onedark' },
},
performance = {
rtp = {
disabled_plugins = { 'netrwPlugin', 'tutor' },
},
},
})