aboutsummaryrefslogtreecommitdiffhomepage
path: root/vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim')
-rw-r--r--vim/init.vim5
-rw-r--r--vim/init/keymaps.vim2
-rw-r--r--vim/mini.lua642
3 files changed, 411 insertions, 238 deletions
diff --git a/vim/init.vim b/vim/init.vim
index fd65816..ef303c3 100644
--- a/vim/init.vim
+++ b/vim/init.vim
@@ -12,9 +12,10 @@ let s:home = '~/helper/vim'
12" Add current dir into runtimepath 12" Add current dir into runtimepath
13execute 'set runtimepath+='.s:home 13execute 'set runtimepath+='.s:home
14 14
15" Load script in home 15" Load scripts in home
16command! -nargs=1 LoadScript exec 'source '.s:home.'/'.'<args>' 16command! -nargs=1 LoadScript exec 'source '.s:home.'/'.'<args>'
17 17
18
18" Gerneral scripts 19" Gerneral scripts
19LoadScript init/basic.vim " Basic configuration 20LoadScript init/basic.vim " Basic configuration
20LoadScript init/keymaps.vim " Key mappings 21LoadScript init/keymaps.vim " Key mappings
@@ -22,7 +23,7 @@ LoadScript init/config.vim " Extra config for different contexts
22 23
23" Different scripts for nvim and vim 24" Different scripts for nvim and vim
24if has('nvim') 25if has('nvim')
25 LoadScript lazy.lua 26 LoadScript mini.lua
26else 27else
27 LoadScript init/plugins.vim 28 LoadScript init/plugins.vim
28 LoadScript init/style.vim 29 LoadScript init/style.vim
diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim
index 81ce508..f13756b 100644
--- a/vim/init/keymaps.vim
+++ b/vim/init/keymaps.vim
@@ -211,7 +211,7 @@ nnoremap <leader>ee :edit $MYVIMRC<CR>
211" MANAGE_BUFFERS ----------------{{{ 211" MANAGE_BUFFERS ----------------{{{
212 212
213" Set options 213" Set options
214noremap <leader>st :set<space> 214noremap st :set<space>
215noremap <leader><leader>ft :<C-\>e'set filetype='..&filetype<CR> 215noremap <leader><leader>ft :<C-\>e'set filetype='..&filetype<CR>
216noremap <leader><leader>li :set list!<CR> 216noremap <leader><leader>li :set list!<CR>
217noremap <leader><leader>sw :<C-\>e'set shiftwidth='..&shiftwidth<CR> 217noremap <leader><leader>sw :<C-\>e'set shiftwidth='..&shiftwidth<CR>
diff --git a/vim/mini.lua b/vim/mini.lua
index f550440..e693db2 100644
--- a/vim/mini.lua
+++ b/vim/mini.lua
@@ -1,4 +1,4 @@
1-- vim: sw=2 foldmethod=marker foldmarker={{{,}}} 1-- vim: sw=2 ts=2 et foldmethod=marker foldmarker={{{,}}} foldlevel=0
2 2
3-- Ref: https://github.com/echasnovski/mini.nvim 3-- Ref: https://github.com/echasnovski/mini.nvim
4-- https://lazy.folke.io/spec 4-- https://lazy.folke.io/spec
@@ -8,32 +8,19 @@
8local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 8local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
9if not (vim.uv or vim.loop).fs_stat(lazypath) then 9if not (vim.uv or vim.loop).fs_stat(lazypath) then
10 local lazyrepo = "https://github.com/folke/lazy.nvim.git" 10 local lazyrepo = "https://github.com/folke/lazy.nvim.git"
11 local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) 11 vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
12end 12end
13vim.opt.rtp:prepend(lazypath) 13vim.opt.rtp:prepend(lazypath)
14-- }}} 14-- }}}
15vim.g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/" 15require("lazy").setup({
16require("lazy").setup ({ 16
17 "tpope/vim-sleuth", 17 "tpope/vim-sleuth",
18 -- conform {{{
19 {
20 "stevearc/conform.nvim",
21 opts = {
22 formatters_by_ft = {
23 lua = { "stylua" },
24 },
25 },
26 config = function(_, opts)
27 require("conform").setup(opts)
28 end,
29 },
30 -- }}}
31 -- Telescope {{{ 18 -- Telescope {{{
32 { 19 {
33 "nvim-telescope/telescope.nvim", 20 "nvim-telescope/telescope.nvim",
34 lazy = false, 21 lazy = false,
35 dependencies = { 22 dependencies = {
36 'nvim-lua/plenary.nvim', 23 "nvim-lua/plenary.nvim",
37 { 24 {
38 "nvim-telescope/telescope-fzf-native.nvim", 25 "nvim-telescope/telescope-fzf-native.nvim",
39 build = "make", 26 build = "make",
@@ -45,7 +32,7 @@ require("lazy").setup ({
45 -- require("telescope").load_extension("aerial") 32 -- require("telescope").load_extension("aerial")
46 -- }}} 33 -- }}}
47 -- config {{{ 34 -- config {{{
48 require('telescope').setup({ 35 require("telescope").setup({
49 defaults = { 36 defaults = {
50 mappings = { 37 mappings = {
51 i = { 38 i = {
@@ -68,7 +55,7 @@ require("lazy").setup ({
68 preview_cutoff = 0, 55 preview_cutoff = 0,
69 }, 56 },
70 file_ignore_patterns = { 57 file_ignore_patterns = {
71 "node_modules" 58 "node_modules",
72 }, 59 },
73 }, 60 },
74 pickers = { 61 pickers = {
@@ -83,23 +70,23 @@ require("lazy").setup ({
83 }, 70 },
84 n = { 71 n = {
85 ["<c-d>"] = "delete_buffer", 72 ["<c-d>"] = "delete_buffer",
86 } 73 },
87 }, 74 },
88 }, 75 },
89 }, 76 },
90 extensions = { 77 extensions = {
91 fzf = { 78 fzf = {
92 fuzzy = true, -- false will only do exact matching 79 fuzzy = true, -- false will only do exact matching
93 override_generic_sorter = true, -- override the generic sorter 80 override_generic_sorter = true, -- override the generic sorter
94 override_file_sorter = true, -- override the file sorter 81 override_file_sorter = true, -- override the file sorter
95 case_mode = "smart_case", -- or "ignore_case" or "respect_case" 82 case_mode = "smart_case", -- or "ignore_case" or "respect_case"
96 -- the default case_mode is "smart_case" 83 -- the default case_mode is "smart_case"
97 }, 84 },
98 aerial = { 85 aerial = {
99 -- Display symbols as <root>.<parent>.<symbol> 86 -- Display symbols as <root>.<parent>.<symbol>
100 show_nesting = { 87 show_nesting = {
101 ["_"] = false, -- This key will be the default 88 ["_"] = false, -- This key will be the default
102 json = true, -- You can set the option for specific filetypes 89 json = true, -- You can set the option for specific filetypes
103 yaml = true, 90 yaml = true,
104 }, 91 },
105 }, 92 },
@@ -109,13 +96,18 @@ require("lazy").setup ({
109 -- Keymaps {{{ 96 -- Keymaps {{{
110 vim.keymap.set("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" }) 97 vim.keymap.set("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" })
111 vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" }) 98 vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" })
112 vim.keymap.set("n", "<leader>/", "<cmd>Telescope current_buffer_fuzzy_find<CR>", { desc = "telescope find in current buffer" }) 99 vim.keymap.set(
100 "n",
101 "<leader>/",
102 "<cmd>Telescope current_buffer_fuzzy_find<CR>",
103 { desc = "telescope find in current buffer" }
104 )
113 vim.keymap.set("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" }) 105 vim.keymap.set("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" })
114 vim.keymap.set( 106 vim.keymap.set(
115 "n", 107 "n",
116 "<leader>sF", 108 "<leader>sF",
117 "<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>", 109 "<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>",
118 { desc = "telescope find all files" } 110 { desc = "telescope find all files" }
119 ) 111 )
120 vim.keymap.set("n", "<leader>sg", "<cmd>Telescope live_grep<CR>", { desc = "telescope live grep" }) 112 vim.keymap.set("n", "<leader>sg", "<cmd>Telescope live_grep<CR>", { desc = "telescope live grep" })
121 vim.keymap.set("n", "<leader>gf", "<cmd>Telescope git_files<CR>", { desc = "telescope git files" }) 113 vim.keymap.set("n", "<leader>gf", "<cmd>Telescope git_files<CR>", { desc = "telescope git files" })
@@ -125,7 +117,7 @@ require("lazy").setup ({
125 vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>", { desc = "telescope help page" }) 117 vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>", { desc = "telescope help page" })
126 vim.keymap.set("n", "<leader>sk", "<cmd>Telescope keymaps<CR>", { desc = "telescope keymaps" }) 118 vim.keymap.set("n", "<leader>sk", "<cmd>Telescope keymaps<CR>", { desc = "telescope keymaps" })
127 vim.keymap.set("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "telescope pick hidden term" }) 119 vim.keymap.set("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "telescope pick hidden term" })
128 120 --
129 vim.keymap.set("n", "<leader>ss", function() 121 vim.keymap.set("n", "<leader>ss", function()
130 local current_filetype = vim.bo.filetype 122 local current_filetype = vim.bo.filetype
131 local cwd = os.getenv("HOME") .. "/snippets" 123 local cwd = os.getenv("HOME") .. "/snippets"
@@ -139,11 +131,12 @@ require("lazy").setup ({
139 if file_list then 131 if file_list then
140 return file_list[1] 132 return file_list[1]
141 else 133 else
142 local current_picker = require("telescope.actions.state").get_current_picker(prompt_bufnr) 134 local current_picker =
135 require("telescope.actions.state").get_current_picker(prompt_bufnr)
143 return current_picker:_get_prompt() 136 return current_picker:_get_prompt()
144 end 137 end
145 end 138 end
146 139 --
147 local edit_snippet = function() 140 local edit_snippet = function()
148 local file = get_prompt_or_entry() 141 local file = get_prompt_or_entry()
149 require("telescope.actions").close(prompt_bufnr) 142 require("telescope.actions").close(prompt_bufnr)
@@ -154,7 +147,7 @@ require("lazy").setup ({
154 vim.bo.bufhidden = "wipe" 147 vim.bo.bufhidden = "wipe"
155 vim.cmd("set filetype?") 148 vim.cmd("set filetype?")
156 end 149 end
157 150 --
158 local insert_selected_snippet = function() 151 local insert_selected_snippet = function()
159 local file = get_prompt_or_entry() 152 local file = get_prompt_or_entry()
160 local path = cwd .. "/" .. file 153 local path = cwd .. "/" .. file
@@ -167,16 +160,16 @@ require("lazy").setup ({
167 edit_snippet() 160 edit_snippet()
168 end 161 end
169 end 162 end
170 163 --
171 map("i", "<CR>", insert_selected_snippet) 164 map("i", "<CR>", insert_selected_snippet)
172 map("i", "<C-T>", edit_snippet) 165 map("i", "<C-T>", edit_snippet)
173 map("n", "<CR>", insert_selected_snippet) 166 map("n", "<CR>", insert_selected_snippet)
174 167 --
175 return true 168 return true
176 end, 169 end,
177 }) 170 })
178 end, { desc = "[S]earch [S]nippets" }) 171 end, { desc = "[S]earch [S]nippets" })
179 172 --
180 vim.keymap.set("n", "<leader>sd", function() 173 vim.keymap.set("n", "<leader>sd", function()
181 require("telescope.builtin").oldfiles({ 174 require("telescope.builtin").oldfiles({
182 prompt_title = "CD to", 175 prompt_title = "CD to",
@@ -187,14 +180,15 @@ require("lazy").setup ({
187 require("telescope.actions").close(prompt_bufnr) 180 require("telescope.actions").close(prompt_bufnr)
188 vim.api.nvim_feedkeys(":cd " .. path, "n", true) 181 vim.api.nvim_feedkeys(":cd " .. path, "n", true)
189 end 182 end
190 183 --
191 map("i", "<CR>", cd_prompt) 184 map("i", "<CR>", cd_prompt)
192 map("n", "<CR>", cd_prompt) 185 map("n", "<CR>", cd_prompt)
193 186 --
194 return true 187 return true
195 end, 188 end,
196 }) 189 })
197 end, { desc = "Search Directory" })-- }}} 190 end, { desc = "Search Directory" })
191 -- }}}
198 end, 192 end,
199 }, 193 },
200 -- }}} 194 -- }}}
@@ -203,7 +197,7 @@ require("lazy").setup ({
203 "nvim-tree/nvim-tree.lua", 197 "nvim-tree/nvim-tree.lua",
204 config = function() 198 config = function()
205 -- config {{{ 199 -- config {{{
206 require("nvim-tree").setup { 200 require("nvim-tree").setup({
207 filters = { 201 filters = {
208 dotfiles = false, 202 dotfiles = false,
209 }, 203 },
@@ -219,7 +213,7 @@ require("lazy").setup ({
219 view = { 213 view = {
220 adaptive_size = false, 214 adaptive_size = false,
221 side = "left", 215 side = "left",
222 width = 30, 216 width = 26,
223 preserve_window_proportions = true, 217 preserve_window_proportions = true,
224 }, 218 },
225 git = { 219 git = {
@@ -238,11 +232,11 @@ require("lazy").setup ({
238 root_folder_label = false, 232 root_folder_label = false,
239 highlight_git = true, 233 highlight_git = true,
240 highlight_opened_files = "none", 234 highlight_opened_files = "none",
241 235 --
242 indent_markers = { 236 indent_markers = {
243 enable = true, 237 enable = true,
244 }, 238 },
245 239 --
246 icons = { 240 icons = {
247 show = { 241 show = {
248 file = true, 242 file = true,
@@ -250,7 +244,7 @@ require("lazy").setup ({
250 folder_arrow = true, 244 folder_arrow = true,
251 git = true, 245 git = true,
252 }, 246 },
253 247 --
254 glyphs = { 248 glyphs = {
255 default = "󰈚", 249 default = "󰈚",
256 symlink = "", 250 symlink = "",
@@ -276,21 +270,11 @@ require("lazy").setup ({
276 }, 270 },
277 }, 271 },
278 }, 272 },
279 } 273 })
280 -- }}} 274 -- }}}
281 -- keymaps {{{ 275 -- keymaps {{{
282 vim.keymap.set( 276 vim.keymap.set("n", "<C-n>", "<cmd>NvimTreeToggle<CR>", { desc = "nvimtree toggle window" })
283 "n", 277 vim.keymap.set("n", "<leader>e", "<cmd>NvimTreeFocus<CR>", { desc = "nvimtree focus window" })
284 "<C-n>",
285 "<cmd>NvimTreeToggle<CR>",
286 { desc = "nvimtree toggle window" }
287 )
288 vim.keymap.set(
289 "n",
290 "<leader>e",
291 "<cmd>NvimTreeFocus<CR>",
292 { desc = "nvimtree focus window" }
293 )
294 -- }}} 278 -- }}}
295 end, 279 end,
296 }, 280 },
@@ -300,7 +284,7 @@ require("lazy").setup ({
300 "folke/which-key.nvim", 284 "folke/which-key.nvim",
301 lazy = false, 285 lazy = false,
302 config = function() 286 config = function()
303 require('which-key').setup { 287 require("which-key").setup({
304 defaults = { 288 defaults = {
305 win = { 289 win = {
306 -- don't allow the popup to overlap with the cursor 290 -- don't allow the popup to overlap with the cursor
@@ -320,8 +304,8 @@ require("lazy").setup ({
320 -- winblend = 10, -- value between 0-100 0 for fully opaque and 100 for fully transparent 304 -- winblend = 10, -- value between 0-100 0 for fully opaque and 100 for fully transparent
321 }, 305 },
322 }, 306 },
323 } 307 },
324 } 308 })
325 end, 309 end,
326 }, 310 },
327 -- }}} 311 -- }}}
@@ -330,7 +314,7 @@ require("lazy").setup ({
330 "iberianpig/tig-explorer.vim", 314 "iberianpig/tig-explorer.vim",
331 dependencies = { "rbgrouleff/bclose.vim" }, 315 dependencies = { "rbgrouleff/bclose.vim" },
332 config = function() 316 config = function()
333 vim.cmd('nunmap <leader>bd') 317 vim.cmd("nunmap <leader>bd")
334 end, 318 end,
335 }, 319 },
336 --}}} 320 --}}}
@@ -338,103 +322,289 @@ require("lazy").setup ({
338 { 322 {
339 "akinsho/toggleterm.nvim", 323 "akinsho/toggleterm.nvim",
340 config = function() 324 config = function()
341 require("toggleterm").setup { 325 require("toggleterm").setup({
342 persist_size = false, 326 persist_size = false,
343 direction = 'float', 327 direction = "float",
344 } 328 })
345 329 --
346 vim.keymap.set({ "n", "t" }, "<A-i>", function() vim.cmd("ToggleTerm direction=float") end, { desc = "terminal toggle floating term" }) 330 vim.keymap.set({ "n", "t" }, "<A-i>", function()
347 vim.keymap.set({ "n", "t" }, "<A-v>", function() vim.cmd("ToggleTerm direction=horizontal") end, { desc = "terminal toggle floating term" }) 331 vim.cmd("ToggleTerm direction=float")
332 end, { desc = "terminal toggle floating term" })
333 vim.keymap.set({ "n", "t" }, "<A-v>", function()
334 vim.cmd("ToggleTerm direction=horizontal")
335 end, { desc = "terminal toggle floating term" })
348 end, 336 end,
349 }, 337 },
350 --}}} 338 --}}}
351-- Nvchad {{{
352 {
353 "NvChad/NvChad",
354 lazy = false,
355 branch = "v2.5",
356 dependencies = {
357 "Nvchad/base46",
358 "Nvchad/ui",
359 }
360 },
361-- }}}
362-- nvim-cmp {{{
363 {
364 "hrsh7th/nvim-cmp",
365 event = "InsertEnter",
366 dependencies = {
367 {
368 -- snippet plugin
369 "L3MON4D3/LuaSnip",
370 dependencies = "rafamadriz/friendly-snippets",
371 opts = { history = true, updateevents = "TextChanged,TextChangedI" },
372 config = function(_, opts)
373 require("luasnip").config.set_config(opts)
374 require "nvchad.configs.luasnip"
375 end,
376 },
377 339
378 -- cmp sources plugins 340 -- -- lspconfig {{{
379 { 341 -- -- Use :help lspconfig-all to check servers
380 "saadparwaiz1/cmp_luasnip", 342 -- {
381 "hrsh7th/cmp-nvim-lua", 343 -- "neovim/nvim-lspconfig",
382 "hrsh7th/cmp-nvim-lsp", 344 -- lazy = false,
383 "hrsh7th/cmp-buffer", 345 -- config = function()
384 "hrsh7th/cmp-path", 346 -- local lspconfig = require "lspconfig"
385 }, 347 -- --
386 }, 348 -- -- typescript
387 opts = function() 349 -- lspconfig.lua_ls.setup {}
388 return require "nvchad.configs.cmp" 350 -- lspconfig.tsserver.setup {}
389 end, 351 -- lspconfig.vimls.setup {}
390 config = function(_, opts) 352 -- lspconfig.html.setup {}
391 require("cmp").setup(opts) 353 -- --
392 end, 354 -- vim.keymap.set("n", "<leader>F", function()
393 }, 355 -- vim.lsp.buf.format()
394-- }}} 356 -- end, { desc = "format files" })
357 -- end,
358 -- },
359 -- -- }}}
360 -- -- Mason {{{
361 -- {
362 -- "williamboman/mason.nvim",
363 -- config = function()
364 -- require('mason').setup {
365 -- automatically_installation = true,
366 -- ensure_installed = {
367 -- "vim-language-server",
368 -- "lua-language-server",
369 -- "css-lsp",
370 -- "html-lsp",
371 -- "prettier",
372 -- "stylua",
373 -- },
374 -- }
375 -- end
376 -- },
377 -- -- }}}
378 -- -- treesitter {{{
379 -- {
380 -- "nvim-treesitter/nvim-treesitter",
381 -- event = { "BufReadPost", "BufNewFile" },
382 -- cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSModuleInfo" },
383 -- build = ":TSUpdate",
384 -- config = function()
385 -- require("nvim-treesitter.configs").setup({
386 -- ensure_installed = { "lua", "luadoc", "printf", "vim", "vimdoc" },
387 -- --
388 -- highlight = {
389 -- enable = true,
390 -- use_languagetree = true,
391 -- },
392 -- --
393 -- indent = { enable = true },
394 -- })
395 -- end,
396 -- },
397 -- -- }}}
398 -- -- nvim-cmp {{{
399 -- {
400 -- "hrsh7th/nvim-cmp",
401 -- event = {
402 -- "InsertEnter",
403 -- "CmdlineEnter"
404 -- },
405 -- dependencies = { -- {{{
406 -- {
407 -- -- snippet plugin
408 -- "L3MON4D3/LuaSnip",
409 -- build = "make install_jsregexp",
410 -- dependencies = {
411 -- "rafamadriz/friendly-snippets",
412 -- "saadparwaiz1/cmp_luasnip",
413 -- "onsails/lspkind-nvim",
414 -- },
415 -- opts = {
416 -- history = true,
417 -- updateevents = "TextChanged,TextChangedI"
418 -- },
419 -- config = function(_, opts)
420 -- require("luasnip").config.set_config(opts)
421 -- require("luasnip.loaders.from_vscode").lazy_load()
422 -- require("luasnip.loaders.from_lua").load()
423 -- require("luasnip.loaders.from_lua").lazy_load { paths = vim.g.lua_snippets_path or "" }
424 -- --
425 -- vim.api.nvim_create_autocmd("InsertLeave", {
426 -- callback = function()
427 -- if
428 -- require("luasnip").session.current_nodes[vim.api.nvim_get_current_buf()]
429 -- and not require("luasnip").session.jump_active
430 -- then
431 -- require("luasnip").unlink_current()
432 -- end
433 -- end,
434 -- })
435 -- end,
436 -- },
437 -- --
438 -- -- cmp sources plugins
439 -- {
440 -- "hrsh7th/cmp-nvim-lua",
441 -- "hrsh7th/cmp-nvim-lsp",
442 -- "hrsh7th/cmp-buffer",
443 -- "hrsh7th/cmp-path",
444 -- "hrsh7th/cmp-cmdline",
445 -- },
446 -- }, -- }}}
447 -- config = function()
448 -- local cmp = require "cmp"
449 -- local default_mapping = {
450 -- ["<S-TAB>"] = cmp.mapping.select_prev_item(),
451 -- ["<TAB>"] = cmp.mapping.select_next_item(),
452 -- ["<C-p>"] = cmp.mapping.select_prev_item(),
453 -- ["<C-n>"] = cmp.mapping.select_next_item(),
454 -- ["<C-d>"] = cmp.mapping.scroll_docs(-4),
455 -- ["<C-f>"] = cmp.mapping.scroll_docs(4),
456 -- ["<C-Space>"] = cmp.mapping.complete(),
457 -- ["<C-e>"] = cmp.mapping.close(),
458 -- ['<CR>'] = cmp.mapping.confirm(),
459 -- ['<C-c>'] = cmp.mapping.abort(),
460 -- }
461 --
462 -- require("cmp").setup({
463 -- completion = {
464 -- completeopt = "menu,menuone,noselect",
465 -- },
466 -- window = {
467 -- documentation = cmp.config.window.bordered(),
468 -- completion = cmp.config.window.bordered({
469 -- winhighlight = 'Normal:CmpPmenu,CursorLine:PmenuSel,Search:None'
470 -- }),
471 -- },
472 -- snippet = {
473 -- expand = function(args)
474 -- require("luasnip").lsp_expand(args.body)
475 -- end,
476 -- },
477 -- formatting = {
478 -- format = require('lspkind').cmp_format({
479 -- with_text = true, -- do not show text alongside icons
480 -- maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters)
481 -- before = function(entry, vim_item)
482 -- -- Source 显示提示来源
483 -- vim_item.menu = '<' .. entry.source.name .. '>'
484 -- return vim_item
485 -- end
486 -- })
487 -- },
488 -- mapping = default_mapping,
489 -- sources = cmp.config.sources {
490 -- { name = "nvim_lsp" },
491 -- { name = "luasnip" },
492 -- { name = "buffer" },
493 -- { name = "nvim_lua" },
494 -- { name = "path" },
495 -- },
496 -- experimental = {
497 -- ghost_text = true,
498 -- }
499 -- })
500 -- cmp.setup.cmdline(':', {
501 -- mapping = cmp.mapping.preset.cmdline {
502 -- ['<C-n>'] = cmp.config.disable,
503 -- ['<C-p>'] = cmp.config.disable,
504 -- ['<C-c>'] = cmp.mapping.abort(),
505 -- },
506 -- sources = cmp.config.sources(
507 -- { { name = 'path' } },
508 -- { { name = 'cmdline' } }
509 -- )
510 -- })
511 -- cmp.setup.cmdline({ '/', '?' }, {
512 -- mapping = cmp.mapping.preset.cmdline {
513 -- ['<C-n>'] = cmp.config.disable,
514 -- ['<C-p>'] = cmp.config.disable,
515 -- ['<C-c>'] = cmp.mapping.abort(),
516 -- },
517 -- sources = { { name = 'buffer' } }
518 -- })
519 --
520 -- vim.opt.complete = ""
521 -- end,
522 -- },
523 --
524 -- -- }}}
525 -- -- lspsaga {{{
526 -- {
527 -- 'nvimdev/lspsaga.nvim',
528 -- dependencies = {
529 -- 'nvim-treesitter/nvim-treesitter', -- optional
530 -- 'nvim-tree/nvim-web-devicons', -- optional
531 -- },
532 -- config = function()
533 -- require('lspsaga').setup({})
534 -- end,
535 -- },
536 -- -- }}}
537 -- -- conform {{{
538 -- {
539 -- "stevearc/conform.nvim",
540 -- config = function(_, opts)
541 -- require("conform").setup({
542 -- formatters_by_ft = {
543 -- lua = { "stylua" },
544 -- sh = { "shfmt" },
545 -- bash = { "shfmt" },
546 -- zsh = { "shfmt" },
547 -- markdown = { "prettier" },
548 -- css = { "prettier" },
549 -- html = { "prettier" },
550 -- },
551 -- })
552 -- vim.keymap.set("n", "<leader>F", function()
553 -- require("conform").format({ lsp_fallback = true })
554 -- end, { desc = "format files" })
555 -- end,
556 -- },
557 -- -- }}}
558
395}) 559})
396 560
397-- Install mini.nvim {{{ 561-- Install mini.nvim {{{
398-- Put this at the top of 'init.lua' 562-- Put this at the top of 'init.lua'
399local path_package = vim.fn.stdpath('data') .. '/site' 563local path_package = vim.fn.stdpath("data") .. "/site"
400vim.o.packpath = path_package 564vim.o.packpath = path_package
401local mini_path = path_package .. '/pack/deps/start/mini.nvim' 565local mini_path = path_package .. "/pack/deps/start/mini.nvim"
402 566--
403if not vim.loop.fs_stat(mini_path) then 567if not vim.loop.fs_stat(mini_path) then
404 vim.cmd('echo "Installing `mini.nvim`" | redraw') 568 vim.cmd('echo "Installing `mini.nvim`" | redraw')
405 local clone_cmd = { 569 local clone_cmd = {
406 'git', 'clone', '--filter=blob:none', 570 "git",
571 "clone",
572 "--filter=blob:none",
407 -- Uncomment next line to use 'stable' branch 573 -- Uncomment next line to use 'stable' branch
408 -- '--branch', 'stable', 574 -- '--branch', 'stable',
409 'https://github.com/echasnovski/mini.nvim', mini_path 575 "https://github.com/echasnovski/mini.nvim",
576 mini_path,
410 } 577 }
411 vim.fn.system(clone_cmd) 578 vim.fn.system(clone_cmd)
412 vim.cmd('packadd mini.nvim | helptags ALL') 579 vim.cmd("packadd mini.nvim | helptags ALL")
413end 580end
414 581--
415-- }}} 582-- }}}
416-- mini.deps {{{ 583-- mini.deps {{{
417require('mini.deps').setup({ 584require("mini.deps").setup({
418 path = { package = path_package } 585 path = { package = path_package },
419}) 586})
420add, now, later = MiniDeps.add, MiniDeps.now, MiniDeps.later 587Add, Now, Later = MiniDeps.add, MiniDeps.now, MiniDeps.later
421-- }}} 588-- }}}
422-- mini.basics {{{ 589-- mini.basics {{{
423require('mini.basics').setup() 590require("mini.basics").setup()
424-- }}} 591-- }}}
425-- mini.misc {{{ 592-- mini.misc {{{
426require('mini.misc').setup({ 593require("mini.misc").setup({
427 make_global = { 'put', 'put_text', 'zoom'} 594 make_global = { "put", "put_text", "zoom" },
428}) --}}} 595})
596--}}}
429-- mini.extra {{{ 597-- mini.extra {{{
430require('mini.extra').setup() 598require("mini.extra").setup()
431-- }}} 599-- }}}
432-- mini.colors {{{ 600-- mini.colors {{{
433require('mini.colors').setup() 601require("mini.colors").setup()
434vim.keymap.set( 'n', '<leader><leader>co', function() require('mini.colors').interactive() end) 602vim.keymap.set("n", "<leader><leader>co", function()
603 require("mini.colors").interactive()
604end)
435-- }}} 605-- }}}
436-- mini.base16 {{{ 606-- mini.base16 {{{
437require('mini.base16').setup({ 607require("mini.base16").setup({
438 palette = { 608 palette = {
439 -- Default Background 609 -- Default Background
440 base00 = "#2d2a2e", 610 base00 = "#2d2a2e",
@@ -471,160 +641,162 @@ require('mini.base16').setup({
471 }, 641 },
472 use_cterm = false, 642 use_cterm = false,
473}) 643})
474 644--
475-- Override settings for search 645-- Override settings for search
476vim.cmd('hi Search guibg=#e5c07b') 646vim.cmd("hi Search guibg=#e5c07b")
477 647--
478-- Resume terminal color 648-- Resume terminal color
479for i = 1, 15, 1 do 649for i = 1, 15, 1 do
480 vim.cmd("let terminal_color_"..i.." = ''") 650 vim.cmd("let terminal_color_" .. i .. " = ''")
481end 651end
482 652--
483-- Override settings for bufferline 653-- Override settings for bufferline
484vim.cmd('hi BufferLineTabSelected guibg=#f85e84') 654vim.cmd("hi BufferLineTabSelected guibg=#f85e84")
485vim.cmd('hi BufferLineTab guibg=Gray') 655vim.cmd("hi BufferLineTab guibg=Gray")
486 656--
487--}}} 657--}}}
488-- mini.icons {{{ 658-- mini.icons {{{
489require('mini.icons').setup({ 659require("mini.icons").setup({})
490}) --}}} 660--}}}
491-- mini.statusline {{{ 661-- mini.statusline {{{
492 662--
493require('mini.statusline').setup({ 663require("mini.statusline").setup({
494 content = { 664 content = {
495 active = status_config 665 active = status_config,
496 }, 666 },
497}) 667})
498function diagnostics_table(args) 668local function diagnostics_table(args)
499 local info = vim.b.coc_diagnostic_info 669 local info = vim.b.coc_diagnostic_info
500 if MiniStatusline.is_truncated(args.trunc_width) or info == nil then 670 if MiniStatusline.is_truncated(args.trunc_width) or info == nil then
501 return {} 671 return {}
502 end 672 end
503 local table = {} 673 local table = {}
504 table.e = (info['error'] or 0) > 0 and 'E'..info['error'] or '' 674 table.e = (info["error"] or 0) > 0 and "E" .. info["error"] or ""
505 table.w = (info['warning'] or 0) > 0 and 'W'..info['warning'] or '' 675 table.w = (info["warning"] or 0) > 0 and "W" .. info["warning"] or ""
506 table.h = (info['hint'] or 0) > 0 and 'H'..info['hint'] or '' 676 table.h = (info["hint"] or 0) > 0 and "H" .. info["hint"] or ""
507 table.i = (info['information'] or 0) > 0 and 'I'..info['information'] or '' 677 table.i = (info["information"] or 0) > 0 and "I" .. info["information"] or ""
508 table.s = vim.g.coc_status 678 table.s = vim.g.coc_status
509 return table 679 return table
510end 680end
681--
511function status_config() 682function status_config()
512 local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 }) 683 local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 })
513 local git = MiniStatusline.section_git({ trunc_width = 75 }) 684 local git = MiniStatusline.section_git({ trunc_width = 75 })
514 local diagnostics = diagnostics_table({ trunc_width = 75 }) 685 local diagnostics = diagnostics_table({ trunc_width = 75 })
515 local filename = MiniStatusline.section_filename({ trunc_width = 140 }) 686 local filename = MiniStatusline.section_filename({ trunc_width = 140 })
516 local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 }) 687 local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 })
517 local location = MiniStatusline.section_location({ trunc_width = 75 }) 688 local location = MiniStatusline.section_location({ trunc_width = 75 })
518 689 --
519 return MiniStatusline.combine_groups({ 690 return MiniStatusline.combine_groups({
520 { hl = mode_hl, strings = { mode } }, 691 { hl = mode_hl, strings = { mode } },
521 { hl = 'MiniStatuslineDevinfo', strings = { git, diagnostics['s'] } }, 692 { hl = "MiniStatuslineDevinfo", strings = { git, diagnostics["s"] } },
522 { hl = 'MiniStatuslineError', strings = { diagnostics['e'] } }, 693 { hl = "MiniStatuslineError", strings = { diagnostics["e"] } },
523 { hl = 'MiniStatuslineWarning', strings = { diagnostics['w'] } }, 694 { hl = "MiniStatuslineWarning", strings = { diagnostics["w"] } },
524 { hl = 'MiniStatuslineInfo', strings = { diagnostics['i'] } }, 695 { hl = "MiniStatuslineInfo", strings = { diagnostics["i"] } },
525 { hl = 'MiniStatuslineHint', strings = { diagnostics['h'] } }, 696 { hl = "MiniStatuslineHint", strings = { diagnostics["h"] } },
526 '%<', -- Mark general truncate point 697 "%<", -- Mark general truncate point
527 { hl = 'MiniStatuslineFilename', strings = { filename } }, 698 { hl = "MiniStatuslineFilename", strings = { filename } },
528 '%=', -- End left alignment 699 "%=", -- End left alignment
529 { hl = 'MiniStatuslineFileinfo', strings = { fileinfo } }, 700 { hl = "MiniStatuslineFileinfo", strings = { fileinfo } },
530 { hl = mode_hl, strings = { location } }, 701 { hl = mode_hl, strings = { location } },
531 }) 702 })
532end 703end
533 704
705--
534-- }}} 706-- }}}
535-- mini.comment {{{ 707-- mini.comment {{{
536require('mini.comment').setup({ 708require("mini.comment").setup({
537 -- Module mappings. Use `''` (empty string) to disable one. 709 -- Module mappings. Use `''` (empty string) to disable one.
538 mappings = { 710 mappings = {
539 -- Toggle comment (like `gcip` - comment inner paragraph) for both 711 -- Toggle comment (like `gcip` - comment inner paragraph) for both
540 -- Normal and Visual modes 712 -- Normal and Visual modes
541 comment = 'gc', 713 comment = "gc",
542 714 --
543 -- Toggle comment on current line 715 -- Toggle comment on current line
544 comment_line = '<C-/>', 716 comment_line = "<C-/>",
545 717 --
546 -- Toggle comment on visual selection 718 -- Toggle comment on visual selection
547 comment_visual = '<C-/>', 719 comment_visual = "<C-/>",
548 720 --
549 -- Define 'comment' textobject (like `dgc` - delete whole comment block) 721 -- Define 'comment' textobject (like `dgc` - delete whole comment block)
550 -- Works also in Visual mode if mapping differs from `comment_visual` 722 -- Works also in Visual mode if mapping differs from `comment_visual`
551 textobject = 'gc', 723 textobject = "gc",
552 }, 724 },
553})-- }}} 725}) -- }}}
554-- mini.cursorword {{{ 726-- mini.cursorword {{{
555require('mini.cursorword').setup() 727require("mini.cursorword").setup()
556-- }}} 728-- }}}
557-- mini.diff {{{ 729-- mini.diff {{{
558require('mini.diff').setup({ 730require("mini.diff").setup({
559 -- Options for how hunks are visualized 731 -- Options for how hunks are visualized
560 view = { 732 view = {
561 -- Visualization style. Possible values are 'sign' and 'number'. 733 -- Visualization style. Possible values are 'sign' and 'number'.
562 -- Default: 'number' if line numbers are enabled, 'sign' otherwise. 734 -- Default: 'number' if line numbers are enabled, 'sign' otherwise.
563 style = 'sign', 735 style = "sign",
564 736 --
565 -- Signs used for hunks with 'sign' view 737 -- Signs used for hunks with 'sign' view
566 signs = { add = '+', change = '', delete = '-' }, 738 signs = { add = "+", change = "", delete = "-" },
567 739 --
568 -- Priority of used visualization extmarks 740 -- Priority of used visualization extmarks
569 priority = 199, 741 priority = 199,
570 }, 742 },
571}) 743})
572 744--
573vim.keymap.set( 'n', '\\gh', function() 745vim.keymap.set("n", "\\gh", function()
574 MiniDiff.toggle_overlay() 746 MiniDiff.toggle_overlay()
575 end, 747end, { buffer = bufnr, desc = "Toggle diff" })
576 { buffer = bufnr, desc = 'Toggle diff' } 748--
577)
578
579-- }}} 749-- }}}
580-- mini.map {{{ 750-- mini.map {{{
581require('mini.map').setup() 751require("mini.map").setup()
582vim.keymap.set( 'n', '\\m', function() require('mini.map').toggle() end, { desc = 'Minimap', buffer = bufnr, desc = '' }) 752vim.keymap.set("n", "\\m", function()
753 require("mini.map").toggle()
754end, { desc = "Minimap", buffer = bufnr })
583-- }}} 755-- }}}
584-- mini.visits {{{ 756-- mini.visits {{{
585require('mini.visits').setup() 757require("mini.visits").setup()
586vim.keymap.set( 'n', '<leader><leader>li', function() 758-- vim.keymap.set("n", "<leader><leader>li", function()
587 MiniVisits.list_paths() 759-- MiniVisits.list_paths()
588end, 760-- end, { buffer = bufnr, desc = "" })
589{ buffer = bufnr, desc = '' }
590)
591-- }}} 761-- }}}
592-- mini.surround {{{ 762-- mini.surround {{{
593require('mini.surround').setup { 763require("mini.surround").setup({
594 mappings = { 764 mappings = {
595 add = 's' 765 add = "s",
596 } 766 },
597} 767})
598-- }}} 768-- }}}
599-- mini.indentscope {{{ 769-- mini.indentscope {{{
600require('mini.indentscope').setup() 770require("mini.indentscope").setup()
601-- }}} 771-- }}}
602-- mini.splitjoin {{{ 772-- mini.splitjoin {{{
603require('mini.splitjoin').setup() 773require("mini.splitjoin").setup()
604-- }}} 774-- }}}
605-- mini.move {{{ 775-- mini.move {{{
606require('mini.move').setup() 776require("mini.move").setup()
607-- }}} 777-- }}}
608-- mini.hipatterns {{{ 778-- mini.hipatterns {{{
609 779--
610local hipatterns = require('mini.hipatterns') 780local hipatterns = require("mini.hipatterns")
611hipatterns.setup({ 781hipatterns.setup({
612 highlighters = { 782 highlighters = {
613 -- Highlight standalone 'FIXME', 'HACK', 'TODO', 'NOTE' 783 -- Highlight standalone 'FIXME', 'HACK', 'TODO', 'NOTE'
614 fixme = { pattern = '%f[%w]()FIXME()%f[%W]', group = 'MiniHipatternsFixme' }, 784 fixme = { pattern = "%f[%w]()FIXME()%f[%W]", group = "MiniHipatternsFixme" },
615 hack = { pattern = '%f[%w]()HACK()%f[%W]', group = 'MiniHipatternsHack' }, 785 hack = { pattern = "%f[%w]()HACK()%f[%W]", group = "MiniHipatternsHack" },
616 todo = { pattern = '%f[%w]()TODO()%f[%W]', group = 'MiniHipatternsTodo' }, 786 todo = { pattern = "%f[%w]()TODO()%f[%W]", group = "MiniHipatternsTodo" },
617 note = { pattern = '%f[%w]()NOTE()%f[%W]', group = 'MiniHipatternsNote' }, 787 note = { pattern = "%f[%w]()NOTE()%f[%W]", group = "MiniHipatternsNote" },
618 788 --
619 -- Highlight hex color strings (`#rrggbb`) using that color 789 -- Highlight hex color strings (`#rrggbb`) using that color
620 hex_color = hipatterns.gen_highlighter.hex_color(), 790 hex_color = hipatterns.gen_highlighter.hex_color(),
621 }, 791 },
622}) 792})
623vim.keymap.set( 'n', '<leader><leader>hi', function()MiniHipatterns.toggle() end, { buffer = bufnr, desc = 'Toggle hex color highlight' }) 793vim.keymap.set("n", "<leader><leader>hi", function()
624 794 MiniHipatterns.toggle()
795end, { buffer = bufnr, desc = "Toggle hex color highlight" })
796--
625-- }}} 797-- }}}
626-- mini.pairs {{{ 798-- mini.pairs {{{
627require('mini.pairs').setup() 799require("mini.pairs").setup()
628-- }}} 800-- }}}
629-- -- mini.completion {{{ 801-- -- mini.completion {{{
630-- require('mini.completion').setup() 802-- require('mini.completion').setup()
@@ -700,46 +872,46 @@ require('mini.pairs').setup()
700-- -- suda {{{ 872-- -- suda {{{
701-- add { source = "lambdalisue/suda.vim" } 873-- add { source = "lambdalisue/suda.vim" }
702-- }}} 874-- }}}
703-- true-zen {{{ 875-- -- true-zen {{{
704add { 876-- add({
705 source = "Pocco81/true-zen.nvim", 877-- source = "Pocco81/true-zen.nvim",
706} 878-- })
707vim.keymap.set("n", "<leader>z", ":TZAtaraxis<CR>") 879-- vim.keymap.set("n", "<leader>z", ":TZAtaraxis<CR>")
708-- }}} 880-- -- }}}
709-- bufferline {{{ 881-- bufferline {{{
710add { 882Add({
711 source = "akinsho/bufferline.nvim", 883 source = "akinsho/bufferline.nvim",
712 depends = { 884 depends = {
713 'nvim-tree/nvim-web-devicons', -- OPTIONAL: for file icons 885 "nvim-tree/nvim-web-devicons", -- OPTIONAL: for file icons
714 "tiagovla/scope.nvim", 886 "tiagovla/scope.nvim",
715 }, 887 },
716} 888})
717require("bufferline").setup{ 889require("bufferline").setup({
718 options = { 890 options = {
719 tab_size = 14, 891 tab_size = 14,
720 separator_style = { '', '' }, 892 separator_style = { "", "" },
721 themable = true, 893 themable = true,
722 buffer_close_icon = '', 894 buffer_close_icon = "",
723 close_icon = '', 895 close_icon = "",
724 groups = { 896 groups = {
725 items = { 897 items = {
726 require('bufferline.groups').builtin.pinned:with({ icon = "󰐃" }) 898 require("bufferline.groups").builtin.pinned:with({ icon = "󰐃" }),
727 } 899 },
728 } 900 },
729 }, 901 },
730} 902})
731require("scope").setup{} 903require("scope").setup({})
732-- keymaps {{{ 904-- keymaps {{{
733for i = 1, 9, 1 do 905for i = 1, 9, 1 do
734 vim.keymap.set("n", string.format("<A-%s>", i), function() 906 vim.keymap.set("n", string.format("<A-%s>", i), function()
735 vim.cmd("BufferLineGoToBuffer "..i) 907 vim.cmd("BufferLineGoToBuffer " .. i)
736 end, {silent = true}) 908 end, { silent = true })
737end 909end
738local opts = { noremap = true, silent = true } 910local opts = { noremap = true, silent = true }
739vim.keymap.set('n', '<TAB>', '<Cmd>BufferLineCyclePrev<CR>', opts) 911vim.keymap.set("n", "<TAB>", "<Cmd>BufferLineCyclePrev<CR>", opts)
740vim.keymap.set('n', '<S-TAB>', '<Cmd>BufferLineCycleNext<CR>', opts) 912vim.keymap.set("n", "<S-TAB>", "<Cmd>BufferLineCycleNext<CR>", opts)
741vim.keymap.set('n', '<M-h>', '<Cmd>BufferLineMovePrev<CR>', opts) 913vim.keymap.set("n", "<M-h>", "<Cmd>BufferLineMovePrev<CR>", opts)
742vim.keymap.set('n', '<M-l>', '<Cmd>BufferLineMoveNext<CR>', opts) 914vim.keymap.set("n", "<M-l>", "<Cmd>BufferLineMoveNext<CR>", opts)
743vim.keymap.set('n', '<M-p>', '<Cmd>BufferLineTogglePin<CR>', opts) 915vim.keymap.set("n", "<M-p>", "<Cmd>BufferLineTogglePin<CR>", opts)
744-- }}} 916-- }}}
745-- }}} 917-- }}}