diff --git a/.github/ci/run_sanitizer.sh b/.github/ci/run_sanitizer.sh index 9f6fd3580d..bba0616234 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 e8e9ecec67..9a7927db20 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.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 f0c281cc56..048ceefe17 100644 --- a/lua/lspconfig/configs/anakin_language_server.lua +++ b/lua/lspconfig/configs/anakin_language_server.lua @@ -12,7 +12,7 @@ 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.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 102bcbab16..ad81d90fc6 100644 --- a/lua/lspconfig/configs/asm_lsp.lua +++ b/lua/lspconfig/configs/asm_lsp.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'asm-lsp' }, filetypes = { 'asm', 'vmasm' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/bashls.lua b/lua/lspconfig/configs/bashls.lua index 3011386337..693cb76b32 100644 --- a/lua/lspconfig/configs/bashls.lua +++ b/lua/lspconfig/configs/bashls.lua @@ -16,7 +16,7 @@ return { }, }, filetypes = { 'bash', 'sh' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/beancount.lua b/lua/lspconfig/configs/beancount.lua index e020c02564..0368b24447 100644 --- a/lua/lspconfig/configs/beancount.lua +++ b/lua/lspconfig/configs/beancount.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'beancount-language-server', '--stdio' }, filetypes = { 'beancount', 'bean' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, init_options = {}, }, diff --git a/lua/lspconfig/configs/bicep.lua b/lua/lspconfig/configs/bicep.lua index adcd144b06..aa7b32e909 100644 --- a/lua/lspconfig/configs/bicep.lua +++ b/lua/lspconfig/configs/bicep.lua @@ -1,9 +1,7 @@ -local util = require 'lspconfig.util' - return { default_config = { filetypes = { 'bicep' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], init_options = {}, }, docs = { diff --git a/lua/lspconfig/configs/bitbake_language_server.lua b/lua/lspconfig/configs/bitbake_language_server.lua index 726fa85d37..11737156ab 100644 --- a/lua/lspconfig/configs/bitbake_language_server.lua +++ b/lua/lspconfig/configs/bitbake_language_server.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'bitbake-language-server' }, filetypes = { 'bitbake' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/bitbake_ls.lua b/lua/lspconfig/configs/bitbake_ls.lua index 87d343e555..01d2180607 100644 --- a/lua/lspconfig/configs/bitbake_ls.lua +++ b/lua/lspconfig/configs/bitbake_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'language-server-bitbake', '--stdio' }, filetypes = { 'bitbake' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = false, }, docs = { diff --git a/lua/lspconfig/configs/blueprint_ls.lua b/lua/lspconfig/configs/blueprint_ls.lua index 32a7693c2f..0ecd407824 100644 --- a/lua/lspconfig/configs/blueprint_ls.lua +++ b/lua/lspconfig/configs/blueprint_ls.lua @@ -11,7 +11,7 @@ return { GLOB_PATTERN = vim.env.GLOB_PATTERN or '*@(.blp)', }, filetypes = { 'blueprint' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/bqnlsp.lua b/lua/lspconfig/configs/bqnlsp.lua index 20135b9b1d..8c00b1ccb3 100644 --- a/lua/lspconfig/configs/bqnlsp.lua +++ b/lua/lspconfig/configs/bqnlsp.lua @@ -16,7 +16,7 @@ return { default_config = { cmd = { 'bqnlsp' }, filetypes = { 'bqn' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], 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 b190d5c4a4..f6d1afed28 100644 --- a/lua/lspconfig/configs/bsl_ls.lua +++ b/lua/lspconfig/configs/bsl_ls.lua @@ -3,7 +3,7 @@ local util = require 'lspconfig.util' return { default_config = { filetypes = { 'bsl', 'os' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/buddy_ls.lua b/lua/lspconfig/configs/buddy_ls.lua index 7343dd3229..9946462d73 100644 --- a/lua/lspconfig/configs/buddy_ls.lua +++ b/lua/lspconfig/configs/buddy_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'buddy-lsp-server' }, filetypes = { 'mlir' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/ccls.lua b/lua/lspconfig/configs/ccls.lua index 6f398abef0..db3d15f268 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.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 dda5408d85..bae8af12ad 100644 --- a/lua/lspconfig/configs/circom-lsp.lua +++ b/lua/lspconfig/configs/circom-lsp.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'circom-lsp' }, filetypes = { 'circom' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/clangd.lua b/lua/lspconfig/configs/clangd.lua index cb6c5e3f63..779659244a 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.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 e715e00e52..7179ad7ab7 100644 --- a/lua/lspconfig/configs/cobol_ls.lua +++ b/lua/lspconfig/configs/cobol_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'cobol-language-support' }, filetypes = { 'cobol' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/coq_lsp.lua b/lua/lspconfig/configs/coq_lsp.lua index aa492d4a54..13145dd0a0 100644 --- a/lua/lspconfig/configs/coq_lsp.lua +++ b/lua/lspconfig/configs/coq_lsp.lua @@ -5,7 +5,7 @@ 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.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 b0178d0c66..a849601e92 100644 --- a/lua/lspconfig/configs/crystalline.lua +++ b/lua/lspconfig/configs/crystalline.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'crystalline' }, filetypes = { 'crystal' }, - root_dir = util.root_pattern 'shard.yml' or util.find_git_ancestor, + root_dir = util.root_pattern 'shard.yml' or vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/cucumber_language_server.lua b/lua/lspconfig/configs/cucumber_language_server.lua index c2d6623c34..9e281c6a2a 100644 --- a/lua/lspconfig/configs/cucumber_language_server.lua +++ b/lua/lspconfig/configs/cucumber_language_server.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'cucumber-language-server', '--stdio' }, filetypes = { 'cucumber' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/cypher_ls.lua b/lua/lspconfig/configs/cypher_ls.lua index 7c0cf2cf54..2fc6776338 100644 --- a/lua/lspconfig/configs/cypher_ls.lua +++ b/lua/lspconfig/configs/cypher_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'cypher-language-server', '--stdio' }, filetypes = { 'cypher' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/dafny.lua b/lua/lspconfig/configs/dafny.lua index be5e72b36b..3fd480ad21 100644 --- a/lua/lspconfig/configs/dafny.lua +++ b/lua/lspconfig/configs/dafny.lua @@ -4,9 +4,7 @@ return { default_config = { cmd = { 'dafny', 'server' }, filetypes = { 'dfy', 'dafny' }, - root_dir = function(fname) - util.find_git_ancestor(fname) - end, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/dhall_lsp_server.lua b/lua/lspconfig/configs/dhall_lsp_server.lua index e090c66fd9..a643a344b7 100644 --- a/lua/lspconfig/configs/dhall_lsp_server.lua +++ b/lua/lspconfig/configs/dhall_lsp_server.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'dhall-lsp-server' }, filetypes = { 'dhall' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/diagnosticls.lua b/lua/lspconfig/configs/diagnosticls.lua index 1ab5fb0d93..6f0db31f2e 100644 --- a/lua/lspconfig/configs/diagnosticls.lua +++ b/lua/lspconfig/configs/diagnosticls.lua @@ -4,7 +4,7 @@ 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 = vim.fs.find('.git', { path = fname, upward = true })[1], 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 f89ba63d6e..3fc537b3a6 100644 --- a/lua/lspconfig/configs/digestif.lua +++ b/lua/lspconfig/configs/digestif.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'digestif' }, filetypes = { 'tex', 'plaintex', 'context' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/djlsp.lua b/lua/lspconfig/configs/djlsp.lua index 181cb030eb..a47be8fc31 100644 --- a/lua/lspconfig/configs/djlsp.lua +++ b/lua/lspconfig/configs/djlsp.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'djlsp' }, filetypes = { 'html', 'htmldjango' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], settings = {}, }, docs = { diff --git a/lua/lspconfig/configs/dolmenls.lua b/lua/lspconfig/configs/dolmenls.lua index 1f0657e119..5d781a863c 100644 --- a/lua/lspconfig/configs/dolmenls.lua +++ b/lua/lspconfig/configs/dolmenls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'dolmenls' }, filetypes = { 'smt2', 'tptp', 'p', 'cnf', 'icnf', 'zf' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/dotls.lua b/lua/lspconfig/configs/dotls.lua index 479f430637..cb3c6357ba 100644 --- a/lua/lspconfig/configs/dotls.lua +++ b/lua/lspconfig/configs/dotls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'dot-language-server', '--stdio' }, filetypes = { 'dot' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/drools_lsp.lua b/lua/lspconfig/configs/drools_lsp.lua index d5dd3cc05f..a507751f33 100644 --- a/lua/lspconfig/configs/drools_lsp.lua +++ b/lua/lspconfig/configs/drools_lsp.lua @@ -37,7 +37,7 @@ end return { default_config = { filetypes = { 'drools' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], 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 bc1d7ac8e5..265c66e6e6 100644 --- a/lua/lspconfig/configs/ds_pinyin_lsp.lua +++ b/lua/lspconfig/configs/ds_pinyin_lsp.lua @@ -33,7 +33,7 @@ return { default_config = { cmd = { bin_name }, filetypes = { 'markdown', 'org' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, init_options = { completion_on = true, diff --git a/lua/lspconfig/configs/efm.lua b/lua/lspconfig/configs/efm.lua index ff949abacf..cc4f895666 100644 --- a/lua/lspconfig/configs/efm.lua +++ b/lua/lspconfig/configs/efm.lua @@ -3,7 +3,7 @@ local util = require 'lspconfig.util' return { default_config = { cmd = { 'efm-langserver' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, diff --git a/lua/lspconfig/configs/emmet_language_server.lua b/lua/lspconfig/configs/emmet_language_server.lua index cace857feb..cdfcd15bb5 100644 --- a/lua/lspconfig/configs/emmet_language_server.lua +++ b/lua/lspconfig/configs/emmet_language_server.lua @@ -16,7 +16,7 @@ return { 'typescriptreact', 'htmlangular', }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/emmet_ls.lua b/lua/lspconfig/configs/emmet_ls.lua index 48a692a0f6..d852722d91 100644 --- a/lua/lspconfig/configs/emmet_ls.lua +++ b/lua/lspconfig/configs/emmet_ls.lua @@ -19,7 +19,7 @@ return { 'vue', 'htmlangular', }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/erg_language_server.lua b/lua/lspconfig/configs/erg_language_server.lua index 071c5f069f..3b0142e472 100644 --- a/lua/lspconfig/configs/erg_language_server.lua +++ b/lua/lspconfig/configs/erg_language_server.lua @@ -5,7 +5,7 @@ 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.find('.git', { path = fname, upward = true })[1] end, }, docs = { diff --git a/lua/lspconfig/configs/esbonio.lua b/lua/lspconfig/configs/esbonio.lua index ff13473fdb..494fdf8798 100644 --- a/lua/lspconfig/configs/esbonio.lua +++ b/lua/lspconfig/configs/esbonio.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'python3', '-m', 'esbonio' }, filetypes = { 'rst' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/facility_language_server.lua b/lua/lspconfig/configs/facility_language_server.lua index c37069d2bb..e9c0bd7c48 100644 --- a/lua/lspconfig/configs/facility_language_server.lua +++ b/lua/lspconfig/configs/facility_language_server.lua @@ -5,7 +5,7 @@ return { cmd = { 'facility-language-server' }, filetypes = { 'fsd' }, single_file_support = true, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/fennel_language_server.lua b/lua/lspconfig/configs/fennel_language_server.lua index 919b544bd9..48a765db04 100644 --- a/lua/lspconfig/configs/fennel_language_server.lua +++ b/lua/lspconfig/configs/fennel_language_server.lua @@ -5,7 +5,7 @@ return { cmd = { 'fennel-language-server' }, filetypes = { 'fennel' }, single_file_support = true, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], settings = {}, }, docs = { diff --git a/lua/lspconfig/configs/fish_lsp.lua b/lua/lspconfig/configs/fish_lsp.lua index 595f668080..cc1f1395b2 100644 --- a/lua/lspconfig/configs/fish_lsp.lua +++ b/lua/lspconfig/configs/fish_lsp.lua @@ -5,7 +5,7 @@ return { cmd = { 'fish-lsp', 'start' }, cmd_env = { fish_lsp_show_client_popups = false }, filetypes = { 'fish' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/flux_lsp.lua b/lua/lspconfig/configs/flux_lsp.lua index 2711651c1e..1a194949d9 100644 --- a/lua/lspconfig/configs/flux_lsp.lua +++ b/lua/lspconfig/configs/flux_lsp.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'flux-lsp' }, filetypes = { 'flux' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/fortls.lua b/lua/lspconfig/configs/fortls.lua index 13a22fbf90..3da6d1f62e 100644 --- a/lua/lspconfig/configs/fortls.lua +++ b/lua/lspconfig/configs/fortls.lua @@ -11,7 +11,7 @@ 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.find('.git', { path = fname, upward = true })[1] end, settings = {}, }, diff --git a/lua/lspconfig/configs/fstar.lua b/lua/lspconfig/configs/fstar.lua index 80e092da62..92eb08a757 100644 --- a/lua/lspconfig/configs/fstar.lua +++ b/lua/lspconfig/configs/fstar.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'fstar.exe', '--lsp' }, filetypes = { 'fstar' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/futhark_lsp.lua b/lua/lspconfig/configs/futhark_lsp.lua index 2521cc1b0e..be7342c63c 100644 --- a/lua/lspconfig/configs/futhark_lsp.lua +++ b/lua/lspconfig/configs/futhark_lsp.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'futhark', 'lsp' }, filetypes = { 'futhark', 'fut' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/ghdl_ls.lua b/lua/lspconfig/configs/ghdl_ls.lua index 0f9e118689..085e5a156d 100644 --- a/lua/lspconfig/configs/ghdl_ls.lua +++ b/lua/lspconfig/configs/ghdl_ls.lua @@ -5,7 +5,7 @@ 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.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 61f9de6046..fa8e55018c 100644 --- a/lua/lspconfig/configs/ginko_ls.lua +++ b/lua/lspconfig/configs/ginko_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'ginko_ls' }, filetypes = { 'dts' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], settings = {}, }, docs = { diff --git a/lua/lspconfig/configs/glasgow.lua b/lua/lspconfig/configs/glasgow.lua index 2d86fccc0f..3ff9154f90 100644 --- a/lua/lspconfig/configs/glasgow.lua +++ b/lua/lspconfig/configs/glasgow.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'glasgow' }, filetypes = { 'wgsl' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, settings = {}, }, diff --git a/lua/lspconfig/configs/glsl_analyzer.lua b/lua/lspconfig/configs/glsl_analyzer.lua index 74ffbba98b..95022f3c19 100644 --- a/lua/lspconfig/configs/glsl_analyzer.lua +++ b/lua/lspconfig/configs/glsl_analyzer.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'glsl_analyzer' }, filetypes = { 'glsl', 'vert', 'tesc', 'tese', 'frag', 'geom', 'comp' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, capabilities = {}, }, diff --git a/lua/lspconfig/configs/glslls.lua b/lua/lspconfig/configs/glslls.lua index 7d1c3634f3..b9c14f9bf8 100644 --- a/lua/lspconfig/configs/glslls.lua +++ b/lua/lspconfig/configs/glslls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'glslls', '--stdin' }, filetypes = { 'glsl', 'vert', 'tesc', 'tese', 'frag', 'geom', 'comp' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, capabilities = { textDocument = { diff --git a/lua/lspconfig/configs/grammarly.lua b/lua/lspconfig/configs/grammarly.lua index 9dc20b2f35..d59dbf7a70 100644 --- a/lua/lspconfig/configs/grammarly.lua +++ b/lua/lspconfig/configs/grammarly.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'grammarly-languageserver', '--stdio' }, filetypes = { 'markdown' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, handlers = { ['$/updateDocumentState'] = function() diff --git a/lua/lspconfig/configs/groovyls.lua b/lua/lspconfig/configs/groovyls.lua index b4182f4a3f..c4c19ba43b 100644 --- a/lua/lspconfig/configs/groovyls.lua +++ b/lua/lspconfig/configs/groovyls.lua @@ -9,7 +9,7 @@ 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.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 fbd8e16c30..e5a138afb7 100644 --- a/lua/lspconfig/configs/guile_ls.lua +++ b/lua/lspconfig/configs/guile_ls.lua @@ -6,7 +6,7 @@ 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.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 983e1b2ef7..45edf69c7d 100644 --- a/lua/lspconfig/configs/harper_ls.lua +++ b/lua/lspconfig/configs/harper_ls.lua @@ -23,7 +23,7 @@ return { 'typescript', 'typescriptreact', }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/hdl_checker.lua b/lua/lspconfig/configs/hdl_checker.lua index d29194ca00..7aab36a1b5 100644 --- a/lua/lspconfig/configs/hdl_checker.lua +++ b/lua/lspconfig/configs/hdl_checker.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'hdl_checker', '--lsp' }, filetypes = { 'vhdl', 'verilog', 'systemverilog' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/hoon_ls.lua b/lua/lspconfig/configs/hoon_ls.lua index 1a9240b393..ef10f704fb 100644 --- a/lua/lspconfig/configs/hoon_ls.lua +++ b/lua/lspconfig/configs/hoon_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'hoon-language-server' }, filetypes = { 'hoon' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/htmx.lua b/lua/lspconfig/configs/htmx.lua index fe7e1de59f..e984141e01 100644 --- a/lua/lspconfig/configs/htmx.lua +++ b/lua/lspconfig/configs/htmx.lua @@ -52,9 +52,7 @@ return { 'templ', }, single_file_support = true, - root_dir = function(fname) - return util.find_git_ancestor(fname) - end, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/hyprls.lua b/lua/lspconfig/configs/hyprls.lua index 669e0e9b6b..9585f37c13 100644 --- a/lua/lspconfig/configs/hyprls.lua +++ b/lua/lspconfig/configs/hyprls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'hyprls', '--stdio' }, filetypes = { 'hyprlang' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/janet_lsp.lua b/lua/lspconfig/configs/janet_lsp.lua index bc9c5bda6d..8b7480da80 100644 --- a/lua/lspconfig/configs/janet_lsp.lua +++ b/lua/lspconfig/configs/janet_lsp.lua @@ -7,7 +7,7 @@ return { '--stdio', }, filetypes = { 'janet' }, - root_dir = util.root_pattern 'project.janet' or util.find_git_ancestor(), + root_dir = util.root_pattern 'project.janet' or vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/jinja_lsp.lua b/lua/lspconfig/configs/jinja_lsp.lua index e372ee9b70..bd14f75ae7 100644 --- a/lua/lspconfig/configs/jinja_lsp.lua +++ b/lua/lspconfig/configs/jinja_lsp.lua @@ -5,7 +5,7 @@ return { name = 'jinja_lsp', cmd = { 'jinja-lsp' }, filetypes = { 'jinja' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/jqls.lua b/lua/lspconfig/configs/jqls.lua index ec1bcaf7f6..7a320a0d62 100644 --- a/lua/lspconfig/configs/jqls.lua +++ b/lua/lspconfig/configs/jqls.lua @@ -3,7 +3,7 @@ return { default_config = { cmd = { 'jq-lsp' }, filetypes = { 'jq' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/jsonls.lua b/lua/lspconfig/configs/jsonls.lua index 17b7e2b67d..a936904d31 100644 --- a/lua/lspconfig/configs/jsonls.lua +++ b/lua/lspconfig/configs/jsonls.lua @@ -7,7 +7,7 @@ return { init_options = { provideFormatter = true, }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/jsonnet_ls.lua b/lua/lspconfig/configs/jsonnet_ls.lua index ebb6ba5d2e..4c0c83d74d 100644 --- a/lua/lspconfig/configs/jsonnet_ls.lua +++ b/lua/lspconfig/configs/jsonnet_ls.lua @@ -15,7 +15,7 @@ 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.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 c1a170a5a0..291303c2b5 100644 --- a/lua/lspconfig/configs/julials.lua +++ b/lua/lspconfig/configs/julials.lua @@ -98,7 +98,7 @@ 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.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 655cc9632e..3b5d76c097 100644 --- a/lua/lspconfig/configs/koka.lua +++ b/lua/lspconfig/configs/koka.lua @@ -5,7 +5,7 @@ return { cmd = { 'koka', '--language-server', '--lsstdio' }, filetypes = { 'koka' }, single_file_support = true, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { diff --git a/lua/lspconfig/configs/kulala_ls.lua b/lua/lspconfig/configs/kulala_ls.lua index fb5651acd3..08b6bab1b0 100644 --- a/lua/lspconfig/configs/kulala_ls.lua +++ b/lua/lspconfig/configs/kulala_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'kulala-ls', '--stdio' }, filetypes = { 'http' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/lean3ls.lua b/lua/lspconfig/configs/lean3ls.lua index 645fbbbee5..7a13b250c5 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.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 c29b641769..c439f51215 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.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 ac8c456054..d564ec93fa 100644 --- a/lua/lspconfig/configs/lelwel_ls.lua +++ b/lua/lspconfig/configs/lelwel_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'lelwel-ls' }, filetypes = { 'llw' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/lemminx.lua b/lua/lspconfig/configs/lemminx.lua index d8846d12a4..9555e0b772 100644 --- a/lua/lspconfig/configs/lemminx.lua +++ b/lua/lspconfig/configs/lemminx.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'lemminx' }, filetypes = { 'xml', 'xsd', 'xsl', 'xslt', 'svg' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/lexical.lua b/lua/lspconfig/configs/lexical.lua index 4d28873775..f85945682a 100644 --- a/lua/lspconfig/configs/lexical.lua +++ b/lua/lspconfig/configs/lexical.lua @@ -4,7 +4,7 @@ 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.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 4a3ae0f4fc..4c813c01e3 100644 --- a/lua/lspconfig/configs/ltex.lua +++ b/lua/lspconfig/configs/ltex.lua @@ -53,7 +53,7 @@ return { default_config = { cmd = { 'ltex-ls' }, filetypes = filetypes, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], 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 c6555b99da..5ae22532ec 100644 --- a/lua/lspconfig/configs/ltex_plus.lua +++ b/lua/lspconfig/configs/ltex_plus.lua @@ -37,7 +37,7 @@ return { 'typst', 'xhtml', }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], 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 64b8144917..f9f4d40088 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.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 0579723d4a..6d626e2d0c 100644 --- a/lua/lspconfig/configs/luau_lsp.lua +++ b/lua/lspconfig/configs/luau_lsp.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'luau-lsp', 'lsp' }, filetypes = { 'luau' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/marko-js.lua b/lua/lspconfig/configs/marko-js.lua index 5693078b83..0729adc091 100644 --- a/lua/lspconfig/configs/marko-js.lua +++ b/lua/lspconfig/configs/marko-js.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'marko-language-server', '--stdio' }, filetypes = { 'marko' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/marksman.lua b/lua/lspconfig/configs/marksman.lua index 7a6b9e3efe..f87b360c47 100644 --- a/lua/lspconfig/configs/marksman.lua +++ b/lua/lspconfig/configs/marksman.lua @@ -9,7 +9,7 @@ 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.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 cadc60b0b0..3bfb0ba0e3 100644 --- a/lua/lspconfig/configs/matlab_ls.lua +++ b/lua/lspconfig/configs/matlab_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'matlab-language-server', '--stdio' }, filetypes = { 'matlab' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = false, settings = { MATLAB = { diff --git a/lua/lspconfig/configs/mint.lua b/lua/lspconfig/configs/mint.lua index 7fde1c406e..6e14379a78 100644 --- a/lua/lspconfig/configs/mint.lua +++ b/lua/lspconfig/configs/mint.lua @@ -5,7 +5,7 @@ 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.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 22a712688a..2e585c1c60 100644 --- a/lua/lspconfig/configs/mlir_lsp_server.lua +++ b/lua/lspconfig/configs/mlir_lsp_server.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'mlir-lsp-server' }, filetypes = { 'mlir' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], 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 e24d634fb2..527278398f 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.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 513bbeb957..7a44f4ca7b 100644 --- a/lua/lspconfig/configs/mm0_ls.lua +++ b/lua/lspconfig/configs/mm0_ls.lua @@ -3,7 +3,7 @@ local util = require 'lspconfig.util' return { default_config = { cmd = { 'mm0-rs', 'server' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], filetypes = { 'metamath-zero' }, single_file_support = true, }, diff --git a/lua/lspconfig/configs/mojo.lua b/lua/lspconfig/configs/mojo.lua index 9e975585b2..4e4e43ce44 100644 --- a/lua/lspconfig/configs/mojo.lua +++ b/lua/lspconfig/configs/mojo.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'mojo-lsp-server' }, filetypes = { 'mojo' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], 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 244efce962..a4f2c6db7b 100644 --- a/lua/lspconfig/configs/msbuild_project_tools_server.lua +++ b/lua/lspconfig/configs/msbuild_project_tools_server.lua @@ -5,7 +5,7 @@ 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 = vim.fs.find('.git', { path = fname, upward = true })[1], init_options = {}, cmd = { 'dotnet', host_dll_name }, }, diff --git a/lua/lspconfig/configs/mutt_ls.lua b/lua/lspconfig/configs/mutt_ls.lua index 91af9c5f1f..0d771df00a 100644 --- a/lua/lspconfig/configs/mutt_ls.lua +++ b/lua/lspconfig/configs/mutt_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'mutt-language-server' }, filetypes = { 'muttrc', 'neomuttrc' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, settings = {}, }, diff --git a/lua/lspconfig/configs/nextls.lua b/lua/lspconfig/configs/nextls.lua index acecaf763e..91c3185156 100644 --- a/lua/lspconfig/configs/nextls.lua +++ b/lua/lspconfig/configs/nextls.lua @@ -4,7 +4,7 @@ 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.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 9dfc0b5dc9..5288e095c2 100644 --- a/lua/lspconfig/configs/nginx_language_server.lua +++ b/lua/lspconfig/configs/nginx_language_server.lua @@ -5,7 +5,7 @@ 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.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 391abfee6e..12f9167ff1 100644 --- a/lua/lspconfig/configs/nickel_ls.lua +++ b/lua/lspconfig/configs/nickel_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'nls' }, filetypes = { 'ncl', 'nickel' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { diff --git a/lua/lspconfig/configs/nim_langserver.lua b/lua/lspconfig/configs/nim_langserver.lua index f3c48273c5..ba4a4a14a6 100644 --- a/lua/lspconfig/configs/nim_langserver.lua +++ b/lua/lspconfig/configs/nim_langserver.lua @@ -5,7 +5,7 @@ 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.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 3c1aeb2bed..18f998744b 100644 --- a/lua/lspconfig/configs/nimls.lua +++ b/lua/lspconfig/configs/nimls.lua @@ -5,7 +5,7 @@ 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.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 c5859df8c3..853d28a6eb 100644 --- a/lua/lspconfig/configs/nixd.lua +++ b/lua/lspconfig/configs/nixd.lua @@ -6,7 +6,7 @@ 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.find('.git', { path = fname, upward = true })[1] end, }, docs = { diff --git a/lua/lspconfig/configs/nushell.lua b/lua/lspconfig/configs/nushell.lua index 2e3a923719..666c469244 100644 --- a/lua/lspconfig/configs/nushell.lua +++ b/lua/lspconfig/configs/nushell.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'nu', '--lsp' }, filetypes = { 'nu' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/opencl_ls.lua b/lua/lspconfig/configs/opencl_ls.lua index 9d59bebc6d..3d65ac812c 100644 --- a/lua/lspconfig/configs/opencl_ls.lua +++ b/lua/lspconfig/configs/opencl_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'opencl-language-server' }, filetypes = { 'opencl' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/openscad_ls.lua b/lua/lspconfig/configs/openscad_ls.lua index e5ca9cac50..22f83b2592 100644 --- a/lua/lspconfig/configs/openscad_ls.lua +++ b/lua/lspconfig/configs/openscad_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'openscad-language-server' }, filetypes = { 'openscad' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/openscad_lsp.lua b/lua/lspconfig/configs/openscad_lsp.lua index f00a3774d2..f573520d85 100644 --- a/lua/lspconfig/configs/openscad_lsp.lua +++ b/lua/lspconfig/configs/openscad_lsp.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'openscad-lsp', '--stdio' }, filetypes = { 'openscad' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/pact_ls.lua b/lua/lspconfig/configs/pact_ls.lua index 1eb89769a9..f5c72d2a36 100644 --- a/lua/lspconfig/configs/pact_ls.lua +++ b/lua/lspconfig/configs/pact_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'pact-lsp' }, filetypes = { 'pact' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/perlls.lua b/lua/lspconfig/configs/perlls.lua index 88f015e2ac..d8c4d9e7ed 100644 --- a/lua/lspconfig/configs/perlls.lua +++ b/lua/lspconfig/configs/perlls.lua @@ -20,7 +20,7 @@ return { }, }, filetypes = { 'perl' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/perlnavigator.lua b/lua/lspconfig/configs/perlnavigator.lua index d3c8f7f0d5..be516dcebe 100644 --- a/lua/lspconfig/configs/perlnavigator.lua +++ b/lua/lspconfig/configs/perlnavigator.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'perlnavigator' }, filetypes = { 'perl' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/perlpls.lua b/lua/lspconfig/configs/perlpls.lua index b10c8f0274..425eae0695 100644 --- a/lua/lspconfig/configs/perlpls.lua +++ b/lua/lspconfig/configs/perlpls.lua @@ -10,7 +10,7 @@ return { }, }, filetypes = { 'perl' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/pest_ls.lua b/lua/lspconfig/configs/pest_ls.lua index 4a56ea9fca..a6db4e8648 100644 --- a/lua/lspconfig/configs/pest_ls.lua +++ b/lua/lspconfig/configs/pest_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'pest-language-server' }, filetypes = { 'pest' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/pkgbuild_language_server.lua b/lua/lspconfig/configs/pkgbuild_language_server.lua index 4a51b84dcf..209622c14f 100644 --- a/lua/lspconfig/configs/pkgbuild_language_server.lua +++ b/lua/lspconfig/configs/pkgbuild_language_server.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'pkgbuild-language-server' }, filetypes = { 'PKGBUILD' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/poryscript_pls.lua b/lua/lspconfig/configs/poryscript_pls.lua index 0291876855..e5e4b4dbb1 100644 --- a/lua/lspconfig/configs/poryscript_pls.lua +++ b/lua/lspconfig/configs/poryscript_pls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'poryscript-pls' }, filetypes = { 'pory' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/powershell_es.lua b/lua/lspconfig/configs/powershell_es.lua index f39424ae7f..5ac6d8eb38 100644 --- a/lua/lspconfig/configs/powershell_es.lua +++ b/lua/lspconfig/configs/powershell_es.lua @@ -22,7 +22,7 @@ return { end, filetypes = { 'ps1' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/prosemd_lsp.lua b/lua/lspconfig/configs/prosemd_lsp.lua index 639bf1ee2f..4dbaac902c 100644 --- a/lua/lspconfig/configs/prosemd_lsp.lua +++ b/lua/lspconfig/configs/prosemd_lsp.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'prosemd-lsp', '--stdio' }, filetypes = { 'markdown' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/protols.lua b/lua/lspconfig/configs/protols.lua index 2df30b0df2..7d8dbe9312 100644 --- a/lua/lspconfig/configs/protols.lua +++ b/lua/lspconfig/configs/protols.lua @@ -5,7 +5,7 @@ return { cmd = { 'protols' }, filetypes = { 'proto' }, single_file_support = true, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/pylsp.lua b/lua/lspconfig/configs/pylsp.lua index d76b2ea331..fa860dda1c 100644 --- a/lua/lspconfig/configs/pylsp.lua +++ b/lua/lspconfig/configs/pylsp.lua @@ -12,7 +12,7 @@ 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.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 34a4914b4c..8745e8957e 100644 --- a/lua/lspconfig/configs/pylyzer.lua +++ b/lua/lspconfig/configs/pylyzer.lua @@ -12,7 +12,7 @@ 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.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 b0451594e8..f08baed6bf 100644 --- a/lua/lspconfig/configs/qmlls.lua +++ b/lua/lspconfig/configs/qmlls.lua @@ -4,9 +4,7 @@ return { default_config = { cmd = { 'qmlls' }, filetypes = { 'qml', 'qmljs' }, - root_dir = function(fname) - return util.find_git_ancestor(fname) - end, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/r_language_server.lua b/lua/lspconfig/configs/r_language_server.lua index c2aca7a8d5..325f2526b1 100644 --- a/lua/lspconfig/configs/r_language_server.lua +++ b/lua/lspconfig/configs/r_language_server.lua @@ -5,7 +5,7 @@ return { 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.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 25bd0ab1f4..c2a1d1191a 100644 --- a/lua/lspconfig/configs/racket_langserver.lua +++ b/lua/lspconfig/configs/racket_langserver.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'racket', '--lib', 'racket-langserver' }, filetypes = { 'racket', 'scheme' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/raku_navigator.lua b/lua/lspconfig/configs/raku_navigator.lua index 26ff321e6a..35ed71f9f0 100644 --- a/lua/lspconfig/configs/raku_navigator.lua +++ b/lua/lspconfig/configs/raku_navigator.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = {}, filetypes = { 'raku' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/regal.lua b/lua/lspconfig/configs/regal.lua index 93c4c959b6..dc0ed3aeaa 100644 --- a/lua/lspconfig/configs/regal.lua +++ b/lua/lspconfig/configs/regal.lua @@ -5,7 +5,7 @@ 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.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 63c6a3f055..02dbab78ed 100644 --- a/lua/lspconfig/configs/regols.lua +++ b/lua/lspconfig/configs/regols.lua @@ -5,7 +5,7 @@ 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.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 fe6a8b8a48..c3e73fbb15 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.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 95dc86e297..b7e3acd894 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.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 e5d09a7f67..84ee4a38fa 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.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 874ac1405c..21e4234507 100644 --- a/lua/lspconfig/configs/roc_ls.lua +++ b/lua/lspconfig/configs/roc_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'roc_language_server' }, filetypes = { 'roc' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/rome.lua b/lua/lspconfig/configs/rome.lua index 7a9092d5a2..8751269934 100644 --- a/lua/lspconfig/configs/rome.lua +++ b/lua/lspconfig/configs/rome.lua @@ -14,7 +14,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.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 dd295f3f80..a1e8c5035d 100644 --- a/lua/lspconfig/configs/ruff.lua +++ b/lua/lspconfig/configs/ruff.lua @@ -4,7 +4,8 @@ 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 = util.root_pattern('pyproject.toml', 'ruff.toml', '.ruff.toml') + or vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, settings = {}, }, diff --git a/lua/lspconfig/configs/ruff_lsp.lua b/lua/lspconfig/configs/ruff_lsp.lua index 7d92aa8810..fde234c300 100644 --- a/lua/lspconfig/configs/ruff_lsp.lua +++ b/lua/lspconfig/configs/ruff_lsp.lua @@ -4,7 +4,8 @@ return { default_config = { cmd = { 'ruff-lsp' }, filetypes = { 'python' }, - root_dir = util.root_pattern('pyproject.toml', 'ruff.toml') or util.find_git_ancestor(), + root_dir = util.root_pattern('pyproject.toml', 'ruff.toml') + or vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, settings = {}, }, diff --git a/lua/lspconfig/configs/rune_languageserver.lua b/lua/lspconfig/configs/rune_languageserver.lua index 8564838b57..8843baf95e 100644 --- a/lua/lspconfig/configs/rune_languageserver.lua +++ b/lua/lspconfig/configs/rune_languageserver.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'rune-languageserver' }, filetypes = { 'rune' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/rust_analyzer.lua b/lua/lspconfig/configs/rust_analyzer.lua index 8bcde6c9b8..d83d9334bc 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.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 fae264116d..34fb92b58e 100644 --- a/lua/lspconfig/configs/salt_ls.lua +++ b/lua/lspconfig/configs/salt_ls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'salt_lsp_server' }, filetypes = { 'sls' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/scry.lua b/lua/lspconfig/configs/scry.lua index eaa2acd90f..4962d77c7d 100644 --- a/lua/lspconfig/configs/scry.lua +++ b/lua/lspconfig/configs/scry.lua @@ -5,7 +5,7 @@ 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.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 9b320bd5f2..c808c5e99a 100644 --- a/lua/lspconfig/configs/slangd.lua +++ b/lua/lspconfig/configs/slangd.lua @@ -9,7 +9,7 @@ return { default_config = { cmd = { bin_name }, filetypes = { 'hlsl', 'shaderslang' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/slint_lsp.lua b/lua/lspconfig/configs/slint_lsp.lua index bdd36597ba..04b8e64123 100644 --- a/lua/lspconfig/configs/slint_lsp.lua +++ b/lua/lspconfig/configs/slint_lsp.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'slint-lsp' }, filetypes = { 'slint' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/solang.lua b/lua/lspconfig/configs/solang.lua index 36609715f2..172f36dc6e 100644 --- a/lua/lspconfig/configs/solang.lua +++ b/lua/lspconfig/configs/solang.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'solang', 'language-server', '--target', 'evm' }, filetypes = { 'solidity' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/sourcekit.lua b/lua/lspconfig/configs/sourcekit.lua index 2cf39e93c7..162547294e 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.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 44340f134c..303c332b92 100644 --- a/lua/lspconfig/configs/sourcery.lua +++ b/lua/lspconfig/configs/sourcery.lua @@ -38,7 +38,7 @@ 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.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 36b828f149..72abad8945 100644 --- a/lua/lspconfig/configs/starlark_rust.lua +++ b/lua/lspconfig/configs/starlark_rust.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'starlark', '--lsp' }, filetypes = { 'star', 'bzl', 'BUILD.bazel' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/superhtml.lua b/lua/lspconfig/configs/superhtml.lua index 3403e91960..0b4944b085 100644 --- a/lua/lspconfig/configs/superhtml.lua +++ b/lua/lspconfig/configs/superhtml.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'superhtml', 'lsp' }, filetypes = { 'superhtml', 'html' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/svlangserver.lua b/lua/lspconfig/configs/svlangserver.lua index fe356589ca..5c838d2255 100644 --- a/lua/lspconfig/configs/svlangserver.lua +++ b/lua/lspconfig/configs/svlangserver.lua @@ -20,7 +20,7 @@ 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.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 86243f99ad..1a76337b13 100644 --- a/lua/lspconfig/configs/svls.lua +++ b/lua/lspconfig/configs/svls.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'svls' }, filetypes = { 'verilog', 'systemverilog' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/tabby_ml.lua b/lua/lspconfig/configs/tabby_ml.lua index f56a8299bf..d60d5b9d94 100644 --- a/lua/lspconfig/configs/tabby_ml.lua +++ b/lua/lspconfig/configs/tabby_ml.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'tabby-agent', '--lsp', '--stdio' }, filetypes = {}, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/tailwindcss.lua b/lua/lspconfig/configs/tailwindcss.lua index 8ef9a08187..321721635e 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.find('.git', { path = fname, upward = true })[1] end, }, docs = { diff --git a/lua/lspconfig/configs/taplo.lua b/lua/lspconfig/configs/taplo.lua index 4e7f11ed0e..3016604284 100644 --- a/lua/lspconfig/configs/taplo.lua +++ b/lua/lspconfig/configs/taplo.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'taplo', 'lsp', 'stdio' }, filetypes = { 'toml' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/tblgen_lsp_server.lua b/lua/lspconfig/configs/tblgen_lsp_server.lua index 73022d4a28..d25a48e407 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.find('.git', { path = fname, upward = true })[1] end, }, docs = { diff --git a/lua/lspconfig/configs/textlsp.lua b/lua/lspconfig/configs/textlsp.lua index e4f7a91aad..b70bb7dfb4 100644 --- a/lua/lspconfig/configs/textlsp.lua +++ b/lua/lspconfig/configs/textlsp.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'textlsp' }, filetypes = { 'text', 'tex', 'org' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, settings = { textLSP = { diff --git a/lua/lspconfig/configs/tilt_ls.lua b/lua/lspconfig/configs/tilt_ls.lua index a507ead2e5..011a0e2bb3 100644 --- a/lua/lspconfig/configs/tilt_ls.lua +++ b/lua/lspconfig/configs/tilt_ls.lua @@ -1,10 +1,8 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'tilt', 'lsp', 'start' }, filetypes = { 'tiltfile' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/tinymist.lua b/lua/lspconfig/configs/tinymist.lua index 9fdb6d31f8..193f2fde8b 100644 --- a/lua/lspconfig/configs/tinymist.lua +++ b/lua/lspconfig/configs/tinymist.lua @@ -4,7 +4,7 @@ return { default_config = { cmd = { 'tinymist' }, filetypes = { 'typst' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/turtle_ls.lua b/lua/lspconfig/configs/turtle_ls.lua index 220953fd71..cdf17df651 100644 --- a/lua/lspconfig/configs/turtle_ls.lua +++ b/lua/lspconfig/configs/turtle_ls.lua @@ -30,9 +30,7 @@ return { default_config = { cmd = { 'node', full_path, '--stdio' }, filetypes = { 'turtle', 'ttl' }, - root_dir = function(fname) - return util.find_git_ancestor(fname) - end, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/typst_lsp.lua b/lua/lspconfig/configs/typst_lsp.lua index 4d8ec17d23..73bea3e721 100644 --- a/lua/lspconfig/configs/typst_lsp.lua +++ b/lua/lspconfig/configs/typst_lsp.lua @@ -5,9 +5,7 @@ return { cmd = { 'typst-lsp' }, filetypes = { 'typst' }, single_file_support = true, - root_dir = function(fname) - return util.find_git_ancestor(fname) - end, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/uiua.lua b/lua/lspconfig/configs/uiua.lua index 54d23ac938..ebf08d2c65 100644 --- a/lua/lspconfig/configs/uiua.lua +++ b/lua/lspconfig/configs/uiua.lua @@ -5,7 +5,7 @@ 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.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 022daab0eb..319425facd 100644 --- a/lua/lspconfig/configs/ungrammar_languageserver.lua +++ b/lua/lspconfig/configs/ungrammar_languageserver.lua @@ -1,10 +1,8 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'ungrammar-languageserver', '--stdio' }, filetypes = { 'ungrammar' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, settings = { ungrammar = { diff --git a/lua/lspconfig/configs/uvls.lua b/lua/lspconfig/configs/uvls.lua index 3b5422074f..df87baea72 100644 --- a/lua/lspconfig/configs/uvls.lua +++ b/lua/lspconfig/configs/uvls.lua @@ -1,9 +1,8 @@ -local util = require 'lspconfig.util' return { default_config = { cmd = { 'uvls' }, filetypes = { 'uvl' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/vacuum.lua b/lua/lspconfig/configs/vacuum.lua index d0a6afcd20..a504d638f9 100644 --- a/lua/lspconfig/configs/vacuum.lua +++ b/lua/lspconfig/configs/vacuum.lua @@ -1,10 +1,8 @@ -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 = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/vala_ls.lua b/lua/lspconfig/configs/vala_ls.lua index 9428b6bc00..38b19923fe 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.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 7d381b6e1f..b93bf9e94a 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.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 3c4823a876..1a31d3c77d 100644 --- a/lua/lspconfig/configs/verible.lua +++ b/lua/lspconfig/configs/verible.lua @@ -1,10 +1,8 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'verible-verilog-ls' }, filetypes = { 'systemverilog', 'verilog' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/veridian.lua b/lua/lspconfig/configs/veridian.lua index 231d0c056a..73bf2cb82d 100644 --- a/lua/lspconfig/configs/veridian.lua +++ b/lua/lspconfig/configs/veridian.lua @@ -1,10 +1,8 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'veridian' }, filetypes = { 'systemverilog', 'verilog' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/veryl_ls.lua b/lua/lspconfig/configs/veryl_ls.lua index 8db5f38bc4..9acba2a9ad 100644 --- a/lua/lspconfig/configs/veryl_ls.lua +++ b/lua/lspconfig/configs/veryl_ls.lua @@ -1,10 +1,8 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'veryl-ls' }, filetypes = { 'veryl' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/vimls.lua b/lua/lspconfig/configs/vimls.lua index bcee4cca31..de7619d09b 100644 --- a/lua/lspconfig/configs/vimls.lua +++ b/lua/lspconfig/configs/vimls.lua @@ -1,10 +1,8 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'vim-language-server', '--stdio' }, filetypes = { 'vim' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, init_options = { isNeovim = true, diff --git a/lua/lspconfig/configs/vscoqtop.lua b/lua/lspconfig/configs/vscoqtop.lua index c741c6c719..c145a28c24 100644 --- a/lua/lspconfig/configs/vscoqtop.lua +++ b/lua/lspconfig/configs/vscoqtop.lua @@ -5,7 +5,7 @@ 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.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 e3e8daf143..aabc1135ae 100644 --- a/lua/lspconfig/configs/yamlls.lua +++ b/lua/lspconfig/configs/yamlls.lua @@ -1,10 +1,8 @@ -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 = vim.fs.find('.git', { path = fname, upward = true })[1], 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 13f6fa3570..e5807065c4 100644 --- a/lua/lspconfig/configs/yang_lsp.lua +++ b/lua/lspconfig/configs/yang_lsp.lua @@ -1,10 +1,8 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'yang-language-server' }, filetypes = { 'yang' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], }, docs = { description = [[ diff --git a/lua/lspconfig/configs/yls.lua b/lua/lspconfig/configs/yls.lua index 86cb3377d7..058558801a 100644 --- a/lua/lspconfig/configs/yls.lua +++ b/lua/lspconfig/configs/yls.lua @@ -1,10 +1,8 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'yls', '-vv' }, filetypes = { 'yar', 'yara' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/ziggy.lua b/lua/lspconfig/configs/ziggy.lua index 5effe2819d..ba3a095a9e 100644 --- a/lua/lspconfig/configs/ziggy.lua +++ b/lua/lspconfig/configs/ziggy.lua @@ -1,10 +1,8 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'ziggy', 'lsp' }, filetypes = { 'ziggy' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/configs/ziggy_schema.lua b/lua/lspconfig/configs/ziggy_schema.lua index cd19cf35d5..0b694ce66c 100644 --- a/lua/lspconfig/configs/ziggy_schema.lua +++ b/lua/lspconfig/configs/ziggy_schema.lua @@ -1,10 +1,8 @@ -local util = require 'lspconfig.util' - return { default_config = { cmd = { 'ziggy', 'lsp', '--schema' }, filetypes = { 'ziggy_schema' }, - root_dir = util.find_git_ancestor, + root_dir = vim.fs.find('.git', { path = fname, upward = true })[1], single_file_support = true, }, docs = { diff --git a/lua/lspconfig/util.lua b/lua/lspconfig/util.lua index 4bd82b5be8..11efec179b 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.find('.git', { path = startpath, upward = true })[1]` instead +function M.find_git_ancestor(startpath) + return vim.fs.find('.git', { path = startpath, upward = true })[1] +end + return M