blob: bfb6fc6a1927ed82d2c183b92a792b6d091d073d [file] [log] [blame]
/*---------------------------------------------------------
* Copyright (C) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------*/
'use strict';
import vscode = require('vscode');
import { GO_MODE } from './goMode';
import { isModSupported } from './goModules';
export let outputChannel = vscode.window.createOutputChannel('Go');
export let diagnosticsStatusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
let statusBarEntry: vscode.StatusBarItem;
const statusBarItemModule = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
statusBarItemModule.text = '$(megaphone) Go Modules';
statusBarItemModule.tooltip =
'Modules is enabled for this project. Click to learn more about Modules support in VS Code.';
statusBarItemModule.command = 'go.open.modulewiki';
export function showHideStatus(editor: vscode.TextEditor) {
if (statusBarEntry) {
if (!editor) {
statusBarEntry.hide();
} else if (vscode.languages.match(GO_MODE, editor.document)) {
statusBarEntry.show();
} else {
statusBarEntry.hide();
}
}
if (editor) {
isModSupported(editor.document.uri).then((isMod) => {
if (isMod) {
statusBarItemModule.show();
} else {
statusBarItemModule.hide();
}
});
} else {
statusBarItemModule.hide();
}
}
export function hideGoStatus() {
if (statusBarEntry) {
statusBarEntry.dispose();
}
}
export function showGoStatus(message: string, command: string, tooltip?: string) {
statusBarEntry = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, Number.MIN_VALUE);
statusBarEntry.text = `$(alert) ${message}`;
statusBarEntry.command = command;
statusBarEntry.tooltip = tooltip;
statusBarEntry.show();
}