/*---------------------------------------------------------
 * Copyright 2022 The Go Authors. All rights reserved.
 * Licensed under the MIT License. See LICENSE in the project root for license information.
 *--------------------------------------------------------*/

import * as vscode from 'vscode';

import { CommandFactory } from '.';

export const toggleGCDetails: CommandFactory = (ctx, goCtx) => {
	return async () => {
		if (!goCtx.languageServerIsRunning) {
			vscode.window.showErrorMessage(
				'"Go: Toggle gc details" command is available only when the language server is running'
			);
			return;
		}
		const doc = vscode.window.activeTextEditor?.document.uri.toString();
		if (!doc || !doc.endsWith('.go')) {
			vscode.window.showErrorMessage('"Go: Toggle gc details" command cannot run when no Go file is open.');
			return;
		}
		try {
			await vscode.commands.executeCommand('gopls.gc_details', doc);
		} catch (e) {
			vscode.window.showErrorMessage(`"Go: Toggle gc details" command failed: ${e}`);
		}
	};
};
