Handle multiple users with /tmp/vscode-typescript

This fixes an issue where the typescript language server fails to load if multiple users launch VS Code on the same Linux machine.

Steps to reproduce:
- Log in as user1
- Launch VS Code
- Log out
- Log in as user2
- Launch VS Code
- It tries to write to files in /tmp/vscode-typescript, but that directory is not writeable because it is owned by user1
- You cannot use TypeScript intellisense

This fix namespaces the directory with the current uid so that each user will get their own. 

On Windows, this shouldn't be an issue anyway since each user gets their own temp directory.
This commit is contained in:
Lee Houghton 2019-06-15 00:36:23 +01:00 committed by GitHub
parent ce6a5e3c00
commit fa4f870501
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -7,13 +7,14 @@ import * as temp from './temp';
import path = require('path');
import fs = require('fs');
import cp = require('child_process');
import process = require('process');
const getRootTempDir = (() => {
let dir: string | undefined;
return () => {
if (!dir) {
dir = temp.getTempFile(`vscode-typescript`);
dir = temp.getTempFile(`vscode-typescript${process.getuid ? process.getuid() : ''}`);
}
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);