Merge branch 'main' of labs.scarif.space:chris/nvim

This commit is contained in:
Chris
2025-09-08 09:22:01 +01:00
3 changed files with 29 additions and 9 deletions

View File

@@ -4,14 +4,26 @@ local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local function get_psr4_root()
local handle = io.popen [[php -r "echo array_keys(json_decode(file_get_contents('composer.json'), true)['autoload']['psr-4'])[0];"]]
local ns_root = handle and handle:read '*a' or ''
if handle then
handle:close()
end
ns_root = ns_root:gsub('\\$', '') -- Remove trailing backslash
return ns_root
end
local function psr_namespace(args, snip)
local path = snip.env.TM_FILENAME_FULL or ''
local root = '/src/'
local ns = path:match(root .. '(.*)/[^/]+%.php$')
local composer_root = get_psr4_root()
-- Find the directory mapped by composer.json
local root_dir = composer_root:gsub('\\', '/')
local ns = path:match(root_dir .. '/(.*)/[^/]+%.php$')
if ns then
return ns:gsub('/', '\\')
return composer_root .. '\\' .. ns:gsub('/', '\\')
else
return 'App'
return composer_root ~= '' and composer_root or 'App'
end
end