fix: 🥱

This commit is contained in:
dlond 2025-09-03 11:16:05 +12:00 committed by Daniel Lond
parent 2f5b161f71
commit 9e6b01e176
1 changed files with 34 additions and 11 deletions

View File

@ -3,21 +3,44 @@ local M = {}
local util = require 'lspconfig.util'
-- Get clang-wrapper resource-root for Nix environments
local function get_clang_resource_dir()
-- Try to find clang-wrapper's resource-root
local handle = io.popen('ls -d /nix/store/*clang-wrapper*/resource-root 2>/dev/null | head -1')
if handle then
local resource_root = handle:read('*l')
handle:close()
if resource_root and resource_root ~= '' then
return resource_root
end
end
return nil -- Let clangd use its default
end
function M.get_servers()
-- Build clangd command
local clangd_cmd = {
'clangd',
'--query-driver=/nix/store/*/bin/clang*',
'--background-index',
'--clang-tidy',
'--enable-config',
'--fallback-style=llvm',
'--function-arg-placeholders',
'--header-insertion-decorators',
'--header-insertion=iwyu',
}
-- Add resource-dir if in Nix environment
local resource_dir = get_clang_resource_dir()
if resource_dir then
table.insert(clangd_cmd, '--resource-dir=' .. resource_dir)
end
return {
-- C/C++ Language Server
clangd = {
cmd = {
'clangd',
'--query-driver=/nix/store/*/bin/clang*',
'--background-index',
'--clang-tidy',
'--enable-config',
'--fallback-style=llvm',
'--function-arg-placeholders',
'--header-insertion-decorators',
'--header-insertion=iwyu',
},
cmd = clangd_cmd,
filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda' },
-- Look for project markers - clangd will find compile_commands.json itself
root_dir = util.root_pattern(