neovim

Personal neovim configuration files
git clone git://gtms.dev/neovim
Log | Files | Refs

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