From d9a4a1e4b070480735b0693b5d0fb6a41e6416d6 Mon Sep 17 00:00:00 2001 From: Aleksa Vučković Date: Sat, 8 Jan 2022 10:53:43 +0100 Subject: autopairs --- lua/user/autopairs.lua | 33 +++++++++++++++++++++++++++++++++ lua/user/cmp.lua | 6 +++--- lua/user/lsp/lsp-installer.lua | 5 +++++ lua/user/lsp/settings/bashls.lua | 1 + lua/user/lsp/settings/sumneko_lua.lua | 16 ++++++++++++++++ lua/user/lsp/settings/texlab.lua | 1 + lua/user/plugins.lua | 1 + 7 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 lua/user/autopairs.lua create mode 100644 lua/user/lsp/settings/sumneko_lua.lua (limited to 'lua/user') diff --git a/lua/user/autopairs.lua b/lua/user/autopairs.lua new file mode 100644 index 0000000..4a3b9a7 --- /dev/null +++ b/lua/user/autopairs.lua @@ -0,0 +1,33 @@ +-- Setup nvim-cmp. +local status_ok, npairs = pcall(require, "nvim-autopairs") +if not status_ok then + return +end + +npairs.setup { + check_ts = true, + ts_config = { + lua = { "string", "source" }, + javascript = { "string", "template_string" }, + java = false, + }, + disable_filetype = { "TelescopePrompt", "spectre_panel" }, + fast_wrap = { + map = "", + chars = { "{", "[", "(", '"', "'" }, + pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""), + offset = 0, -- Offset from pattern match + end_key = "$", + keys = "qwertyuiopzxcvbnmasdfghjkl", + check_comma = true, + highlight = "PmenuSel", + highlight_grey = "LineNr", + }, +} + +local cmp_autopairs = require "nvim-autopairs.completion.cmp" +local cmp_status_ok, cmp = pcall(require, "cmp") +if not cmp_status_ok then + return +end +cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done { map_char = { tex = "" } }) diff --git a/lua/user/cmp.lua b/lua/user/cmp.lua index 5a005e8..e1f3101 100644 --- a/lua/user/cmp.lua +++ b/lua/user/cmp.lua @@ -114,17 +114,17 @@ cmp.setup { { name = "luasnip" }, { name = "buffer" }, { name = "path" }, - { name = "nvim-lua" }, + { name = "nvim_lua" }, }, confirm_opts = { behavior = cmp.ConfirmBehavior.Replace, select = false, }, documentation = { - border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" }, + -- border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" }, }, experimental = { - ghost_text = false, + ghost_text = true, native_menu = false, }, } diff --git a/lua/user/lsp/lsp-installer.lua b/lua/user/lsp/lsp-installer.lua index 18490ce..4948d07 100644 --- a/lua/user/lsp/lsp-installer.lua +++ b/lua/user/lsp/lsp-installer.lua @@ -21,6 +21,11 @@ lsp_installer.on_server_ready(function(server) opts = vim.tbl_deep_extend("force", texlab_opts, opts) end + if server.name == "sumneko_lua" then + local sumneko_opts = require("user.lsp.settings.sumneko_lua") + opts = vim.tbl_deep_extend("force", sumneko_opts, opts) + end + -- This setup() function is exactly the same as lspconfig's setup function. -- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md diff --git a/lua/user/lsp/settings/bashls.lua b/lua/user/lsp/settings/bashls.lua index e69de29..a564707 100644 --- a/lua/user/lsp/settings/bashls.lua +++ b/lua/user/lsp/settings/bashls.lua @@ -0,0 +1 @@ +return {} diff --git a/lua/user/lsp/settings/sumneko_lua.lua b/lua/user/lsp/settings/sumneko_lua.lua new file mode 100644 index 0000000..0ac454a --- /dev/null +++ b/lua/user/lsp/settings/sumneko_lua.lua @@ -0,0 +1,16 @@ +return { + settings = { + + Lua = { + diagnostics = { + globals = { "vim" }, + }, + workspace = { + library = { + [vim.fn.expand("$VIMRUNTIME/lua")] = true, + [vim.fn.stdpath("config") .. "/lua"] = true, + }, + }, + }, + }, +} diff --git a/lua/user/lsp/settings/texlab.lua b/lua/user/lsp/settings/texlab.lua index e69de29..a564707 100644 --- a/lua/user/lsp/settings/texlab.lua +++ b/lua/user/lsp/settings/texlab.lua @@ -0,0 +1 @@ +return {} diff --git a/lua/user/plugins.lua b/lua/user/plugins.lua index d1e7c69..401de7f 100644 --- a/lua/user/plugins.lua +++ b/lua/user/plugins.lua @@ -47,6 +47,7 @@ return packer.startup(function(use) use "williamboman/nvim-lsp-installer" -- Other + use "windwp/nvim-autopairs" use "kyazdani42/nvim-web-devicons" use "kyazdani42/nvim-tree.lua" use "akinsho/bufferline.nvim" -- cgit v1.2.3