-- Return the node_modules path for this project. If the project root contains a -- frontend/ directory, assume node_modules lives there. function Get_project_node_modules_path() local root_path = vim.fn.getcwd() local frontend_path = root_path .. "/frontend" local is_frontend = vim.fn.isdirectory(frontend_path) ~= 0 local base_path = root_path if is_frontend then base_path = frontend_path end return base_path .. "/node_modules" end -- Return the project's go module path from go.mod, or an empty string if the file cannot be read. function Get_project_go_module_path() local root_path = vim.fn.getcwd() local mod_path = root_path .. "/go.mod" if vim.fn.filereadable(mod_path) == 0 then return "" end local file = io.open(mod_path, "r") if file == nil then return "" end io.input(file) -- The first line of go.mod, something like: -- module github.com/username/repo local line = io.read() io.close(file) local match = string.match(line, "^module (.+)") if match == nil then return "" end return match end