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
|
local au = vim.api.nvim_create_autocmd
local group = vim.api.nvim_create_augroup("my_events", {})
au("TextYankPost", {
group = group,
callback = function() vim.hl.on_yank() end,
})
au("TermOpen", {
group = group,
command = "setl stc= nonumber | startinsert!",
})
au("BufWritePre", {
group = group,
callback = function()
local view = vim.fn.winsaveview()
vim.cmd([[silent! keepjumps keeppatterns %s/\s\+$//e]])
vim.fn.winrestview(view)
end,
desc = "remove tail space",
})
au("LspAttach", {
group = group,
command = "setl signcolumn=yes | redrawstatus",
desc = "add sign column when LSP is attached and redraw status",
})
au("FileType", {
group = group,
pattern = "fugitive,git,help,man,qf,query,scratch",
command = 'execute "nnoremap <buffer> q <Cmd>quit<CR>"',
desc = "Close certain windows by pressing q",
})
au("BufWritePost", {
group = group,
desc = "Run shortcuts after updating bookmark files",
pattern = { "bm-dirs", "bm-files" },
command = "!shortcuts",
})
au("User", {
group = group,
pattern = "VimtexEventViewReverse",
desc = "VimTeX: Center view on inverse search",
callback = function()
vim.cmd([[ normal! zMzvzz ]])
-- If I want to turn on blink again:
-- vim.fn["vimtex#ui#blink"]()
end,
})
au("InsertEnter", {
group = group,
desc = "Enable blink.cmp",
once = true,
callback = function()
-- vim.cmd("packadd nvim-cmp")
-- require("mo.cmp")
vim.cmd("packadd blink.cmp")
require("mo.blink").setup()
end,
})
local function startuptime()
if vim.g.strive_startup_time ~= nil then return end
vim.g.strive_startup_time = 0
local usage = vim.uv.getrusage()
if usage then
-- Calculate time in milliseconds (user + system time)
local user_time = (usage.utime.sec * 1000) + (usage.utime.usec / 1000)
local sys_time = (usage.stime.sec * 1000) + (usage.stime.usec / 1000)
vim.g.nvim_startup_time = user_time + sys_time
end
end
local function show_info()
local plugins = vim.pack.get()
local loaded = vim.iter(plugins)
:map(function(p) return p.active end)
:totable()
local startup_time = vim.g.nvim_startup_time or "0"
local plugin_info_str = string.format(
"load %d/%d plugins in %sms",
#loaded or 0,
#plugins or 0,
startup_time
)
vim.notify(plugin_info_str, vim.log.levels.INFO)
end
au("UIEnter", {
group = group,
desc = "Setup Diagnostics and load nohlsearch and undotree package",
once = true,
callback = function()
vim.schedule(function()
-- startuptime()
vim.diagnostic.config({
virtual_text = {
virt_text_pos = "eol_right_align",
current_line = true,
prefix = function(d, _, _)
-- stylua: ignore start
--- @diagnostic disable-next-line: undefined-field, redundant-return-value
return " ■", "DiagnosticPrefix" .. vim.diagnostic.severity[d.severity]
-- stylua: ignore end
end,
},
signs = {
text = { "●", "●", "●", "●" },
numhl = {
"DiagnosticError",
"DiagnosticWarn",
"DiagnosticInfo",
"DiagnosticHint",
},
},
severity_sort = true,
})
vim.cmd([[packadd nohlsearch]])
vim.cmd([[packadd nvim.undotree]])
-- show_info()
end)
end,
})
|