aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Lingelbach <m.j.lbach@gmail.com>2021-01-03 01:53:45 -0800
committerMichael Lingelbach <m.j.lbach@gmail.com>2021-01-31 18:40:10 -0800
commit76831d5d0445a495d1f0bfdf21e3ed02b9937775 (patch)
treef7acc4c7bfd298d2a9fa050e5b798cee77b1c847
parent[docgen] Update CONFIG.md (diff)
downloadnvim-lspconfig-76831d5d0445a495d1f0bfdf21e3ed02b9937775.tar
nvim-lspconfig-76831d5d0445a495d1f0bfdf21e3ed02b9937775.tar.gz
nvim-lspconfig-76831d5d0445a495d1f0bfdf21e3ed02b9937775.tar.bz2
nvim-lspconfig-76831d5d0445a495d1f0bfdf21e3ed02b9937775.tar.lz
nvim-lspconfig-76831d5d0445a495d1f0bfdf21e3ed02b9937775.tar.xz
nvim-lspconfig-76831d5d0445a495d1f0bfdf21e3ed02b9937775.tar.zst
nvim-lspconfig-76831d5d0445a495d1f0bfdf21e3ed02b9937775.zip
Fix metatable __index for defining new language servers
-rw-r--r--README.md23
-rw-r--r--lua/lspconfig.lua2
2 files changed, 14 insertions, 11 deletions
diff --git a/README.md b/README.md
index 4d1210f0..c2873e86 100644
--- a/README.md
+++ b/README.md
@@ -102,16 +102,19 @@ To configure a custom/private server, just
```lua
local lspconfig = require'lspconfig'
local configs = require'lspconfig/configs'
-configs.foo_lsp = {
- default_config = {
- cmd = {'/home/ashkan/works/3rd/lua-language-server/run.sh'};
- filetypes = {'lua'};
- root_dir = function(fname)
- return lspconfig.util.find_git_ancestor(fname) or vim.loop.os_homedir()
- end;
- settings = {};
- };
-}
+-- Check if it's already defined for when reloading this file.
+if not lspconfig.foo_lsp then
+ configs.foo_lsp = {
+ default_config = {
+ cmd = {'/home/ashkan/works/3rd/lua-language-server/run.sh'};
+ filetypes = {'lua'};
+ root_dir = function(fname)
+ return lspconfig.util.find_git_ancestor(fname) or vim.loop.os_homedir()
+ end;
+ settings = {};
+ };
+ }
+end
lspconfig.foo_lsp.setup{}
```
diff --git a/lua/lspconfig.lua b/lua/lspconfig.lua
index f768a3d8..77f47e63 100644
--- a/lua/lspconfig.lua
+++ b/lua/lspconfig.lua
@@ -34,7 +34,7 @@ end
local mt = {}
function mt:__index(k)
if configs[k] == nil then
- require('lspconfig/'..k)
+ pcall(require, 'lspconfig/'..k)
end
return configs[k]
end