aboutsummaryrefslogtreecommitdiffstats
path: root/init.lua
diff options
context:
space:
mode:
authorphilw <dscr@duck.com>2025-01-13 15:52:11 +0100
committerphilw <dscr@duck.com>2025-01-13 15:52:11 +0100
commitc233e93c2552940d228be7adb077da47ef42761f (patch)
tree241b20fa2f0cf2818bd6bdb06b4b99bfa7e90bcc /init.lua
parent783a40f4f430b2daec157e5396e5bd4d3ea65657 (diff)
downloadneovim-c233e93c2552940d228be7adb077da47ef42761f.tar.gz
neovim-c233e93c2552940d228be7adb077da47ef42761f.zip
Update config
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua445
1 files changed, 204 insertions, 241 deletions
diff --git a/init.lua b/init.lua
index b6a456b..d5e104d 100644
--- a/init.lua
+++ b/init.lua
@@ -4,8 +4,6 @@ local keymap = vim.keymap
4 4
5vim.loader.enable() 5vim.loader.enable()
6 6
7-- vim.g.loaded_netrw = 1
8-- vim.g.loaded_netrwPlugin = 1
9vim.g.netrw_banner = 0 7vim.g.netrw_banner = 0
10vim.g.netrw_liststyle = 3 8vim.g.netrw_liststyle = 3
11vim.g.netrw_altv = 0 9vim.g.netrw_altv = 0
@@ -35,265 +33,230 @@ option.clipboard = "unnamedplus"
35option.termguicolors = true 33option.termguicolors = true
36option.fillchars = 'eob: ' 34option.fillchars = 'eob: '
37option.autoindent = true 35option.autoindent = true
36option.lazyredraw = false
37option.updatetime = 300
38option.timeoutlen = 500
39
40
41vim.cmd [[autocmd BufWritePre <buffer> lua vim.lsp.buf.format()]]
38 42
39vim.cmd([[ 43vim.cmd([[
40augroup RunPfOnSave 44augroup RunPfOnSave
41autocmd! 45autocmd!
42autocmd BufWritePost *.js,*.ts,*.jsx,*json,*.tsx,*.css,*.html,*.yaml,*.md silent! !prettier --write % 46autocmd BufWritePost *.js,*.ts,*.jsx,*json,*.tsx,*.css,*.html,*.yaml,*.md silent! !prettier --write %
43autocmd BufWritePost *.tex silent! :VimtexCompile 47autocmd BufWritePost *.tex silent! :VimtexCompile
44" autocmd BufWritePost *.php silent! !php-cs-fixer fix %
45augroup END 48augroup END
46]]) 49]])
47 50
48 51
49vim.cmd([[ 52vim.cmd([[
50augroup AutoDeleteNetrwHiddenBuffers 53augroup AutoDeleteNetrwHiddenBuffers
51 au! 54au!
52 au FileType netrw setlocal bufhidden=wipe 55au FileType netrw setlocal bufhidden=wipe
53augroup end 56augroup end
54]]) 57]])
55 58
56vim.cmd([[ 59vim.cmd([[
57function! ToggleVExplorer() 60function! ToggleVExplorer()
58 if exists("t:expl_buf_num") 61if exists("t:expl_buf_num")
59 let expl_win_num = bufwinnr(t:expl_buf_num) 62 let expl_win_num = bufwinnr(t:expl_buf_num)
60 if expl_win_num != -1 63 if expl_win_num != -1
61 let cur_win_id = win_getid() 64 let cur_win_id = win_getid()
62 exec expl_win_num . 'windo close' 65 exec expl_win_num . 'windo close'
63 let prev_win_num = win_id2win(cur_win_id) 66 let prev_win_num = win_id2win(cur_win_id)
64 if prev_win_num != 0 67 if prev_win_num != 0
65 exec prev_win_num . 'wincmd w' 68 exec prev_win_num . 'wincmd w'
66 endif 69 endif
67 endif 70 endif
68 unlet t:expl_buf_num 71 unlet t:expl_buf_num
69 else 72 else
70 exec '1wincmd w' 73 exec '1wincmd w'
71 Vexplore 74 Vexplore
72 let t:expl_buf_num = bufnr("%") 75 let t:expl_buf_num = bufnr("%")
73 endif 76 endif
74endfunction 77 endfunction
75]]) 78 ]])
76 79
77 80
78-- Gui options 81 -- Gui options
79-- vim.o.guifont = "Fira Code:h7" 82 vim.g.vimtex_view_method = "zathura"
80vim.g.vimtex_view_method = "zathura" 83 vim.g.vimtex_compiler_method = "latexmk"
81vim.g.vimtex_compiler_method = "latexmk" 84 vim.g.vimtex_quickfix_mode = 0
82vim.g.vimtex_quickfix_mode = 0 85 vim.g.tex_conceal = "abdmg"
83vim.g.tex_conceal = "abdmg" 86 vim.g.tex_flavor = "latex"
84vim.g.tex_flavor = "latex" 87 vim.g.gitgutter_set_sign_backgrounds = 1
85vim.g.gitgutter_set_sign_backgrounds = 1 88
86 89
87 90 local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
88local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 91 if not vim.loop.fs_stat(lazypath) then
89if not vim.loop.fs_stat(lazypath) then 92 vim.fn.system({
90 vim.fn.system({ 93 "git",
91 "git", 94 "clone",
92 "clone", 95 "--filter=blob:none",
93 "--filter=blob:none", 96 "https://github.com/folke/lazy.nvim.git",
94 "https://github.com/folke/lazy.nvim.git", 97 "--branch=stable",
95 "--branch=stable", -- latest stable release 98 lazypath,
96 lazypath, 99 })
97 }) 100 end
98end 101
99 102 vim.opt.rtp:prepend(lazypath)
100vim.opt.rtp:prepend(lazypath) 103 require("lazy").setup({
101require("lazy").setup({ 104 "airblade/vim-gitgutter",
102 "nvim-lua/plenary.nvim", 105 {"lervag/vimtex", lazy = true},
103 -- { 106 "norcalli/nvim-colorizer.lua",
104 -- 'barrientosvctor/abyss.nvim', 107 "nvim-treesitter/nvim-treesitter",
105 -- lazy = false, 108 {
106 -- priority = 1000, 109 "neovim/nvim-lspconfig",
107 -- opts = {} 110 lazy = false,
108 -- }, 111 dependencies = {
109 -- 'ryanoasis/vim-devicons', 112 { "ms-jpq/coq_nvim", branch = "coq" },
110 "airblade/vim-gitgutter", 113 { "ms-jpq/coq.artifacts", branch = "artifacts" },
111 "lervag/vimtex", 114 { 'ms-jpq/coq.thirdparty', branch = "3p" },
112 -- "nvim-tree/nvim-tree.lua", 115 "williamboman/mason.nvim",
113 "norcalli/nvim-colorizer.lua", 116 "williamboman/mason-lspconfig.nvim",
114 "nvim-treesitter/nvim-treesitter", 117 },
115 "neovim/nvim-lspconfig", 118 init = function()
116 "williamboman/mason.nvim", 119 vim.g.coq_settings = {
117 -- "nvim-tree/nvim-web-devicons", 120 auto_start = 'shut-up'
118 "williamboman/mason-lspconfig.nvim", 121 }
119 -- "iamcco/markdown-preview.nvim", 122 end,
120 -- cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, 123 config = function()
121 -- build = "cd app && yarn install", 124 end,
122 -- init = function() 125 },
123 -- vim.g.mkdp_filetypes = { "markdown" } 126 'nvim-telescope/telescope.nvim',
124 -- end, 127 lazy = true,
125 -- ft = { "markdown" } 128 tag = '0.1.5',
126 -- , 129 dependencies = { 'nvim-lua/plenary.nvim' },
127 -- { 130 {
128 -- 'nvimdev/lspsaga.nvim', 131 'nvim-telescope/telescope-fzf-native.nvim',
129 -- config = function() 132 lazy = true,
130 -- require('lspsaga').setup({}) 133 build =
131 -- end 134 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build',
132 -- }, 135 keys = {
133 'nvim-telescope/telescope.nvim', 136 { "<leader>/", false },
134 tag = '0.1.5', 137 { "<leader>f", "<cmd>Telescope find_files<cr>", desc = "Find Files" },
135 dependencies = { 'nvim-lua/plenary.nvim' }, 138 { "<leader>g", "<cmd>Telescope live_grep<cr>", desc = "Grep" },
136 { 139 { "<leader>b", "<cmd>Telescope buffers<cr>", desc = "Grep" },
137 'nvim-telescope/telescope-fzf-native.nvim', 140 { "<leader>s", "<cmd>Telescope buffers<cr>", desc = "Grep" },
138 build = 141 }
139 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build', 142 }},
140 keys = { 143 {
141 { "<leader>/", false }, 144 'windwp/nvim-autopairs',
142 { "<leader>f", "<cmd>Telescope find_files<cr>", desc = "Find Files" }, 145 event = "InsertEnter",
143 { "<leader>g", "<cmd>Telescope live_grep<cr>", desc = "Grep" }, 146 opts = {}
144 { "<leader>b", "<cmd>Telescope buffers<cr>", desc = "Grep" }, 147 }
145 { "<leader>s", "<cmd>Telescope buffers<cr>", desc = "Grep" }, 148)
146 } 149
147 }, 150 require("colorizer").setup()
148 { 151
149 'windwp/nvim-autopairs', 152 vim.api.nvim_create_autocmd("BufWritePre", {
150 event = "InsertEnter", 153 callback = function()
151 154 vim.lsp.buf.format()
152 opts = {} 155 end,
153 }, 156 })
154 { 157
155 'numToStr/Comment.nvim', 158 local lsp_servers = {
156 opts = {}, 159 rust_analyzer = {
157 lazy = false, 160 imports = {
158 }, 161 granularity = {
159 162 group = 'module',
160 'ms-jpq/coq_nvim', 163 },
161 { 'ms-jpq/coq.artifacts', branch = "artifacts" }, 164 prefix = 'self',
162}) 165 },
163 166 cargo = {
164require("colorizer").setup() 167 buildScripts = {
165vim.api.nvim_create_autocmd('InsertEnter', { 168 enable = true,
166 command = 'COQnow --shut-up' 169 },
167}) 170 },
168 171 procMacro = {
169vim.api.nvim_create_autocmd("BufWritePre", { 172 enable = true,
170 callback = function() 173 },
171 vim.lsp.buf.format() 174 },
172 end, 175 }
173}) 176
174 177 require("mason").setup({
175local lsp_servers = { 178 ui = {
176 -- rust_analyzer = { 179 icons = {
177 -- imports = { 180 package_installed = "✓",
178 -- granularity = { 181 package_pending = "➜",
179 -- group = 'module', 182 package_uninstalled = "✗"
180 -- }, 183 }
181 -- prefix = 'self', 184 }
182 -- }, 185 })
183 -- cargo = { 186
184 -- buildScripts = { 187 local server_maps = function(opts)
185 -- enable = true, 188 end
186 -- }, 189
187 -- }, 190 for lsp, settings in pairs(lsp_servers) do
188 -- procMacro = { 191 require("lspconfig")[lsp].setup(coq.lsp_ensure_capabilities({
189 -- enable = true, 192 on_attach = function(_, buffer)
190 -- }, 193 server_maps({ buffer = buffer })
191 -- }, 194 end,
192} 195 settings = settings,
193 196 }))
194 197 end
195require("mason").setup() 198
196require("mason-lspconfig").setup { 199 vim.cmd([[
197 ensure_installed = lsp_servers, 200 highlight GitGutterAdd ctermbg=none guibg=none
198 automatic_installation = true, 201 highlight GitGutterDelete guibg=none ctermbg=none
199} 202 highlight GitGutterChange guibg=none ctermbg=none
200 203 highlight GitGutterChangeAdd guibg=none ctermbg=none
201local server_maps = function(opts) 204 highlight GitGutterChangeDelete guibg=none ctermbg=none
202 vim.keymap.set("n", "<leader>d", vim.lsp.buf.definition, opts) -- goto def 205 highlight NonText guifg=none
203 vim.keymap.set("n", "<leader>k", vim.lsp.buf.hover, opts) -- see docs 206 highlight EndOfBuffer ctermfg=none ctermbg=none
204end 207 highlight Normal ctermbg=none guibg=none
205 208 highlight signcolumn ctermbg=none guibg=none
206for lsp, settings in pairs(lsp_servers) do 209 highlight StatusLine ctermbg=none guibg=none
207 require("lspconfig")[lsp].setup(coq.lsp_ensure_capabilities({ 210 highlight DiagnosticError ctermbg=none guibg=none
208 on_attach = function(_, buffer) 211 highlight DiagnosticWarn ctermbg=none guibg=none
209 server_maps({ buffer = buffer }) 212 highlight DiagnosticInfo ctermbg=none guibg=none
210 end, 213 highlight DiagnosticHint ctermbg=none guibg=none
211 settings = settings, 214 highlight Pmenu ctermbg=none guibg=none
212 })) 215
213end 216 highlight DiagnosticVirtualError ctermbg=none guibg=none
214 217 highlight DiagnosticVirtualWarn ctermbg=none guibg=none
215-- require("nvim-tree").setup({ 218 highlight DiagnosticVirtualInfo ctermbg=none guibg=none
216-- sort = { 219 highlight DiagnosticVirtualHint ctermbg=none guibg=none
217-- sorter = "case_sensitive", 220
218-- }, 221 highlight LspFloatWinNormal ctermbg=none guibg=none
219-- view = { 222 highlight NormalFloat ctermbg=none guibg=none
220-- width = 30, 223
221-- }, 224 highlight LineNr ctermbg=none guibg=none
222-- renderer = { 225 highlight StatusLineNc ctermbg=none guibg=none
223-- group_empty = true, 226 highlight StatusLineNc ctermfg=none guifg=none
224-- }, 227 highlight StatusLine ctermbg=none guibg=none
225-- filters = { 228 highlight StatusLine ctermfg=none guifg=none
226-- dotfiles = true, 229
227-- }, 230 highlight NvimTreeWinSeparator ctermfg=none guifg=none
228-- }) 231 highlight CursorColumn ctermfg=none guifg=none
229 232 highlight CursorLine ctermbg=none guibg=none
230 233
231-- require('abyss').setup({ 234 highlight VertSplit ctermbg=none guibg=none
232-- italic_comments = true, 235
233-- italic = true, 236 highlight DiagnosticVirtualTextError ctermbg=none guibg=none
234-- bold = true, 237 highlight DiagnosticVirtualTextWarn ctermbg=none guibg=none
235-- transparent_background = true, 238 highlight DiagnosticVirtualTextInfo ctermbg=none guibg=none
236-- overrides = {} 239 highlight DiagnosticVirtualTextHint ctermbg=none guibg=none
237-- }) 240 ]])
238 241
239-- vim.cmd.colorscheme("abyss") 242
240vim.cmd([[ 243
241highlight GitGutterAdd ctermbg=none guibg=none 244 vim.g.mapleader = " "
242highlight GitGutterDelete guibg=none ctermbg=none 245 keymap.set("n", "<leader>e", "<cmd>:call ToggleVExplorer() <cr>")
243highlight GitGutterChange guibg=none ctermbg=none 246 keymap.set("n", "<leader>z", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
244highlight GitGutterChangeAdd guibg=none ctermbg=none 247 keymap.set("n", "<leader>a", "ggVG")
245highlight GitGutterChangeDelete guibg=none ctermbg=none 248 keymap.set("n", "<leader>y", "cc")
246highlight NonText guifg=none 249 keymap.set("n", "<C-c>", "yy")
247highlight EndOfBuffer ctermfg=none ctermbg=none 250 keymap.set("n", "<C-v>", "p")
248highlight Normal ctermbg=none guibg=none 251 keymap.set("n", "<C-z>", "u")
249highlight signcolumn ctermbg=none guibg=none 252 keymap.set("v", "J", ":m '>+1<CR>gv=gv")
250highlight StatusLine ctermbg=none guibg=none 253 keymap.set("n", "j", "5j")
251highlight DiagnosticError ctermbg=none guibg=none 254 keymap.set("n", "k", "5k")
252highlight DiagnosticWarn ctermbg=none guibg=none 255 keymap.set("v", "K", ":m '<-2<CR>gv=gv")
253highlight DiagnosticInfo ctermbg=none guibg=none 256 keymap.set("n", "<leader>ca", "<cmd>Lspsaga code_action<cr>")
254highlight DiagnosticHint ctermbg=none guibg=none 257 keymap.set("n", "<leader>f", "<cmd>Telescope find_files<cr>")
255highlight Pmenu ctermbg=none guibg=none 258 keymap.set("n", "<leader>g", "<cmd>Telescope live_grep<cr>")
256 259 keymap.set("n", "<leader>t", "<cmd>Lspsaga term_toggle <cr>")
257highlight DiagnosticVirtualError ctermbg=none guibg=none 260 keymap.set("n", "<leader>d", vim.lsp.buf.definition, opts) -- goto def
258highlight DiagnosticVirtualWarn ctermbg=none guibg=none 261 keymap.set("n", "<leader>k", vim.lsp.buf.hover, opts)
259highlight DiagnosticVirtualInfo ctermbg=none guibg=none
260highlight DiagnosticVirtualHint ctermbg=none guibg=none
261
262highlight LspFloatWinNormal ctermbg=none guibg=none
263highlight NormalFloat ctermbg=none guibg=none
264
265highlight LineNr ctermbg=none guibg=none
266highlight StatusLineNc ctermbg=none guibg=none
267highlight StatusLineNc ctermfg=none guifg=none
268highlight StatusLine ctermbg=none guibg=none
269highlight StatusLine ctermfg=none guifg=none
270
271highlight NvimTreeWinSeparator ctermfg=none guifg=none
272highlight CursorColumn ctermfg=none guifg=none
273highlight CursorLine ctermbg=none guibg=none
274
275highlight VertSplit ctermbg=none guibg=none
276
277highlight DiagnosticVirtualTextError ctermbg=none guibg=none
278highlight DiagnosticVirtualTextWarn ctermbg=none guibg=none
279highlight DiagnosticVirtualTextInfo ctermbg=none guibg=none
280highlight DiagnosticVirtualTextHint ctermbg=none guibg=none
281]])
282 262
283--Keybinds
284vim.g.mapleader = " "
285keymap.set("n", "<leader>e", "<cmd>:call ToggleVExplorer() <cr>")
286keymap.set("n", "<leader>z", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
287keymap.set("n", "<leader>a", "ggVG")
288keymap.set("n", "<leader>y", "cc")
289keymap.set("n", "<C-c>", "yy")
290keymap.set("n", "<C-v>", "p")
291keymap.set("n", "<C-z>", "u")
292keymap.set("v", "J", ":m '>+1<CR>gv=gv")
293keymap.set("n", "j", "5j")
294keymap.set("n", "k", "5k")
295keymap.set("v", "K", ":m '<-2<CR>gv=gv")
296keymap.set("n", "<leader>ca", "<cmd>Lspsaga code_action<cr>")
297keymap.set("n", "<leader>f", "<cmd>Telescope find_files<cr>")
298keymap.set("n", "<leader>g", "<cmd>Telescope live_grep<cr>")
299keymap.set("n", "<leader>t", "<cmd>Lspsaga term_toggle <cr>")