1
0
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:
jdhao 2021-08-18 01:43:08 +08:00
parent 61d6045e67
commit bac94b47a0
9 changed files with 269 additions and 260 deletions

View File

@ -1,3 +1,3 @@
require('bqf').setup({
auto_resize_height=false
require("bqf").setup({
auto_resize_height = false,
})

View File

@ -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)

View File

@ -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" }

View File

@ -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",
})

View File

@ -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

View File

@ -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)

View File

@ -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",
},
})

View File

@ -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
},
}
})

View File

@ -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,
},
},
})