diff --git a/lua/config/bqf.lua b/lua/config/bqf.lua index 527405a..5ef5d5b 100644 --- a/lua/config/bqf.lua +++ b/lua/config/bqf.lua @@ -1,3 +1,3 @@ -require('bqf').setup({ - auto_resize_height=false +require("bqf").setup({ + auto_resize_height = false, }) diff --git a/lua/config/compe.lua b/lua/config/compe.lua index 2e8764a..5286a9d 100644 --- a/lua/config/compe.lua +++ b/lua/config/compe.lua @@ -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', '', 'compe#complete()', compe_map_opts) -vim.api.nvim_set_keymap('i', '', "compe#confirm('')", compe_map_opts) -vim.api.nvim_set_keymap('i', '', "compe#close('')", compe_map_opts) -vim.api.nvim_set_keymap('i', '', "compe#scroll({'delta': +4})", compe_map_opts) -vim.api.nvim_set_keymap('i', '', "compe#scroll({'delta': -4})", compe_map_opts) +local compe_map_opts = { expr = true, noremap = true, silent = true } +vim.api.nvim_set_keymap("i", "", "compe#complete()", compe_map_opts) +vim.api.nvim_set_keymap("i", "", "compe#confirm('')", compe_map_opts) +vim.api.nvim_set_keymap("i", "", "compe#close('')", compe_map_opts) +vim.api.nvim_set_keymap("i", "", "compe#scroll({'delta': +4})", compe_map_opts) +vim.api.nvim_set_keymap("i", "", "compe#scroll({'delta': -4})", compe_map_opts) diff --git a/lua/config/indent-blankline.lua b/lua/config/indent-blankline.lua index 78cc8f9..6db2f72 100644 --- a/lua/config/indent-blankline.lua +++ b/lua/config/indent-blankline.lua @@ -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" } diff --git a/lua/config/iron.lua b/lua/config/iron.lua index 926fb6d..74d7046 100644 --- a/lua/config/iron.lua +++ b/lua/config/iron.lua @@ -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", +}) diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua index 4279a6e..79f6091 100644 --- a/lua/config/lsp.lua +++ b/lua/config/lsp.lua @@ -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', 'lua vim.lsp.buf.declaration()', opts) - buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.definition()', opts) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) - buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) - buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) - buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) - buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) - buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) - buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', opts) - buf_set_keymap('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', opts) - buf_set_keymap('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', opts) - buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) - buf_set_keymap('n', 'ca', 'lua vim.lsp.buf.code_action()', opts) + local opts = { noremap = true, silent = true } + buf_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) + buf_set_keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) + buf_set_keymap("n", "", "lua vim.lsp.buf.definition()", opts) + buf_set_keymap("n", "K", "lua vim.lsp.buf.hover()", opts) + buf_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", opts) + buf_set_keymap("n", "", "lua vim.lsp.buf.signature_help()", opts) + buf_set_keymap("n", "wa", "lua vim.lsp.buf.add_workspace_folder()", opts) + buf_set_keymap("n", "wr", "lua vim.lsp.buf.remove_workspace_folder()", opts) + buf_set_keymap("n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", opts) + buf_set_keymap("n", "D", "lua vim.lsp.buf.type_definition()", opts) + buf_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", opts) + buf_set_keymap("n", "gr", "lua vim.lsp.buf.references()", opts) + buf_set_keymap("n", "[d", "lua vim.lsp.diagnostic.goto_prev()", opts) + buf_set_keymap("n", "]d", "lua vim.lsp.diagnostic.goto_next()", opts) + buf_set_keymap("n", "q", "lua vim.lsp.diagnostic.set_loclist()", opts) + buf_set_keymap("n", "ca", "lua vim.lsp.buf.code_action()", opts) - vim.cmd [[ + vim.cmd([[ autocmd CursorHold 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 diff --git a/lua/config/neoscroll.lua b/lua/config/neoscroll.lua index 57e1ff9..45b7c08 100644 --- a/lua/config/neoscroll.lua +++ b/lua/config/neoscroll.lua @@ -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[''] = {'scroll', {'-vim.wo.scroll', 'true', '20', [['cubic']]}} -t[''] = {'scroll', { 'vim.wo.scroll', 'true', '20', [['cubic']]}} +t[""] = { "scroll", { "-vim.wo.scroll", "true", "20", [['cubic']] } } +t[""] = { "scroll", { "vim.wo.scroll", "true", "20", [['cubic']] } } -- Use the "circular" easing function -t[''] = {'scroll', {'-vim.api.nvim_win_get_height(0)', 'true', '50', [['cubic']]}} -t[''] = {'scroll', { 'vim.api.nvim_win_get_height(0)', 'true', '50', [['cubic']]}} +t[""] = { "scroll", { "-vim.api.nvim_win_get_height(0)", "true", "50", [['cubic']] } } +t[""] = { "scroll", { "vim.api.nvim_win_get_height(0)", "true", "50", [['cubic']] } } -- Pass "nil" to disable the easing animation (constant scrolling speed) -t[''] = {'scroll', {'-0.10', 'false', '100', nil}} -t[''] = {'scroll', { '0.10', 'false', '100', nil}} +t[""] = { "scroll", { "-0.10", "false", "100", nil } } +t[""] = { "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) diff --git a/lua/config/nvim-bufferline.lua b/lua/config/nvim-bufferline.lua index 8697030..772287c 100644 --- a/lua/config/nvim-bufferline.lua +++ b/lua/config/nvim-bufferline.lua @@ -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", + }, +}) diff --git a/lua/config/treesitter.lua b/lua/config/treesitter.lua index a6ac7f7..574b763 100644 --- a/lua/config/treesitter.lua +++ b/lua/config/treesitter.lua @@ -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 }, -} +}) diff --git a/lua/plugins.lua b/lua/plugins.lua index ed6b658..0beed39 100644 --- a/lua/plugins.lua +++ b/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', '(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, + }, + }, })