path_mapping.lua (1282B)
1 local M = {} 2 3 local function readfile(path) 4 local file = io.open(path, 'rb') 5 if not file then 6 return nil 7 end 8 local content = file:read('*a') 9 file:close() 10 return content 11 end 12 13 M.load = function() 14 local packages_config = vim.fn.getcwd() .. '/.dart_tool/package_config.json' 15 if vim.fn.filereadable(packages_config) then 16 vim.pretty_print(packages_config) 17 local content = readfile(packages_config) 18 local json = vim.fn.json_decode(content) 19 if not json or not json.packages then 20 return nil 21 end 22 23 local result = {} 24 for _, package in ipairs(json.packages) do 25 local package_path = '' 26 if string.find(package.rootUri, 'file://') then 27 package_path = string.sub(package.rootUri, 8) .. '/' .. package.packageUri; 28 else 29 lckage_path = package.rootUri .. package.packageUri; 30 end 31 result['/packages/' .. package.name .. '/'] = package_path; 32 end 33 34 -- result['packages/build_web_compilers'] = nil 35 -- result['*/dart_sdk.sound.js'] = '/home/tms/.dswitch/channels/stable/versions/2.18.0/dart-sdk/'; 36 -- result['packages/build_web_compilers/src/dev_compiler/dart_sdk.sound.js'] = '/home/tms/.dswitch/channels/stable/versions/2.18.0/dart-sdk/'; 37 38 return result 39 end 40 41 return nil 42 end 43 44 return M