refactor config structure
This commit is contained in:
parent
fc922961fe
commit
29ab09bed9
22
after/plugin/telescope-theme.lua
Normal file
22
after/plugin/telescope-theme.lua
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
if vim.g.colors_name == "srcery" then
|
||||||
|
local bright_white = vim.api.nvim_get_hl_by_name("SrceryBrightWhite", true).foreground
|
||||||
|
local hard_black = vim.api.nvim_get_hl_by_name("SrceryHardBlack", true).foreground
|
||||||
|
local red = vim.api.nvim_get_hl_by_name("SrceryRed", true).foreground
|
||||||
|
local yellow = vim.api.nvim_get_hl_by_name("SrceryYellow", true).foreground
|
||||||
|
local gray1 = vim.api.nvim_get_hl_by_name("SrceryXgray1", true).foreground
|
||||||
|
|
||||||
|
local TelescopePrompt = {
|
||||||
|
TelescopeBorder = {bg = hard_black, fg = hard_black},
|
||||||
|
TelescopePromptBorder = {bg = gray1, fg = gray1},
|
||||||
|
TelescopePromptNormal = {bg = gray1},
|
||||||
|
TelescopePromptTitle = {fg = hard_black, bg = red },
|
||||||
|
TelescopePreviewTitle = {fg = hard_black, bg = yellow },
|
||||||
|
TelescopeNormal = {bg = hard_black, fg = bright_white},
|
||||||
|
TelescopeResultsNormal = {bg = hard_black, fg = bright_white},
|
||||||
|
TelescopePreviewNormal = {bg = hard_black, fg = bright_white},
|
||||||
|
TelescopeSelection = {bg = hard_black, fg = bright_white, underline = true},
|
||||||
|
}
|
||||||
|
for hl, col in pairs(TelescopePrompt) do
|
||||||
|
vim.api.nvim_set_hl(0, hl, col)
|
||||||
|
end
|
||||||
|
end
|
40
init.lua
40
init.lua
@ -1,45 +1,21 @@
|
|||||||
local g = vim.g
|
|
||||||
local cmd = vim.cmd
|
|
||||||
|
|
||||||
-- Allow loading */init.lua files
|
-- Allow loading */init.lua files
|
||||||
package.path = "./?/init.lua;"..package.path
|
package.path = "./?/init.lua;"..package.path
|
||||||
|
|
||||||
-- Leader/local leader
|
-- Leader/local leader
|
||||||
g.mapleader = [[ ]]
|
vim.g.mapleader = [[ ]]
|
||||||
g.maplocalleader = [[,]]
|
vim.g.maplocalleader = [[,]]
|
||||||
|
|
||||||
-- Disable some built-in plugins we don't want
|
-- Disable some built-in plugins we don't want
|
||||||
local disabled_built_ins = {
|
require("disable-builtin")
|
||||||
'matchit',
|
require("highlight-yank")
|
||||||
'netrw',
|
require("plugin-manager")
|
||||||
'netrwPlugin',
|
|
||||||
'netrwSettings',
|
|
||||||
'netrwFileHandlers',
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, name in ipairs(disabled_built_ins) do
|
|
||||||
g['loaded_' .. name] = 1
|
|
||||||
end
|
|
||||||
|
|
||||||
require("plugins")
|
|
||||||
require("options")
|
require("options")
|
||||||
require("bindings")
|
require("bindings")
|
||||||
require("pludin-dev")
|
require("pludin-dev")
|
||||||
|
|
||||||
require("add-guard")
|
require("personal.add-guard")
|
||||||
require("cmacro-align")
|
require("personal.cmacro-align")
|
||||||
|
|
||||||
-- Misc features
|
|
||||||
require("highlight-yank")
|
|
||||||
|
|
||||||
-- Background transparency
|
|
||||||
-- cmd [[autocmd ColorScheme * highlight Normal ctermbg=none guibg=none]]
|
|
||||||
-- cmd [[autocmd ColorScheme * highlight Folded ctermbg=none guibg=none]]
|
|
||||||
-- cmd [[autocmd ColorScheme * highlight SignColumn ctermbg=none guibg=none]]
|
|
||||||
-- cmd [[autocmd ColorScheme * highlight VertSplit ctermbg=none guibg=none]]
|
|
||||||
-- cmd [[autocmd ColorScheme * highlight StatusLineNC ctermbg=none guibg=none]]
|
|
||||||
-- cmd [[autocmd ColorScheme * highlight CursorLineNr ctermbg=none guibg=none]]
|
|
||||||
|
|
||||||
-- THEME_BEGIN
|
-- THEME_BEGIN
|
||||||
cmd("colorscheme srcery")
|
vim.cmd("colorscheme srcery")
|
||||||
-- THEME_END
|
-- THEME_END
|
||||||
|
@ -6,7 +6,7 @@ local silent = {silent = true}
|
|||||||
map('n', 'Q', '<nop>')
|
map('n', 'Q', '<nop>')
|
||||||
|
|
||||||
-- Save file
|
-- Save file
|
||||||
map('n', '<C-s>', ':w<cr>')
|
map('n', '<C-s>', ':w<cr>', silent)
|
||||||
|
|
||||||
-- Paste from register and not replace it
|
-- Paste from register and not replace it
|
||||||
-- map('x', '<leader>p', '"_dP')
|
-- map('x', '<leader>p', '"_dP')
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
local user = os.getenv("USER")
|
return {
|
||||||
vim.g.autosource_hashdir = '/home/'..user..'/.cache/vim-autosource/hashes'
|
'jenterkin/vim-autosource',
|
||||||
|
config = function()
|
||||||
|
local user = os.getenv("USER")
|
||||||
|
vim.g.autosource_hashdir = '/home/'..user..'/.cache/vim-autosource/hashes'
|
||||||
|
end
|
||||||
|
}
|
||||||
|
@ -1,4 +1,10 @@
|
|||||||
local baleia = require("baleia").setup()
|
return {
|
||||||
vim.api.nvim_create_user_command("BaleiaColorize", function()
|
'm00qek/baleia.nvim',
|
||||||
baleia.once(vim.api.nvim_get_current_buf())
|
tag = 'v1.2.0',
|
||||||
end, { })
|
config = function()
|
||||||
|
local baleia = require("baleia").setup()
|
||||||
|
vim.api.nvim_create_user_command("BaleiaColorize", function()
|
||||||
|
baleia.once(vim.api.nvim_get_current_buf())
|
||||||
|
end, { })
|
||||||
|
end
|
||||||
|
}
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
local based = require("based")
|
return {
|
||||||
based.setup{}
|
'trmckay/based.nvim',
|
||||||
|
config = function ()
|
||||||
|
local based = require("based")
|
||||||
|
based.setup{}
|
||||||
|
|
||||||
vim.keymap.set({"n", "v"}, "<C-b>", based.convert)
|
vim.keymap.set({"n", "v"}, "<C-b>", based.convert)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
local automaton = require("cellular-automaton")
|
|
||||||
|
|
||||||
local timeout = 120
|
|
||||||
|
|
||||||
local timer
|
|
||||||
local function enable_screensaver()
|
|
||||||
local group = vim.api.nvim_create_augroup('CellularAutomatonScreenSaver', {clear=true})
|
|
||||||
|
|
||||||
local animations = {}
|
|
||||||
for name in pairs(automaton.animations) do
|
|
||||||
table.insert(animations, name)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function play_random_animation()
|
|
||||||
local idx = math.random(#animations)
|
|
||||||
local animation_name = animations[idx]
|
|
||||||
if animation_name then
|
|
||||||
automaton.start_animation(animation_name)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd({'CursorHold', 'CursorHoldI'}, {
|
|
||||||
group = group,
|
|
||||||
callback = function()
|
|
||||||
-- TODO: Will vim.defer_fn suffice here?
|
|
||||||
timer = vim.loop.new_timer()
|
|
||||||
timer:start(timeout * 1000, 0, vim.schedule_wrap(function()
|
|
||||||
if timer:is_active() then timer:stop() end
|
|
||||||
if not timer:is_closing() then timer:close() end
|
|
||||||
|
|
||||||
play_random_animation()
|
|
||||||
end))
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd({'CursorMoved', 'CursorMovedI'}, {
|
|
||||||
group = group,
|
|
||||||
callback = function()
|
|
||||||
if timer:is_active() then timer:stop() end
|
|
||||||
if not timer:is_closing() then timer:close() end
|
|
||||||
end,
|
|
||||||
once = true
|
|
||||||
})
|
|
||||||
end
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
enable_screensaver()
|
|
@ -1,15 +1,19 @@
|
|||||||
require('colorizer').setup(
|
return {
|
||||||
nil,
|
'norcalli/nvim-colorizer.lua',
|
||||||
{
|
config = function()
|
||||||
RGB = true,
|
require('colorizer').setup(
|
||||||
RRGGBB = true,
|
nil,
|
||||||
names = false,
|
{
|
||||||
RRGGBBAA = true,
|
RGB = true,
|
||||||
rgb_fn = true,
|
RRGGBB = true,
|
||||||
hsl_fn = true,
|
names = false,
|
||||||
css = false,
|
RRGGBBAA = true,
|
||||||
css_fn = false,
|
rgb_fn = true,
|
||||||
mode = 'background'
|
hsl_fn = true,
|
||||||
}
|
css = false,
|
||||||
)
|
css_fn = false,
|
||||||
|
mode = 'background'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
@ -1,11 +1,17 @@
|
|||||||
local config = {}
|
return {
|
||||||
|
'terrortylor/nvim-comment',
|
||||||
|
requires = 'JoosepAlviste/nvim-ts-context-commentstring',
|
||||||
|
config = function()
|
||||||
|
local config = {}
|
||||||
|
|
||||||
if packer_plugins['nvim-ts-context-commentstring'] and packer_plugins['nvim-ts-context-commentstring'].loaded then
|
if packer_plugins['nvim-ts-context-commentstring'] and packer_plugins['nvim-ts-context-commentstring'].loaded then
|
||||||
config.hook = function()
|
config.hook = function()
|
||||||
if vim.api.nvim_buf_get_option(0, "filetype") == "vue" then
|
if vim.api.nvim_buf_get_option(0, "filetype") == "vue" then
|
||||||
require("ts_context_commentstring.internal").update_commentstring()
|
require("ts_context_commentstring.internal").update_commentstring()
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
require("nvim_comment").setup(config)
|
||||||
end
|
end
|
||||||
end
|
}
|
||||||
|
|
||||||
require("nvim_comment").setup(config)
|
|
||||||
|
6
lua/config/devicons.lua
Normal file
6
lua/config/devicons.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
'kyazdani42/nvim-web-devicons',
|
||||||
|
config = function()
|
||||||
|
require('nvim-web-devicons').setup()
|
||||||
|
end
|
||||||
|
}
|
26
lua/config/dressing.lua
Normal file
26
lua/config/dressing.lua
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
return {
|
||||||
|
'stevearc/dressing.nvim',
|
||||||
|
config = function()
|
||||||
|
require('dressing').setup({
|
||||||
|
select = {
|
||||||
|
get_config = function(opts)
|
||||||
|
opts = opts or {}
|
||||||
|
local cfg = {
|
||||||
|
telescope = {
|
||||||
|
layout_config = {
|
||||||
|
-- width = 120,
|
||||||
|
-- height = 60,
|
||||||
|
width = 0.87,
|
||||||
|
height = 0.80,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
if opts.kind == 'legendary.nvim' then
|
||||||
|
cfg.telescope.sorter = require('telescope.sorters').fuzzy_with_index_bias({})
|
||||||
|
end
|
||||||
|
return cfg
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
}
|
@ -1,3 +1,6 @@
|
|||||||
local map = require 'utils.map'
|
return {
|
||||||
|
'tpope/vim-fugitive',
|
||||||
map('n', '<leader>gg', ':G<cr>', { silent = true })
|
config = function ()
|
||||||
|
vim.keymap.set('n', '<leader>gg', ':G<cr>', { silent = true })
|
||||||
|
end
|
||||||
|
}
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
local map = require 'utils.map'
|
return {
|
||||||
local silent = {silent = true}
|
'f-person/git-blame.nvim',
|
||||||
|
config = function ()
|
||||||
|
local map = require 'utils.map'
|
||||||
|
local silent = {silent = true}
|
||||||
|
|
||||||
map('n', '<leader>gm', ":GitBlameCopySHA<CR>", silent)
|
map('n', '<leader>gm', ":GitBlameCopySHA<CR>", silent)
|
||||||
map('n', '<leader>gj', ":GitBlameOpenCommitURL<CR>", silent)
|
map('n', '<leader>gj', ":GitBlameOpenCommitURL<CR>", silent)
|
||||||
map('n', '<leader>gu', ":GitBlameToggle<CR>", silent)
|
map('n', '<leader>gu', ":GitBlameToggle<CR>", silent)
|
||||||
|
|
||||||
vim.g["gitblame_enabled"] = 0
|
vim.g["gitblame_enabled"] = 0
|
||||||
|
end
|
||||||
|
}
|
||||||
|
@ -1,33 +1,39 @@
|
|||||||
local gitsigns = require 'gitsigns'
|
return {
|
||||||
|
'lewis6991/gitsigns.nvim',
|
||||||
|
requires = 'nvim-lua/plenary.nvim',
|
||||||
|
config = function ()
|
||||||
|
local gitsigns = require 'gitsigns'
|
||||||
|
|
||||||
gitsigns.setup{
|
gitsigns.setup{
|
||||||
on_attach = function(bufnr)
|
on_attach = function(bufnr)
|
||||||
local function map(mode, lhs, rhs, opts)
|
local function map(mode, lhs, rhs, opts)
|
||||||
opts = vim.tbl_extend('force', {noremap = true, silent = true}, opts or {})
|
opts = vim.tbl_extend('force', {noremap = true, silent = true}, opts or {})
|
||||||
vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, opts)
|
vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Navigation
|
-- Navigation
|
||||||
map('n', ']c', "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'", {expr=true})
|
map('n', ']c', "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'", {expr=true})
|
||||||
map('n', '[c', "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'", {expr=true})
|
map('n', '[c', "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'", {expr=true})
|
||||||
|
|
||||||
-- Actions
|
-- Actions
|
||||||
map('n', '<leader>hs', ':Gitsigns stage_hunk<CR>')
|
map('n', '<leader>hs', ':Gitsigns stage_hunk<CR>')
|
||||||
map('v', '<leader>hs', ':Gitsigns stage_hunk<CR>')
|
map('v', '<leader>hs', ':Gitsigns stage_hunk<CR>')
|
||||||
map('n', '<leader>hr', ':Gitsigns reset_hunk<CR>')
|
map('n', '<leader>hr', ':Gitsigns reset_hunk<CR>')
|
||||||
map('v', '<leader>hr', ':Gitsigns reset_hunk<CR>')
|
map('v', '<leader>hr', ':Gitsigns reset_hunk<CR>')
|
||||||
map('n', '<leader>hS', '<cmd>Gitsigns stage_buffer<CR>')
|
map('n', '<leader>hS', '<cmd>Gitsigns stage_buffer<CR>')
|
||||||
map('n', '<leader>hu', '<cmd>Gitsigns undo_stage_hunk<CR>')
|
map('n', '<leader>hu', '<cmd>Gitsigns undo_stage_hunk<CR>')
|
||||||
map('n', '<leader>hR', '<cmd>Gitsigns reset_buffer<CR>')
|
map('n', '<leader>hR', '<cmd>Gitsigns reset_buffer<CR>')
|
||||||
map('n', '<leader>hp', '<cmd>Gitsigns preview_hunk<CR>')
|
map('n', '<leader>hp', '<cmd>Gitsigns preview_hunk<CR>')
|
||||||
map('n', '<leader>hb', '<cmd>lua require"gitsigns".blame_line{full=true}<CR>')
|
map('n', '<leader>hb', '<cmd>lua require"gitsigns".blame_line{full=true}<CR>')
|
||||||
map('n', '<leader>tb', '<cmd>Gitsigns toggle_current_line_blame<CR>')
|
map('n', '<leader>tb', '<cmd>Gitsigns toggle_current_line_blame<CR>')
|
||||||
map('n', '<leader>hd', '<cmd>Gitsigns diffthis<CR>')
|
map('n', '<leader>hd', '<cmd>Gitsigns diffthis<CR>')
|
||||||
map('n', '<leader>hD', '<cmd>lua require"gitsigns".diffthis("~")<CR>')
|
map('n', '<leader>hD', '<cmd>lua require"gitsigns".diffthis("~")<CR>')
|
||||||
map('n', '<leader>td', '<cmd>Gitsigns toggle_deleted<CR>')
|
map('n', '<leader>td', '<cmd>Gitsigns toggle_deleted<CR>')
|
||||||
|
|
||||||
-- Text object
|
-- Text object
|
||||||
map('o', 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
map('o', 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
||||||
map('x', 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
map('x', 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
||||||
|
end
|
||||||
|
}
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
local silent = {silent=true}
|
return {
|
||||||
vim.keymap.set("n", "s", "<Plug>(leap-forward-to)", silent)
|
'ggandor/leap.nvim',
|
||||||
vim.keymap.set("n", "S", "<Plug>(leap-backward-to)", silent)
|
config = function()
|
||||||
|
local silent = {silent=true}
|
||||||
|
vim.keymap.set("n", "s", "<Plug>(leap-forward-to)", silent)
|
||||||
|
vim.keymap.set("n", "S", "<Plug>(leap-backward-to)", silent)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
13
lua/config/legendary.lua
Normal file
13
lua/config/legendary.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
return {
|
||||||
|
'mrjones2014/legendary.nvim',
|
||||||
|
config = function()
|
||||||
|
vim.keymap.set("n", "<leader>l", ":Legendary<cr>", {silent = true})
|
||||||
|
|
||||||
|
require("legendary").setup{
|
||||||
|
include_legendary_cmds = false,
|
||||||
|
commands = {
|
||||||
|
{ ":TodoTelescope", description = "Show TODO's in telescope" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
}
|
@ -1,7 +1,6 @@
|
|||||||
local lspconfig_config = require 'config.lspconfig'
|
local lspconfig_config = require('config.lspconfig')
|
||||||
local lsp_installer = require 'nvim-lsp-installer'
|
local lsp_installer = require('nvim-lsp-installer')
|
||||||
local lsp_installer_servers = require'nvim-lsp-installer.servers'
|
local lsp_installer_servers = require('nvim-lsp-installer.servers')
|
||||||
local M = {}
|
|
||||||
|
|
||||||
-- local autoinstall_servers = {"sumneko_lua", "efm"}
|
-- local autoinstall_servers = {"sumneko_lua", "efm"}
|
||||||
local autoinstall_servers = {"sumneko_lua"}
|
local autoinstall_servers = {"sumneko_lua"}
|
||||||
@ -17,8 +16,8 @@ local capabilities = lspconfig_config.get_capabilities()
|
|||||||
for _, server in ipairs(lsp_installer.get_installed_servers()) do
|
for _, server in ipairs(lsp_installer.get_installed_servers()) do
|
||||||
local opts = {
|
local opts = {
|
||||||
root_dir = function()
|
root_dir = function()
|
||||||
return vim.fn.getcwd()
|
return vim.fn.getcwd()
|
||||||
end,
|
end,
|
||||||
init_options = lspconfig_config.get_server_init_options(server.name),
|
init_options = lspconfig_config.get_server_init_options(server.name),
|
||||||
on_attach = lspconfig_config.on_attach,
|
on_attach = lspconfig_config.on_attach,
|
||||||
on_init = lspconfig_config.on_init,
|
on_init = lspconfig_config.on_init,
|
||||||
@ -38,5 +37,3 @@ for _, server in ipairs(lsp_installer.get_installed_servers()) do
|
|||||||
server:setup(opts)
|
server:setup(opts)
|
||||||
::continue::
|
::continue::
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
require "lsp_signature".setup{
|
return {
|
||||||
hint_enable = false,
|
"ray-x/lsp_signature.nvim",
|
||||||
toggle_key = '<C-x>'
|
config = function()
|
||||||
|
require "lsp_signature".setup{
|
||||||
|
hint_enable = false,
|
||||||
|
toggle_key = '<C-x>'
|
||||||
|
}
|
||||||
|
end
|
||||||
}
|
}
|
||||||
|
@ -1,43 +1,14 @@
|
|||||||
if vim.fn.has('nvim-0.5.1') == 1 then
|
return {
|
||||||
vim.lsp.handlers['textDocument/codeAction'] = require'lsputil.codeAction'.code_action_handler
|
'RishabhRD/nvim-lsputils',
|
||||||
vim.lsp.handlers['textDocument/references'] = require'lsputil.locations'.references_handler
|
requires = 'RishabhRD/popfix',
|
||||||
vim.lsp.handlers['textDocument/definition'] = require'lsputil.locations'.definition_handler
|
config = function()
|
||||||
vim.lsp.handlers['textDocument/declaration'] = require'lsputil.locations'.declaration_handler
|
vim.lsp.handlers['textDocument/codeAction'] = require'lsputil.codeAction'.code_action_handler
|
||||||
vim.lsp.handlers['textDocument/typeDefinition'] = require'lsputil.locations'.typeDefinition_handler
|
vim.lsp.handlers['textDocument/references'] = require'lsputil.locations'.references_handler
|
||||||
vim.lsp.handlers['textDocument/implementation'] = require'lsputil.locations'.implementation_handler
|
vim.lsp.handlers['textDocument/definition'] = require'lsputil.locations'.definition_handler
|
||||||
vim.lsp.handlers['textDocument/documentSymbol'] = require'lsputil.symbols'.document_handler
|
vim.lsp.handlers['textDocument/declaration'] = require'lsputil.locations'.declaration_handler
|
||||||
vim.lsp.handlers['workspace/symbol'] = require'lsputil.symbols'.workspace_handler
|
vim.lsp.handlers['textDocument/typeDefinition'] = require'lsputil.locations'.typeDefinition_handler
|
||||||
else
|
vim.lsp.handlers['textDocument/implementation'] = require'lsputil.locations'.implementation_handler
|
||||||
local bufnr = vim.api.nvim_buf_get_number(0)
|
vim.lsp.handlers['textDocument/documentSymbol'] = require'lsputil.symbols'.document_handler
|
||||||
vim.lsp.handlers['textDocument/codeAction'] = function(_, _, actions)
|
vim.lsp.handlers['workspace/symbol'] = require'lsputil.symbols'.workspace_handler
|
||||||
require('lsputil.codeAction').code_action_handler(nil, actions, nil, nil, nil)
|
|
||||||
end
|
end
|
||||||
|
}
|
||||||
vim.lsp.handlers['textDocument/references'] = function(_, _, result)
|
|
||||||
require('lsputil.locations').references_handler(nil, result, { bufnr = bufnr }, nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.lsp.handlers['textDocument/definition'] = function(_, method, result)
|
|
||||||
require('lsputil.locations').definition_handler(nil, result, { bufnr = bufnr, method = method }, nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.lsp.handlers['textDocument/declaration'] = function(_, method, result)
|
|
||||||
require('lsputil.locations').declaration_handler(nil, result, { bufnr = bufnr, method = method }, nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.lsp.handlers['textDocument/typeDefinition'] = function(_, method, result)
|
|
||||||
require('lsputil.locations').typeDefinition_handler(nil, result, { bufnr = bufnr, method = method }, nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.lsp.handlers['textDocument/implementation'] = function(_, method, result)
|
|
||||||
require('lsputil.locations').implementation_handler(nil, result, { bufnr = bufnr, method = method }, nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.lsp.handlers['textDocument/documentSymbol'] = function(_, _, result, _, bufn)
|
|
||||||
require('lsputil.symbols').document_handler(nil, result, { bufnr = bufn }, nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.lsp.handlers['textDocument/symbol'] = function(_, _, result, _, bufn)
|
|
||||||
require('lsputil.symbols').workspace_handler(nil, result, { bufnr = bufn }, nil)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
@ -24,50 +24,50 @@ local theme = {
|
|||||||
|
|
||||||
local empty = require('lualine.component'):extend()
|
local empty = require('lualine.component'):extend()
|
||||||
function empty:draw(default_highlight)
|
function empty:draw(default_highlight)
|
||||||
self.status = ''
|
self.status = ''
|
||||||
self.applied_separator = ''
|
self.applied_separator = ''
|
||||||
self:apply_highlights(default_highlight)
|
self:apply_highlights(default_highlight)
|
||||||
self:apply_section_separators()
|
self:apply_section_separators()
|
||||||
return self.status
|
return self.status
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Put proper separators and gaps between components in sections
|
-- Put proper separators and gaps between components in sections
|
||||||
local function process_sections(sections)
|
local function process_sections(sections)
|
||||||
for name, section in pairs(sections) do
|
for name, section in pairs(sections) do
|
||||||
local left = name:sub(9, 10) < 'x'
|
local left = name:sub(9, 10) < 'x'
|
||||||
for pos = 1, name ~= 'lualine_z' and #section or #section - 1 do
|
for pos = 1, name ~= 'lualine_z' and #section or #section - 1 do
|
||||||
table.insert(section, pos * 2, { empty, color = { fg = bg, bg = bg } })
|
table.insert(section, pos * 2, { empty, color = { fg = bg, bg = bg } })
|
||||||
end
|
end
|
||||||
for id, comp in ipairs(section) do
|
for id, comp in ipairs(section) do
|
||||||
if type(comp) ~= 'table' then
|
if type(comp) ~= 'table' then
|
||||||
comp = { comp }
|
comp = { comp }
|
||||||
section[id] = comp
|
section[id] = comp
|
||||||
end
|
end
|
||||||
comp.separator = left and { right = '' } or { left = '' }
|
comp.separator = left and { right = '' } or { left = '' }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return sections
|
return sections
|
||||||
end
|
end
|
||||||
|
|
||||||
local function search_result()
|
local function search_result()
|
||||||
local last_search = vim.fn.getreg('/')
|
local last_search = vim.fn.getreg('/')
|
||||||
if not last_search or last_search == '' then
|
if not last_search or last_search == '' then
|
||||||
return ''
|
return ''
|
||||||
end
|
end
|
||||||
local searchcount = vim.fn.searchcount { maxcount = 9999 }
|
local searchcount = vim.fn.searchcount { maxcount = 9999 }
|
||||||
if searchcount.total == 0 then
|
if searchcount.total == 0 then
|
||||||
return ''
|
return ''
|
||||||
end
|
end
|
||||||
return last_search .. '(' .. searchcount.current .. '/' .. searchcount.total .. ')'
|
return last_search .. '(' .. searchcount.current .. '/' .. searchcount.total .. ')'
|
||||||
end
|
end
|
||||||
|
|
||||||
local function modified()
|
local function modified()
|
||||||
if vim.bo.modified then
|
if vim.bo.modified then
|
||||||
return '+'
|
return '+'
|
||||||
elseif vim.bo.modifiable == false or vim.bo.readonly == true then
|
elseif vim.bo.modifiable == false or vim.bo.readonly == true then
|
||||||
return '-'
|
return '-'
|
||||||
end
|
end
|
||||||
return ''
|
return ''
|
||||||
end
|
end
|
||||||
|
|
||||||
local function recording_macro()
|
local function recording_macro()
|
||||||
@ -113,49 +113,49 @@ if pcall(require, "luapad.statusline") then
|
|||||||
end
|
end
|
||||||
|
|
||||||
require('lualine').setup {
|
require('lualine').setup {
|
||||||
options = {
|
options = {
|
||||||
theme = theme,
|
theme = theme,
|
||||||
component_separators = '',
|
component_separators = '',
|
||||||
section_separators = { left = '', right = '' },
|
section_separators = { left = '', right = '' },
|
||||||
-- ignore_focus = {"NvimTree"},
|
-- ignore_focus = {"NvimTree"},
|
||||||
globalstatus = true
|
globalstatus = true
|
||||||
},
|
},
|
||||||
sections = process_sections {
|
sections = process_sections {
|
||||||
lualine_a = { 'mode' },
|
lualine_a = { 'mode' },
|
||||||
lualine_b = {
|
lualine_b = {
|
||||||
'branch',
|
'branch',
|
||||||
'diff',
|
'diff',
|
||||||
{
|
{
|
||||||
'diagnostics',
|
'diagnostics',
|
||||||
source = { 'nvim' },
|
source = { 'nvim' },
|
||||||
sections = { 'error' },
|
sections = { 'error' },
|
||||||
diagnostics_color = { error = { bg = colors.red, fg = colors.white } },
|
diagnostics_color = { error = { bg = colors.red, fg = colors.white } },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'diagnostics',
|
'diagnostics',
|
||||||
source = { 'nvim' },
|
source = { 'nvim' },
|
||||||
sections = { 'warn' },
|
sections = { 'warn' },
|
||||||
diagnostics_color = { warn = { bg = colors.orange, fg = colors.white } },
|
diagnostics_color = { warn = { bg = colors.orange, fg = colors.white } },
|
||||||
},
|
},
|
||||||
{ 'filename', file_status = false, path = 1 },
|
{ 'filename', file_status = false, path = 1 },
|
||||||
{ modified, color = { bg = colors.red } },
|
{ modified, color = { bg = colors.red } },
|
||||||
{ '%w', cond = function() return vim.wo.previewwindow end },
|
{ '%w', cond = function() return vim.wo.previewwindow end },
|
||||||
{ '%r', cond = function() return vim.bo.readonly end },
|
{ '%r', cond = function() return vim.bo.readonly end },
|
||||||
{ '%q', cond = function() return vim.bo.buftype == 'quickfix' end },
|
{ '%q', cond = function() return vim.bo.buftype == 'quickfix' end },
|
||||||
{ recording_macro, color = { bg = colors.orange } }
|
{ recording_macro, color = { bg = colors.orange } }
|
||||||
},
|
},
|
||||||
lualine_c = {},
|
lualine_c = {},
|
||||||
lualine_x = {},
|
lualine_x = {},
|
||||||
lualine_y = { search_result, 'filetype' },
|
lualine_y = { search_result, 'filetype' },
|
||||||
lualine_z = { '%l:%c', '%p%%/%L' },
|
lualine_z = { '%l:%c', '%p%%/%L' },
|
||||||
},
|
},
|
||||||
inactive_sections = {
|
inactive_sections = {
|
||||||
lualine_a = {},
|
lualine_a = {},
|
||||||
lualine_b = {},
|
lualine_b = {},
|
||||||
lualine_c = {},
|
lualine_c = {},
|
||||||
lualine_x = {},
|
lualine_x = {},
|
||||||
lualine_y = {},
|
lualine_y = {},
|
||||||
lualine_z = {},
|
lualine_z = {},
|
||||||
},
|
},
|
||||||
extensions = extensions
|
extensions = extensions
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
local pattern = "^/tmp/.*/%d+_Luapad%.lua$"
|
local pattern = "^/tmp/.*/%d+_Luapad%.lua$"
|
||||||
local group = vim.api.nvim_create_augroup('LuaPadFiletype', {clear=true})
|
local group = vim.api.nvim_create_augroup("LuaPadFiletype", {clear=true})
|
||||||
vim.api.nvim_create_autocmd("FileType", {
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
group = group,
|
group = group,
|
||||||
callback = function(data)
|
callback = function(data)
|
||||||
|
@ -1,92 +1,99 @@
|
|||||||
local ls = require("luasnip")
|
local function config()
|
||||||
local capture = require("utils.capture")
|
local ls = require("luasnip")
|
||||||
local s = ls.snippet
|
local capture = require("utils.capture")
|
||||||
local sn = ls.snippet_node
|
local s = ls.snippet
|
||||||
local fmt = require("luasnip.extras.fmt").fmt
|
local sn = ls.snippet_node
|
||||||
local t = ls.text_node
|
local fmt = require("luasnip.extras.fmt").fmt
|
||||||
local i = ls.insert_node
|
local t = ls.text_node
|
||||||
local f = ls.function_node
|
local i = ls.insert_node
|
||||||
local c = ls.choice_node
|
local f = ls.function_node
|
||||||
local d = ls.dynamic_node
|
local c = ls.choice_node
|
||||||
|
local d = ls.dynamic_node
|
||||||
|
|
||||||
local function getCurrentYear()
|
local function getCurrentYear()
|
||||||
return os.date("%Y")
|
return os.date("%Y")
|
||||||
end
|
|
||||||
|
|
||||||
local function getGitUsername()
|
|
||||||
local stdout = capture("git config user.name")
|
|
||||||
if stdout == "" then
|
|
||||||
return nil
|
|
||||||
end
|
end
|
||||||
return stdout
|
|
||||||
end
|
|
||||||
|
|
||||||
ls.config.set_config {
|
local function getGitUsername()
|
||||||
history = true,
|
local stdout = capture("git config user.name")
|
||||||
updateevents = "TextChanged,TextChangedI",
|
if stdout == "" then
|
||||||
enable_autosnippets = true
|
return nil
|
||||||
}
|
end
|
||||||
|
return stdout
|
||||||
vim.keymap.set({"i", "s"}, "<c-k>", function()
|
|
||||||
if ls.expand_or_jumpable() then
|
|
||||||
ls.expand_or_jump()
|
|
||||||
end
|
end
|
||||||
end, { silent = true })
|
|
||||||
|
|
||||||
vim.keymap.set({ "i", "s" }, "<c-j>", function()
|
ls.config.set_config {
|
||||||
if ls.jumpable(-1) then
|
history = true,
|
||||||
ls.jump(-1)
|
updateevents = "TextChanged,TextChangedI",
|
||||||
end
|
enable_autosnippets = true
|
||||||
end, { silent = -1 })
|
}
|
||||||
|
|
||||||
vim.keymap.set({"i"}, "<c-l>", function()
|
vim.keymap.set({"i", "s"}, "<c-k>", function()
|
||||||
if ls.choice_active() then
|
if ls.expand_or_jumpable() then
|
||||||
ls.change_choice(1)
|
ls.expand_or_jump()
|
||||||
end
|
end
|
||||||
end)
|
end, { silent = true })
|
||||||
|
|
||||||
ls.add_snippets("all", {
|
vim.keymap.set({ "i", "s" }, "<c-j>", function()
|
||||||
s("MIT", {
|
if ls.jumpable(-1) then
|
||||||
t({"The MIT License (MIT)", "Copyright © "}),
|
ls.jump(-1)
|
||||||
f(getCurrentYear, {}),
|
end
|
||||||
t(" "),
|
end, { silent = -1 })
|
||||||
d(1, function()
|
|
||||||
return sn(nil, {
|
|
||||||
i(1, getGitUsername() or "<copyright holders>")
|
|
||||||
})
|
|
||||||
end, {}),
|
|
||||||
t{
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
|
|
||||||
"this software and associated documentation files (the “Software”), to deal in",
|
|
||||||
"the Software without restriction, including without limitation the rights to",
|
|
||||||
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies",
|
|
||||||
"of the Software, and to permit persons to whom the Software is furnished to do",
|
|
||||||
"so, subject to the following conditions:",
|
|
||||||
"",
|
|
||||||
"The above copyright notice and this permission notice shall be included in all",
|
|
||||||
"copies or substantial portions of the Software.",
|
|
||||||
"",
|
|
||||||
"THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
|
|
||||||
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
|
|
||||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
|
|
||||||
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
|
|
||||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
|
|
||||||
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE",
|
|
||||||
"SOFTWARE.",
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
ls.add_snippets("lua", {
|
vim.keymap.set({"i"}, "<c-l>", function()
|
||||||
s("req",
|
if ls.choice_active() then
|
||||||
fmt([[local {} = require("{}")]], {
|
ls.change_choice(1)
|
||||||
f(function(module_name)
|
end
|
||||||
local parts = vim.split(module_name[1][1], ".", true)
|
end)
|
||||||
return (parts[#parts] or ""):gsub("-", "_")
|
|
||||||
end, { 1 }),
|
ls.add_snippets("all", {
|
||||||
i(1)
|
s("MIT", {
|
||||||
|
t({"The MIT License (MIT)", "Copyright © "}),
|
||||||
|
f(getCurrentYear, {}),
|
||||||
|
t(" "),
|
||||||
|
d(1, function()
|
||||||
|
return sn(nil, {
|
||||||
|
i(1, getGitUsername() or "<copyright holders>")
|
||||||
|
})
|
||||||
|
end, {}),
|
||||||
|
t{
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
|
||||||
|
"this software and associated documentation files (the “Software”), to deal in",
|
||||||
|
"the Software without restriction, including without limitation the rights to",
|
||||||
|
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies",
|
||||||
|
"of the Software, and to permit persons to whom the Software is furnished to do",
|
||||||
|
"so, subject to the following conditions:",
|
||||||
|
"",
|
||||||
|
"The above copyright notice and this permission notice shall be included in all",
|
||||||
|
"copies or substantial portions of the Software.",
|
||||||
|
"",
|
||||||
|
"THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
|
||||||
|
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
|
||||||
|
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
|
||||||
|
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
|
||||||
|
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
|
||||||
|
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE",
|
||||||
|
"SOFTWARE.",
|
||||||
|
}
|
||||||
})
|
})
|
||||||
)
|
})
|
||||||
})
|
|
||||||
|
ls.add_snippets("lua", {
|
||||||
|
s("req",
|
||||||
|
fmt([[local {} = require("{}")]], {
|
||||||
|
f(function(module_name)
|
||||||
|
local parts = vim.split(module_name[1][1], ".", true)
|
||||||
|
return (parts[#parts] or ""):gsub("-", "_")
|
||||||
|
end, { 1 }),
|
||||||
|
i(1)
|
||||||
|
})
|
||||||
|
)
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
'L3MON4D3/LuaSnip',
|
||||||
|
config = config
|
||||||
|
}
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
local opts = { noremap = true, silent = true }
|
return {
|
||||||
-- Normal-mode commands
|
'fedepujol/move.nvim',
|
||||||
-- vim.keymap.set('n', '<A-j>', ':MoveLine(1)<CR>', opts)
|
config = function()
|
||||||
-- vim.keymap.set('n', '<A-k>', ':MoveLine(-1)<CR>', opts)
|
local opts = { noremap = true, silent = true }
|
||||||
-- vim.keymap.set('n', '<A-h>', ':MoveHChar(-1)<CR>', opts)
|
-- Normal-mode commands
|
||||||
-- vim.keymap.set('n', '<A-l>', ':MoveHChar(1)<CR>', opts)
|
-- vim.keymap.set('n', '<A-j>', ':MoveLine(1)<CR>', opts)
|
||||||
|
-- vim.keymap.set('n', '<A-k>', ':MoveLine(-1)<CR>', opts)
|
||||||
|
-- vim.keymap.set('n', '<A-h>', ':MoveHChar(-1)<CR>', opts)
|
||||||
|
-- vim.keymap.set('n', '<A-l>', ':MoveHChar(1)<CR>', opts)
|
||||||
|
|
||||||
-- Visual-mode commands
|
-- Visual-mode commands
|
||||||
vim.keymap.set('v', '<S-j>', ':MoveBlock(1)<CR>', opts)
|
vim.keymap.set('v', '<S-j>', ':MoveBlock(1)<CR>', opts)
|
||||||
vim.keymap.set('v', '<S-k>', ':MoveBlock(-1)<CR>', opts)
|
vim.keymap.set('v', '<S-k>', ':MoveBlock(-1)<CR>', opts)
|
||||||
vim.keymap.set('v', '<S-h>', ':MoveHBlock(-1)<CR>', opts)
|
vim.keymap.set('v', '<S-h>', ':MoveHBlock(-1)<CR>', opts)
|
||||||
vim.keymap.set('v', '<S-l>', ':MoveHBlock(1)<CR>', opts)
|
vim.keymap.set('v', '<S-l>', ':MoveHBlock(1)<CR>', opts)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
local map = require("utils.map")
|
return {
|
||||||
|
'kyazdani42/nvim-tree.lua',
|
||||||
|
requires = 'kyazdani42/nvim-web-devicons',
|
||||||
|
config = function ()
|
||||||
|
require("nvim-tree").setup{
|
||||||
|
git = {
|
||||||
|
enable = false
|
||||||
|
},
|
||||||
|
renderer = {
|
||||||
|
group_empty = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
require("nvim-tree").setup{
|
vim.keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>", {silent = true})
|
||||||
git = {
|
vim.keymap.set("n", "<leader>f", ":NvimTreeFindFileToggle<CR>", {silent = true})
|
||||||
enable = false
|
end
|
||||||
},
|
|
||||||
renderer = {
|
|
||||||
group_empty = true,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
map("n", "<leader>e", ":NvimTreeToggle<CR>", {silent = true})
|
|
||||||
map("n", "<leader>f", ":NvimTreeFindFileToggle<CR>", {silent = true})
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
local g = vim.g
|
return {
|
||||||
local cmd = vim.cmd
|
'unblevable/quick-scope',
|
||||||
|
config = function ()
|
||||||
|
local g = vim.g
|
||||||
|
local cmd = vim.cmd
|
||||||
|
|
||||||
-- Trigger a highlight in the appropriate direction when pressing these keys:
|
-- Trigger a highlight in the appropriate direction when pressing these keys:
|
||||||
g['qs_highlight_on_keys'] = {'f', 'F', 't', 'T'}
|
g['qs_highlight_on_keys'] = {'f', 'F', 't', 'T'}
|
||||||
|
|
||||||
g['qs_max_chars'] = 150
|
|
||||||
|
|
||||||
|
g['qs_max_chars'] = 150
|
||||||
|
end
|
||||||
|
}
|
||||||
|
@ -1,99 +1,108 @@
|
|||||||
local telescope = require('telescope')
|
local telescope = require('telescope')
|
||||||
local map = require('utils.map')
|
|
||||||
local actions = require('telescope.actions')
|
local actions = require('telescope.actions')
|
||||||
local builtin = require('telescope.builtin')
|
local builtin = require('telescope.builtin')
|
||||||
local previewers = require('telescope.previewers')
|
|
||||||
local M = {}
|
|
||||||
|
|
||||||
local function sizelimit_maker(filepath, bufnr, opts)
|
|
||||||
opts = opts or {}
|
|
||||||
local size_limit = 100 * 1024 -- 100KiB
|
|
||||||
|
|
||||||
filepath = vim.fn.expand(filepath)
|
|
||||||
vim.loop.fs_stat(filepath, function(_, stat)
|
|
||||||
if not stat then return end
|
|
||||||
if stat.size > size_limit then
|
|
||||||
return
|
|
||||||
else
|
|
||||||
previewers.buffer_previewer_maker(filepath, bufnr, opts)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Falling back to find_files if git_files can't find a .git directory
|
-- Falling back to find_files if git_files can't find a .git directory
|
||||||
function M.project_files(opts)
|
local function project_files()
|
||||||
local ok = pcall(builtin.git_files, opts)
|
local opts = { prompt_title = 'Project files' }
|
||||||
if not ok then builtin.find_files(opts) end
|
local ok = pcall(builtin.git_files, opts)
|
||||||
|
if not ok then builtin.find_files(opts) end
|
||||||
end
|
end
|
||||||
|
|
||||||
function M.edit_config(_opts)
|
local function edit_config()
|
||||||
return M.project_files{
|
return M.project_files{
|
||||||
cwd = "~/.config/nvim",
|
cwd = "~/.config/nvim",
|
||||||
prompt_title = "Neovim config"
|
prompt_title = "Neovim config"
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
local silent = {silent = true}
|
|
||||||
|
|
||||||
-- Search project files
|
|
||||||
map('n', '<C-p>', [[:lua require('config.telescope').project_files{ prompt_title = 'Project files' }<cr>]], silent)
|
|
||||||
|
|
||||||
-- Search files from current working directory
|
|
||||||
map('n', '<leader>p', [[:lua require('telescope.builtin').find_files()<cr>]], silent)
|
|
||||||
|
|
||||||
-- Edit neovim config
|
|
||||||
map('n', '<leader>ce', [[:lua require('config.telescope').edit_config()<cr>]], silent)
|
|
||||||
|
|
||||||
-- Find string
|
|
||||||
map('n', '<leader>fw', [[:lua require('telescope.builtin').live_grep()<cr>]], silent)
|
|
||||||
|
|
||||||
-- Change colorscheme
|
|
||||||
map('n', '<leader>cs', [[:lua require('telescope.builtin').colorscheme()<cr>]], silent)
|
|
||||||
|
|
||||||
-- See help tags
|
|
||||||
map('n', '<leader>fh', [[:lua require('telescope.builtin').help_tags()<cr>]], silent)
|
|
||||||
|
|
||||||
telescope.setup{
|
telescope.setup{
|
||||||
defaults = {
|
defaults = {
|
||||||
buffer_previewer_maker = sizelimit_maker,
|
vimgrep_arguments = {
|
||||||
path_display = { "shorten" },
|
"rg",
|
||||||
|
"-L",
|
||||||
|
"--color=never",
|
||||||
|
"--no-heading",
|
||||||
|
"--with-filename",
|
||||||
|
"--line-number",
|
||||||
|
"--column",
|
||||||
|
"--smart-case",
|
||||||
|
},
|
||||||
|
prompt_prefix = " ",
|
||||||
|
selection_caret = " ",
|
||||||
|
entry_prefix = " ",
|
||||||
|
initial_mode = "insert",
|
||||||
|
selection_strategy = "reset",
|
||||||
|
sorting_strategy = "ascending",
|
||||||
|
layout_strategy = "horizontal",
|
||||||
|
layout_config = {
|
||||||
|
horizontal = {
|
||||||
|
prompt_position = "top",
|
||||||
|
preview_width = 0.55,
|
||||||
|
results_width = 0.8,
|
||||||
|
},
|
||||||
|
vertical = { mirror = false },
|
||||||
|
width = 0.87,
|
||||||
|
height = 0.80,
|
||||||
|
preview_cutoff = 120,
|
||||||
|
},
|
||||||
|
file_sorter = require("telescope.sorters").get_fuzzy_file,
|
||||||
|
file_ignore_patterns = { "node_modules" },
|
||||||
|
generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter,
|
||||||
|
path_display = { "truncate" },
|
||||||
color_devicons = true,
|
color_devicons = true,
|
||||||
|
winblend = 0,
|
||||||
|
border = {},
|
||||||
|
borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" },
|
||||||
|
set_env = { ["COLORTERM"] = "truecolor" }, -- default = nil,
|
||||||
|
file_previewer = require("telescope.previewers").vim_buffer_cat.new,
|
||||||
|
grep_previewer = require("telescope.previewers").vim_buffer_vimgrep.new,
|
||||||
|
qflist_previewer = require("telescope.previewers").vim_buffer_qflist.new,
|
||||||
|
-- Developer configurations: Not meant for general override
|
||||||
|
buffer_previewer_maker = require("telescope.previewers").buffer_previewer_maker,
|
||||||
mappings = {
|
mappings = {
|
||||||
i = {
|
i = { ["<esc>"] = actions.close }
|
||||||
["<esc>"] = actions.close
|
},
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
pickers = {
|
pickers = {
|
||||||
find_files = {
|
|
||||||
theme = "dropdown",
|
|
||||||
},
|
|
||||||
marks = {
|
|
||||||
theme = "dropdown",
|
|
||||||
},
|
|
||||||
help_tags = {
|
|
||||||
theme = "dropdown",
|
|
||||||
},
|
|
||||||
oldfiles = {
|
|
||||||
theme = "dropdown",
|
|
||||||
},
|
|
||||||
git_files = {
|
|
||||||
theme = "dropdown",
|
|
||||||
},
|
|
||||||
live_grep = {
|
live_grep = {
|
||||||
theme = "dropdown",
|
|
||||||
disable_coordinates = true
|
disable_coordinates = true
|
||||||
},
|
},
|
||||||
colorscheme = {
|
colorscheme = {
|
||||||
theme = "dropdown",
|
|
||||||
enable_preview = true
|
enable_preview = true
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
extensions = {
|
||||||
|
["ui-select"] = {
|
||||||
|
require("telescope.themes").get_dropdown {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
telescope.load_extension("ui-select")
|
||||||
|
|
||||||
local fzfPlugin = packer_plugins["telescope-fzf-native.nvim"]
|
local fzfPlugin = packer_plugins["telescope-fzf-native.nvim"]
|
||||||
if fzfPlugin and fzfPlugin.loaded then
|
if fzfPlugin and fzfPlugin.loaded then
|
||||||
telescope.load_extension('fzf')
|
telescope.load_extension('fzf')
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
|
||||||
|
local silent = {silent = true}
|
||||||
|
|
||||||
|
-- Search project files
|
||||||
|
vim.keymap.set("n", "<C-p>", project_files, silent)
|
||||||
|
|
||||||
|
-- Search files from current working directory
|
||||||
|
vim.keymap.set("n", "<leader>p", function() builtin.find_files() end, silent)
|
||||||
|
|
||||||
|
-- Edit neovim config
|
||||||
|
vim.keymap.set("n", "<leader>ce", edit_config, silent)
|
||||||
|
|
||||||
|
-- Find string
|
||||||
|
vim.keymap.set("n", "<leader>fw", function() builtin.live_grep() end, silent)
|
||||||
|
|
||||||
|
-- Change colorscheme
|
||||||
|
vim.keymap.set("n", "<leader>cs", function() builtin.colorscheme() end, silent)
|
||||||
|
|
||||||
|
-- See help tags
|
||||||
|
vim.keymap.set("n", "<leader>fh", function() builtin.help_tags() end, silent)
|
||||||
|
6
lua/config/tidy.lua
Normal file
6
lua/config/tidy.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
"mcauley-penney/tidy.nvim",
|
||||||
|
config = function()
|
||||||
|
require("tidy").setup()
|
||||||
|
end
|
||||||
|
}
|
7
lua/config/todo-comments.lua
Normal file
7
lua/config/todo-comments.lua
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
return {
|
||||||
|
"folke/todo-comments.nvim",
|
||||||
|
requires = "nvim-lua/plenary.nvim",
|
||||||
|
config = function()
|
||||||
|
require("todo-comments").setup { signs = false }
|
||||||
|
end
|
||||||
|
}
|
@ -1,3 +1,9 @@
|
|||||||
require('toggleterm').setup()
|
return {
|
||||||
|
'akinsho/toggleterm.nvim',
|
||||||
|
tag = '*',
|
||||||
|
config = function()
|
||||||
|
require('toggleterm').setup()
|
||||||
|
|
||||||
vim.keymap.set("n", "<leader>t", ":ToggleTerm<CR>")
|
vim.keymap.set("n", "<leader>t", ":ToggleTerm<CR>")
|
||||||
|
end
|
||||||
|
}
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
local treesitter = require("nvim-treesitter.configs")
|
return {
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
run = function() require('nvim-treesitter.install').update{ with_sync = true } end,
|
||||||
|
config = function ()
|
||||||
|
local treesitter = require("nvim-treesitter.configs")
|
||||||
|
|
||||||
treesitter.setup{
|
treesitter.setup{
|
||||||
highlight = { enable = true },
|
highlight = { enable = true },
|
||||||
auto_install = true
|
auto_install = true
|
||||||
|
}
|
||||||
|
end
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,15 @@
|
|||||||
local map = require 'utils.map'
|
return {
|
||||||
|
'folke/trouble.nvim',
|
||||||
|
requires = 'kyazdani42/nvim-web-devicons',
|
||||||
|
config = function ()
|
||||||
|
local map = require 'utils.map'
|
||||||
|
|
||||||
require('trouble').setup()
|
require('trouble').setup()
|
||||||
|
|
||||||
local silent = {silent = true}
|
local silent = {silent = true}
|
||||||
|
|
||||||
map('n', '<leader>qq', ':TroubleToggle document_diagnostics<cr>', silent)
|
map('n', '<leader>qq', ':TroubleToggle document_diagnostics<cr>', silent)
|
||||||
map('n', '<leader>qf', ':TroubleToggle workspace_diagnostics<cr>', silent)
|
map('n', '<leader>qf', ':TroubleToggle workspace_diagnostics<cr>', silent)
|
||||||
map('n', '<leader>rf', ':TroubleToggle lsp_references<cr>', silent)
|
map('n', '<leader>rf', ':TroubleToggle lsp_references<cr>', silent)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
5
lua/config/ts-playground.lua
Normal file
5
lua/config/ts-playground.lua
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
return {
|
||||||
|
'nvim-treesitter/playground',
|
||||||
|
requires = 'nvim-treesitter/nvim-treesitter',
|
||||||
|
cmd = "TSPlaygroundToggle"
|
||||||
|
}
|
11
lua/disable-builtin.lua
Normal file
11
lua/disable-builtin.lua
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
local disabled_built_ins = {
|
||||||
|
'matchit',
|
||||||
|
'netrw',
|
||||||
|
'netrwPlugin',
|
||||||
|
'netrwSettings',
|
||||||
|
'netrwFileHandlers',
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, name in ipairs(disabled_built_ins) do
|
||||||
|
vim.g['loaded_' .. name] = 1
|
||||||
|
end
|
@ -1,6 +1,5 @@
|
|||||||
local map = require 'utils.map'
|
|
||||||
|
|
||||||
map("n", "<leader><leader>x", ":w<cr>:source %<cr>")
|
vim.keymap.set("n", "<leader><leader>x", ":w<cr>:source %<cr>", { silent = true })
|
||||||
|
|
||||||
function P(...)
|
function P(...)
|
||||||
print(vim.inspect(...))
|
print(vim.inspect(...))
|
||||||
|
88
lua/plugin-manager.lua
Normal file
88
lua/plugin-manager.lua
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
-- Register custom commands for plugin manager
|
||||||
|
vim.cmd [[command! -bang -nargs=+ -complete=customlist,v:lua.require'plugin-manager'.loader_complete PackerLoad lua require('plugin-manager').loader(<f-args>, '<bang>' == '!')]]
|
||||||
|
vim.cmd [[command! PackerInstall packadd packer.nvim | lua require('plugin-manager').install()]]
|
||||||
|
vim.cmd [[command! PackerUpdate packadd packer.nvim | lua require('plugin-manager').update()]]
|
||||||
|
vim.cmd [[command! PackerSync packadd packer.nvim | lua require('plugin-manager').sync()]]
|
||||||
|
vim.cmd [[command! PackerClean packadd packer.nvim | lua require('plugin-manager').clean()]]
|
||||||
|
vim.cmd [[command! PackerCompile source lua/plugin-manager.lua | packadd packer.nvim | lua require('plugin-manager').compile()]]
|
||||||
|
|
||||||
|
-- Bootstrap packer.nvim. If packer.nvim is not installed, install it.
|
||||||
|
local function bootstrap()
|
||||||
|
local fn = vim.fn
|
||||||
|
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
|
||||||
|
if fn.empty(fn.glob(install_path)) > 0 then
|
||||||
|
return fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function create_custom_use(use)
|
||||||
|
return function (opts)
|
||||||
|
if type(opts) == "string" then
|
||||||
|
use(opts)
|
||||||
|
return opts
|
||||||
|
elseif type(opts) == "table" then
|
||||||
|
if opts.load_config then
|
||||||
|
local name = vim.split(opts[1], "/")[2]
|
||||||
|
if name:match("%.nvim$") then
|
||||||
|
name = name:sub(1, -6)
|
||||||
|
end
|
||||||
|
opts.config_name = name
|
||||||
|
end
|
||||||
|
if opts.config_name then
|
||||||
|
opts.config = ("require('config.%s')"):format(opts.config_name)
|
||||||
|
end
|
||||||
|
use(opts)
|
||||||
|
|
||||||
|
return opts[1]
|
||||||
|
else
|
||||||
|
error("What are you doing???")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local packer = nil
|
||||||
|
local function init()
|
||||||
|
-- Perform bootstrap
|
||||||
|
local packer_bootstrap = bootstrap()
|
||||||
|
|
||||||
|
-- Initialize packer
|
||||||
|
if packer == nil then
|
||||||
|
packer = require 'packer'
|
||||||
|
local util = require 'packer.util'
|
||||||
|
packer.init {
|
||||||
|
compile_path = util.join_paths(vim.fn.stdpath('config'), 'plugin', 'packer-compiled.lua'),
|
||||||
|
disable_commands = true
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Reset plugins if already loaded
|
||||||
|
packer.reset()
|
||||||
|
|
||||||
|
-- Packer can manage itself
|
||||||
|
packer.use 'wbthomason/packer.nvim'
|
||||||
|
|
||||||
|
-- Use plugins
|
||||||
|
local use = create_custom_use(packer.use)
|
||||||
|
for _, module_name in ipairs{"plugins", "plugins-local"} do
|
||||||
|
local ok, use_plugins = pcall(require, module_name)
|
||||||
|
if ok then
|
||||||
|
assert(type(use_plugins) == "function")
|
||||||
|
use_plugins(use)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Automatically set up your configuration after cloning packer.nvim
|
||||||
|
-- Put this at the end after all plugins
|
||||||
|
if packer_bootstrap then
|
||||||
|
require('packer').sync()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local plugins = setmetatable({}, {
|
||||||
|
__index = function(_, key)
|
||||||
|
init()
|
||||||
|
return packer[key]
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
return plugins
|
2
lua/plugins-local.lua
Normal file
2
lua/plugins-local.lua
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
return function(use)
|
||||||
|
end
|
360
lua/plugins.lua
360
lua/plugins.lua
@ -1,16 +1,87 @@
|
|||||||
-- TODO: Add minimal plugin mode. Disables all plugins which are not super
|
-- TODO: Add minimal plugin mode. Disables all plugins which are not super
|
||||||
-- important, to get better performance.
|
-- important, to get better performance.
|
||||||
|
|
||||||
---@diagnostic disable-next-line: unused-local
|
return function(use)
|
||||||
local function usePlugins(use, use_rocks)
|
local function use_config(name)
|
||||||
-- Toggle terminal
|
use(require(("config.%s"):format(name)))
|
||||||
use { 'akinsho/toggleterm.nvim', tag = '*', load_config=true }
|
end
|
||||||
|
|
||||||
-- Colorize ANSI codes
|
use_config "toggleterm"
|
||||||
use { 'm00qek/baleia.nvim', tag = 'v1.2.0', config=[[require('config.baleia')]] }
|
use_config "baleia"
|
||||||
|
use_config "todo-comments"
|
||||||
|
use_config "legendary"
|
||||||
|
use_config "dressing"
|
||||||
|
use_config "move"
|
||||||
|
use_config "gitblame"
|
||||||
|
use_config "based"
|
||||||
|
use_config "lspsignature"
|
||||||
|
use_config "lsputils"
|
||||||
|
use_config "luasnip"
|
||||||
|
use_config "trouble"
|
||||||
|
use_config "fugitive"
|
||||||
|
use_config "gitsigns"
|
||||||
|
use_config "nvim-tree"
|
||||||
|
use_config "autosource"
|
||||||
|
use_config "tidy"
|
||||||
|
use_config "quickscope"
|
||||||
|
use_config "leap"
|
||||||
|
use_config "comment"
|
||||||
|
use_config "colorizer"
|
||||||
|
use_config "devicons"
|
||||||
|
use_config "treesitter"
|
||||||
|
use_config "ts-playground"
|
||||||
|
|
||||||
|
use {
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
requires = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
"kyazdani42/nvim-web-devicons",
|
||||||
|
"nvim-telescope/telescope-ui-select.nvim",
|
||||||
|
{"nvim-telescope/telescope-fzf-native.nvim", run = "make"}
|
||||||
|
},
|
||||||
|
load_config = true
|
||||||
|
}
|
||||||
|
|
||||||
|
use {
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
config_name = "lspconfig"
|
||||||
|
}
|
||||||
|
|
||||||
|
use {
|
||||||
|
'williamboman/nvim-lsp-installer',
|
||||||
|
requires = 'neovim/nvim-lspconfig',
|
||||||
|
config_name = "lspinstaller"
|
||||||
|
}
|
||||||
|
|
||||||
|
use {
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
requires = "kyazdani42/nvim-web-devicons",
|
||||||
|
load_config = true
|
||||||
|
}
|
||||||
|
|
||||||
|
use {
|
||||||
|
'rafcamlet/nvim-luapad',
|
||||||
|
config_name = "luapad"
|
||||||
|
}
|
||||||
|
|
||||||
|
use "tpope/vim-eunuch"
|
||||||
|
use "christoomey/vim-tmux-navigator"
|
||||||
|
use "eandrju/cellular-automaton.nvim"
|
||||||
|
use "tweekmonster/startuptime.vim"
|
||||||
|
use "tpope/vim-unimpaired"
|
||||||
|
use { "sindrets/diffview.nvim", requires = 'nvim-lua/plenary.nvim' }
|
||||||
|
use "wellle/targets.vim"
|
||||||
|
use "michaeljsmith/vim-indent-object"
|
||||||
|
use "psliwka/vim-smoothie"
|
||||||
|
use "godlygeek/tabular"
|
||||||
|
use "editorconfig/editorconfig-vim"
|
||||||
|
use "tpope/vim-surround"
|
||||||
|
use "tpope/vim-repeat"
|
||||||
|
use "tikhomirov/vim-glsl"
|
||||||
|
|
||||||
-- Debugger
|
-- Debugger
|
||||||
use { 'mfussenegger/nvim-dap', config_name="dap" }
|
use { "mfussenegger/nvim-dap", config_name="dap" }
|
||||||
use { "rcarriga/nvim-dap-ui", requires = "mfussenegger/nvim-dap", config=[[require('dapui').setup()]] }
|
use { "rcarriga/nvim-dap-ui", requires = "mfussenegger/nvim-dap", config=[[require('dapui').setup()]] }
|
||||||
use 'simrat39/rust-tools.nvim'
|
use 'simrat39/rust-tools.nvim'
|
||||||
use {
|
use {
|
||||||
@ -19,46 +90,6 @@ local function usePlugins(use, use_rocks)
|
|||||||
config=[[require('nvim-dap-virtual-text')]]
|
config=[[require('nvim-dap-virtual-text')]]
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Git blame
|
|
||||||
use { 'f-person/git-blame.nvim', config_name="gitblame" }
|
|
||||||
|
|
||||||
use { 'trmckay/based.nvim', load_config = true }
|
|
||||||
|
|
||||||
-- Seemless pane switching betwen tmux and vim
|
|
||||||
use 'christoomey/vim-tmux-navigator'
|
|
||||||
|
|
||||||
-- UNIX commands
|
|
||||||
use 'tpope/vim-eunuch'
|
|
||||||
|
|
||||||
use {'rafcamlet/nvim-luapad', config_name = "luapad"}
|
|
||||||
|
|
||||||
use { 'fedepujol/move.nvim', load_config=true }
|
|
||||||
|
|
||||||
-- fun
|
|
||||||
use {'eandrju/cellular-automaton.nvim', load_config = true}
|
|
||||||
|
|
||||||
-- Movement utilities
|
|
||||||
use 'tpope/vim-unimpaired'
|
|
||||||
|
|
||||||
-- LSP
|
|
||||||
use { 'neovim/nvim-lspconfig', config_name = "lspconfig" }
|
|
||||||
use {
|
|
||||||
'williamboman/nvim-lsp-installer',
|
|
||||||
requires = 'neovim/nvim-lspconfig',
|
|
||||||
config_name = "lspinstaller"
|
|
||||||
}
|
|
||||||
|
|
||||||
-- LSP utils
|
|
||||||
use {"ray-x/lsp_signature.nvim", config_name = "lspsignature"}
|
|
||||||
use {
|
|
||||||
'RishabhRD/nvim-lsputils',
|
|
||||||
config_name = "lsputils",
|
|
||||||
requires = 'RishabhRD/popfix'
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Snippets
|
|
||||||
use { 'L3MON4D3/LuaSnip', config_name = "luasnip" }
|
|
||||||
|
|
||||||
-- Completion
|
-- Completion
|
||||||
use { 'onsails/lspkind-nvim' }
|
use { 'onsails/lspkind-nvim' }
|
||||||
use {
|
use {
|
||||||
@ -76,231 +107,20 @@ local function usePlugins(use, use_rocks)
|
|||||||
use {'hrsh7th/cmp-cmdline', after = 'nvim-cmp', requires = 'hrsh7th/nvim-cmp'}
|
use {'hrsh7th/cmp-cmdline', after = 'nvim-cmp', requires = 'hrsh7th/nvim-cmp'}
|
||||||
use {'saadparwaiz1/cmp_luasnip', after = 'nvim-cmp', requires = {'L3MON4D3/LuaSnip', 'nvim-cmp'}}
|
use {'saadparwaiz1/cmp_luasnip', after = 'nvim-cmp', requires = {'L3MON4D3/LuaSnip', 'nvim-cmp'}}
|
||||||
|
|
||||||
-- Better diagnostics viewer
|
do -- Color themes
|
||||||
use {
|
use 'srcery-colors/srcery-vim'
|
||||||
'folke/trouble.nvim',
|
-- use 'morhetz/gruvbox'
|
||||||
requires = 'kyazdani42/nvim-web-devicons',
|
-- use 'tomasr/molokai'
|
||||||
load_config = true
|
-- use 'Mangeshrex/uwu.vim'
|
||||||
}
|
-- use 'ayu-theme/ayu-vim'
|
||||||
|
-- use 'sickill/vim-monokai'
|
||||||
-- Color themes
|
-- use 'joshdick/onedark.vim'
|
||||||
use 'srcery-colors/srcery-vim'
|
-- use 'mswift42/vim-themes'
|
||||||
-- use 'morhetz/gruvbox'
|
-- use 'squarefrog/tomorrow-night.vim'
|
||||||
-- use 'tomasr/molokai'
|
-- use 'fnune/base16-vim'
|
||||||
-- use 'Mangeshrex/uwu.vim'
|
end
|
||||||
-- use 'ayu-theme/ayu-vim'
|
|
||||||
-- use 'sickill/vim-monokai'
|
|
||||||
-- use 'joshdick/onedark.vim'
|
|
||||||
-- use 'mswift42/vim-themes'
|
|
||||||
-- use 'squarefrog/tomorrow-night.vim'
|
|
||||||
-- use 'fnune/base16-vim'
|
|
||||||
|
|
||||||
-- Text object target
|
|
||||||
use 'wellle/targets.vim'
|
|
||||||
|
|
||||||
-- Git integration
|
|
||||||
use { 'tpope/vim-fugitive', config_name = "fugitive" }
|
|
||||||
use {
|
|
||||||
'lewis6991/gitsigns.nvim',
|
|
||||||
requires = 'nvim-lua/plenary.nvim',
|
|
||||||
load_config = true
|
|
||||||
-- tag = 'release' -- To use the latest release
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Refactoring
|
|
||||||
-- use {
|
|
||||||
-- "ThePrimeagen/refactoring.nvim",
|
|
||||||
-- requires = {
|
|
||||||
-- "nvim-lua/plenary.nvim",
|
|
||||||
-- "nvim-treesitter/nvim-treesitter"
|
|
||||||
-- },
|
|
||||||
-- disable = true,
|
|
||||||
-- config = [[require 'config.refactoring']]
|
|
||||||
-- }
|
|
||||||
|
|
||||||
-- Analyze startup time
|
|
||||||
use 'tweekmonster/startuptime.vim'
|
|
||||||
|
|
||||||
-- Status line and tab line
|
|
||||||
-- use { 'itchyny/lightline.vim', config = [[require 'config.lightline']]}
|
|
||||||
use {
|
|
||||||
'nvim-lualine/lualine.nvim',
|
|
||||||
requires = 'kyazdani42/nvim-web-devicons',
|
|
||||||
load_config = true
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Load project specific settings from exrc
|
|
||||||
use { 'jenterkin/vim-autosource', config_name = "autosource" }
|
|
||||||
|
|
||||||
-- Remove spaces at end of lines
|
|
||||||
use{ "mcauley-penney/tidy.nvim", config = [[require("tidy").setup()]] }
|
|
||||||
|
|
||||||
-- Training plugins
|
-- Training plugins
|
||||||
-- use 'tjdevries/train.nvim'
|
-- use 'tjdevries/train.nvim'
|
||||||
-- use 'ThePrimeagen/vim-be-good'
|
-- use 'ThePrimeagen/vim-be-good'
|
||||||
|
|
||||||
-- Quick movement
|
|
||||||
-- use { 'justinmk/vim-sneak', config = [[require 'config.sneak']] }
|
|
||||||
use { 'unblevable/quick-scope', config_name = "quickscope" }
|
|
||||||
use 'michaeljsmith/vim-indent-object'
|
|
||||||
use { 'ggandor/leap.nvim', load_config = "leap"}
|
|
||||||
|
|
||||||
-- Smooth smooth scrolling
|
|
||||||
-- use { 'karb94/neoscroll.nvim', config = [[require('neoscroll').setup()]] }
|
|
||||||
use 'psliwka/vim-smoothie'
|
|
||||||
|
|
||||||
-- Commenting
|
|
||||||
use {
|
|
||||||
'terrortylor/nvim-comment',
|
|
||||||
config_name = "comment",
|
|
||||||
requires = 'JoosepAlviste/nvim-ts-context-commentstring'
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Color code colorizer
|
|
||||||
use { 'norcalli/nvim-colorizer.lua', config_name = "colorizer" }
|
|
||||||
|
|
||||||
-- Fuzzy file finder
|
|
||||||
use {
|
|
||||||
'nvim-telescope/telescope.nvim',
|
|
||||||
load_config = true,
|
|
||||||
requires = {
|
|
||||||
'nvim-lua/plenary.nvim',
|
|
||||||
'nvim-treesitter/nvim-treesitter',
|
|
||||||
'kyazdani42/nvim-web-devicons',
|
|
||||||
{'nvim-telescope/telescope-fzf-native.nvim', run = 'make'}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Align characters vertically
|
|
||||||
use 'godlygeek/tabular'
|
|
||||||
|
|
||||||
-- Used for loading project specific code styles
|
|
||||||
use 'editorconfig/editorconfig-vim'
|
|
||||||
|
|
||||||
-- Provides mappings for working with symbols like (), {}, [], etc.
|
|
||||||
use 'tpope/vim-surround'
|
|
||||||
|
|
||||||
-- Allow repeating
|
|
||||||
use 'tpope/vim-repeat'
|
|
||||||
|
|
||||||
-- GLSL language support
|
|
||||||
use 'tikhomirov/vim-glsl'
|
|
||||||
|
|
||||||
-- Treesitter
|
|
||||||
use {
|
|
||||||
'nvim-treesitter/nvim-treesitter',
|
|
||||||
config = [[require 'config.treesitter']],
|
|
||||||
run = function() require('nvim-treesitter.install').update{ with_sync = true } end
|
|
||||||
}
|
|
||||||
use {
|
|
||||||
'nvim-treesitter/playground',
|
|
||||||
requires = 'nvim-treesitter/nvim-treesitter',
|
|
||||||
cmd = "TSPlaygroundToggle"
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Dev icons
|
|
||||||
use {'kyazdani42/nvim-web-devicons', config = [[require('nvim-web-devicons').setup()]]}
|
|
||||||
|
|
||||||
-- File browser
|
|
||||||
use {
|
|
||||||
'kyazdani42/nvim-tree.lua',
|
|
||||||
requires = 'kyazdani42/nvim-web-devicons',
|
|
||||||
config = [[require 'config.nvim-tree']]
|
|
||||||
}
|
|
||||||
-- use {
|
|
||||||
-- 'lambdalisue/fern.vim',
|
|
||||||
-- config = [[require 'config.fern']],
|
|
||||||
-- requires = {
|
|
||||||
-- 'antoinemadec/FixCursorHold.nvim',
|
|
||||||
-- 'lambdalisue/fern-hijack.vim',
|
|
||||||
-- {'lambdalisue/fern-renderer-nerdfont.vim', config = [[vim.g["fern#renderer"] = "nerdfont"]]},
|
|
||||||
-- 'lambdalisue/nerdfont.vim'
|
|
||||||
-- }
|
|
||||||
-- }
|
|
||||||
-- alternatives:
|
|
||||||
-- use 'kyazdani42/nvim-tree.lua'
|
|
||||||
-- use 'zgpio/tree.nvim'
|
|
||||||
-- use 'tpope/vim-vinegar'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Register custom commands for plugin manager
|
|
||||||
vim.cmd [[command! -bang -nargs=+ -complete=customlist,v:lua.require'plugins'.loader_complete PackerLoad lua require('plugins').loader(<f-args>, '<bang>' == '!')]]
|
|
||||||
vim.cmd [[command! PackerInstall packadd packer.nvim | lua require('plugins').install()]]
|
|
||||||
vim.cmd [[command! PackerUpdate packadd packer.nvim | lua require('plugins').update()]]
|
|
||||||
vim.cmd [[command! PackerSync packadd packer.nvim | lua require('plugins').sync()]]
|
|
||||||
vim.cmd [[command! PackerClean packadd packer.nvim | lua require('plugins').clean()]]
|
|
||||||
vim.cmd [[command! PackerCompile source lua/plugins.lua | packadd packer.nvim | lua require('plugins').compile()]]
|
|
||||||
|
|
||||||
-- Bootstrap packer.nvim. If packer.nvim is not installed, install it.
|
|
||||||
local function bootstrap()
|
|
||||||
local fn = vim.fn
|
|
||||||
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
|
|
||||||
if fn.empty(fn.glob(install_path)) > 0 then
|
|
||||||
return fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function create_custom_use(use)
|
|
||||||
return function (opts)
|
|
||||||
if type(opts) == "string" then
|
|
||||||
use(opts)
|
|
||||||
return opts
|
|
||||||
elseif type(opts) == "table" then
|
|
||||||
if opts.load_config then
|
|
||||||
local name = vim.split(opts[1], "/")[2]
|
|
||||||
if name:match("%.nvim$") then
|
|
||||||
name = name:sub(1, -6)
|
|
||||||
end
|
|
||||||
opts.config_name = name
|
|
||||||
end
|
|
||||||
if opts.config_name then
|
|
||||||
opts.config = ("require('config.%s')"):format(opts.config_name)
|
|
||||||
end
|
|
||||||
use(opts)
|
|
||||||
|
|
||||||
return opts[1]
|
|
||||||
else
|
|
||||||
error("What are you doing???")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local packer = nil
|
|
||||||
local function init()
|
|
||||||
-- Perform bootstrap
|
|
||||||
local packer_bootstrap = bootstrap()
|
|
||||||
|
|
||||||
-- Initialize packer
|
|
||||||
if packer == nil then
|
|
||||||
packer = require 'packer'
|
|
||||||
local util = require 'packer.util'
|
|
||||||
packer.init {
|
|
||||||
compile_path = util.join_paths(vim.fn.stdpath('config'), 'plugin', 'packer-compiled.lua'),
|
|
||||||
disable_commands = true
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Reset plugins if already loaded
|
|
||||||
packer.reset()
|
|
||||||
|
|
||||||
-- Packer can manage itself
|
|
||||||
packer.use 'wbthomason/packer.nvim'
|
|
||||||
|
|
||||||
-- Use plugins
|
|
||||||
usePlugins(create_custom_use(packer.use), packer.use_rocks)
|
|
||||||
|
|
||||||
-- Automatically set up your configuration after cloning packer.nvim
|
|
||||||
-- Put this at the end after all plugins
|
|
||||||
if packer_bootstrap then
|
|
||||||
require('packer').sync()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local plugins = setmetatable({}, {
|
|
||||||
__index = function(_, key)
|
|
||||||
init()
|
|
||||||
return packer[key]
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
return plugins
|
|
||||||
|
Loading…
Reference in New Issue
Block a user