def get_suggestion_native_modules(self): path = os.path NODE_MODULES_LIST = path.join(pkg_path,'node_modules.list') try: if os.path.exists(NODE_MODULES_LIST) : print('cache file exists') source = open(NODE_MODULES_LIST) results= json.loads(source.read()) source.close() else : # load native node modules from node jsresult = popen.get_node_output([node_path, path.join(pkg_path, 'node_scripts/get_native_bindings.js')]); jsresult = jsresult.strip().replace("'", '"') # write list to cache file results = json.loads(jsresult) source = open(NODE_MODULES_LIST,'w') source.write(jsresult) source.close() print('write cache file success') result = [ [[ni, ni, 'is_native'] for ni in results], ["native: " + ni for ni in results] ] return result except Exception: print('load native bindings fail') return [[], []]
def run( self, edit, name ): jsresult = popen.get_node_output(['node', os.path.join(pkg_path,'node_scripts/get_target_repo_installed_version.js'), str(name)]) res = jsresult.strip() if res : for sel in self.view.sel() : self.view.replace(edit, sel, res)
def write_es6_import( module_candidate_name, module_rel_path, module_flag ): lens = 0 spos = 0 region = view.sel()[0] line = view.line(region) if module_flag == 'is_relative_file' : # parse file exports path = os.path module_export_names = popen.get_node_output([node_path, path.normpath(path.join(pkg_path,'node_scripts/get_exports_names.js')), path.normpath(path.join(path.dirname(self.full_name), module_rel_path)) ]) module_export_names = module_export_names.strip() if len(module_export_names) == 0 : module_export_names = '* as ' + module_candidate_name print('module_export_names', module_export_names) require_directive = 'import {0} from {1};'.format(module_export_names, get_path(module_rel_path)) else : require_directive = 'import {0} from {1};'.format(module_candidate_name, get_path(module_rel_path)) print(require_directive) if re.search(self.re_require, getthisline(line)) != None : print('this line is require') spos = line.b lens = view.insert(edit, line.b, '\n'+require_directive) elif re.search(self.re_require, getlastline(line)) != None : print('last line is require') spos = line.a lens = view.insert(edit, line.a, require_directive) else : print('last line not require') spos = line.b if re.search(re_empty, getlastline(line)) : lens = view.insert(edit, line.b, require_directive ) else : lens = view.insert(edit, line.b, '\n'+require_directive)
def get_module_last_version(name): res = popen.get_node_output(['node', os.path.join(pkg_path,'node_scripts/get_target_repo_installed_version.js'), str(name)]) return res.strip()