aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--vim/mini.lua177
1 files changed, 177 insertions, 0 deletions
diff --git a/vim/mini.lua b/vim/mini.lua
new file mode 100644
index 0000000..1f4ee45
--- /dev/null
+++ b/vim/mini.lua
@@ -0,0 +1,177 @@
1-- vim: foldmethod=marker foldmarker={{{,}}}
2
3-- Install mini.nvim -{{{
4-- Put this at the top of 'init.lua'
5local path_package = vim.fn.stdpath('data') .. '/site'
6vim.o.packpath=path_package
7local mini_path = path_package .. '/pack/deps/start/mini.nvim'
8if not vim.loop.fs_stat(mini_path) then
9 vim.cmd('echo "Installing `mini.nvim`" | redraw')
10 local clone_cmd = {
11 'git', 'clone', '--filter=blob:none',
12 -- Uncomment next line to use 'stable' branch
13 -- '--branch', 'stable',
14 'https://github.com/echasnovski/mini.nvim', mini_path
15 }
16 vim.fn.system(clone_cmd)
17 vim.cmd('packadd mini.nvim | helptags ALL')
18end
19-- }}}
20require('mini.base16').setup({ --{{{
21 palette = {
22 -- Default Background
23 base00 = "#2d2a2e",
24 -- Lighter Background (Used for status bars, line number and folding marks)
25 base01 = "#37343a",
26 -- Selection Background
27 base02 = "#423f46",
28 -- Comments, Invisible, Line Highlighting
29 base03 = "#848089",
30 -- Dark Foreground (Used for status bars)
31 base04 = "#66d9ef",
32 -- Default Foreground, Caret, Delimiters, Operators
33 base05 = "#e3e1e4",
34 -- Light Foreground (Not often used)
35 base06 = "#a1efe4",
36 -- Light Background (Not often used)
37 base07 = "#f8f8f2",
38 -- Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted
39 base08 = "#f85e84",
40 -- Integers, Boolean, Constants, XML Attributes, Markup Link Url
41 base09 = "#ef9062",
42 -- Classes, Markup Bold, Search Text Background
43 base0A = "#a6e22e",
44 -- Strings, Inherited Class, Markup Code, Diff Inserted
45 base0B = "#e5c463",
46 -- Support, Regular Expressions, Escape Characters, Markup Quotes
47 base0C = "#66d9ef",
48 -- Functions, Methods, Attribute IDs, Headings
49 base0D = "#9ecd6f",
50 -- Keywords, Storage, Selector, Markup Italic, Diff Changed
51 base0E = "#a1efe4",
52 -- Deprecated, Opening/Closing Embedded Language Tags, e.g. <?php ?>
53 base0F = "#f9f8f5",
54 },
55 use_cterm = true,
56}) --}}}
57require('mini.misc').setup({ --{{{
58 make_global = { 'put', 'put_text', 'zoom'}
59}) --}}}
60require('mini.statusline').setup({--{{{
61 content = {
62 active = status_config
63 },
64})
65function diagnostics_table(args)
66 local info = vim.b.coc_diagnostic_info
67 if MiniStatusline.is_truncated(args.trunc_width) or info == nil then
68 return {}
69 end
70 local table = {}
71 table.e = (info['error'] or 0) > 0 and 'E'..info['error'] or ''
72 table.w = (info['warning'] or 0) > 0 and 'W'..info['warning'] or ''
73 table.h = (info['hint'] or 0) > 0 and 'H'..info['hint'] or ''
74 table.i = (info['information'] or 0) > 0 and 'I'..info['information'] or ''
75 table.s = vim.g.coc_status
76 return table
77end
78function status_config()
79 local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 })
80 local git = MiniStatusline.section_git({ trunc_width = 75 })
81 local diagnostics = diagnostics_table({ trunc_width = 75 })
82 local filename = MiniStatusline.section_filename({ trunc_width = 140 })
83 local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 })
84 local location = MiniStatusline.section_location({ trunc_width = 75 })
85
86 return MiniStatusline.combine_groups({
87 { hl = mode_hl, strings = { mode } },
88 { hl = 'MiniStatuslineDevinfo', strings = { git, diagnostics['s'] } },
89 { hl = 'MiniStatuslineError', strings = { diagnostics['e'] } },
90 { hl = 'MiniStatuslineWarning', strings = { diagnostics['w'] } },
91 { hl = 'MiniStatuslineInfo', strings = { diagnostics['i'] } },
92 { hl = 'MiniStatuslineHint', strings = { diagnostics['h'] } },
93 '%<', -- Mark general truncate point
94 { hl = 'MiniStatuslineFilename', strings = { filename } },
95 '%=', -- End left alignment
96 { hl = 'MiniStatuslineFileinfo', strings = { fileinfo } },
97 { hl = mode_hl, strings = { location } },
98 })
99end
100-- }}}
101require('mini.animate').setup()--{{{
102-- }}}
103require('mini.basics').setup()--{{{
104-- }}}
105-- require('mini.bufremove').setup() --{{{
106--}}}
107require('mini.clue') --{{{
108local miniclue = require('mini.clue')
109miniclue.setup({
110 triggers = {
111 -- Leader triggers
112 { mode = 'n', keys = '<Leader>' },
113 { mode = 'x', keys = '<Leader>' },
114
115 -- Built-in completion
116 { mode = 'i', keys = '<C-x>' },
117
118 -- `g` key
119 { mode = 'n', keys = 'g' },
120 { mode = 'x', keys = 'g' },
121
122 -- Marks
123 { mode = 'n', keys = "'" },
124 { mode = 'n', keys = '`' },
125 { mode = 'x', keys = "'" },
126 { mode = 'x', keys = '`' },
127
128 -- Registers
129 { mode = 'n', keys = '"' },
130 { mode = 'x', keys = '"' },
131 { mode = 'i', keys = '<C-r>' },
132 { mode = 'c', keys = '<C-r>' },
133
134 -- Window commands
135 { mode = 'n', keys = '<C-w>' },
136
137 -- `z` key
138 { mode = 'n', keys = 'z' },
139 { mode = 'x', keys = 'z' },
140 },
141
142 clues = {
143 -- Enhance this by adding descriptions for <Leader> mapping groups
144 miniclue.gen_clues.builtin_completion(),
145 miniclue.gen_clues.g(),
146 miniclue.gen_clues.marks(),
147 miniclue.gen_clues.registers(),
148 miniclue.gen_clues.windows(),
149 miniclue.gen_clues.z(),
150 },
151})-- }}}
152require('mini.colors').setup()-- {{{
153-- }}}
154require('mini.comment').setup({-- {{{
155 -- Module mappings. Use `''` (empty string) to disable one.
156 mappings = {
157 -- Toggle comment (like `gcip` - comment inner paragraph) for both
158 -- Normal and Visual modes
159 comment = 'gc',
160
161 -- Toggle comment on current line
162 comment_line = '<C-/>',
163
164 -- Toggle comment on visual selection
165 comment_visual = '<C-/>',
166
167 -- Define 'comment' textobject (like `dgc` - delete whole comment block)
168 -- Works also in Visual mode if mapping differs from `comment_visual`
169 textobject = 'gc',
170 },
171})-- }}}
172require('mini.cursorword').setup()-- {{{
173-- }}}
174require('mini.cursorword').setup()-- {{{
175-- }}}
176require('mini.diff').setup()-- {{{
177-- }}}