mirror of
https://github.com/jdhao/nvim-config.git
synced 2025-06-08 14:14:33 +02:00
Format with stylua
This commit is contained in:
parent
61d6045e67
commit
bac94b47a0
@ -1,3 +1,3 @@
|
||||
require('bqf').setup({
|
||||
auto_resize_height=false
|
||||
require("bqf").setup({
|
||||
auto_resize_height = false,
|
||||
})
|
||||
|
||||
@ -1,38 +1,38 @@
|
||||
-- nvim-compe settings
|
||||
require'compe'.setup {
|
||||
enabled = true;
|
||||
autocomplete = true;
|
||||
debug = false;
|
||||
min_length = 1;
|
||||
preselect = 'enable';
|
||||
throttle_time = 80;
|
||||
source_timeout = 200;
|
||||
incomplete_delay = 400;
|
||||
max_abbr_width = 100;
|
||||
max_kind_width = 100;
|
||||
max_menu_width = 100;
|
||||
documentation = true;
|
||||
require("compe").setup({
|
||||
enabled = true,
|
||||
autocomplete = true,
|
||||
debug = false,
|
||||
min_length = 1,
|
||||
preselect = "enable",
|
||||
throttle_time = 80,
|
||||
source_timeout = 200,
|
||||
incomplete_delay = 400,
|
||||
max_abbr_width = 100,
|
||||
max_kind_width = 100,
|
||||
max_menu_width = 100,
|
||||
documentation = true,
|
||||
|
||||
source = {
|
||||
omni = {filetypes = {'tex'}};
|
||||
path = true;
|
||||
buffer = false;
|
||||
spell = {filetypes = {'markdown', 'tex'}};
|
||||
emoji = true;
|
||||
nvim_lsp = true;
|
||||
nvim_lua = true;
|
||||
ultisnips = true;
|
||||
calc = false;
|
||||
vsnip = false;
|
||||
};
|
||||
}
|
||||
omni = { filetypes = { "tex" } },
|
||||
path = true,
|
||||
buffer = false,
|
||||
spell = { filetypes = { "markdown", "tex" } },
|
||||
emoji = true,
|
||||
nvim_lsp = true,
|
||||
nvim_lua = true,
|
||||
ultisnips = true,
|
||||
calc = false,
|
||||
vsnip = false,
|
||||
},
|
||||
})
|
||||
|
||||
vim.o.completeopt = "menuone,noselect"
|
||||
|
||||
-- nvim-compe mappings
|
||||
local compe_map_opts = {expr = true, noremap = true, silent = true}
|
||||
vim.api.nvim_set_keymap('i', '<C-Space>', 'compe#complete()', compe_map_opts)
|
||||
vim.api.nvim_set_keymap('i', '<CR>', "compe#confirm('<CR>')", compe_map_opts)
|
||||
vim.api.nvim_set_keymap('i', '<ESC>', "compe#close('<ESC>')", compe_map_opts)
|
||||
vim.api.nvim_set_keymap('i', '<C-f>', "compe#scroll({'delta': +4})", compe_map_opts)
|
||||
vim.api.nvim_set_keymap('i', '<C-d>', "compe#scroll({'delta': -4})", compe_map_opts)
|
||||
local compe_map_opts = { expr = true, noremap = true, silent = true }
|
||||
vim.api.nvim_set_keymap("i", "<C-Space>", "compe#complete()", compe_map_opts)
|
||||
vim.api.nvim_set_keymap("i", "<CR>", "compe#confirm('<CR>')", compe_map_opts)
|
||||
vim.api.nvim_set_keymap("i", "<ESC>", "compe#close('<ESC>')", compe_map_opts)
|
||||
vim.api.nvim_set_keymap("i", "<C-f>", "compe#scroll({'delta': +4})", compe_map_opts)
|
||||
vim.api.nvim_set_keymap("i", "<C-d>", "compe#scroll({'delta': -4})", compe_map_opts)
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
vim.g.indent_blankline_char = '│'
|
||||
vim.g.indent_blankline_filetype_exclude = {'help', 'startify', 'git', 'markdown'}
|
||||
vim.g.indent_blankline_char = "│"
|
||||
vim.g.indent_blankline_filetype_exclude = { "help", "startify", "git", "markdown" }
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
local iron = require('iron')
|
||||
iron.core.set_config{
|
||||
local iron = require("iron")
|
||||
iron.core.set_config({
|
||||
preferred = {
|
||||
python = 'ipython'
|
||||
python = "ipython",
|
||||
},
|
||||
repl_open_cmd = 'vertical 120 split'
|
||||
}
|
||||
repl_open_cmd = "vertical 120 split",
|
||||
})
|
||||
|
||||
@ -3,39 +3,43 @@ local M = {}
|
||||
function M.show_line_diagnostics()
|
||||
local opts = {
|
||||
focusable = false,
|
||||
close_events = {'BufLeave', 'CursorMoved', 'InsertEnter', 'FocusLost'}
|
||||
close_events = { "BufLeave", "CursorMoved", "InsertEnter", "FocusLost" },
|
||||
}
|
||||
vim.lsp.diagnostic.show_line_diagnostics(opts)
|
||||
end
|
||||
|
||||
local custom_attach = function(client, bufnr)
|
||||
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
|
||||
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
|
||||
local function buf_set_keymap(...)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, ...)
|
||||
end
|
||||
local function buf_set_option(...)
|
||||
vim.api.nvim_buf_set_option(bufnr, ...)
|
||||
end
|
||||
|
||||
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
|
||||
|
||||
-- Mappings.
|
||||
local opts = { noremap=true, silent=true }
|
||||
buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||
buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
buf_set_keymap('n', '<C-]>', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||
buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||
buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
|
||||
buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||
buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
|
||||
buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
|
||||
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||
local opts = { noremap = true, silent = true }
|
||||
buf_set_keymap("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts)
|
||||
buf_set_keymap("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts)
|
||||
buf_set_keymap("n", "<C-]>", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts)
|
||||
buf_set_keymap("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
|
||||
buf_set_keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
|
||||
buf_set_keymap("n", "<C-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>wa", "<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>wr", "<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>wl", "<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>", opts)
|
||||
buf_set_keymap("n", "<space>D", "<cmd>lua vim.lsp.buf.type_definition()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts)
|
||||
buf_set_keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
|
||||
buf_set_keymap("n", "[d", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts)
|
||||
buf_set_keymap("n", "]d", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>q", "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>ca", "<cmd>lua vim.lsp.buf.code_action()<CR>", opts)
|
||||
|
||||
vim.cmd [[
|
||||
vim.cmd([[
|
||||
autocmd CursorHold <buffer> lua require('config.lsp').show_line_diagnostics()
|
||||
]]
|
||||
]])
|
||||
|
||||
-- Set some key bindings conditional on server capabilities
|
||||
if client.resolved_capabilities.document_formatting then
|
||||
@ -59,8 +63,8 @@ local custom_attach = function(client, bufnr)
|
||||
]])
|
||||
end
|
||||
|
||||
local msg = string.format('Language server %s started!' , client.name)
|
||||
vim.api.nvim_echo({{msg, 'MoreMsg'}, }, false, {})
|
||||
local msg = string.format("Language server %s started!", client.name)
|
||||
vim.api.nvim_echo({ { msg, "MoreMsg" } }, false, {})
|
||||
end
|
||||
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
@ -68,68 +72,68 @@ capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||
|
||||
local lspconfig = require("lspconfig")
|
||||
|
||||
lspconfig.pylsp.setup{
|
||||
lspconfig.pylsp.setup({
|
||||
on_attach = custom_attach,
|
||||
settings = {
|
||||
pylsp = {
|
||||
plugins = {
|
||||
pylint = {enabled = true, executable = "pylint"},
|
||||
pyflakes = {enabled = false},
|
||||
pycodestyle = {enabled = false},
|
||||
jedi_completion = {fuzzy = true},
|
||||
pyls_isort = {enabled = true},
|
||||
pylsp_mypy = {enabled = true}
|
||||
}
|
||||
}
|
||||
pylint = { enabled = true, executable = "pylint" },
|
||||
pyflakes = { enabled = false },
|
||||
pycodestyle = { enabled = false },
|
||||
jedi_completion = { fuzzy = true },
|
||||
pyls_isort = { enabled = true },
|
||||
pylsp_mypy = { enabled = true },
|
||||
},
|
||||
},
|
||||
},
|
||||
flags = {
|
||||
debounce_text_changes = 200,
|
||||
}
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
-- lspconfig.pyright.setup{
|
||||
-- on_attach = custom_attach,
|
||||
-- }
|
||||
|
||||
lspconfig.clangd.setup{
|
||||
lspconfig.clangd.setup({
|
||||
on_attach = custom_attach,
|
||||
capabilities = capabilities,
|
||||
filetypes = { "c", "cpp", "cc" },
|
||||
flags = {
|
||||
debounce_text_changes = 500,
|
||||
}
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
-- set up vim-language-server
|
||||
lspconfig.vimls.setup{
|
||||
lspconfig.vimls.setup({
|
||||
on_attach = custom_attach,
|
||||
flags = {
|
||||
debounce_text_changes = 500,
|
||||
}
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
local sumneko_binary_path = vim.fn.exepath('lua-language-server')
|
||||
if vim.g.is_mac or vim.g.is_linux and sumneko_binary_path ~= '' then
|
||||
local sumneko_root_path = vim.fn.fnamemodify(sumneko_binary_path, ':h:h:h')
|
||||
local sumneko_binary_path = vim.fn.exepath("lua-language-server")
|
||||
if vim.g.is_mac or vim.g.is_linux and sumneko_binary_path ~= "" then
|
||||
local sumneko_root_path = vim.fn.fnamemodify(sumneko_binary_path, ":h:h:h")
|
||||
|
||||
local runtime_path = vim.split(package.path, ';')
|
||||
local runtime_path = vim.split(package.path, ";")
|
||||
table.insert(runtime_path, "lua/?.lua")
|
||||
table.insert(runtime_path, "lua/?/init.lua")
|
||||
|
||||
require'lspconfig'.sumneko_lua.setup {
|
||||
require("lspconfig").sumneko_lua.setup({
|
||||
on_attach = custom_attach,
|
||||
cmd = {sumneko_binary_path, "-E", sumneko_root_path .. "/main.lua"};
|
||||
cmd = { sumneko_binary_path, "-E", sumneko_root_path .. "/main.lua" },
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
|
||||
version = 'LuaJIT',
|
||||
version = "LuaJIT",
|
||||
-- Setup your lua path
|
||||
path = runtime_path,
|
||||
},
|
||||
diagnostics = {
|
||||
-- Get the language server to recognize the `vim` global
|
||||
globals = {'vim'},
|
||||
globals = { "vim" },
|
||||
},
|
||||
workspace = {
|
||||
-- Make the server aware of Neovim runtime files
|
||||
@ -141,59 +145,54 @@ if vim.g.is_mac or vim.g.is_linux and sumneko_binary_path ~= '' then
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
-- Change diagnostic signs.
|
||||
vim.fn.sign_define('LspDiagnosticsSignError', { text = "✗", texthl = "LspDiagnosticsDefaultError" })
|
||||
vim.fn.sign_define('LspDiagnosticsSignWarning', { text = "!", texthl = "LspDiagnosticsDefaultWarning" })
|
||||
vim.fn.sign_define('LspDiagnosticsSignInformation', { text = "", texthl = "LspDiagnosticsDefaultInformation" })
|
||||
vim.fn.sign_define('LspDiagnosticsSignHint', { text = "", texthl = "LspDiagnosticsDefaultHint" })
|
||||
vim.fn.sign_define("LspDiagnosticsSignError", { text = "✗", texthl = "LspDiagnosticsDefaultError" })
|
||||
vim.fn.sign_define("LspDiagnosticsSignWarning", { text = "!", texthl = "LspDiagnosticsDefaultWarning" })
|
||||
vim.fn.sign_define("LspDiagnosticsSignInformation", { text = "", texthl = "LspDiagnosticsDefaultInformation" })
|
||||
vim.fn.sign_define("LspDiagnosticsSignHint", { text = "", texthl = "LspDiagnosticsDefaultHint" })
|
||||
|
||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
||||
vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||
underline = false,
|
||||
virtual_text = false,
|
||||
signs = true,
|
||||
update_in_insert = false,
|
||||
})
|
||||
|
||||
-- Refs: https://github.com/neovim/nvim-lspconfig/wiki/UI-customization#show-source-in-diagnostics
|
||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = function(_, _, params, client_id, _)
|
||||
local uri = params.uri
|
||||
local bufnr = vim.uri_to_bufnr(uri)
|
||||
|
||||
if not bufnr then
|
||||
return
|
||||
end
|
||||
|
||||
if not vim.api.nvim_buf_is_loaded(bufnr) then
|
||||
return
|
||||
end
|
||||
|
||||
local diagnostics = params.diagnostics
|
||||
for i, v in ipairs(diagnostics) do
|
||||
diagnostics[i].message = string.format("%s: %s", v.source, v.message)
|
||||
end
|
||||
vim.lsp.diagnostic.save(diagnostics, bufnr, client_id)
|
||||
|
||||
local config = {
|
||||
underline = false,
|
||||
virtual_text = false,
|
||||
signs = true,
|
||||
update_in_insert = false,
|
||||
}
|
||||
)
|
||||
|
||||
-- Refs: https://github.com/neovim/nvim-lspconfig/wiki/UI-customization#show-source-in-diagnostics
|
||||
vim.lsp.handlers["textDocument/publishDiagnostics"] =
|
||||
function(_, _, params, client_id, _)
|
||||
local uri = params.uri
|
||||
local bufnr = vim.uri_to_bufnr(uri)
|
||||
|
||||
if not bufnr then
|
||||
return
|
||||
end
|
||||
|
||||
if not vim.api.nvim_buf_is_loaded(bufnr) then
|
||||
return
|
||||
end
|
||||
|
||||
local diagnostics = params.diagnostics
|
||||
for i, v in ipairs(diagnostics) do
|
||||
diagnostics[i].message = string.format("%s: %s", v.source, v.message)
|
||||
end
|
||||
vim.lsp.diagnostic.save(diagnostics, bufnr, client_id)
|
||||
|
||||
local config = {
|
||||
underline = false,
|
||||
virtual_text = false,
|
||||
signs = true,
|
||||
update_in_insert = false,
|
||||
}
|
||||
vim.lsp.diagnostic.display(diagnostics, bufnr, client_id, config)
|
||||
end
|
||||
vim.lsp.diagnostic.display(diagnostics, bufnr, client_id, config)
|
||||
end
|
||||
|
||||
-- The following settings works with the bleeding edge neovim.
|
||||
-- See https://github.com/neovim/neovim/pull/13998.
|
||||
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
|
||||
vim.lsp.handlers.hover, {
|
||||
border = 'rounded'
|
||||
}
|
||||
)
|
||||
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||
border = "rounded",
|
||||
})
|
||||
|
||||
return M
|
||||
|
||||
@ -1,21 +1,21 @@
|
||||
require('neoscroll').setup({
|
||||
easing_function = "quadratic",
|
||||
require("neoscroll").setup({
|
||||
easing_function = "quadratic",
|
||||
})
|
||||
|
||||
local t = {}
|
||||
-- Syntax: t[keys] = {function, {function arguments}}
|
||||
-- Use the "sine" easing function
|
||||
t['<C-u>'] = {'scroll', {'-vim.wo.scroll', 'true', '20', [['cubic']]}}
|
||||
t['<C-d>'] = {'scroll', { 'vim.wo.scroll', 'true', '20', [['cubic']]}}
|
||||
t["<C-u>"] = { "scroll", { "-vim.wo.scroll", "true", "20", [['cubic']] } }
|
||||
t["<C-d>"] = { "scroll", { "vim.wo.scroll", "true", "20", [['cubic']] } }
|
||||
-- Use the "circular" easing function
|
||||
t['<C-b>'] = {'scroll', {'-vim.api.nvim_win_get_height(0)', 'true', '50', [['cubic']]}}
|
||||
t['<C-f>'] = {'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '50', [['cubic']]}}
|
||||
t["<C-b>"] = { "scroll", { "-vim.api.nvim_win_get_height(0)", "true", "50", [['cubic']] } }
|
||||
t["<C-f>"] = { "scroll", { "vim.api.nvim_win_get_height(0)", "true", "50", [['cubic']] } }
|
||||
-- Pass "nil" to disable the easing animation (constant scrolling speed)
|
||||
t['<C-y>'] = {'scroll', {'-0.10', 'false', '100', nil}}
|
||||
t['<C-e>'] = {'scroll', { '0.10', 'false', '100', nil}}
|
||||
t["<C-y>"] = { "scroll", { "-0.10", "false", "100", nil } }
|
||||
t["<C-e>"] = { "scroll", { "0.10", "false", "100", nil } }
|
||||
-- When no easing function is provided the default easing function (in this case "quadratic") will be used
|
||||
t['zt'] = {'zt', {'10'}}
|
||||
t['zz'] = {'zz', {'10'}}
|
||||
t['zb'] = {'zb', {'10'}}
|
||||
t["zt"] = { "zt", { "10" } }
|
||||
t["zz"] = { "zz", { "10" } }
|
||||
t["zb"] = { "zb", { "10" } }
|
||||
|
||||
require('neoscroll.config').set_mappings(t)
|
||||
require("neoscroll.config").set_mappings(t)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
require('bufferline').setup {
|
||||
require("bufferline").setup({
|
||||
options = {
|
||||
numbers = "buffer_id",
|
||||
number_style = "superscript",
|
||||
@ -7,12 +7,12 @@ require('bufferline').setup {
|
||||
right_mouse_command = nil,
|
||||
left_mouse_command = "buffer %d",
|
||||
middle_mouse_command = nil,
|
||||
indicator_icon = '▎',
|
||||
buffer_close_icon = '',
|
||||
modified_icon = '●',
|
||||
close_icon = '',
|
||||
left_trunc_marker = '',
|
||||
right_trunc_marker = '',
|
||||
indicator_icon = "▎",
|
||||
buffer_close_icon = "",
|
||||
modified_icon = "●",
|
||||
close_icon = "",
|
||||
left_trunc_marker = "",
|
||||
right_trunc_marker = "",
|
||||
max_name_length = 18,
|
||||
max_prefix_length = 15,
|
||||
tab_size = 10,
|
||||
@ -22,7 +22,7 @@ require('bufferline').setup {
|
||||
-- buffer will be hidden.
|
||||
|
||||
-- filter out filetypes you don't want to see
|
||||
local exclude_ft = {'qf', 'fugitive', 'git'}
|
||||
local exclude_ft = { "qf", "fugitive", "git" }
|
||||
local cur_ft = vim.bo[bufnr].filetype
|
||||
local should_filter = vim.tbl_contains(exclude_ft, cur_ft)
|
||||
|
||||
@ -40,6 +40,6 @@ require('bufferline').setup {
|
||||
separator_style = "slant",
|
||||
enforce_regular_tabs = false,
|
||||
always_show_bufferline = true,
|
||||
sort_by = 'id'
|
||||
}
|
||||
}
|
||||
sort_by = "id",
|
||||
},
|
||||
})
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
require'nvim-treesitter.configs'.setup {
|
||||
ensure_installed = {'python', 'cpp', 'lua'},
|
||||
ignore_install = {}, -- List of parsers to ignore installing
|
||||
require("nvim-treesitter.configs").setup({
|
||||
ensure_installed = { "python", "cpp", "lua" },
|
||||
ignore_install = {}, -- List of parsers to ignore installing
|
||||
highlight = {
|
||||
enable = true, -- false will disable the whole extension
|
||||
disable = {}, -- list of language that will be disabled
|
||||
enable = true, -- false will disable the whole extension
|
||||
disable = {}, -- list of language that will be disabled
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
208
lua/plugins.lua
208
lua/plugins.lua
@ -1,81 +1,80 @@
|
||||
local utils = require('utils')
|
||||
local utils = require("utils")
|
||||
local fn = vim.fn
|
||||
|
||||
local packer_install_dir = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
|
||||
local packer_install_dir = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
|
||||
|
||||
local plug_url_format = ''
|
||||
local plug_url_format = ""
|
||||
if vim.g.is_linux then
|
||||
plug_url_format = 'https://hub.fastgit.org/%s'
|
||||
plug_url_format = "https://hub.fastgit.org/%s"
|
||||
else
|
||||
plug_url_format = 'https://github.com/%s'
|
||||
plug_url_format = "https://github.com/%s"
|
||||
end
|
||||
|
||||
local packer_repo = string.format(plug_url_format, 'wbthomason/packer.nvim')
|
||||
local install_cmd = string.format('10split |term git clone --depth=1 %s %s', packer_repo, packer_install_dir)
|
||||
local packer_repo = string.format(plug_url_format, "wbthomason/packer.nvim")
|
||||
local install_cmd = string.format("10split |term git clone --depth=1 %s %s", packer_repo, packer_install_dir)
|
||||
|
||||
-- Auto-install packer in case it hasn't been installed.
|
||||
if fn.glob(packer_install_dir) == '' then
|
||||
vim.api.nvim_echo({{'Installing packer.nvim', 'Type'}}, true, {})
|
||||
if fn.glob(packer_install_dir) == "" then
|
||||
vim.api.nvim_echo({ { "Installing packer.nvim", "Type" } }, true, {})
|
||||
vim.cmd(install_cmd)
|
||||
vim.cmd('packadd packer.nvim')
|
||||
vim.cmd("packadd packer.nvim")
|
||||
end
|
||||
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
vim.cmd([[packadd packer.nvim]])
|
||||
|
||||
require('packer').startup(
|
||||
{
|
||||
require("packer").startup({
|
||||
function(use)
|
||||
use 'wbthomason/packer.nvim'
|
||||
use("wbthomason/packer.nvim")
|
||||
|
||||
-- nvim-lsp configuration
|
||||
use {'neovim/nvim-lspconfig', config = [[require('config.lsp')]]}
|
||||
use({ "neovim/nvim-lspconfig", config = [[require('config.lsp')]] })
|
||||
|
||||
-- auto-completion engine
|
||||
use { 'hrsh7th/nvim-compe', event = 'InsertEnter *', config = [[require('config.compe')]] }
|
||||
use({ "hrsh7th/nvim-compe", event = "InsertEnter *", config = [[require('config.compe')]] })
|
||||
|
||||
if vim.g.is_mac or vim.g.is_linux then
|
||||
use {'nvim-treesitter/nvim-treesitter', run = ':TSUpdate', config = [[require('config.treesitter')]]}
|
||||
use({ "nvim-treesitter/nvim-treesitter", run = ":TSUpdate", config = [[require('config.treesitter')]] })
|
||||
end
|
||||
|
||||
-- Python syntax highlighting and more
|
||||
if vim.g.is_win then
|
||||
use {'numirias/semshi', ft = 'python', config = 'vim.cmd [[UpdateRemotePlugins]]'}
|
||||
use({ "numirias/semshi", ft = "python", config = "vim.cmd [[UpdateRemotePlugins]]" })
|
||||
end
|
||||
|
||||
-- Python indent (follows the PEP8 style)
|
||||
use {'Vimjas/vim-python-pep8-indent', ft = {'python', }}
|
||||
use({ "Vimjas/vim-python-pep8-indent", ft = { "python" } })
|
||||
|
||||
-- Python-related text object
|
||||
use {'jeetsukumaran/vim-pythonsense', ft = {'python'}}
|
||||
use({ "jeetsukumaran/vim-pythonsense", ft = { "python" } })
|
||||
|
||||
use 'machakann/vim-swap'
|
||||
use("machakann/vim-swap")
|
||||
|
||||
-- IDE for Lisp
|
||||
if utils.executable('sbcl') then
|
||||
if utils.executable("sbcl") then
|
||||
-- use 'kovisoft/slimv'
|
||||
use {'vlime/vlime', rtp = 'vim/', ft={'lisp', }}
|
||||
use({ "vlime/vlime", rtp = "vim/", ft = { "lisp" } })
|
||||
end
|
||||
|
||||
-- Super fast movement with vim-sneak
|
||||
use 'justinmk/vim-sneak'
|
||||
use("justinmk/vim-sneak")
|
||||
|
||||
-- Clear highlight search automatically for you
|
||||
use 'romainl/vim-cool'
|
||||
use("romainl/vim-cool")
|
||||
|
||||
-- Show current search term in different color
|
||||
use 'PeterRincker/vim-searchlight'
|
||||
use("PeterRincker/vim-searchlight")
|
||||
|
||||
-- Show match number for incsearch
|
||||
use 'osyo-manga/vim-anzu'
|
||||
use("osyo-manga/vim-anzu")
|
||||
|
||||
-- Stay after pressing * and search selected text
|
||||
use 'haya14busa/vim-asterisk'
|
||||
use("haya14busa/vim-asterisk")
|
||||
|
||||
-- File search, tag search and more
|
||||
if vim.g.is_win then
|
||||
use 'Yggdroot/LeaderF'
|
||||
use("Yggdroot/LeaderF")
|
||||
else
|
||||
use {'Yggdroot/LeaderF', run = ':LeaderfInstallCExtension'}
|
||||
use({ "Yggdroot/LeaderF", run = ":LeaderfInstallCExtension" })
|
||||
end
|
||||
|
||||
-- Another similar plugin is command-t
|
||||
@ -88,147 +87,153 @@ require('packer').startup(
|
||||
-- use {'mhinz/vim-grepper', cmd = {'Grepper', '<plug>(GrepperOperator)'}}
|
||||
|
||||
-- A list of colorscheme plugin you may want to try. Find what suits you.
|
||||
use 'lifepillar/vim-gruvbox8'
|
||||
use 'ajmwagar/vim-deus'
|
||||
use 'lifepillar/vim-solarized8'
|
||||
use 'navarasu/onedark.nvim'
|
||||
use 'sainnhe/edge'
|
||||
use 'sainnhe/sonokai'
|
||||
use 'sainnhe/gruvbox-material'
|
||||
use 'shaunsingh/nord.nvim'
|
||||
use 'NTBBloodbath/doom-one.nvim'
|
||||
use("lifepillar/vim-gruvbox8")
|
||||
use("ajmwagar/vim-deus")
|
||||
use("lifepillar/vim-solarized8")
|
||||
use("navarasu/onedark.nvim")
|
||||
use("sainnhe/edge")
|
||||
use("sainnhe/sonokai")
|
||||
use("sainnhe/gruvbox-material")
|
||||
use("shaunsingh/nord.nvim")
|
||||
use("NTBBloodbath/doom-one.nvim")
|
||||
|
||||
-- colorful status line and theme
|
||||
use 'vim-airline/vim-airline-themes'
|
||||
use 'vim-airline/vim-airline'
|
||||
use("vim-airline/vim-airline-themes")
|
||||
use("vim-airline/vim-airline")
|
||||
|
||||
use {'akinsho/nvim-bufferline.lua', config = [[require('config.nvim-bufferline')]]}
|
||||
use({ "akinsho/nvim-bufferline.lua", config = [[require('config.nvim-bufferline')]] })
|
||||
|
||||
-- fancy start screen
|
||||
use {'mhinz/vim-startify'}
|
||||
use {'lukas-reineke/indent-blankline.nvim', config = [[require('config.indent-blankline')]]}
|
||||
use({ "mhinz/vim-startify" })
|
||||
use({ "lukas-reineke/indent-blankline.nvim", config = [[require('config.indent-blankline')]] })
|
||||
|
||||
-- Highlight URLs inside vim
|
||||
use 'itchyny/vim-highlighturl'
|
||||
use("itchyny/vim-highlighturl")
|
||||
|
||||
-- notification plugin
|
||||
use {'rcarriga/nvim-notify', config = 'vim.notify = require("notify")'}
|
||||
use({ "rcarriga/nvim-notify", config = 'vim.notify = require("notify")' })
|
||||
|
||||
-- For Windows and Mac, we can open an URL in the browser. For Linux, it may
|
||||
-- not be possible since we maybe in a server which disables GUI.
|
||||
if vim.g.is_win or vim.g.is_mac then
|
||||
-- open URL in browser
|
||||
use 'tyru/open-browser.vim'
|
||||
use("tyru/open-browser.vim")
|
||||
end
|
||||
|
||||
-- Only install these plugins if ctags are installed on the system
|
||||
if utils.executable('ctags') then
|
||||
if utils.executable("ctags") then
|
||||
-- plugin to manage your tags
|
||||
use 'ludovicchabant/vim-gutentags'
|
||||
use("ludovicchabant/vim-gutentags")
|
||||
-- show file tags in vim window
|
||||
use 'liuchengxu/vista.vim'
|
||||
use("liuchengxu/vista.vim")
|
||||
end
|
||||
|
||||
-- Snippet engine and snippet template
|
||||
use 'SirVer/ultisnips'
|
||||
use {'honza/vim-snippets', event = {'InsertEnter'}}
|
||||
use("SirVer/ultisnips")
|
||||
use({ "honza/vim-snippets", event = { "InsertEnter" } })
|
||||
|
||||
-- Automatic insertion and deletion of a pair of characters
|
||||
use 'Raimondi/delimitMate'
|
||||
use("Raimondi/delimitMate")
|
||||
|
||||
-- Comment plugin
|
||||
use 'tpope/vim-commentary'
|
||||
use("tpope/vim-commentary")
|
||||
|
||||
-- Multiple cursor plugin like Sublime Text?
|
||||
-- use 'mg979/vim-visual-multi'
|
||||
|
||||
-- Autosave files on certain events
|
||||
use '907th/vim-auto-save'
|
||||
use("907th/vim-auto-save")
|
||||
|
||||
-- Show undo history visually
|
||||
use 'simnalamburt/vim-mundo'
|
||||
use("simnalamburt/vim-mundo")
|
||||
|
||||
-- Manage your yank history
|
||||
if vim.g.is_win or vim.g.is_mac then
|
||||
use 'svermeulen/vim-yoink'
|
||||
use("svermeulen/vim-yoink")
|
||||
end
|
||||
|
||||
-- Handy unix command inside Vim (Rename, Move etc.)
|
||||
use 'tpope/vim-eunuch'
|
||||
use("tpope/vim-eunuch")
|
||||
|
||||
-- Repeat vim motions
|
||||
use 'tpope/vim-repeat'
|
||||
use("tpope/vim-repeat")
|
||||
|
||||
-- Show the content of register in preview window
|
||||
-- Plug 'junegunn/vim-peekaboo'
|
||||
use {'jdhao/better-escape.vim', event = {'InsertEnter', }}
|
||||
use({ "jdhao/better-escape.vim", event = { "InsertEnter" } })
|
||||
|
||||
if vim.g.is_mac then
|
||||
use {'lyokha/vim-xkbswitch', event = {'InsertEnter', }}
|
||||
use({ "lyokha/vim-xkbswitch", event = { "InsertEnter" } })
|
||||
elseif vim.g.is_win then
|
||||
use {'Neur1n/neuims', event = {'InsertEnter', }}
|
||||
use({ "Neur1n/neuims", event = { "InsertEnter" } })
|
||||
end
|
||||
|
||||
-- Syntax check and make
|
||||
-- use 'neomake/neomake'
|
||||
|
||||
-- Auto format tools
|
||||
use {'sbdchd/neoformat', cmd = {'Neoformat', }}
|
||||
use({ "sbdchd/neoformat", cmd = { "Neoformat" } })
|
||||
-- use 'Chiel92/vim-autoformat'
|
||||
|
||||
-- Show git change (change, delete, add) signs in vim sign column
|
||||
use 'mhinz/vim-signify'
|
||||
use("mhinz/vim-signify")
|
||||
-- Another similar plugin
|
||||
-- use 'airblade/vim-gitgutter'
|
||||
|
||||
-- Git command inside vim
|
||||
use {'tpope/vim-fugitive', event = 'User InGitRepo'}
|
||||
use({ "tpope/vim-fugitive", event = "User InGitRepo" })
|
||||
|
||||
-- Better git log display
|
||||
use {'rbong/vim-flog', require = 'tpope/vim-fugitive', cmd = {'Flog'}}
|
||||
use({ "rbong/vim-flog", require = "tpope/vim-fugitive", cmd = { "Flog" } })
|
||||
|
||||
use {'kevinhwang91/nvim-bqf', config = [[require('config.bqf')]]}
|
||||
use({ "kevinhwang91/nvim-bqf", config = [[require('config.bqf')]] })
|
||||
|
||||
-- Better git commit experience
|
||||
use 'rhysd/committia.vim'
|
||||
use("rhysd/committia.vim")
|
||||
|
||||
-- Another markdown plugin
|
||||
use {'plasticboy/vim-markdown', ft = {'markdown', }}
|
||||
use({ "plasticboy/vim-markdown", ft = { "markdown" } })
|
||||
|
||||
-- Faster footnote generation
|
||||
use {'vim-pandoc/vim-markdownfootnotes', ft = {'markdown', }}
|
||||
use({ "vim-pandoc/vim-markdownfootnotes", ft = { "markdown" } })
|
||||
|
||||
-- Vim tabular plugin for manipulate tabular, required by markdown plugins
|
||||
use {'godlygeek/tabular', cmd = {'Tabularize'}}
|
||||
use({ "godlygeek/tabular", cmd = { "Tabularize" } })
|
||||
|
||||
-- Markdown JSON header highlight plugin
|
||||
use {'elzr/vim-json', ft = {'json', 'markdown'}}
|
||||
use({ "elzr/vim-json", ft = { "json", "markdown" } })
|
||||
|
||||
-- Markdown previewing (only for Mac and Windows)
|
||||
if vim.g.is_win or vim.g.is_mac then
|
||||
use {'iamcco/markdown-preview.nvim', run = function() fn['mkdp#util#install']() end, ft = {'markdown'}}
|
||||
use({
|
||||
"iamcco/markdown-preview.nvim",
|
||||
run = function()
|
||||
fn["mkdp#util#install"]()
|
||||
end,
|
||||
ft = { "markdown" },
|
||||
})
|
||||
end
|
||||
|
||||
if vim.g.is_mac then
|
||||
use {'rhysd/vim-grammarous', ft = {'markdown', }}
|
||||
use({ "rhysd/vim-grammarous", ft = { "markdown" } })
|
||||
end
|
||||
|
||||
use 'chrisbra/unicode.vim'
|
||||
use("chrisbra/unicode.vim")
|
||||
|
||||
-- Additional powerful text object for vim, this plugin should be studied
|
||||
-- carefully to use its full power
|
||||
use 'wellle/targets.vim'
|
||||
use("wellle/targets.vim")
|
||||
|
||||
-- Plugin to manipulate character pairs quickly
|
||||
-- use 'tpope/vim-surround'
|
||||
use 'machakann/vim-sandwich'
|
||||
use("machakann/vim-sandwich")
|
||||
|
||||
-- Add indent object for vim (useful for languages like Python)
|
||||
use 'michaeljsmith/vim-indent-object'
|
||||
use("michaeljsmith/vim-indent-object")
|
||||
|
||||
-- Only use these plugin on Windows and Mac and when LaTeX is installed
|
||||
if vim.g.is_win or vim.g.is_mac and utils.executable('latex') then
|
||||
use {'lervag/vimtex', ft = {'tex', }}
|
||||
if vim.g.is_win or vim.g.is_mac and utils.executable("latex") then
|
||||
use({ "lervag/vimtex", ft = { "tex" } })
|
||||
|
||||
-- use {'matze/vim-tex-fold', ft = {'tex', }}
|
||||
-- use 'Konfekt/FastFold'
|
||||
@ -236,61 +241,66 @@ require('packer').startup(
|
||||
|
||||
-- Since tmux is only available on Linux and Mac, we only enable these plugins
|
||||
-- for Linux and Mac
|
||||
if utils.executable('tmux') then
|
||||
if utils.executable("tmux") then
|
||||
-- .tmux.conf syntax highlighting and setting check
|
||||
use {'tmux-plugins/vim-tmux', ft = {'tmux', }}
|
||||
use({ "tmux-plugins/vim-tmux", ft = { "tmux" } })
|
||||
end
|
||||
|
||||
-- Modern matchit implementation
|
||||
use 'andymass/vim-matchup'
|
||||
use("andymass/vim-matchup")
|
||||
|
||||
use {'ms-jpq/chadtree', branch = 'chad', run = ':CHADdeps'}
|
||||
use({ "ms-jpq/chadtree", branch = "chad", run = ":CHADdeps" })
|
||||
|
||||
-- Smoothie motions
|
||||
-- use 'psliwka/vim-smoothie'
|
||||
use {'karb94/neoscroll.nvim', config = [[require('config.neoscroll')]]}
|
||||
use({ "karb94/neoscroll.nvim", config = [[require('config.neoscroll')]] })
|
||||
|
||||
use 'tpope/vim-scriptease'
|
||||
use("tpope/vim-scriptease")
|
||||
|
||||
-- Asynchronous command execution
|
||||
use {'skywind3000/asyncrun.vim', opt = true, cmd = {'AsyncRun', }}
|
||||
use({ "skywind3000/asyncrun.vim", opt = true, cmd = { "AsyncRun" } })
|
||||
-- Another asynchronous plugin
|
||||
-- Plug 'tpope/vim-dispatch'
|
||||
use {'cespare/vim-toml', ft = {'toml',}}
|
||||
use({ "cespare/vim-toml", ft = { "toml" } })
|
||||
|
||||
-- Edit text area in browser using nvim
|
||||
if vim.g.is_win or vim.g.is_mac then
|
||||
use {'glacambre/firenvim', run = function() fn['firenvim#install'](0) end}
|
||||
use({
|
||||
"glacambre/firenvim",
|
||||
run = function()
|
||||
fn["firenvim#install"](0)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- Debugger plugin
|
||||
if vim.g.is_win or vim.g.is_linux then
|
||||
use {'sakhnik/nvim-gdb', run = {'bash install.sh'}}
|
||||
use({ "sakhnik/nvim-gdb", run = { "bash install.sh" } })
|
||||
end
|
||||
|
||||
-- Session management plugin
|
||||
use 'tpope/vim-obsession'
|
||||
use("tpope/vim-obsession")
|
||||
|
||||
-- Calculate statistics for visual selection
|
||||
use 'wgurecky/vimSum'
|
||||
use("wgurecky/vimSum")
|
||||
|
||||
if vim.g.is_linux then
|
||||
use 'ojroques/vim-oscyank'
|
||||
use("ojroques/vim-oscyank")
|
||||
end
|
||||
|
||||
-- REPL for nvim
|
||||
use {'hkupty/iron.nvim', config = [[require('config.iron')]]}
|
||||
use({ "hkupty/iron.nvim", config = [[require('config.iron')]] })
|
||||
|
||||
-- Show register content
|
||||
use "tversteeg/registers.nvim"
|
||||
use("tversteeg/registers.nvim")
|
||||
|
||||
-- The missing auto-completion for cmdline!
|
||||
use 'gelguy/wilder.nvim'
|
||||
use("gelguy/wilder.nvim")
|
||||
end,
|
||||
config = {
|
||||
max_jobs = 16,
|
||||
git = {
|
||||
default_url_format = plug_url_format
|
||||
}
|
||||
}
|
||||
default_url_format = plug_url_format,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user