aboutsummaryrefslogtreecommitdiffstats
path: root/lua/lspconfig/lean3ls.lua
diff options
context:
space:
mode:
authorRishikesh Vaishnav <rishhvaishnav@gmail.com>2021-09-05 16:17:32 +0100
committerGitHub <noreply@github.com>2021-09-05 08:17:32 -0700
commit27fad8519f2d54a120192675bf292c4f87036537 (patch)
tree55214a271f404dee8c9da572eb5954d41d107b7e /lua/lspconfig/lean3ls.lua
parentfix(bashls): add .git to root_dir (#1218) (diff)
downloadnvim-lspconfig-27fad8519f2d54a120192675bf292c4f87036537.tar
nvim-lspconfig-27fad8519f2d54a120192675bf292c4f87036537.tar.gz
nvim-lspconfig-27fad8519f2d54a120192675bf292c4f87036537.tar.bz2
nvim-lspconfig-27fad8519f2d54a120192675bf292c4f87036537.tar.lz
nvim-lspconfig-27fad8519f2d54a120192675bf292c4f87036537.tar.xz
nvim-lspconfig-27fad8519f2d54a120192675bf292c4f87036537.tar.zst
nvim-lspconfig-27fad8519f2d54a120192675bf292c4f87036537.zip
feat(leanls,lean3ls): add support for Lean 3/4 standard libraries (#1156)
Diffstat (limited to 'lua/lspconfig/lean3ls.lua')
-rw-r--r--lua/lspconfig/lean3ls.lua18
1 files changed, 14 insertions, 4 deletions
diff --git a/lua/lspconfig/lean3ls.lua b/lua/lspconfig/lean3ls.lua
index 82ef7c2d..0ac7cf54 100644
--- a/lua/lspconfig/lean3ls.lua
+++ b/lua/lspconfig/lean3ls.lua
@@ -6,12 +6,22 @@ configs.lean3ls = {
cmd = { 'lean-language-server', '--stdio', '--', '-M', '4096', '-T', '100000' },
filetypes = { 'lean3' },
root_dir = function(fname)
- return util.root_pattern 'leanpkg.toml'(fname) or util.find_git_ancestor(fname) or util.path.dirname(fname)
+ -- check if inside elan stdlib
+ local stdlib_dir
+ do
+ local _, endpos = fname:find(util.path.sep .. util.path.join('lean', 'library'))
+ if endpos then
+ stdlib_dir = fname:sub(1, endpos)
+ end
+ end
+
+ return util.root_pattern 'leanpkg.toml'(fname)
+ or util.root_pattern 'leanpkg.path'(fname)
+ or stdlib_dir
+ or util.find_git_ancestor(fname)
+ or util.path.dirname(fname)
end,
on_new_config = function(config, root)
- if not util.path.is_file(root .. '/leanpkg.toml') then
- return
- end
if not config.cmd_cwd then
config.cmd_cwd = root
end