From 3357f7972651e0484d6ceb57286b202a4c63bf40 Mon Sep 17 00:00:00 2001 From: Edgard Lorraine Messias Date: Fri, 17 May 2019 15:20:33 -0300 Subject: [PATCH] fix: Show alert to work with code-server --- src/vscodeModules.ts | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/vscodeModules.ts b/src/vscodeModules.ts index 12b53b53..8c777989 100644 --- a/src/vscodeModules.ts +++ b/src/vscodeModules.ts @@ -6,13 +6,21 @@ import * as vscode from "vscode"; const appRoot = vscode.env.appRoot; -// Try load only in VSCode node_modules, like .vsix files (without dev dependencies) -module.paths = [ - path.join(appRoot, "node_modules.asar"), - path.join(appRoot, "node_modules"), // VSCode < 1.21.0 -]; +function loadVSCodeModule(id: string) { + try { + return require(`${appRoot}/node_modules.asar/${id}`); + } catch (ea) { + // Ignore + } -import * as iconv from "iconv-lite"; -import * as jschardet from "jschardet"; + const baseDir = path.dirname(process.execPath); + try { + module.paths.unshift(`${baseDir}/node_modules`); + return require(id); + } catch (eb) { + vscode.window.showErrorMessage(`Missing dependency, go to "${baseDir}" and run: npm install ${id}`); + } +} -export { iconv, jschardet }; +export const iconv = loadVSCodeModule("iconv-lite") as typeof import("iconv-lite"); +export const jschardet = loadVSCodeModule("jschardet") as typeof import("jschardet");