diff --git a/extensions/typescript-language-features/package.json b/extensions/typescript-language-features/package.json
index f5516fd5f98..a5147d60f8e 100644
--- a/extensions/typescript-language-features/package.json
+++ b/extensions/typescript-language-features/package.json
@@ -17,13 +17,15 @@
],
"dependencies": {
"jsonc-parser": "^2.0.1",
+ "rimraf": "^2.6.3",
"semver": "5.5.1",
"vscode-extension-telemetry": "0.1.1",
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "8.0.33",
+ "@types/node": "^12.0.2",
"@types/semver": "^5.5.0",
+ "@types/rimraf": "2.0.2",
"vscode": "^1.1.10"
},
"scripts": {
@@ -750,4 +752,4 @@
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/typescript-language-features/src/extension.ts b/extensions/typescript-language-features/src/extension.ts
index 782aa98106d..a4ec5f1bc0e 100644
--- a/extensions/typescript-language-features/src/extension.ts
+++ b/extensions/typescript-language-features/src/extension.ts
@@ -10,6 +10,8 @@ import { LanguageConfigurationManager } from './features/languageConfiguration';
import TypeScriptTaskProviderManager from './features/task';
import TypeScriptServiceClientHost from './typeScriptServiceClientHost';
import { flatten } from './utils/arrays';
+import * as electron from './utils/electron';
+import * as rimraf from 'rimraf';
import { CommandManager } from './utils/commandManager';
import * as fileSchemes from './utils/fileSchemes';
import { standardLanguageDescriptions } from './utils/languageDescription';
@@ -128,4 +130,8 @@ function isSupportedDocument(
return false;
}
return fileSchemes.isSupportedScheme(document.uri.scheme);
+}
+
+export function deactivate() {
+ rimraf.sync(electron.getInstanceDir());
}
\ No newline at end of file
diff --git a/extensions/typescript-language-features/src/typings/ref.d.ts b/extensions/typescript-language-features/src/typings/ref.d.ts
index 954bab971e3..c9849d48e08 100644
--- a/extensions/typescript-language-features/src/typings/ref.d.ts
+++ b/extensions/typescript-language-features/src/typings/ref.d.ts
@@ -5,4 +5,3 @@
///
///
-///
diff --git a/extensions/typescript-language-features/src/utils/electron.ts b/extensions/typescript-language-features/src/utils/electron.ts
index ff69c8c8cc9..3a1ece8f726 100644
--- a/extensions/typescript-language-features/src/utils/electron.ts
+++ b/extensions/typescript-language-features/src/utils/electron.ts
@@ -22,8 +22,21 @@ const getRootTempDir = (() => {
};
})();
+export const getInstanceDir = (() => {
+ let dir: string | undefined;
+ return () => {
+ if (!dir) {
+ dir = path.join(getRootTempDir(), temp.makeRandomHexString(20));
+ }
+ if (!fs.existsSync(dir)) {
+ fs.mkdirSync(dir);
+ }
+ return dir;
+ };
+})();
+
export function getTempFile(prefix: string): string {
- return path.join(getRootTempDir(), `${prefix}-${temp.makeRandomHexString(20)}.tmp`);
+ return path.join(getInstanceDir(), `${prefix}-${temp.makeRandomHexString(20)}.tmp`);
}
function generatePatchedEnv(env: any, modulePath: string): any {
diff --git a/extensions/typescript-language-features/yarn.lock b/extensions/typescript-language-features/yarn.lock
index 62a9ee588d1..968cb9074cd 100644
--- a/extensions/typescript-language-features/yarn.lock
+++ b/extensions/typescript-language-features/yarn.lock
@@ -2,10 +2,37 @@
# yarn lockfile v1
-"@types/node@8.0.33":
- version "8.0.33"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.33.tgz#1126e94374014e54478092830704f6ea89df04cd"
- integrity sha512-vmCdO8Bm1ExT+FWfC9sd9r4jwqM7o97gGy2WBshkkXbf/2nLAJQUrZfIhw27yVOtLUev6kSZc4cav/46KbDd8A==
+"@types/events@*":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
+ integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
+
+"@types/glob@*":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
+ integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==
+ dependencies:
+ "@types/events" "*"
+ "@types/minimatch" "*"
+ "@types/node" "*"
+
+"@types/minimatch@*":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
+ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
+
+"@types/node@*", "@types/node@^12.0.2":
+ version "12.0.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.2.tgz#3452a24edf9fea138b48fad4a0a028a683da1e40"
+ integrity sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA==
+
+"@types/rimraf@2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.2.tgz#7f0fc3cf0ff0ad2a99bb723ae1764f30acaf8b6e"
+ integrity sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==
+ dependencies:
+ "@types/glob" "*"
+ "@types/node" "*"
"@types/semver@^5.5.0":
version "5.5.0"
@@ -630,6 +657,18 @@ glob@^5.0.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^7.1.3:
+ version "7.1.4"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
+ integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
glogg@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810"
@@ -1490,6 +1529,13 @@ rimraf@2:
dependencies:
glob "^7.0.5"
+rimraf@^2.6.3:
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
+ integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
+ dependencies:
+ glob "^7.1.3"
+
safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"