diff options
| author | dundargoc <gocdundar@gmail.com> | 2024-12-13 14:53:08 +0100 |
|---|---|---|
| committer | dundargoc <33953936+dundargoc@users.noreply.github.com> | 2024-12-14 17:24:12 +0100 |
| commit | 12d163c5c2b05e85431f2deef5d9d59a8fd8dfc2 (patch) | |
| tree | 0bfbfbd378ba61cde77f9132b6d0c3570805eb88 | |
| parent | docs: how to get package.json parent dir #3506 (diff) | |
| download | nvim-lspconfig-12d163c5c2b05e85431f2deef5d9d59a8fd8dfc2.tar nvim-lspconfig-12d163c5c2b05e85431f2deef5d9d59a8fd8dfc2.tar.gz nvim-lspconfig-12d163c5c2b05e85431f2deef5d9d59a8fd8dfc2.tar.bz2 nvim-lspconfig-12d163c5c2b05e85431f2deef5d9d59a8fd8dfc2.tar.lz nvim-lspconfig-12d163c5c2b05e85431f2deef5d9d59a8fd8dfc2.tar.xz nvim-lspconfig-12d163c5c2b05e85431f2deef5d9d59a8fd8dfc2.tar.zst nvim-lspconfig-12d163c5c2b05e85431f2deef5d9d59a8fd8dfc2.zip | |
refactor: deprecate util.find_git_ancestor
Work on https://github.com/neovim/nvim-lspconfig/issues/2079.
156 files changed, 412 insertions, 376 deletions
diff --git a/.github/ci/run_sanitizer.sh b/.github/ci/run_sanitizer.sh index 9f6fd358..bba06162 100644 --- a/.github/ci/run_sanitizer.sh +++ b/.github/ci/run_sanitizer.sh @@ -15,7 +15,7 @@ if git diff --pickaxe-all -U0 -G "${SEARCH_PATTERN}" "${REF_BRANCH}" "${PR_BRANC exit 1 fi -SEARCH_PATTERN='(util\.path\.dirname|util\.path\.sanitize|util\.path\.exists|util\.path\.is_file|util\.path\.is_dir|util\.find_mercurial_ancestor|util\.find_node_modules_ancestor|util\.find_package_json_ancestor)' +SEARCH_PATTERN='(util\.path\.dirname|util\.path\.sanitize|util\.path\.exists|util\.path\.is_file|util\.path\.is_dir|util\.find_mercurial_ancestor|util\.find_node_modules_ancestor|util\.find_package_json_ancestor|util\.find_git_ancestor)' if git diff --pickaxe-all -U0 -G "${SEARCH_PATTERN}" "${REF_BRANCH}" "${PR_BRANCH}" -- '*.lua' | grep -Ev '\.lua$' | grep -E "^\+.*${SEARCH_PATTERN}" ; then echo diff --git a/doc/lspconfig.txt b/doc/lspconfig.txt index e8e9ecec..971f11e1 100644 --- a/doc/lspconfig.txt +++ b/doc/lspconfig.txt @@ -294,9 +294,17 @@ below returns a function that takes as its argument the current buffer path. filesystem. Parent directories are traversed once per pattern, in the order the patterns are specified. > root_dir = util.root_pattern('pyproject.toml', 'requirements.txt') -- `util.find_git_ancestor`: a function that locates the first parent directory - containing a `.git` directory. > - root_dir = util.find_git_ancestor + +- Locate the first parent dir containing a ".git" file or directory: >lua + vim.fs.dirname(vim.fs.find('.git', { path = root_dir, upward = true })[1]) +< + If you have Nvim 0.10 or newer then >lua + vim.fs.root(root_dir, ".git") +< + can be used instead. + - Note: The old `util.find_git_ancestor` API is deprecated and will + be removed. +< - Locate the first parent dir containing a "node_modules" dir: >lua vim.fs.dirname(vim.fs.find('node_modules', { path = root_dir, upward = true })[1]) < diff --git a/lua/lspconfig/configs/anakin_language_server.lua b/lua/lspconfig/configs/anakin_language_server.lua index f0c281cc..6e071df9 100644 --- a/lua/lspconfig/configs/anakin_language_server.lua +++ b/lua/lspconfig/configs/anakin_language_server.lua @@ -12,7 +12,8 @@ return { 'requirements.txt', 'Pipfile', } - return util.root_pattern(unpack(root_files))(fname) or util.find_git_ancestor(fname) + return util.root_pattern(unpack(root_files))(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, settings = { diff --git a/lua/lspconfig/configs/asm_lsp.lua b/lua/lspconfig/configs/asm_lsp.lua index 102bcbab..0ccfec03 100644 --- a/lua/lspconfig/configs/asm_lsp.lua +++ b/lua/lspconfig/configs/asm_lsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'asm-lsp' }, filetypes = { 'asm', 'vmasm' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/bashls.lua b/lua/lspconfig/configs/bashls.lua index 30113863..662d0f05 100644 --- a/lua/lspconfig/configs/bashls.lua +++ b/lua/lspconfig/configs/bashls.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'bash-language-server', 'start' }, @@ -16,7 +14,9 @@ return { }, }, filetypes = { 'bash', 'sh' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/beancount.lua b/lua/lspconfig/configs/beancount.lua index e020c025..26d41ccd 100644 --- a/lua/lspconfig/configs/beancount.lua +++ b/lua/lspconfig/configs/beancount.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'beancount-language-server', '--stdio' }, filetypes = { 'beancount', 'bean' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, init_options = {}, }, diff --git a/lua/lspconfig/configs/bicep.lua b/lua/lspconfig/configs/bicep.lua index adcd144b..3bb5e95a 100644 --- a/lua/lspconfig/configs/bicep.lua +++ b/lua/lspconfig/configs/bicep.lua @@ -1,9 +1,9 @@ -local util = require 'lspconfig.util' - return { default_config = { filetypes = { 'bicep' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, init_options = {}, }, docs = { diff --git a/lua/lspconfig/configs/bitbake_language_server.lua b/lua/lspconfig/configs/bitbake_language_server.lua index 726fa85d..b987b233 100644 --- a/lua/lspconfig/configs/bitbake_language_server.lua +++ b/lua/lspconfig/configs/bitbake_language_server.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'bitbake-language-server' }, filetypes = { 'bitbake' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/bitbake_ls.lua b/lua/lspconfig/configs/bitbake_ls.lua index 87d343e5..a66dbd78 100644 --- a/lua/lspconfig/configs/bitbake_ls.lua +++ b/lua/lspconfig/configs/bitbake_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'language-server-bitbake', '--stdio' }, filetypes = { 'bitbake' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = false, }, docs = { diff --git a/lua/lspconfig/configs/blueprint_ls.lua b/lua/lspconfig/configs/blueprint_ls.lua index 32a7693c..d71ab520 100644 --- a/lua/lspconfig/configs/blueprint_ls.lua +++ b/lua/lspconfig/configs/blueprint_ls.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'blueprint-compiler', 'lsp' }, @@ -11,7 +9,9 @@ return { GLOB_PATTERN = vim.env.GLOB_PATTERN or '*@(.blp)', }, filetypes = { 'blueprint' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/bqnlsp.lua b/lua/lspconfig/configs/bqnlsp.lua index 20135b9b..17204492 100644 --- a/lua/lspconfig/configs/bqnlsp.lua +++ b/lua/lspconfig/configs/bqnlsp.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - -- set os dependent library path local function library_path(path, cmd_env) path = path or '/usr/local/lib' @@ -16,7 +14,9 @@ return { default_config = { cmd = { 'bqnlsp' }, filetypes = { 'bqn' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, libcbqnPath = nil, on_new_config = function(new_config, _) diff --git a/lua/lspconfig/configs/bsl_ls.lua b/lua/lspconfig/configs/bsl_ls.lua index b190d5c4..baeabe2b 100644 --- a/lua/lspconfig/configs/bsl_ls.lua +++ b/lua/lspconfig/configs/bsl_ls.lua @@ -1,9 +1,9 @@ -local util = require 'lspconfig.util' - return { default_config = { filetypes = { 'bsl', 'os' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/buddy_ls.lua b/lua/lspconfig/configs/buddy_ls.lua index 7343dd32..909cf9d1 100644 --- a/lua/lspconfig/configs/buddy_ls.lua +++ b/lua/lspconfig/configs/buddy_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'buddy-lsp-server' }, filetypes = { 'mlir' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/ccls.lua b/lua/lspconfig/configs/ccls.lua index 6f398abe..43bc8b12 100644 --- a/lua/lspconfig/configs/ccls.lua +++ b/lua/lspconfig/configs/ccls.lua @@ -5,7 +5,8 @@ return { cmd = { 'ccls' }, filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda' }, root_dir = function(fname) - return util.root_pattern('compile_commands.json', '.ccls')(fname) or util.find_git_ancestor(fname) + return util.root_pattern('compile_commands.json', '.ccls')(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, offset_encoding = 'utf-32', -- ccls does not support sending a null root directory diff --git a/lua/lspconfig/configs/circom-lsp.lua b/lua/lspconfig/configs/circom-lsp.lua index dda5408d..3c814b22 100644 --- a/lua/lspconfig/configs/circom-lsp.lua +++ b/lua/lspconfig/configs/circom-lsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig/util' - return { default_config = { cmd = { 'circom-lsp' }, filetypes = { 'circom' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/clangd.lua b/lua/lspconfig/configs/clangd.lua index cb6c5e3f..20acc127 100644 --- a/lua/lspconfig/configs/clangd.lua +++ b/lua/lspconfig/configs/clangd.lua @@ -59,7 +59,7 @@ return { 'compile_commands.json', 'compile_flags.txt', 'configure.ac' -- AutoTools - )(fname) or util.find_git_ancestor(fname) + )(fname) or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, capabilities = { diff --git a/lua/lspconfig/configs/cobol_ls.lua b/lua/lspconfig/configs/cobol_ls.lua index e715e00e..71d03180 100644 --- a/lua/lspconfig/configs/cobol_ls.lua +++ b/lua/lspconfig/configs/cobol_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'cobol-language-support' }, filetypes = { 'cobol' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/coq_lsp.lua b/lua/lspconfig/configs/coq_lsp.lua index aa492d4a..516d6c6e 100644 --- a/lua/lspconfig/configs/coq_lsp.lua +++ b/lua/lspconfig/configs/coq_lsp.lua @@ -5,7 +5,8 @@ return { cmd = { 'coq-lsp' }, filetypes = { 'coq' }, root_dir = function(fname) - return util.root_pattern '_CoqProject'(fname) or util.find_git_ancestor(fname) + return util.root_pattern '_CoqProject'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/crystalline.lua b/lua/lspconfig/configs/crystalline.lua index b0178d0c..9cf4841e 100644 --- a/lua/lspconfig/configs/crystalline.lua +++ b/lua/lspconfig/configs/crystalline.lua @@ -4,7 +4,9 @@ return { default_config = { cmd = { 'crystalline' }, filetypes = { 'crystal' }, - root_dir = util.root_pattern 'shard.yml' or util.find_git_ancestor, + root_dir = function(fname) + return util.root_pattern 'shard.yml' or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/cucumber_language_server.lua b/lua/lspconfig/configs/cucumber_language_server.lua index c2d6623c..8d47e06f 100644 --- a/lua/lspconfig/configs/cucumber_language_server.lua +++ b/lua/lspconfig/configs/cucumber_language_server.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'cucumber-language-server', '--stdio' }, filetypes = { 'cucumber' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/cypher_ls.lua b/lua/lspconfig/configs/cypher_ls.lua index 7c0cf2cf..3430c6b5 100644 --- a/lua/lspconfig/configs/cypher_ls.lua +++ b/lua/lspconfig/configs/cypher_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'cypher-language-server', '--stdio' }, filetypes = { 'cypher' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/dafny.lua b/lua/lspconfig/configs/dafny.lua index be5e72b3..b8d701f9 100644 --- a/lua/lspconfig/configs/dafny.lua +++ b/lua/lspconfig/configs/dafny.lua @@ -1,11 +1,9 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'dafny', 'server' }, filetypes = { 'dfy', 'dafny' }, root_dir = function(fname) - util.find_git_ancestor(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/dhall_lsp_server.lua b/lua/lspconfig/configs/dhall_lsp_server.lua index e090c66f..cd80c358 100644 --- a/lua/lspconfig/configs/dhall_lsp_server.lua +++ b/lua/lspconfig/configs/dhall_lsp_server.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'dhall-lsp-server' }, filetypes = { 'dhall' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/diagnosticls.lua b/lua/lspconfig/configs/diagnosticls.lua index 1ab5fb0d..9c96d420 100644 --- a/lua/lspconfig/configs/diagnosticls.lua +++ b/lua/lspconfig/configs/diagnosticls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { -- Configuration from https://github.com/iamcco/diagnostic-languageserver#config--document default_config = { cmd = { 'diagnostic-languageserver', '--stdio' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, -- Empty by default, override to add filetypes. filetypes = {}, diff --git a/lua/lspconfig/configs/digestif.lua b/lua/lspconfig/configs/digestif.lua index f89ba63d..911a7c8d 100644 --- a/lua/lspconfig/configs/digestif.lua +++ b/lua/lspconfig/configs/digestif.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'digestif' }, filetypes = { 'tex', 'plaintex', 'context' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/djlsp.lua b/lua/lspconfig/configs/djlsp.lua index 181cb030..a83886d1 100644 --- a/lua/lspconfig/configs/djlsp.lua +++ b/lua/lspconfig/configs/djlsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'djlsp' }, filetypes = { 'html', 'htmldjango' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, settings = {}, }, docs = { diff --git a/lua/lspconfig/configs/dolmenls.lua b/lua/lspconfig/configs/dolmenls.lua index 1f0657e1..515ab377 100644 --- a/lua/lspconfig/configs/dolmenls.lua +++ b/lua/lspconfig/configs/dolmenls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'dolmenls' }, filetypes = { 'smt2', 'tptp', 'p', 'cnf', 'icnf', 'zf' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/dotls.lua b/lua/lspconfig/configs/dotls.lua index 479f4306..c0f04400 100644 --- a/lua/lspconfig/configs/dotls.lua +++ b/lua/lspconfig/configs/dotls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'dot-language-server', '--stdio' }, filetypes = { 'dot' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/drools_lsp.lua b/lua/lspconfig/configs/drools_lsp.lua index d5dd3cc0..77d9d58b 100644 --- a/lua/lspconfig/configs/drools_lsp.lua +++ b/lua/lspconfig/configs/drools_lsp.lua @@ -37,7 +37,9 @@ end return { default_config = { filetypes = { 'drools' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, on_new_config = function(new_config) new_config.cmd = get_cmd(new_config) diff --git a/lua/lspconfig/configs/ds_pinyin_lsp.lua b/lua/lspconfig/configs/ds_pinyin_lsp.lua index bc1d7ac8..b81074c1 100644 --- a/lua/lspconfig/configs/ds_pinyin_lsp.lua +++ b/lua/lspconfig/configs/ds_pinyin_lsp.lua @@ -33,7 +33,9 @@ return { default_config = { cmd = { bin_name }, filetypes = { 'markdown', 'org' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, init_options = { completion_on = true, diff --git a/lua/lspconfig/configs/efm.lua b/lua/lspconfig/configs/efm.lua index ff949aba..b2c49de8 100644 --- a/lua/lspconfig/configs/efm.lua +++ b/lua/lspconfig/configs/efm.lua @@ -1,9 +1,9 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'efm-langserver' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/emmet_language_server.lua b/lua/lspconfig/configs/emmet_language_server.lua index cace857f..e5e91b06 100644 --- a/lua/lspconfig/configs/emmet_language_server.lua +++ b/lua/lspconfig/configs/emmet_language_server.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'emmet-language-server', '--stdio' }, @@ -16,7 +14,9 @@ return { 'typescriptreact', 'htmlangular', }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/emmet_ls.lua b/lua/lspconfig/configs/emmet_ls.lua index 48a692a0..2a886d30 100644 --- a/lua/lspconfig/configs/emmet_ls.lua +++ b/lua/lspconfig/configs/emmet_ls.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'emmet-ls', '--stdio' }, @@ -19,7 +17,9 @@ return { 'vue', 'htmlangular', }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/erg_language_server.lua b/lua/lspconfig/configs/erg_language_server.lua index 071c5f06..c24d7d01 100644 --- a/lua/lspconfig/configs/erg_language_server.lua +++ b/lua/lspconfig/configs/erg_language_server.lua @@ -5,7 +5,8 @@ return { cmd = { 'erg', '--language-server' }, filetypes = { 'erg' }, root_dir = function(fname) - return util.root_pattern 'package.er'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'package.er'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/esbonio.lua b/lua/lspconfig/configs/esbonio.lua index ff13473f..86becdc3 100644 --- a/lua/lspconfig/configs/esbonio.lua +++ b/lua/lspconfig/configs/esbonio.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'python3', '-m', 'esbonio' }, filetypes = { 'rst' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/facility_language_server.lua b/lua/lspconfig/configs/facility_language_server.lua index c37069d2..eed12fd2 100644 --- a/lua/lspconfig/configs/facility_language_server.lua +++ b/lua/lspconfig/configs/facility_language_server.lua @@ -1,11 +1,11 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'facility-language-server' }, filetypes = { 'fsd' }, single_file_support = true, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/fennel_language_server.lua b/lua/lspconfig/configs/fennel_language_server.lua index 919b544b..269e9f27 100644 --- a/lua/lspconfig/configs/fennel_language_server.lua +++ b/lua/lspconfig/configs/fennel_language_server.lua @@ -1,11 +1,11 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'fennel-language-server' }, filetypes = { 'fennel' }, single_file_support = true, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, settings = {}, }, docs = { diff --git a/lua/lspconfig/configs/fish_lsp.lua b/lua/lspconfig/configs/fish_lsp.lua index 595f6680..8339163e 100644 --- a/lua/lspconfig/configs/fish_lsp.lua +++ b/lua/lspconfig/configs/fish_lsp.lua @@ -1,11 +1,11 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'fish-lsp', 'start' }, cmd_env = { fish_lsp_show_client_popups = false }, filetypes = { 'fish' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/flux_lsp.lua b/lua/lspconfig/configs/flux_lsp.lua index 2711651c..5dc5336a 100644 --- a/lua/lspconfig/configs/flux_lsp.lua +++ b/lua/lspconfig/configs/flux_lsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'flux-lsp' }, filetypes = { 'flux' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/fortls.lua b/lua/lspconfig/configs/fortls.lua index 13a22fbf..9232afc7 100644 --- a/lua/lspconfig/configs/fortls.lua +++ b/lua/lspconfig/configs/fortls.lua @@ -11,7 +11,8 @@ return { }, filetypes = { 'fortran' }, root_dir = function(fname) - return util.root_pattern '.fortls'(fname) or util.find_git_ancestor(fname) + return util.root_pattern '.fortls'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, settings = {}, }, diff --git a/lua/lspconfig/configs/fstar.lua b/lua/lspconfig/configs/fstar.lua index 80e092da..f399c61c 100644 --- a/lua/lspconfig/configs/fstar.lua +++ b/lua/lspconfig/configs/fstar.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'fstar.exe', '--lsp' }, filetypes = { 'fstar' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/futhark_lsp.lua b/lua/lspconfig/configs/futhark_lsp.lua index 2521cc1b..7c6c4805 100644 --- a/lua/lspconfig/configs/futhark_lsp.lua +++ b/lua/lspconfig/configs/futhark_lsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'futhark', 'lsp' }, filetypes = { 'futhark', 'fut' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/ghdl_ls.lua b/lua/lspconfig/configs/ghdl_ls.lua index 0f9e1186..e8974439 100644 --- a/lua/lspconfig/configs/ghdl_ls.lua +++ b/lua/lspconfig/configs/ghdl_ls.lua @@ -5,7 +5,8 @@ return { cmd = { 'ghdl-ls' }, filetypes = { 'vhdl' }, root_dir = function(fname) - return util.root_pattern 'hdl-prj.json'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'hdl-prj.json'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/ginko_ls.lua b/lua/lspconfig/configs/ginko_ls.lua index 61f9de60..f3627697 100644 --- a/lua/lspconfig/configs/ginko_ls.lua +++ b/lua/lspconfig/configs/ginko_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'ginko_ls' }, filetypes = { 'dts' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, settings = {}, }, docs = { diff --git a/lua/lspconfig/configs/glasgow.lua b/lua/lspconfig/configs/glasgow.lua index 2d86fccc..2f8d616b 100644 --- a/lua/lspconfig/configs/glasgow.lua +++ b/lua/lspconfig/configs/glasgow.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'glasgow' }, filetypes = { 'wgsl' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, settings = {}, }, diff --git a/lua/lspconfig/configs/glsl_analyzer.lua b/lua/lspconfig/configs/glsl_analyzer.lua index 74ffbba9..9155637d 100644 --- a/lua/lspconfig/configs/glsl_analyzer.lua +++ b/lua/lspconfig/configs/glsl_analyzer.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'glsl_analyzer' }, filetypes = { 'glsl', 'vert', 'tesc', 'tese', 'frag', 'geom', 'comp' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, capabilities = {}, }, diff --git a/lua/lspconfig/configs/glslls.lua b/lua/lspconfig/configs/glslls.lua index 7d1c3634..e8cfdeae 100644 --- a/lua/lspconfig/configs/glslls.lua +++ b/lua/lspconfig/configs/glslls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'glslls', '--stdin' }, filetypes = { 'glsl', 'vert', 'tesc', 'tese', 'frag', 'geom', 'comp' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, capabilities = { textDocument = { diff --git a/lua/lspconfig/configs/grammarly.lua b/lua/lspconfig/configs/grammarly.lua index 9dc20b2f..db8a17e7 100644 --- a/lua/lspconfig/configs/grammarly.lua +++ b/lua/lspconfig/configs/grammarly.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'grammarly-languageserver', '--stdio' }, filetypes = { 'markdown' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, handlers = { ['$/updateDocumentState'] = function() diff --git a/lua/lspconfig/configs/groovyls.lua b/lua/lspconfig/configs/groovyls.lua index b4182f4a..f35e80e4 100644 --- a/lua/lspconfig/configs/groovyls.lua +++ b/lua/lspconfig/configs/groovyls.lua @@ -9,7 +9,8 @@ return { }, filetypes = { 'groovy' }, root_dir = function(fname) - return util.root_pattern 'Jenkinsfile'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'Jenkinsfile'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/guile_ls.lua b/lua/lspconfig/configs/guile_ls.lua index fbd8e16c..32ca81dc 100644 --- a/lua/lspconfig/configs/guile_ls.lua +++ b/lua/lspconfig/configs/guile_ls.lua @@ -6,7 +6,8 @@ return { 'scheme.guile', }, root_dir = function(fname) - return util.root_pattern 'guix.scm'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'guix.scm'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/harper_ls.lua b/lua/lspconfig/configs/harper_ls.lua index 983e1b2e..9e7f1dc6 100644 --- a/lua/lspconfig/configs/harper_ls.lua +++ b/lua/lspconfig/configs/harper_ls.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'harper-ls', '--stdio' }, @@ -23,7 +21,9 @@ return { 'typescript', 'typescriptreact', }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/hdl_checker.lua b/lua/lspconfig/configs/hdl_checker.lua index d29194ca..4c2f0d31 100644 --- a/lua/lspconfig/configs/hdl_checker.lua +++ b/lua/lspconfig/configs/hdl_checker.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'hdl_checker', '--lsp' }, filetypes = { 'vhdl', 'verilog', 'systemverilog' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/hoon_ls.lua b/lua/lspconfig/configs/hoon_ls.lua index 1a9240b3..2f6a336f 100644 --- a/lua/lspconfig/configs/hoon_ls.lua +++ b/lua/lspconfig/configs/hoon_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'hoon-language-server' }, filetypes = { 'hoon' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/htmx.lua b/lua/lspconfig/configs/htmx.lua index fe7e1de5..68d9d83f 100644 --- a/lua/lspconfig/configs/htmx.lua +++ b/lua/lspconfig/configs/htmx.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'htmx-lsp' }, @@ -53,7 +51,7 @@ return { }, single_file_support = true, root_dir = function(fname) - return util.find_git_ancestor(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/hyprls.lua b/lua/lspconfig/configs/hyprls.lua index 669e0e9b..0add68d3 100644 --- a/lua/lspconfig/configs/hyprls.lua +++ b/lua/lspconfig/configs/hyprls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'hyprls', '--stdio' }, filetypes = { 'hyprlang' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/janet_lsp.lua b/lua/lspconfig/configs/janet_lsp.lua index bc9c5bda..5d3ca1d5 100644 --- a/lua/lspconfig/configs/janet_lsp.lua +++ b/lua/lspconfig/configs/janet_lsp.lua @@ -7,7 +7,10 @@ return { '--stdio', }, filetypes = { 'janet' }, - root_dir = util.root_pattern 'project.janet' or util.find_git_ancestor(), + root_dir = function(fname) + return util.root_pattern 'project.janet' + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/jinja_lsp.lua b/lua/lspconfig/configs/jinja_lsp.lua index e372ee9b..787c3503 100644 --- a/lua/lspconfig/configs/jinja_lsp.lua +++ b/lua/lspconfig/configs/jinja_lsp.lua @@ -1,11 +1,11 @@ -local util = require 'lspconfig.util' - return { default_config = { name = 'jinja_lsp', cmd = { 'jinja-lsp' }, filetypes = { 'jinja' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/jqls.lua b/lua/lspconfig/configs/jqls.lua index ec1bcaf7..4e110b98 100644 --- a/lua/lspconfig/configs/jqls.lua +++ b/lua/lspconfig/configs/jqls.lua @@ -1,9 +1,10 @@ -local util = require 'lspconfig.util' return { default_config = { cmd = { 'jq-lsp' }, filetypes = { 'jq' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/jsonls.lua b/lua/lspconfig/configs/jsonls.lua index 17b7e2b6..ca0e57ea 100644 --- a/lua/lspconfig/configs/jsonls.lua +++ b/lua/lspconfig/configs/jsonls.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'vscode-json-language-server', '--stdio' }, @@ -7,7 +5,9 @@ return { init_options = { provideFormatter = true, }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/jsonnet_ls.lua b/lua/lspconfig/configs/jsonnet_ls.lua index ebb6ba5d..284cd091 100644 --- a/lua/lspconfig/configs/jsonnet_ls.lua +++ b/lua/lspconfig/configs/jsonnet_ls.lua @@ -15,7 +15,8 @@ return { filetypes = { 'jsonnet', 'libsonnet' }, single_file_support = true, root_dir = function(fname) - return util.root_pattern 'jsonnetfile.json'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'jsonnetfile.json'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, on_new_config = function(new_config, root_dir) if not new_config.cmd_env then diff --git a/lua/lspconfig/configs/julials.lua b/lua/lspconfig/configs/julials.lua index c1a170a5..6a1ace90 100644 --- a/lua/lspconfig/configs/julials.lua +++ b/lua/lspconfig/configs/julials.lua @@ -98,7 +98,8 @@ return { cmd = cmd, filetypes = { 'julia' }, root_dir = function(fname) - return util.root_pattern(unpack(root_files))(fname) or util.find_git_ancestor(fname) + return util.root_pattern(unpack(root_files))(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/koka.lua b/lua/lspconfig/configs/koka.lua index 655cc963..db27a2e2 100644 --- a/lua/lspconfig/configs/koka.lua +++ b/lua/lspconfig/configs/koka.lua @@ -1,11 +1,11 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'koka', '--language-server', '--lsstdio' }, filetypes = { 'koka' }, single_file_support = true, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { diff --git a/lua/lspconfig/configs/kulala_ls.lua b/lua/lspconfig/configs/kulala_ls.lua index fb5651ac..03d33889 100644 --- a/lua/lspconfig/configs/kulala_ls.lua +++ b/lua/lspconfig/configs/kulala_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'kulala-ls', '--stdio' }, filetypes = { 'http' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/lean3ls.lua b/lua/lspconfig/configs/lean3ls.lua index 645fbbbe..ea8cfa6f 100644 --- a/lua/lspconfig/configs/lean3ls.lua +++ b/lua/lspconfig/configs/lean3ls.lua @@ -19,7 +19,7 @@ return { return util.root_pattern 'leanpkg.toml'(fname) or util.root_pattern 'leanpkg.path'(fname) or stdlib_dir - or util.find_git_ancestor(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/leanls.lua b/lua/lspconfig/configs/leanls.lua index c29b6417..4d2bfe5d 100644 --- a/lua/lspconfig/configs/leanls.lua +++ b/lua/lspconfig/configs/leanls.lua @@ -23,7 +23,7 @@ return { return util.root_pattern('lakefile.toml', 'lakefile.lean', 'lean-toolchain')(fname) or stdlib_dir - or util.find_git_ancestor(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, on_new_config = function(config, root_dir) -- add root dir as command-line argument for `ps aux` diff --git a/lua/lspconfig/configs/lelwel_ls.lua b/lua/lspconfig/configs/lelwel_ls.lua index ac8c4560..9fd4a1b5 100644 --- a/lua/lspconfig/configs/lelwel_ls.lua +++ b/lua/lspconfig/configs/lelwel_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'lelwel-ls' }, filetypes = { 'llw' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/lemminx.lua b/lua/lspconfig/configs/lemminx.lua index d8846d12..b6d84807 100644 --- a/lua/lspconfig/configs/lemminx.lua +++ b/lua/lspconfig/configs/lemminx.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'lemminx' }, filetypes = { 'xml', 'xsd', 'xsl', 'xslt', 'svg' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/lexical.lua b/lua/lspconfig/configs/lexical.lua index 4d288737..509bdda5 100644 --- a/lua/lspconfig/configs/lexical.lua +++ b/lua/lspconfig/configs/lexical.lua @@ -4,7 +4,8 @@ return { default_config = { filetypes = { 'elixir', 'eelixir', 'heex', 'surface' }, root_dir = function(fname) - return util.root_pattern 'mix.exs'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'mix.exs'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/ltex.lua b/lua/lspconfig/configs/ltex.lua index 4a3ae0f4..4cc85a8d 100644 --- a/lua/lspconfig/configs/ltex.lua +++ b/lua/lspconfig/configs/ltex.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - local language_id_mapping = { bib = 'bibtex', plaintex = 'tex', @@ -53,7 +51,9 @@ return { default_config = { cmd = { 'ltex-ls' }, filetypes = filetypes, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, get_language_id = get_language_id, settings = { diff --git a/lua/lspconfig/configs/ltex_plus.lua b/lua/lspconfig/configs/ltex_plus.lua index c6555b99..915f0451 100644 --- a/lua/lspconfig/configs/ltex_plus.lua +++ b/lua/lspconfig/configs/ltex_plus.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - local language_id_mapping = { bib = 'bibtex', pandoc = 'markdown', @@ -37,7 +35,9 @@ return { 'typst', 'xhtml', }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, get_language_id = get_language_id, settings = { diff --git a/lua/lspconfig/configs/lua_ls.lua b/lua/lspconfig/configs/lua_ls.lua index 64b81449..abdef096 100644 --- a/lua/lspconfig/configs/lua_ls.lua +++ b/lua/lspconfig/configs/lua_ls.lua @@ -20,7 +20,7 @@ return { return root end local root_lua = util.root_pattern 'lua/'(fname) or '' - local root_git = util.find_git_ancestor(fname) or '' + local root_git = vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) or '' if root_lua == '' and root_git == '' then return end diff --git a/lua/lspconfig/configs/luau_lsp.lua b/lua/lspconfig/configs/luau_lsp.lua index 0579723d..ace540ff 100644 --- a/lua/lspconfig/configs/luau_lsp.lua +++ b/lua/lspconfig/configs/luau_lsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'luau-lsp', 'lsp' }, filetypes = { 'luau' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/marko-js.lua b/lua/lspconfig/configs/marko-js.lua index 5693078b..fcfc82b4 100644 --- a/lua/lspconfig/configs/marko-js.lua +++ b/lua/lspconfig/configs/marko-js.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'marko-language-server', '--stdio' }, filetypes = { 'marko' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/marksman.lua b/lua/lspconfig/configs/marksman.lua index 7a6b9e3e..47446a67 100644 --- a/lua/lspconfig/configs/marksman.lua +++ b/lua/lspconfig/configs/marksman.lua @@ -9,7 +9,8 @@ return { filetypes = { 'markdown', 'markdown.mdx' }, root_dir = function(fname) local root_files = { '.marksman.toml' } - return util.root_pattern(unpack(root_files))(fname) or util.find_git_ancestor(fname) + return util.root_pattern(unpack(root_files))(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/matlab_ls.lua b/lua/lspconfig/configs/matlab_ls.lua index cadc60b0..dee21983 100644 --- a/lua/lspconfig/configs/matlab_ls.lua +++ b/lua/lspconfig/configs/matlab_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'matlab-language-server', '--stdio' }, filetypes = { 'matlab' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = false, settings = { MATLAB = { diff --git a/lua/lspconfig/configs/mint.lua b/lua/lspconfig/configs/mint.lua index 7fde1c40..edd6c3d0 100644 --- a/lua/lspconfig/configs/mint.lua +++ b/lua/lspconfig/configs/mint.lua @@ -5,7 +5,8 @@ return { cmd = { 'mint', 'ls' }, filetypes = { 'mint' }, root_dir = function(fname) - return util.root_pattern 'mint.json'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'mint.json'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/mlir_lsp_server.lua b/lua/lspconfig/configs/mlir_lsp_server.lua index 22a71268..950ed01c 100644 --- a/lua/lspconfig/configs/mlir_lsp_server.lua +++ b/lua/lspconfig/configs/mlir_lsp_server.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'mlir-lsp-server' }, filetypes = { 'mlir' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/mlir_pdll_lsp_server.lua b/lua/lspconfig/configs/mlir_pdll_lsp_server.lua index e24d634f..fa79df6b 100644 --- a/lua/lspconfig/configs/mlir_pdll_lsp_server.lua +++ b/lua/lspconfig/configs/mlir_pdll_lsp_server.lua @@ -5,7 +5,8 @@ return { cmd = { 'mlir-pdll-lsp-server' }, filetypes = { 'pdll' }, root_dir = function(fname) - return util.root_pattern 'pdll_compile_commands.yml'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'pdll_compile_commands.yml'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/mm0_ls.lua b/lua/lspconfig/configs/mm0_ls.lua index 513bbeb9..bb555e85 100644 --- a/lua/lspconfig/configs/mm0_ls.lua +++ b/lua/lspconfig/configs/mm0_ls.lua @@ -1,9 +1,9 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'mm0-rs', 'server' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, filetypes = { 'metamath-zero' }, single_file_support = true, }, diff --git a/lua/lspconfig/configs/mojo.lua b/lua/lspconfig/configs/mojo.lua index 9e975585..7865e6a5 100644 --- a/lua/lspconfig/configs/mojo.lua +++ b/lua/lspconfig/configs/mojo.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'mojo-lsp-server' }, filetypes = { 'mojo' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/msbuild_project_tools_server.lua b/lua/lspconfig/configs/msbuild_project_tools_server.lua index 244efce9..f9abba3e 100644 --- a/lua/lspconfig/configs/msbuild_project_tools_server.lua +++ b/lua/lspconfig/configs/msbuild_project_tools_server.lua @@ -1,11 +1,11 @@ -local util = require 'lspconfig.util' - local host_dll_name = 'MSBuildProjectTools.LanguageServer.Host.dll' return { default_config = { filetypes = { 'xml.csproj', 'xml.fsproj', 'sln' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, init_options = {}, cmd = { 'dotnet', host_dll_name }, }, diff --git a/lua/lspconfig/configs/mutt_ls.lua b/lua/lspconfig/configs/mutt_ls.lua index 91af9c5f..00e5c59d 100644 --- a/lua/lspconfig/configs/mutt_ls.lua +++ b/lua/lspconfig/configs/mutt_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'mutt-language-server' }, filetypes = { 'muttrc', 'neomuttrc' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, settings = {}, }, diff --git a/lua/lspconfig/configs/nextls.lua b/lua/lspconfig/configs/nextls.lua index acecaf76..feb428d2 100644 --- a/lua/lspconfig/configs/nextls.lua +++ b/lua/lspconfig/configs/nextls.lua @@ -4,7 +4,8 @@ return { default_config = { filetypes = { 'elixir', 'eelixir', 'heex', 'surface' }, root_dir = function(fname) - return util.root_pattern 'mix.exs'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'mix.exs'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/nginx_language_server.lua b/lua/lspconfig/configs/nginx_language_server.lua index 9dfc0b5d..a4b9fb7d 100644 --- a/lua/lspconfig/configs/nginx_language_server.lua +++ b/lua/lspconfig/configs/nginx_language_server.lua @@ -5,7 +5,8 @@ return { cmd = { 'nginx-language-server' }, filetypes = { 'nginx' }, root_dir = function(fname) - return util.root_pattern('nginx.conf', '.git')(fname) or util.find_git_ancestor(fname) + return util.root_pattern('nginx.conf', '.git')(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/nickel_ls.lua b/lua/lspconfig/configs/nickel_ls.lua index 391abfee..4e6b0021 100644 --- a/lua/lspconfig/configs/nickel_ls.lua +++ b/lua/lspconfig/configs/nickel_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'nls' }, filetypes = { 'ncl', 'nickel' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { diff --git a/lua/lspconfig/configs/nim_langserver.lua b/lua/lspconfig/configs/nim_langserver.lua index f3c48273..2ab7b36d 100644 --- a/lua/lspconfig/configs/nim_langserver.lua +++ b/lua/lspconfig/configs/nim_langserver.lua @@ -5,7 +5,8 @@ return { cmd = { 'nimlangserver' }, filetypes = { 'nim' }, root_dir = function(fname) - return util.root_pattern '*.nimble'(fname) or util.find_git_ancestor(fname) + return util.root_pattern '*.nimble'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/nimls.lua b/lua/lspconfig/configs/nimls.lua index 3c1aeb2b..351abc8c 100644 --- a/lua/lspconfig/configs/nimls.lua +++ b/lua/lspconfig/configs/nimls.lua @@ -5,7 +5,8 @@ return { cmd = { 'nimlsp' }, filetypes = { 'nim' }, root_dir = function(fname) - return util.root_pattern '*.nimble'(fname) or util.find_git_ancestor(fname) + return util.root_pattern '*.nimble'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/nixd.lua b/lua/lspconfig/configs/nixd.lua index c5859df8..98ec74c0 100644 --- a/lua/lspconfig/configs/nixd.lua +++ b/lua/lspconfig/configs/nixd.lua @@ -6,7 +6,8 @@ return { filetypes = { 'nix' }, single_file_support = true, root_dir = function(fname) - return util.root_pattern 'flake.nix'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'flake.nix'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/nushell.lua b/lua/lspconfig/configs/nushell.lua index 2e3a9237..a51f452e 100644 --- a/lua/lspconfig/configs/nushell.lua +++ b/lua/lspconfig/configs/nushell.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'nu', '--lsp' }, filetypes = { 'nu' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/opencl_ls.lua b/lua/lspconfig/configs/opencl_ls.lua index 9d59bebc..387bd22b 100644 --- a/lua/lspconfig/configs/opencl_ls.lua +++ b/lua/lspconfig/configs/opencl_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'opencl-language-server' }, filetypes = { 'opencl' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/openscad_ls.lua b/lua/lspconfig/configs/openscad_ls.lua index e5ca9cac..d5f5f829 100644 --- a/lua/lspconfig/configs/openscad_ls.lua +++ b/lua/lspconfig/configs/openscad_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'openscad-language-server' }, filetypes = { 'openscad' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/openscad_lsp.lua b/lua/lspconfig/configs/openscad_lsp.lua index f00a3774..59a7f3af 100644 --- a/lua/lspconfig/configs/openscad_lsp.lua +++ b/lua/lspconfig/configs/openscad_lsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'openscad-lsp', '--stdio' }, filetypes = { 'openscad' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/pact_ls.lua b/lua/lspconfig/configs/pact_ls.lua index 1eb89769..909814df 100644 --- a/lua/lspconfig/configs/pact_ls.lua +++ b/lua/lspconfig/configs/pact_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'pact-lsp' }, filetypes = { 'pact' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/perlls.lua b/lua/lspconfig/configs/perlls.lua index 88f015e2..68e55727 100644 --- a/lua/lspconfig/configs/perlls.lua +++ b/lua/lspconfig/configs/perlls.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { @@ -20,7 +18,9 @@ return { }, }, filetypes = { 'perl' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/perlnavigator.lua b/lua/lspconfig/configs/perlnavigator.lua index d3c8f7f0..36193ab5 100644 --- a/lua/lspconfig/configs/perlnavigator.lua +++ b/lua/lspconfig/configs/perlnavigator.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'perlnavigator' }, filetypes = { 'perl' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/perlpls.lua b/lua/lspconfig/configs/perlpls.lua index b10c8f02..bb8a3185 100644 --- a/lua/lspconfig/configs/perlpls.lua +++ b/lua/lspconfig/configs/perlpls.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'pls' }, @@ -10,7 +8,9 @@ return { }, }, filetypes = { 'perl' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/pest_ls.lua b/lua/lspconfig/configs/pest_ls.lua index 4a56ea9f..26a08d00 100644 --- a/lua/lspconfig/configs/pest_ls.lua +++ b/lua/lspconfig/configs/pest_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'pest-language-server' }, filetypes = { 'pest' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/pkgbuild_language_server.lua b/lua/lspconfig/configs/pkgbuild_language_server.lua index 4a51b84d..f1962dcd 100644 --- a/lua/lspconfig/configs/pkgbuild_language_server.lua +++ b/lua/lspconfig/configs/pkgbuild_language_server.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'pkgbuild-language-server' }, filetypes = { 'PKGBUILD' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/poryscript_pls.lua b/lua/lspconfig/configs/poryscript_pls.lua index 02918768..43b2a503 100644 --- a/lua/lspconfig/configs/poryscript_pls.lua +++ b/lua/lspconfig/configs/poryscript_pls.lua @@ -1,10 +1,10 @@ -local util = require('lspconfig.util') - return { default_config = { cmd = { 'poryscript-pls' }, filetypes = { 'pory' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/powershell_es.lua b/lua/lspconfig/configs/powershell_es.lua index f39424ae..fdc7ba33 100644 --- a/lua/lspconfig/configs/powershell_es.lua +++ b/lua/lspconfig/configs/powershell_es.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - local temp_path = vim.fn.stdpath 'cache' local function make_cmd(new_config) @@ -22,7 +20,9 @@ return { end, filetypes = { 'ps1' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/prosemd_lsp.lua b/lua/lspconfig/configs/prosemd_lsp.lua index 639bf1ee..8e72a3ad 100644 --- a/lua/lspconfig/configs/prosemd_lsp.lua +++ b/lua/lspconfig/configs/prosemd_lsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'prosemd-lsp', '--stdio' }, filetypes = { 'markdown' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/protols.lua b/lua/lspconfig/configs/protols.lua index 2df30b0d..87b22106 100644 --- a/lua/lspconfig/configs/protols.lua +++ b/lua/lspconfig/configs/protols.lua @@ -1,11 +1,11 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'protols' }, filetypes = { 'proto' }, single_file_support = true, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/pylsp.lua b/lua/lspconfig/configs/pylsp.lua index d76b2ea3..516547a3 100644 --- a/lua/lspconfig/configs/pylsp.lua +++ b/lua/lspconfig/configs/pylsp.lua @@ -12,7 +12,8 @@ return { 'requirements.txt', 'Pipfile', } - return util.root_pattern(unpack(root_files))(fname) or util.find_git_ancestor(fname) + return util.root_pattern(unpack(root_files))(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/pylyzer.lua b/lua/lspconfig/configs/pylyzer.lua index 34a4914b..f0f60f28 100644 --- a/lua/lspconfig/configs/pylyzer.lua +++ b/lua/lspconfig/configs/pylyzer.lua @@ -12,7 +12,8 @@ return { 'Pipfile', 'pyproject.toml', } - return util.root_pattern(unpack(root_files))(fname) or util.find_git_ancestor(fname) + return util.root_pattern(unpack(root_files))(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, settings = { diff --git a/lua/lspconfig/configs/qmlls.lua b/lua/lspconfig/configs/qmlls.lua index b0451594..07bcaf66 100644 --- a/lua/lspconfig/configs/qmlls.lua +++ b/lua/lspconfig/configs/qmlls.lua @@ -1,11 +1,9 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'qmlls' }, filetypes = { 'qml', 'qmljs' }, root_dir = function(fname) - return util.find_git_ancestor(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/r_language_server.lua b/lua/lspconfig/configs/r_language_server.lua index c2aca7a8..5ed5d667 100644 --- a/lua/lspconfig/configs/r_language_server.lua +++ b/lua/lspconfig/configs/r_language_server.lua @@ -1,11 +1,9 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'R', '--no-echo', '-e', 'languageserver::run()' }, filetypes = { 'r', 'rmd' }, root_dir = function(fname) - return util.find_git_ancestor(fname) or vim.loop.os_homedir() + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) or vim.loop.os_homedir() end, log_level = vim.lsp.protocol.MessageType.Warning, }, diff --git a/lua/lspconfig/configs/racket_langserver.lua b/lua/lspconfig/configs/racket_langserver.lua index 25bd0ab1..fa154e1e 100644 --- a/lua/lspconfig/configs/racket_langserver.lua +++ b/lua/lspconfig/configs/racket_langserver.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'racket', '--lib', 'racket-langserver' }, filetypes = { 'racket', 'scheme' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/raku_navigator.lua b/lua/lspconfig/configs/raku_navigator.lua index 26ff321e..bc47c9ac 100644 --- a/lua/lspconfig/configs/raku_navigator.lua +++ b/lua/lspconfig/configs/raku_navigator.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = {}, filetypes = { 'raku' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/regal.lua b/lua/lspconfig/configs/regal.lua index 93c4c959..3f58acbd 100644 --- a/lua/lspconfig/configs/regal.lua +++ b/lua/lspconfig/configs/regal.lua @@ -5,7 +5,8 @@ return { cmd = { 'regal', 'language-server' }, filetypes = { 'rego' }, root_dir = function(fname) - return util.root_pattern '*.rego'(fname) or util.find_git_ancestor(fname) + return util.root_pattern '*.rego'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/regols.lua b/lua/lspconfig/configs/regols.lua index 63c6a3f0..f5854fb6 100644 --- a/lua/lspconfig/configs/regols.lua +++ b/lua/lspconfig/configs/regols.lua @@ -5,7 +5,8 @@ return { cmd = { 'regols' }, filetypes = { 'rego' }, root_dir = function(fname) - return util.root_pattern '*.rego'(fname) or util.find_git_ancestor(fname) + return util.root_pattern '*.rego'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/rnix.lua b/lua/lspconfig/configs/rnix.lua index fe6a8b8a..b3bc1ca0 100644 --- a/lua/lspconfig/configs/rnix.lua +++ b/lua/lspconfig/configs/rnix.lua @@ -1,11 +1,9 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'rnix-lsp' }, filetypes = { 'nix' }, root_dir = function(fname) - return util.find_git_ancestor(fname) or vim.loop.os_homedir() + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) or vim.loop.os_homedir() end, settings = {}, init_options = {}, diff --git a/lua/lspconfig/configs/robotcode.lua b/lua/lspconfig/configs/robotcode.lua index 95dc86e2..79f3337b 100644 --- a/lua/lspconfig/configs/robotcode.lua +++ b/lua/lspconfig/configs/robotcode.lua @@ -17,7 +17,7 @@ https://robotcode.io RobotCode - Language Server Protocol implementation for Robot Framework. ]], default_config = { - root_dir = "util.root_pattern('robot.toml', 'pyproject.toml', 'Pipfile')(fname) or util.find_git_ancestor(fname)", + root_dir = "util.root_pattern('robot.toml', 'pyproject.toml', 'Pipfile')(fname) or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1])", settings = {}, }, }, diff --git a/lua/lspconfig/configs/robotframework_ls.lua b/lua/lspconfig/configs/robotframework_ls.lua index e5d09a7f..934fb8c2 100644 --- a/lua/lspconfig/configs/robotframework_ls.lua +++ b/lua/lspconfig/configs/robotframework_ls.lua @@ -6,7 +6,7 @@ return { filetypes = { 'robot' }, root_dir = function(fname) return util.root_pattern('robotidy.toml', 'pyproject.toml', 'conda.yaml', 'robot.yaml')(fname) - or util.find_git_ancestor(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/roc_ls.lua b/lua/lspconfig/configs/roc_ls.lua index 874ac140..877506d3 100644 --- a/lua/lspconfig/configs/roc_ls.lua +++ b/lua/lspconfig/configs/roc_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'roc_language_server' }, filetypes = { 'roc' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/rome.lua b/lua/lspconfig/configs/rome.lua index 7a9092d5..99acb0df 100644 --- a/lua/lspconfig/configs/rome.lua +++ b/lua/lspconfig/configs/rome.lua @@ -1,5 +1,3 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'rome', 'lsp-proxy' }, @@ -14,7 +12,7 @@ return { root_dir = function(fname) return vim.fs.dirname(vim.fs.find('package.json', { path = fname, upward = true })[1]) or vim.fs.dirname(vim.fs.find('node_modules', { path = fname, upward = true })[1]) - or util.find_git_ancestor(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/ruff.lua b/lua/lspconfig/configs/ruff.lua index dd295f3f..dbe5718b 100644 --- a/lua/lspconfig/configs/ruff.lua +++ b/lua/lspconfig/configs/ruff.lua @@ -4,7 +4,10 @@ return { default_config = { cmd = { 'ruff', 'server' }, filetypes = { 'python' }, - root_dir = util.root_pattern('pyproject.toml', 'ruff.toml', '.ruff.toml') or util.find_git_ancestor(), + root_dir = function(fname) + return util.root_pattern('pyproject.toml', 'ruff.toml', '.ruff.toml') + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, settings = {}, }, diff --git a/lua/lspconfig/configs/ruff_lsp.lua b/lua/lspconfig/configs/ruff_lsp.lua index 7d92aa88..e304a522 100644 --- a/lua/lspconfig/configs/ruff_lsp.lua +++ b/lua/lspconfig/configs/ruff_lsp.lua @@ -4,7 +4,10 @@ return { default_config = { cmd = { 'ruff-lsp' }, filetypes = { 'python' }, - root_dir = util.root_pattern('pyproject.toml', 'ruff.toml') or util.find_git_ancestor(), + root_dir = function(fname) + return util.root_pattern('pyproject.toml', 'ruff.toml') + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, settings = {}, }, diff --git a/lua/lspconfig/configs/rune_languageserver.lua b/lua/lspconfig/configs/rune_languageserver.lua index 8564838b..f0514b07 100644 --- a/lua/lspconfig/configs/rune_languageserver.lua +++ b/lua/lspconfig/configs/rune_languageserver.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'rune-languageserver' }, filetypes = { 'rune' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/rust_analyzer.lua b/lua/lspconfig/configs/rust_analyzer.lua index 8bcde6c9..fbea04e4 100644 --- a/lua/lspconfig/configs/rust_analyzer.lua +++ b/lua/lspconfig/configs/rust_analyzer.lua @@ -70,7 +70,7 @@ return { return cargo_workspace_root or cargo_crate_dir or util.root_pattern 'rust-project.json'(fname) - or util.find_git_ancestor(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, capabilities = { experimental = { diff --git a/lua/lspconfig/configs/salt_ls.lua b/lua/lspconfig/configs/salt_ls.lua index fae26411..8bf5d81b 100644 --- a/lua/lspconfig/configs/salt_ls.lua +++ b/lua/lspconfig/configs/salt_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'salt_lsp_server' }, filetypes = { 'sls' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/scry.lua b/lua/lspconfig/configs/scry.lua index eaa2acd9..9566517a 100644 --- a/lua/lspconfig/configs/scry.lua +++ b/lua/lspconfig/configs/scry.lua @@ -5,7 +5,8 @@ return { cmd = { 'scry' }, filetypes = { 'crystal' }, root_dir = function(fname) - return util.root_pattern 'shard.yml'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'shard.yml'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/slangd.lua b/lua/lspconfig/configs/slangd.lua index 9b320bd5..f04fdae3 100644 --- a/lua/lspconfig/configs/slangd.lua +++ b/lua/lspconfig/configs/slangd.lua @@ -1,4 +1,3 @@ -local util = require 'lspconfig.util' local bin_name = 'slangd' if vim.fn.has 'win32' == 1 then @@ -9,7 +8,9 @@ return { default_config = { cmd = { bin_name }, filetypes = { 'hlsl', 'shaderslang' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/slint_lsp.lua b/lua/lspconfig/configs/slint_lsp.lua index bdd36597..c08f67c5 100644 --- a/lua/lspconfig/configs/slint_lsp.lua +++ b/lua/lspconfig/configs/slint_lsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'slint-lsp' }, filetypes = { 'slint' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/solang.lua b/lua/lspconfig/configs/solang.lua index 36609715..20cca41d 100644 --- a/lua/lspconfig/configs/solang.lua +++ b/lua/lspconfig/configs/solang.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'solang', 'language-server', '--target', 'evm' }, filetypes = { 'solidity' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/sourcekit.lua b/lua/lspconfig/configs/sourcekit.lua index 2cf39e93..99a61f61 100644 --- a/lua/lspconfig/configs/sourcekit.lua +++ b/lua/lspconfig/configs/sourcekit.lua @@ -9,7 +9,7 @@ return { or util.root_pattern('*.xcodeproj', '*.xcworkspace')(filename) -- better to keep it at the end, because some modularized apps contain multiple Package.swift files or util.root_pattern('compile_commands.json', 'Package.swift')(filename) - or util.find_git_ancestor(filename) + or vim.fs.dirname(vim.fs.find('.git', { path = filename, upward = true })[1]) end, get_language_id = function(_, ftype) local t = { objc = 'objective-c', objcpp = 'objective-cpp' } diff --git a/lua/lspconfig/configs/sourcery.lua b/lua/lspconfig/configs/sourcery.lua index 44340f13..40b3e138 100644 --- a/lua/lspconfig/configs/sourcery.lua +++ b/lua/lspconfig/configs/sourcery.lua @@ -38,7 +38,8 @@ return { token = nil, }, root_dir = function(fname) - return util.root_pattern(unpack(root_files))(fname) or util.find_git_ancestor(fname) + return util.root_pattern(unpack(root_files))(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/starlark_rust.lua b/lua/lspconfig/configs/starlark_rust.lua index 36b828f1..e1c64619 100644 --- a/lua/lspconfig/configs/starlark_rust.lua +++ b/lua/lspconfig/configs/starlark_rust.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig/util' - return { default_config = { cmd = { 'starlark', '--lsp' }, filetypes = { 'star', 'bzl', 'BUILD.bazel' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/superhtml.lua b/lua/lspconfig/configs/superhtml.lua index 3403e919..0a61e9a0 100644 --- a/lua/lspconfig/configs/superhtml.lua +++ b/lua/lspconfig/configs/superhtml.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'superhtml', 'lsp' }, filetypes = { 'superhtml', 'html' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/svlangserver.lua b/lua/lspconfig/configs/svlangserver.lua index fe356589..7863e21d 100644 --- a/lua/lspconfig/configs/svlangserver.lua +++ b/lua/lspconfig/configs/svlangserver.lua @@ -20,7 +20,8 @@ return { cmd = { 'svlangserver' }, filetypes = { 'verilog', 'systemverilog' }, root_dir = function(fname) - return util.root_pattern '.svlangserver'(fname) or util.find_git_ancestor(fname) + return util.root_pattern '.svlangserver'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, settings = { diff --git a/lua/lspconfig/configs/svls.lua b/lua/lspconfig/configs/svls.lua index 86243f99..fe4ebfaa 100644 --- a/lua/lspconfig/configs/svls.lua +++ b/lua/lspconfig/configs/svls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'svls' }, filetypes = { 'verilog', 'systemverilog' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/tabby_ml.lua b/lua/lspconfig/configs/tabby_ml.lua index f56a8299..b8f3ee75 100644 --- a/lua/lspconfig/configs/tabby_ml.lua +++ b/lua/lspconfig/configs/tabby_ml.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'tabby-agent', '--lsp', '--stdio' }, filetypes = {}, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/tailwindcss.lua b/lua/lspconfig/configs/tailwindcss.lua index 8ef9a081..9bbf70f1 100644 --- a/lua/lspconfig/configs/tailwindcss.lua +++ b/lua/lspconfig/configs/tailwindcss.lua @@ -111,7 +111,7 @@ return { 'postcss.config.ts' )(fname) or vim.fs.dirname(vim.fs.find('package.json', { path = fname, upward = true })[1]) or vim.fs.dirname( vim.fs.find('node_modules', { path = fname, upward = true })[1] - ) or util.find_git_ancestor(fname) + ) or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/taplo.lua b/lua/lspconfig/configs/taplo.lua index 4e7f11ed..079b7344 100644 --- a/lua/lspconfig/configs/taplo.lua +++ b/lua/lspconfig/configs/taplo.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'taplo', 'lsp', 'stdio' }, filetypes = { 'toml' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/tblgen_lsp_server.lua b/lua/lspconfig/configs/tblgen_lsp_server.lua index 73022d4a..ccb44bb6 100644 --- a/lua/lspconfig/configs/tblgen_lsp_server.lua +++ b/lua/lspconfig/configs/tblgen_lsp_server.lua @@ -5,7 +5,8 @@ return { cmd = { 'tblgen-lsp-server' }, filetypes = { 'tablegen' }, root_dir = function(fname) - return util.root_pattern 'tablegen_compile_commands.yml'(fname) or util.find_git_ancestor(fname) + return util.root_pattern 'tablegen_compile_commands.yml'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/textlsp.lua b/lua/lspconfig/configs/textlsp.lua index e4f7a91a..3f3efe36 100644 --- a/lua/lspconfig/configs/textlsp.lua +++ b/lua/lspconfig/configs/textlsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'textlsp' }, filetypes = { 'text', 'tex', 'org' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, settings = { textLSP = { diff --git a/lua/lspconfig/configs/tilt_ls.lua b/lua/lspconfig/configs/tilt_ls.lua index a507ead2..c533e379 100644 --- a/lua/lspconfig/configs/tilt_ls.lua +++ b/lua/lspconfig/configs/tilt_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'tilt', 'lsp', 'start' }, filetypes = { 'tiltfile' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/tinymist.lua b/lua/lspconfig/configs/tinymist.lua index 9fdb6d31..21c6aa00 100644 --- a/lua/lspconfig/configs/tinymist.lua +++ b/lua/lspconfig/configs/tinymist.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'tinymist' }, filetypes = { 'typst' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/turtle_ls.lua b/lua/lspconfig/configs/turtle_ls.lua index 220953fd..0528b7fc 100644 --- a/lua/lspconfig/configs/turtle_ls.lua +++ b/lua/lspconfig/configs/turtle_ls.lua @@ -31,7 +31,7 @@ return { cmd = { 'node', full_path, '--stdio' }, filetypes = { 'turtle', 'ttl' }, root_dir = function(fname) - return util.find_git_ancestor(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/typst_lsp.lua b/lua/lspconfig/configs/typst_lsp.lua index 4d8ec17d..5bad8510 100644 --- a/lua/lspconfig/configs/typst_lsp.lua +++ b/lua/lspconfig/configs/typst_lsp.lua @@ -1,12 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'typst-lsp' }, filetypes = { 'typst' }, single_file_support = true, root_dir = function(fname) - return util.find_git_ancestor(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/uiua.lua b/lua/lspconfig/configs/uiua.lua index 54d23ac9..4fd27436 100644 --- a/lua/lspconfig/configs/uiua.lua +++ b/lua/lspconfig/configs/uiua.lua @@ -5,7 +5,8 @@ return { cmd = { 'uiua', 'lsp' }, filetypes = { 'uiua' }, root_dir = function(fname) - return util.root_pattern('main.ua', '.fmt.ua')(fname) or util.find_git_ancestor(fname) + return util.root_pattern('main.ua', '.fmt.ua')(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, }, docs = { diff --git a/lua/lspconfig/configs/ungrammar_languageserver.lua b/lua/lspconfig/configs/ungrammar_languageserver.lua index 022daab0..8ca9a8de 100644 --- a/lua/lspconfig/configs/ungrammar_languageserver.lua +++ b/lua/lspconfig/configs/ungrammar_languageserver.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'ungrammar-languageserver', '--stdio' }, filetypes = { 'ungrammar' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, settings = { ungrammar = { diff --git a/lua/lspconfig/configs/uvls.lua b/lua/lspconfig/configs/uvls.lua index 3b542207..b87e1d82 100644 --- a/lua/lspconfig/configs/uvls.lua +++ b/lua/lspconfig/configs/uvls.lua @@ -1,9 +1,10 @@ -local util = require 'lspconfig.util' return { default_config = { cmd = { 'uvls' }, filetypes = { 'uvl' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/vacuum.lua b/lua/lspconfig/configs/vacuum.lua index d0a6afcd..b6f78100 100644 --- a/lua/lspconfig/configs/vacuum.lua +++ b/lua/lspconfig/configs/vacuum.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'vacuum', 'language-server' }, filetypes = { 'yaml.openapi', 'json.openapi' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/vala_ls.lua b/lua/lspconfig/configs/vala_ls.lua index 9428b6bc..34317c32 100644 --- a/lua/lspconfig/configs/vala_ls.lua +++ b/lua/lspconfig/configs/vala_ls.lua @@ -27,7 +27,7 @@ return { filetypes = { 'vala', 'genie' }, root_dir = function(fname) local root = util.search_ancestors(fname, meson_matcher) - return root or util.find_git_ancestor(fname) + return root or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/vdmj.lua b/lua/lspconfig/configs/vdmj.lua index 7d381b6e..2f5b5256 100644 --- a/lua/lspconfig/configs/vdmj.lua +++ b/lua/lspconfig/configs/vdmj.lua @@ -45,7 +45,7 @@ return { cmd = { 'java' }, filetypes = { 'vdmsl', 'vdmpp', 'vdmrt' }, root_dir = function(fname) - return util.find_git_ancestor(fname) or find_vscode_ancestor(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) or find_vscode_ancestor(fname) end, options = { java = vim.env.JAVA_HOME and util.path.join(vim.env.JAVA_HOME, 'bin', 'java') or 'java', diff --git a/lua/lspconfig/configs/verible.lua b/lua/lspconfig/configs/verible.lua index 3c4823a8..8e571923 100644 --- a/lua/lspconfig/configs/verible.lua +++ b/lua/lspconfig/configs/verible.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'verible-verilog-ls' }, filetypes = { 'systemverilog', 'verilog' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/veridian.lua b/lua/lspconfig/configs/veridian.lua index 231d0c05..26c0585f 100644 --- a/lua/lspconfig/configs/veridian.lua +++ b/lua/lspconfig/configs/veridian.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'veridian' }, filetypes = { 'systemverilog', 'verilog' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/veryl_ls.lua b/lua/lspconfig/configs/veryl_ls.lua index 8db5f38b..e627e578 100644 --- a/lua/lspconfig/configs/veryl_ls.lua +++ b/lua/lspconfig/configs/veryl_ls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'veryl-ls' }, filetypes = { 'veryl' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/vimls.lua b/lua/lspconfig/configs/vimls.lua index bcee4cca..9a011fbe 100644 --- a/lua/lspconfig/configs/vimls.lua +++ b/lua/lspconfig/configs/vimls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'vim-language-server', '--stdio' }, filetypes = { 'vim' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, init_options = { isNeovim = true, diff --git a/lua/lspconfig/configs/vscoqtop.lua b/lua/lspconfig/configs/vscoqtop.lua index c741c6c7..57a184f1 100644 --- a/lua/lspconfig/configs/vscoqtop.lua +++ b/lua/lspconfig/configs/vscoqtop.lua @@ -5,7 +5,8 @@ return { cmd = { 'vscoqtop' }, filetypes = { 'coq' }, root_dir = function(fname) - return util.root_pattern '_CoqProject'(fname) or util.find_git_ancestor(fname) + return util.root_pattern '_CoqProject'(fname) + or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) end, single_file_support = true, }, diff --git a/lua/lspconfig/configs/yamlls.lua b/lua/lspconfig/configs/yamlls.lua index e3e8daf1..10b86616 100644 --- a/lua/lspconfig/configs/yamlls.lua +++ b/lua/lspconfig/configs/yamlls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'yaml-language-server', '--stdio' }, filetypes = { 'yaml', 'yaml.docker-compose', 'yaml.gitlab' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, settings = { -- https://github.com/redhat-developer/vscode-redhat-telemetry#how-to-disable-telemetry-reporting diff --git a/lua/lspconfig/configs/yang_lsp.lua b/lua/lspconfig/configs/yang_lsp.lua index 13f6fa35..aed2f40a 100644 --- a/lua/lspconfig/configs/yang_lsp.lua +++ b/lua/lspconfig/configs/yang_lsp.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'yang-language-server' }, filetypes = { 'yang' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, }, docs = { description = [[ diff --git a/lua/lspconfig/configs/yls.lua b/lua/lspconfig/configs/yls.lua index 86cb3377..37129f47 100644 --- a/lua/lspconfig/configs/yls.lua +++ b/lua/lspconfig/configs/yls.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'yls', '-vv' }, filetypes = { 'yar', 'yara' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/ziggy.lua b/lua/lspconfig/configs/ziggy.lua index 5effe281..26cea2b8 100644 --- a/lua/lspconfig/configs/ziggy.lua +++ b/lua/lspconfig/configs/ziggy.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'ziggy', 'lsp' }, filetypes = { 'ziggy' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/ziggy_schema.lua b/lua/lspconfig/configs/ziggy_schema.lua index cd19cf35..6b4cc317 100644 --- a/lua/lspconfig/configs/ziggy_schema.lua +++ b/lua/lspconfig/configs/ziggy_schema.lua @@ -1,10 +1,10 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'ziggy', 'lsp', '--schema' }, filetypes = { 'ziggy_schema' }, - root_dir = util.find_git_ancestor, + root_dir = function(fname) + return vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true })[1]) + end, single_file_support = true, }, docs = { diff --git a/lua/lspconfig/util.lua b/lua/lspconfig/util.lua index 4bd82b5b..9b888efe 100644 --- a/lua/lspconfig/util.lua +++ b/lua/lspconfig/util.lua @@ -236,16 +236,6 @@ function M.root_pattern(...) end end -function M.find_git_ancestor(startpath) - return M.search_ancestors(startpath, function(path) - -- Support git directories and git files (worktrees) - local gitpath = M.path.join(path, '.git') - if vim.fn.isdirectory(gitpath) == 1 or (vim.loop.fs_stat(gitpath) or {}).type == 'file' then - return path - end - end) -end - function M.insert_package_json(config_files, field, fname) local path = vim.fn.fnamemodify(fname, ':h') local root_with_package = vim.fs.dirname(vim.fs.find('package.json', { path = path, upward = true })[1]) @@ -393,4 +383,9 @@ function M.find_package_json_ancestor(startpath) return vim.fs.dirname(vim.fs.find('package.json', { path = startpath, upward = true })[1]) end +--- @deprecated use `vim.fs.dirname(vim.fs.find('.git', { path = startpath, upward = true })[1])` instead +function M.find_git_ancestor(startpath) + return vim.fs.dirname(vim.fs.find('.git', { path = startpath, upward = true })[1]) +end + return M |
