2021-07-16 18:52:36 +01:00
|
|
|
local M = {}
|
|
|
|
|
2021-09-07 10:48:33 +01:00
|
|
|
local config = require("core.utils").load_config()
|
|
|
|
|
2021-08-27 02:14:58 +01:00
|
|
|
M.autopairs = function()
|
|
|
|
local present1, autopairs = pcall(require, "nvim-autopairs")
|
|
|
|
local present2, autopairs_completion = pcall(require, "nvim-autopairs.completion.cmp")
|
|
|
|
|
|
|
|
if not (present1 or present2) then
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
|
|
|
autopairs.setup()
|
|
|
|
autopairs_completion.setup {
|
|
|
|
map_complete = true, -- insert () func completion
|
|
|
|
map_cr = true,
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
M.autosave = function()
|
|
|
|
-- autosave.nvim plugin is disabled by default
|
|
|
|
local present, autosave = pcall(require, "autosave")
|
|
|
|
if not present then
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
|
|
|
autosave.setup {
|
2021-09-07 10:48:33 +01:00
|
|
|
enabled = config.options.plugin.autosave, -- takes boolean value from chadrc.lua
|
2021-08-27 02:14:58 +01:00
|
|
|
execution_message = "autosaved at : " .. vim.fn.strftime "%H:%M:%S",
|
|
|
|
events = { "InsertLeave", "TextChanged" },
|
|
|
|
conditions = {
|
|
|
|
exists = true,
|
|
|
|
filetype_is_not = {},
|
|
|
|
modifiable = true,
|
|
|
|
},
|
|
|
|
clean_command_line_interval = 2500,
|
|
|
|
on_off_commands = true,
|
|
|
|
write_all_buffers = false,
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2021-08-22 08:49:15 +01:00
|
|
|
M.better_escape = function()
|
2021-09-10 11:51:54 +01:00
|
|
|
local m = require("core.utils").load_config().mappings.plugin.better_escape.esc_insertmode
|
|
|
|
|
2021-08-22 08:49:15 +01:00
|
|
|
vim.g.better_escape_interval = config.options.plugin.esc_insertmode_timeout or 300
|
2021-09-10 11:51:54 +01:00
|
|
|
vim.g.better_escape_shortcut = m
|
2021-08-22 08:49:15 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
M.blankline = function()
|
2021-08-31 20:57:56 +01:00
|
|
|
require("indent_blankline").setup {
|
|
|
|
indentLine_enabled = 1,
|
|
|
|
char = "▏",
|
2021-09-02 11:46:19 +01:00
|
|
|
filetype_exclude = {
|
2021-09-01 05:39:02 +01:00
|
|
|
"help",
|
|
|
|
"terminal",
|
|
|
|
"dashboard",
|
|
|
|
"packer",
|
|
|
|
"lspinfo",
|
|
|
|
"TelescopePrompt",
|
|
|
|
"TelescopeResults",
|
|
|
|
},
|
2021-09-02 11:46:19 +01:00
|
|
|
buftype_exclude = { "terminal" },
|
2021-09-02 04:15:05 +01:00
|
|
|
show_trailing_blankline_indent = false,
|
|
|
|
show_first_indent_level = false,
|
2021-08-31 20:57:56 +01:00
|
|
|
}
|
2021-08-22 08:49:15 +01:00
|
|
|
end
|
|
|
|
|
2021-07-16 18:52:36 +01:00
|
|
|
M.colorizer = function()
|
2021-08-16 08:49:09 +01:00
|
|
|
local present, colorizer = pcall(require, "colorizer")
|
|
|
|
if present then
|
2021-08-30 01:24:31 +01:00
|
|
|
colorizer.setup({ "*" }, {
|
|
|
|
RGB = true, -- #RGB hex codes
|
|
|
|
RRGGBB = true, -- #RRGGBB hex codes
|
|
|
|
names = false, -- "Name" codes like Blue
|
|
|
|
RRGGBBAA = false, -- #RRGGBBAA hex codes
|
|
|
|
rgb_fn = false, -- CSS rgb() and rgba() functions
|
|
|
|
hsl_fn = false, -- CSS hsl() and hsla() functions
|
|
|
|
css = false, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
|
|
|
|
css_fn = false, -- Enable all CSS *functions*: rgb_fn, hsl_fn
|
|
|
|
|
|
|
|
-- Available modes: foreground, background
|
|
|
|
mode = "background", -- Set the display mode.
|
|
|
|
})
|
2021-08-16 08:49:09 +01:00
|
|
|
vim.cmd "ColorizerReloadAllBuffers"
|
|
|
|
end
|
2021-07-16 18:52:36 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
M.comment = function()
|
2021-08-16 08:49:09 +01:00
|
|
|
local present, nvim_comment = pcall(require, "nvim_comment")
|
|
|
|
if present then
|
|
|
|
nvim_comment.setup()
|
|
|
|
end
|
2021-07-16 18:52:36 +01:00
|
|
|
end
|
|
|
|
|
2021-08-28 05:09:38 +01:00
|
|
|
M.luasnip = function()
|
|
|
|
local present, luasnip = pcall(require, "luasnip")
|
|
|
|
if not present then
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
|
|
|
luasnip.config.set_config {
|
|
|
|
history = true,
|
|
|
|
updateevents = "TextChanged,TextChangedI",
|
|
|
|
}
|
|
|
|
require("luasnip/loaders/from_vscode").load()
|
|
|
|
end
|
|
|
|
|
2021-07-16 18:52:36 +01:00
|
|
|
M.neoscroll = function()
|
2021-08-16 08:49:09 +01:00
|
|
|
pcall(function()
|
|
|
|
require("neoscroll").setup()
|
|
|
|
end)
|
2021-07-16 18:52:36 +01:00
|
|
|
end
|
|
|
|
|
2021-08-07 06:55:23 +01:00
|
|
|
M.signature = function()
|
2021-08-16 08:49:09 +01:00
|
|
|
local present, lspsignature = pcall(require, "lsp_signature")
|
|
|
|
if present then
|
|
|
|
lspsignature.setup {
|
|
|
|
bind = true,
|
|
|
|
doc_lines = 2,
|
|
|
|
floating_window = true,
|
|
|
|
fix_pos = true,
|
|
|
|
hint_enable = true,
|
|
|
|
hint_prefix = " ",
|
|
|
|
hint_scheme = "String",
|
|
|
|
hi_parameter = "Search",
|
|
|
|
max_height = 22,
|
|
|
|
max_width = 120, -- max_width of signature floating_window, line will be wrapped if exceed max_width
|
|
|
|
handler_opts = {
|
|
|
|
border = "single", -- double, single, shadow, none
|
|
|
|
},
|
|
|
|
zindex = 200, -- by default it will be on top of all floating windows, set to 50 send it to bottom
|
|
|
|
padding = "", -- character to pad on left and right of signature can be ' ', or '|' etc
|
|
|
|
}
|
|
|
|
end
|
2021-08-07 06:55:23 +01:00
|
|
|
end
|
|
|
|
|
2021-07-16 18:52:36 +01:00
|
|
|
return M
|