feat: use nvim-lsp-setup to configure language servers
This commit is contained in:
parent
ae4c29d906
commit
5f032adc7a
5 changed files with 158 additions and 248 deletions
|
@ -23,7 +23,7 @@ vim.cmd([[packadd packer.nvim]])
|
|||
-- initialize plugins
|
||||
return require('packer').startup(function(use)
|
||||
-- let packer manage itself
|
||||
use({'wbthomason/packer.nvim', opt = true})
|
||||
use({ 'wbthomason/packer.nvim', opt = true })
|
||||
|
||||
-- theme
|
||||
use("ishan9299/nvim-solarized-lua")
|
||||
|
@ -42,25 +42,25 @@ return require('packer').startup(function(use)
|
|||
use {
|
||||
'kdheepak/tabline.nvim',
|
||||
config = function()
|
||||
require'tabline'.setup {
|
||||
require 'tabline'.setup {
|
||||
enable = true,
|
||||
options = {show_bufnr = true, show_filename_only = true}
|
||||
options = { show_bufnr = true, show_filename_only = true }
|
||||
}
|
||||
end,
|
||||
requires = {
|
||||
{'hoob3rt/lualine.nvim'},
|
||||
{'kyazdani42/nvim-web-devicons', opt = true}
|
||||
{ 'hoob3rt/lualine.nvim' },
|
||||
{ 'kyazdani42/nvim-web-devicons', opt = true }
|
||||
}
|
||||
}
|
||||
|
||||
-- status line
|
||||
use {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
requires = {'kyazdani42/nvim-web-devicons', opt = true},
|
||||
requires = { 'kyazdani42/nvim-web-devicons', opt = true },
|
||||
config = function()
|
||||
require('lualine').setup({
|
||||
options = {globalstatus = true},
|
||||
extensions = {"toggleterm"}
|
||||
options = { globalstatus = true },
|
||||
extensions = { "toggleterm" }
|
||||
})
|
||||
end
|
||||
}
|
||||
|
@ -71,8 +71,8 @@ return require('packer').startup(function(use)
|
|||
config = function()
|
||||
require("indent_blankline").setup {
|
||||
char = "┊",
|
||||
buftype_exclude = {"terminal", "help", "nofile"},
|
||||
filetype_exclude = {'help', 'packer'},
|
||||
buftype_exclude = { "terminal", "help", "nofile" },
|
||||
filetype_exclude = { 'help', 'packer' },
|
||||
show_trailing_blankline_indent = false
|
||||
}
|
||||
end
|
||||
|
@ -82,7 +82,7 @@ return require('packer').startup(function(use)
|
|||
use('tpope/vim-fugitive')
|
||||
use({
|
||||
'lewis6991/gitsigns.nvim',
|
||||
requires = {'nvim-lua/plenary.nvim'},
|
||||
requires = { 'nvim-lua/plenary.nvim' },
|
||||
config = function() require('gitsigns').setup() end
|
||||
})
|
||||
use("junegunn/gv.vim")
|
||||
|
@ -90,7 +90,7 @@ return require('packer').startup(function(use)
|
|||
-- autocompletion
|
||||
use({
|
||||
"L3MON4D3/LuaSnip",
|
||||
requires = {"rafamadriz/friendly-snippets"},
|
||||
requires = { "rafamadriz/friendly-snippets" },
|
||||
config = function()
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
end
|
||||
|
@ -104,81 +104,24 @@ return require('packer').startup(function(use)
|
|||
"davidsierradz/cmp-conventionalcommits", "hrsh7th/cmp-nvim-lua",
|
||||
"hrsh7th/cmp-calc"
|
||||
},
|
||||
config = function()
|
||||
local has_words_before = function()
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and
|
||||
vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(
|
||||
col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
local cmp = require('cmp')
|
||||
local luasnip = require("luasnip")
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end
|
||||
},
|
||||
sources = require("cmp").config.sources({
|
||||
{name = "nvim_lsp"}, {name = "luasnip"}, {name = "path"},
|
||||
{name = "buffer"}, {name = "git"},
|
||||
{name = 'nvim_lsp_signature_help'},
|
||||
{name = "conventionalcommits"}, {name = "nvim-lua"},
|
||||
{name = "calc"}
|
||||
}),
|
||||
mapping = {
|
||||
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(),
|
||||
{'i', 'c'}),
|
||||
['<CR>'] = cmp.mapping.confirm({select = true}),
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, {"i", "s"}),
|
||||
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, {"i", "s"})
|
||||
},
|
||||
experimental = {ghost_text = true}
|
||||
})
|
||||
|
||||
-- `/` cmdline setup.
|
||||
cmp.setup.cmdline('/', {sources = {{name = 'buffer'}}})
|
||||
|
||||
-- `:` cmdline setup.
|
||||
cmp.setup.cmdline(':', {
|
||||
sources = cmp.config
|
||||
.sources({{name = 'path'}}, {{name = 'cmdline'}})
|
||||
})
|
||||
|
||||
end
|
||||
config = function() require('plugins.nvim-cmp') end,
|
||||
})
|
||||
|
||||
-- highlight current symbol
|
||||
use({"RRethy/vim-illuminate"})
|
||||
|
||||
-- language server
|
||||
use({
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function() require("plugins.lspconfig") end
|
||||
})
|
||||
use {
|
||||
'junnplus/nvim-lsp-setup',
|
||||
requires = {
|
||||
'neovim/nvim-lspconfig',
|
||||
'williamboman/nvim-lsp-installer',
|
||||
|
||||
use('williamboman/nvim-lsp-installer')
|
||||
-- additional rust tools
|
||||
"simrat39/rust-tools.nvim",
|
||||
|
||||
-- highlight current symbol
|
||||
"RRethy/vim-illuminate",
|
||||
},
|
||||
config = function() require('plugins.nvim-lsp-setup') end,
|
||||
}
|
||||
|
||||
-- treesitter
|
||||
use({
|
||||
|
@ -190,33 +133,30 @@ return require('packer').startup(function(use)
|
|||
-- Telescope
|
||||
use({
|
||||
'nvim-telescope/telescope.nvim',
|
||||
requires = {{'nvim-lua/plenary.nvim'}},
|
||||
requires = { { 'nvim-lua/plenary.nvim' } },
|
||||
config = function() require('plugins.telescope') end
|
||||
})
|
||||
use({'nvim-telescope/telescope-fzf-native.nvim', run = 'make'})
|
||||
use({ 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' })
|
||||
|
||||
-- automatic pairs
|
||||
use({"Raimondi/delimitMate"})
|
||||
|
||||
-- rust tools
|
||||
use({"simrat39/rust-tools.nvim", requires = {{"neovim/nvim-lspconfig"}}})
|
||||
use({ "Raimondi/delimitMate" })
|
||||
|
||||
-- markdown preview
|
||||
use({'iamcco/markdown-preview.nvim'})
|
||||
use({ 'iamcco/markdown-preview.nvim' })
|
||||
|
||||
-- terminal
|
||||
use({
|
||||
"akinsho/nvim-toggleterm.lua",
|
||||
config = function()
|
||||
require("toggleterm").setup({size = 32, open_mapping = [[<F4>]]})
|
||||
require("toggleterm").setup({ size = 32, open_mapping = [[<F4>]] })
|
||||
end
|
||||
})
|
||||
|
||||
-- buffer closing
|
||||
use({"sar/bbye.nvim"})
|
||||
use({ "sar/bbye.nvim" })
|
||||
|
||||
-- ansible filetype
|
||||
use({"pearofducks/ansible-vim"})
|
||||
use({ "pearofducks/ansible-vim" })
|
||||
|
||||
if packer_bootstrap then require('packer').sync() end
|
||||
end)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue