don't show a lightbulb if there is jsconfig.json file in the root folder, #5699

This commit is contained in:
Johannes Rieken 2016-04-25 16:50:03 +02:00
parent 3522fc00a6
commit 42c1c1b2a2

View file

@ -9,6 +9,7 @@ import * as vscode from 'vscode';
import {ITypescriptServiceClient} from '../typescriptService';
import {loadMessageBundle} from 'vscode-nls';
import {dirname, join} from 'path';
import {exists} from 'fs';
const localize = loadMessageBundle();
const selector = ['javascript', 'javascriptreact'];
@ -75,35 +76,42 @@ export function create(client: ITypescriptServiceClient, isOpen:(path:string)=>P
}
if (!configFileName) {
currentHint = {
message: localize('hintCreate', "Create a jsconfig.json to enable richer IntelliSense and code navigation across the entire workspace."),
options: [{
title: localize('ignore.cmdCreate', 'Ignore'),
execute: () => {
client.logTelemetry('js.hintProjectCreation.ignored');
projectHinted[configFileName] = true;
projectHintIgnoreList.push(configFileName);
memento.update('projectHintIgnoreList', projectHintIgnoreList);
item.hide();
}
}, {
title: localize('cmdCreate', "Create jsconfig.json"),
execute: () => {
client.logTelemetry('js.hintProjectCreation.accepted');
projectHinted[configFileName] = true;
item.hide();
exists(join(vscode.workspace.rootPath, 'jsconfig.json'), exists => {
// don't hint if there is a global jsconfig-file. We can get here due
// to TypeScript bugs or jsconfig configurations
if (exists) {
return;
}
currentHint = {
message: localize('hintCreate', "Create a jsconfig.json to enable richer IntelliSense and code navigation across the entire workspace."),
options: [{
title: localize('ignore.cmdCreate', 'Ignore'),
execute: () => {
client.logTelemetry('js.hintProjectCreation.ignored');
projectHinted[configFileName] = true;
projectHintIgnoreList.push(configFileName);
memento.update('projectHintIgnoreList', projectHintIgnoreList);
item.hide();
}
}, {
title: localize('cmdCreate', "Create jsconfig.json"),
execute: () => {
client.logTelemetry('js.hintProjectCreation.accepted');
projectHinted[configFileName] = true;
item.hide();
return vscode.workspace.openTextDocument(vscode.Uri.parse('untitled:' + join(vscode.workspace.rootPath, 'jsconfig.json')))
.then(doc => vscode.window.showTextDocument(doc, vscode.ViewColumn.Three))
.then(editor => editor.edit(builder => builder.insert(new vscode.Position(0, 0), defaultConfig)));
}
}]
};
item.text = '$(light-bulb)';
item.tooltip = localize('hintCreate.tooltip', "Create a jsconfig.json to enable richer IntelliSense and code navigation across the entire workspace.");
item.color = '#A5DF3B';
item.show();
client.logTelemetry('js.hintProjectCreation');
return vscode.workspace.openTextDocument(vscode.Uri.parse('untitled:' + join(vscode.workspace.rootPath, 'jsconfig.json')))
.then(doc => vscode.window.showTextDocument(doc, vscode.ViewColumn.Three))
.then(editor => editor.edit(builder => builder.insert(new vscode.Position(0, 0), defaultConfig)));
}
}]
};
item.text = '$(light-bulb)';
item.tooltip = localize('hintCreate.tooltip', "Create a jsconfig.json to enable richer IntelliSense and code navigation across the entire workspace.");
item.color = '#A5DF3B';
item.show();
client.logTelemetry('js.hintProjectCreation');
});
} else if (fileNames.length > fileLimit) {