mirror of
https://git.disroot.org/FollieHiyuki/dotfiles.git
synced 2025-02-17 18:13:03 -05:00
neovim: add lspconfig, move compe config
This commit is contained in:
parent
e6e5b3149f
commit
5ab3184378
@ -67,9 +67,24 @@ wk.register({
|
|||||||
},
|
},
|
||||||
|
|
||||||
-- Naming common keys
|
-- Naming common keys
|
||||||
['['] = {name = 'Block motions (previous)'},
|
['['] = {
|
||||||
[']'] = {name = 'Block motions (next)'},
|
name = 'Block motions (previous)',
|
||||||
g = {name = 'Goto motions'},
|
d = 'Previous diagnostics',
|
||||||
|
g = 'Previous git hunk'
|
||||||
|
},
|
||||||
|
[']'] = {
|
||||||
|
name = 'Block motions (next)',
|
||||||
|
d = 'Next diagnostics',
|
||||||
|
g = 'Next git hunk'
|
||||||
|
},
|
||||||
|
g = {
|
||||||
|
name = 'Goto motions',
|
||||||
|
d = 'Go to definition',
|
||||||
|
D = 'Go to declaration',
|
||||||
|
i = 'Go to implementation',
|
||||||
|
r = 'Go to references'
|
||||||
|
},
|
||||||
|
K = {name = 'Hover'},
|
||||||
z = {name = 'Misc utils'},
|
z = {name = 'Misc utils'},
|
||||||
|
|
||||||
-- Don't need to show bufferline numbers
|
-- Don't need to show bufferline numbers
|
||||||
@ -119,8 +134,9 @@ wk.register({
|
|||||||
j = {':Telescope symbols<CR>', 'Pick emojis'},
|
j = {':Telescope symbols<CR>', 'Pick emojis'},
|
||||||
k = {':Telescope keymaps<CR>', 'Normal keymaps'},
|
k = {':Telescope keymaps<CR>', 'Normal keymaps'},
|
||||||
m = {':Telescope marks<CR>', 'Bookmarks'},
|
m = {':Telescope marks<CR>', 'Bookmarks'},
|
||||||
|
n = {':Telescope man_pages<CR>', 'Man pages'},
|
||||||
o = {':Telescope oldfiles<CR>', 'Recent files'},
|
o = {':Telescope oldfiles<CR>', 'Recent files'},
|
||||||
p = {':Telescope man_pages<CR>', 'Man pages'},
|
p = {':Telescope project display_type=full<CR>', 'Projects'},
|
||||||
r = {':Telescope reloader<CR>', 'Reload lua modules'},
|
r = {':Telescope reloader<CR>', 'Reload lua modules'},
|
||||||
s = {':Telescope treesitter<CR>', 'Treesitter'},
|
s = {':Telescope treesitter<CR>', 'Treesitter'},
|
||||||
t = {':Telescope<CR>', 'Telescope'},
|
t = {':Telescope<CR>', 'Telescope'},
|
||||||
@ -131,15 +147,35 @@ wk.register({
|
|||||||
},
|
},
|
||||||
|
|
||||||
l = {
|
l = {
|
||||||
name = 'LSP'
|
name = 'LSP',
|
||||||
|
a = 'Add workspace folder',
|
||||||
|
d = 'Type definition',
|
||||||
|
e = 'Line diagnostics',
|
||||||
|
l = 'List workspace folders',
|
||||||
|
n = 'Rename in buffer',
|
||||||
|
o = 'Format buffer',
|
||||||
|
q = 'Set diagnostics loclist',
|
||||||
|
r = 'Remove workspace folder',
|
||||||
|
s = 'Signature help',
|
||||||
|
f = {
|
||||||
|
name = 'Telescope',
|
||||||
|
a = {':Telescope lsp_code_actions<CR>', 'Code actions'},
|
||||||
|
A = {':Telescope lsp_range_code_actions<CR>', 'Range code actions'},
|
||||||
|
d = {':Telescope lsp_document_diagnostics<CR>', 'Buffer diagnostics'},
|
||||||
|
D = {':Telescope lsp_workspace_diagnostics<CR>', 'Workspace diagnostics'},
|
||||||
|
e = {':Telescope lsp_dynamic_workspace_symbols<CR>', 'Dynamic workspace symbols'},
|
||||||
|
i = {':Telescope lsp_implementations<CR>', 'Implementations'},
|
||||||
|
n = {':Telescope lsp_definitions<CR>', 'Definitions'},
|
||||||
|
r = {':Telescope lsp_references<CR>', 'References'},
|
||||||
|
s = {':Telescope lsp_document_symbols<CR>', 'Buffer symbols'},
|
||||||
|
S = {':Telescope lsp_workspace_symbols<CR>', 'Workspace symbols'}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Git
|
-- Git
|
||||||
g = {
|
g = {
|
||||||
name = 'Git',
|
name = 'Git',
|
||||||
b = 'Blame current line',
|
b = 'Blame current line',
|
||||||
j = 'Next hunk',
|
|
||||||
k = 'Previous hunk',
|
|
||||||
p = 'Preview hunk',
|
p = 'Preview hunk',
|
||||||
r = 'Reset hunk',
|
r = 'Reset hunk',
|
||||||
R = 'Reset all hunks in buffer',
|
R = 'Reset all hunks in buffer',
|
||||||
@ -176,54 +212,3 @@ wk.register({
|
|||||||
s = 'Stage hunk'
|
s = 'Stage hunk'
|
||||||
}
|
}
|
||||||
}, {mode = 'v', prefix = '<leader>'})
|
}, {mode = 'v', prefix = '<leader>'})
|
||||||
|
|
||||||
----------------
|
|
||||||
-- nvim-compe --
|
|
||||||
----------------
|
|
||||||
-- Use (S-)Tab in completion menu
|
|
||||||
-- See https://github.com/L3MON4D3/Luasnip/issues/1#issuecomment-835241958
|
|
||||||
local t = function(str)
|
|
||||||
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
|
||||||
end
|
|
||||||
|
|
||||||
local function prequire(...)
|
|
||||||
local status, lib = pcall(require, ...)
|
|
||||||
if (status) then return lib end
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
local luasnip = prequire('luasnip')
|
|
||||||
|
|
||||||
local check_back_space = function()
|
|
||||||
local col = vim.fn.col('.') - 1
|
|
||||||
return col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') ~= nil
|
|
||||||
end
|
|
||||||
|
|
||||||
_G.tab_complete = function()
|
|
||||||
if vim.fn.pumvisible() == 1 then
|
|
||||||
return t '<C-n>'
|
|
||||||
elseif luasnip and luasnip.expand_or_jumpable() then
|
|
||||||
return t '<Plug>luasnip-expand-or-jump'
|
|
||||||
elseif check_back_space() then
|
|
||||||
return t '<Tab>'
|
|
||||||
else
|
|
||||||
return vim.fn['compe#complete']()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
_G.s_tab_complete = function()
|
|
||||||
if vim.fn.pumvisible() == 1 then
|
|
||||||
return t '<C-p>'
|
|
||||||
elseif luasnip and luasnip.jumpable(-1) then
|
|
||||||
return t '<Plug>luasnip-jump-prev'
|
|
||||||
else
|
|
||||||
return t '<S-Tab>'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.api.nvim_set_keymap('i', '<Tab>', 'v:lua.tab_complete()', {expr = true, noremap = true, silent = true})
|
|
||||||
vim.api.nvim_set_keymap('s', '<Tab>', 'v:lua.tab_complete()', {expr = true, noremap = true, silent = true})
|
|
||||||
vim.api.nvim_set_keymap('i', '<S-Tab>', 'v:lua.s_tab_complete()', {expr = true, noremap = true, silent = true})
|
|
||||||
vim.api.nvim_set_keymap('s', '<S-Tab>', 'v:lua.s_tab_complete()', {expr = true, noremap = true, silent = true})
|
|
||||||
|
|
||||||
vim.api.nvim_set_keymap('i', '<C-Space>', 'compe#complete()', {expr = true, noremap = true, silent = true})
|
|
||||||
vim.api.nvim_set_keymap('i', '<C-e>', 'compe#close(\'<C-e>\')', {expr = true, noremap = true, silent = true})
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
return require('compe').setup {
|
require('compe').setup {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
autocomplete = true,
|
autocomplete = true,
|
||||||
debug = false,
|
debug = false,
|
||||||
@ -7,11 +7,57 @@ return require('compe').setup {
|
|||||||
source = {
|
source = {
|
||||||
path = true,
|
path = true,
|
||||||
buffer = true,
|
buffer = true,
|
||||||
-- calc = true,
|
calc = false,
|
||||||
nvim_lsp = true,
|
nvim_lsp = true,
|
||||||
nvim_lua = true,
|
nvim_lua = false,
|
||||||
|
vsnip = false,
|
||||||
luasnip = true,
|
luasnip = true,
|
||||||
-- tags = true,
|
utilsnips = false,
|
||||||
|
tags = false,
|
||||||
spell = true
|
spell = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Use (S-)Tab in completion menu
|
||||||
|
-- See https://github.com/neovim/nvim-lspconfig/wiki/Snippets
|
||||||
|
local t = function(str)
|
||||||
|
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
local check_back_space = function()
|
||||||
|
local col = vim.fn.col('.') - 1
|
||||||
|
if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
_G.tab_complete = function()
|
||||||
|
if vim.fn.pumvisible() == 1 then
|
||||||
|
return t '<C-n>'
|
||||||
|
elseif require('luasnip').expand_or_jumpable() then
|
||||||
|
return t '<Plug>luasnip-expand-or-jump'
|
||||||
|
elseif check_back_space() then
|
||||||
|
return t '<Tab>'
|
||||||
|
else
|
||||||
|
return vim.fn['compe#complete']()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
_G.s_tab_complete = function()
|
||||||
|
if vim.fn.pumvisible() == 1 then
|
||||||
|
return t '<C-p>'
|
||||||
|
elseif require('luasnip').jumpable(-1) then
|
||||||
|
return t '<Plug>luasnip-jump-prev'
|
||||||
|
else
|
||||||
|
return t '<S-Tab>'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('i', '<Tab>', 'v:lua.tab_complete()', {expr = true})
|
||||||
|
vim.api.nvim_set_keymap('s', '<Tab>', 'v:lua.tab_complete()', {expr = true})
|
||||||
|
vim.api.nvim_set_keymap('i', '<S-Tab>', 'v:lua.s_tab_complete()', {expr = true})
|
||||||
|
vim.api.nvim_set_keymap('s', '<S-Tab>', 'v:lua.s_tab_complete()', {expr = true})
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('i', '<C-Space>', 'compe#complete()', {expr = true})
|
||||||
|
vim.api.nvim_set_keymap('i', '<C-e>', 'compe#close(\'<C-e>\')', {expr = true})
|
||||||
|
@ -12,8 +12,8 @@ return require('gitsigns').setup {
|
|||||||
noremap = true,
|
noremap = true,
|
||||||
buffer = true,
|
buffer = true,
|
||||||
|
|
||||||
['n <leader>gj'] = {expr = true, '&diff ? \'<leader>gj\' : \'<cmd>lua require"gitsigns.actions".next_hunk()<CR>\''},
|
['n ]g'] = {expr = true, '&diff ? \']g\' : \'<cmd>lua require"gitsigns.actions".next_hunk()<CR>\''},
|
||||||
['n <leader>gk'] = {expr = true, '&diff ? \'<leader>gk\' : \'<cmd>lua require"gitsigns.actions".prev_hunk()<CR>\''},
|
['n [g'] = {expr = true, '&diff ? \'[g\' : \'<cmd>lua require"gitsigns.actions".prev_hunk()<CR>\''},
|
||||||
|
|
||||||
['n <leader>gs'] = '<cmd>lua require"gitsigns".stage_hunk()<CR>',
|
['n <leader>gs'] = '<cmd>lua require"gitsigns".stage_hunk()<CR>',
|
||||||
['v <leader>gs'] = '<cmd>lua require"gitsigns".stage_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>',
|
['v <leader>gs'] = '<cmd>lua require"gitsigns".stage_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>',
|
||||||
|
124
home/.config/nvim/lua/modules/lsp.lua
Normal file
124
home/.config/nvim/lua/modules/lsp.lua
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
local lspconf = require('lspconfig')
|
||||||
|
|
||||||
|
local on_attach = function(client, bufnr)
|
||||||
|
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||||
|
|
||||||
|
local function buf_set_keymap(...)
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, ...)
|
||||||
|
end
|
||||||
|
|
||||||
|
local opts = {noremap = true, silent = true}
|
||||||
|
buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||||
|
buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||||
|
buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||||
|
buf_set_keymap('n', 'gi', '<Cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<leader>ls', '<Cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<leader>la', '<Cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<leader>lr', '<Cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<leader>ll', '<Cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<leader>ld', '<Cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<leader>ln', '<Cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||||
|
buf_set_keymap('n', 'gr', '<Cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<leader>le', '<Cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '[d', '<Cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
|
||||||
|
buf_set_keymap('n', ']d', '<Cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<leader>lq', '<Cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
|
||||||
|
|
||||||
|
if client.resolved_capabilities.document_formatting then
|
||||||
|
buf_set_keymap('n', '<leader>lo', '<Cmd>lua vim.lsp.buf.formatting()<CR>', opts)
|
||||||
|
elseif client.resolved_capabilities.document_range_formatting then
|
||||||
|
buf_set_keymap('n', '<leader>lo', '<Cmd>lua vim.lsp.buf.range_formatting()<CR>', opts)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
-- Server configurations --
|
||||||
|
---------------------------
|
||||||
|
-- https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md
|
||||||
|
|
||||||
|
-- C/C++
|
||||||
|
lspconf.clangd.setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
filetypes = {'c', 'cpp'},
|
||||||
|
cmd = {
|
||||||
|
'clangd',
|
||||||
|
'-j=2',
|
||||||
|
'--background-index',
|
||||||
|
'--clang-tidy',
|
||||||
|
'--completion-style=detailed',
|
||||||
|
'--pch-storage=memory',
|
||||||
|
'--header-insertion=iwyu',
|
||||||
|
'--header-insertion=decorators'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Lua
|
||||||
|
local runtime_path = vim.split(package.path, ';')
|
||||||
|
table.insert(runtime_path, 'lua/?.lua')
|
||||||
|
table.insert(runtime_path, 'lua/?/init.lua')
|
||||||
|
|
||||||
|
lspconf.sumneko_lua.setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
cmd = {
|
||||||
|
vim.fn.stdpath('data') .. '/lsp/lua-language-server/bin/Linux/lua-language-server',
|
||||||
|
'-E',
|
||||||
|
vim.fn.stdpath('data') .. '/lsp/lua-language-server/main.lua'
|
||||||
|
},
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
diagnostics = {
|
||||||
|
globals = {'vim'}
|
||||||
|
},
|
||||||
|
runtime = {
|
||||||
|
version = 'LuaJIT',
|
||||||
|
path = runtime_path
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
library = vim.api.nvim_get_runtime_file('', true),
|
||||||
|
maxPreload = 100000,
|
||||||
|
preloadFileSize = 100000
|
||||||
|
},
|
||||||
|
telemetry = {
|
||||||
|
enable = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Go
|
||||||
|
lspconf.gopls.setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
cmd = {'gopls', '--remote=auto'},
|
||||||
|
init_options = {
|
||||||
|
usePlaceholders = true,
|
||||||
|
completeUnimported = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Others
|
||||||
|
local servers = {
|
||||||
|
'dockerls',
|
||||||
|
'bashls',
|
||||||
|
'pyright',
|
||||||
|
'tsserver',
|
||||||
|
'html',
|
||||||
|
'cmake',
|
||||||
|
'rust_analyzer'
|
||||||
|
}
|
||||||
|
for _, server in ipairs(servers) do
|
||||||
|
lspconf[server].setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Replace the default lsp diagnostic letters with prettier symbols
|
||||||
|
-- vim.fn.sign_define('LspDiagnosticsSignError', {text = '', numhl = 'LspDiagnosticsDefaultError'})
|
||||||
|
-- vim.fn.sign_define('LspDiagnosticsSignWarning', {text = '', numhl = 'LspDiagnosticsDefaultWarning'})
|
||||||
|
-- vim.fn.sign_define('LspDiagnosticsSignInformation', {text = '', numhl = 'LspDiagnosticsDefaultInformation'})
|
||||||
|
-- vim.fn.sign_define('LspDiagnosticsSignHint', {text = '', numhl = 'LspDiagnosticsDefaultHint'})
|
@ -25,6 +25,9 @@ local function telescope_setup()
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
extensions = {
|
extensions = {
|
||||||
|
project = {
|
||||||
|
base_dirs = {{'~/Code', max_depth = 2}}
|
||||||
|
},
|
||||||
fzf = {
|
fzf = {
|
||||||
fuzzy = true,
|
fuzzy = true,
|
||||||
override_generic_sorter = false,
|
override_generic_sorter = false,
|
||||||
@ -33,7 +36,7 @@ local function telescope_setup()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
require('telescope').load_extension('project')
|
||||||
require('telescope').load_extension('fzf')
|
require('telescope').load_extension('fzf')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ end
|
|||||||
vim.cmd [[packadd packer.nvim]]
|
vim.cmd [[packadd packer.nvim]]
|
||||||
|
|
||||||
return require('packer').startup(
|
return require('packer').startup(
|
||||||
function()
|
function(use)
|
||||||
use {'wbthomason/packer.nvim', opt = true}
|
use {'wbthomason/packer.nvim', opt = true}
|
||||||
|
|
||||||
-----------------
|
-----------------
|
||||||
@ -66,7 +66,8 @@ return require('packer').startup(
|
|||||||
use {
|
use {
|
||||||
'lewis6991/gitsigns.nvim',
|
'lewis6991/gitsigns.nvim',
|
||||||
event = {'BufRead', 'BufNewFile'},
|
event = {'BufRead', 'BufNewFile'},
|
||||||
requires = 'nvim-lua/plenary.nvim',
|
wants = 'plenary.nvim',
|
||||||
|
requires = {{'nvim-lua/plenary.nvim', opt = true}},
|
||||||
config = function()
|
config = function()
|
||||||
require('modules.gitgutter')
|
require('modules.gitgutter')
|
||||||
end
|
end
|
||||||
@ -118,12 +119,12 @@ return require('packer').startup(
|
|||||||
---------
|
---------
|
||||||
-- LSP --
|
-- LSP --
|
||||||
---------
|
---------
|
||||||
use { -- TODO: config + colors
|
use {
|
||||||
'neovim/nvim-lspconfig',
|
'neovim/nvim-lspconfig',
|
||||||
event = 'BufReadPre'
|
event = 'BufReadPre',
|
||||||
}
|
config = function()
|
||||||
use { -- TODO: lua, python, clang
|
require('modules.lsp')
|
||||||
'kabouzeid/nvim-lspinstall'
|
end
|
||||||
}
|
}
|
||||||
use {
|
use {
|
||||||
'hrsh7th/nvim-compe',
|
'hrsh7th/nvim-compe',
|
||||||
@ -146,17 +147,25 @@ return require('packer').startup(
|
|||||||
use {
|
use {
|
||||||
'nvim-telescope/telescope.nvim',
|
'nvim-telescope/telescope.nvim',
|
||||||
cmd = 'Telescope',
|
cmd = 'Telescope',
|
||||||
|
wants = {
|
||||||
|
'popup.nvim',
|
||||||
|
'plenary.nvim',
|
||||||
|
'telescope-symbols.nvim',
|
||||||
|
'telescope-project.nvim',
|
||||||
|
'telescope-fzf-native.nvim'
|
||||||
|
},
|
||||||
requires = {
|
requires = {
|
||||||
'nvim-lua/popup.nvim',
|
{'nvim-lua/popup.nvim', opt = true},
|
||||||
'nvim-lua/plenary.nvim',
|
{'nvim-lua/plenary.nvim', opt = true},
|
||||||
'nvim-telescope/telescope-symbols.nvim',
|
{'nvim-telescope/telescope-symbols.nvim', opt = true},
|
||||||
{'nvim-telescope/telescope-fzf-native.nvim', run = 'make'}
|
{'nvim-telescope/telescope-project.nvim', opt = true},
|
||||||
|
{'nvim-telescope/telescope-fzf-native.nvim', run = 'make', opt = true}
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
require('modules.telescope-nvim')
|
require('modules.telescope-nvim')
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
use { -- TODO: colors + config + custom telescope menu
|
use { -- TODO: colors + config
|
||||||
'pwntester/octo.nvim',
|
'pwntester/octo.nvim',
|
||||||
cmd = 'Octo',
|
cmd = 'Octo',
|
||||||
wants = 'telescope.nvim',
|
wants = 'telescope.nvim',
|
||||||
@ -167,9 +176,13 @@ return require('packer').startup(
|
|||||||
use { -- TODO: config + colors
|
use { -- TODO: config + colors
|
||||||
'TimUntersberger/neogit',
|
'TimUntersberger/neogit',
|
||||||
cmd = 'Neogit',
|
cmd = 'Neogit',
|
||||||
|
wants = {
|
||||||
|
'diffview.nvim',
|
||||||
|
'plenary.nvim'
|
||||||
|
},
|
||||||
requires = {
|
requires = {
|
||||||
-- 'sindrets/diffview.nvim',
|
{'nvim-lua/plenary.nvim', opt = true},
|
||||||
'nvim-lua/plenary.nvim'
|
{'sindrets/diffview.nvim', opt = true}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
use {
|
use {
|
||||||
@ -199,6 +212,14 @@ return require('packer').startup(
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
use {
|
||||||
|
'machakann/vim-sandwich',
|
||||||
|
event = 'BufRead'
|
||||||
|
}
|
||||||
|
use {
|
||||||
|
'junegunn/vim-easy-align',
|
||||||
|
keys = 'ga'
|
||||||
|
}
|
||||||
use {
|
use {
|
||||||
'terrortylor/nvim-comment',
|
'terrortylor/nvim-comment',
|
||||||
keys = 'gc',
|
keys = 'gc',
|
||||||
@ -208,7 +229,17 @@ return require('packer').startup(
|
|||||||
}
|
}
|
||||||
use {
|
use {
|
||||||
'windwp/nvim-ts-autotag',
|
'windwp/nvim-ts-autotag',
|
||||||
ft = {'html', 'xml', 'javascript', 'javascriptreact', 'typescript', 'typescriptreact', 'vue', 'svelte', 'php'},
|
ft = {
|
||||||
|
'html',
|
||||||
|
'xml',
|
||||||
|
'javascript',
|
||||||
|
'javascriptreact',
|
||||||
|
'typescript',
|
||||||
|
'typescriptreact',
|
||||||
|
'vue',
|
||||||
|
'svelte',
|
||||||
|
'php'
|
||||||
|
},
|
||||||
wants = 'nvim-treesitter',
|
wants = 'nvim-treesitter',
|
||||||
config = function()
|
config = function()
|
||||||
require('nvim-treesitter.configs').setup {
|
require('nvim-treesitter.configs').setup {
|
||||||
@ -218,6 +249,10 @@ return require('packer').startup(
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
use {
|
||||||
|
'ahmedkhalf/lsp-rooter.nvim',
|
||||||
|
after = 'nvim-lspconfig'
|
||||||
|
}
|
||||||
use {
|
use {
|
||||||
'iamcco/markdown-preview.nvim',
|
'iamcco/markdown-preview.nvim',
|
||||||
run = 'cd app && yarn install',
|
run = 'cd app && yarn install',
|
||||||
@ -238,10 +273,9 @@ return require('packer').startup(
|
|||||||
require('modules.terminal')
|
require('modules.terminal')
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Just for benchmarking
|
-- Just for benchmarking
|
||||||
use {'tweekmonster/startuptime.vim', cmd = 'StartupTime'}
|
use {'tweekmonster/startuptime.vim', cmd = 'StartupTime'}
|
||||||
|
|
||||||
-- TODO: trouble.nvim, lspsaga, orgmode.nvim, lspkind, TrueZen/zen-mode, nvim-lint, vim-spectre, nvim-dap, lsp-rooter, hop.nvim, dial.nvim
|
-- TODO: trouble.nvim, lspsaga, orgmode.nvim, lspkind, TrueZen/zen-mode, nvim-lint, vim-spectre, nvim-dap, hop.nvim, dial.nvim, asynctasks.nvim
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
23
home/.config/nvim/scripts/sumneko_lua.sh
Executable file
23
home/.config/nvim/scripts/sumneko_lua.sh
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
current_path="$PWD"
|
||||||
|
luals_path="$HOME/.local/share/nvim/lsp/lua-language-server"
|
||||||
|
|
||||||
|
# Clone / Update
|
||||||
|
if [ -d "$luals_path" ]; then
|
||||||
|
cd $luals_path
|
||||||
|
git pull --rebase
|
||||||
|
else
|
||||||
|
git clone https://github.com/sumneko/lua-language-server.git $luals_path
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd $luals_path
|
||||||
|
git submodule update --init --recursive
|
||||||
|
|
||||||
|
# Build
|
||||||
|
cd 3rd/luamake
|
||||||
|
./compile/install.sh
|
||||||
|
cd ../..
|
||||||
|
./3rd/luamake/luamake rebuild
|
||||||
|
|
||||||
|
cd $current_path
|
@ -1,22 +0,0 @@
|
|||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
# clone the repo
|
|
||||||
git clone https://github.com/sumneko/lua-language-server.git
|
|
||||||
cd lua-language-server
|
|
||||||
git submodule update --init --recursive
|
|
||||||
|
|
||||||
# build
|
|
||||||
# You need `ninja`
|
|
||||||
cd 3rd/luamake
|
|
||||||
ninja -f ninja/linux.ninja
|
|
||||||
cd ../..
|
|
||||||
./3rd/luamake/luamake rebuild
|
|
||||||
|
|
||||||
cd ../
|
|
||||||
|
|
||||||
# For coc.nvim
|
|
||||||
mkdir -pv ~/.local/share/nvim/lsp
|
|
||||||
cp -rf lua-language-server ~/.local/share/nvim/lsp/ && echo "copied 'lua-language-server' -> ~/.local/share/nvim/lsp/lua-language-server"
|
|
||||||
# For Doom Emacs
|
|
||||||
mkdir -pv ~/.config/emacs-config/doom/.local/etc/lsp
|
|
||||||
mv -fv lua-language-server ~/.config/emacs/.local/etc/lsp/
|
|
Loading…
x
Reference in New Issue
Block a user