Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/notebook/browser/controller/variablesActions.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { localize2 } from '../../../../../nls.js';
7
import { MenuId, registerAction2 } from '../../../../../platform/actions/common/actions.js';
8
import { ContextKeyExpr } from '../../../../../platform/contextkey/common/contextkey.js';
9
import { ServicesAccessor } from '../../../../../platform/instantiation/common/instantiation.js';
10
import { IViewsService } from '../../../../services/views/common/viewsService.js';
11
import { KERNEL_HAS_VARIABLE_PROVIDER } from '../../common/notebookContextKeys.js';
12
import { NOTEBOOK_VARIABLE_VIEW_ENABLED } from '../contrib/notebookVariables/notebookVariableContextKeys.js';
13
import * as icons from '../notebookIcons.js';
14
15
import { INotebookActionContext, NotebookAction } from './coreActions.js';
16
17
const OPEN_VARIABLES_VIEW_COMMAND_ID = 'notebook.openVariablesView';
18
19
registerAction2(class OpenVariablesViewAction extends NotebookAction {
20
21
constructor() {
22
super({
23
id: OPEN_VARIABLES_VIEW_COMMAND_ID,
24
title: localize2('notebookActions.openVariablesView', "Variables"),
25
icon: icons.variablesViewIcon,
26
menu: [
27
{
28
id: MenuId.InteractiveToolbar,
29
group: 'navigation',
30
when: ContextKeyExpr.and(
31
KERNEL_HAS_VARIABLE_PROVIDER,
32
// jupyter extension currently contributes their own goto variables button
33
ContextKeyExpr.notEquals('jupyter.kernel.isjupyter', true),
34
NOTEBOOK_VARIABLE_VIEW_ENABLED
35
)
36
},
37
{
38
id: MenuId.EditorTitle,
39
order: -1,
40
group: 'navigation',
41
when: ContextKeyExpr.and(
42
KERNEL_HAS_VARIABLE_PROVIDER,
43
// jupyter extension currently contributes their own goto variables button
44
ContextKeyExpr.notEquals('jupyter.kernel.isjupyter', true),
45
ContextKeyExpr.notEquals('config.notebook.globalToolbar', true),
46
NOTEBOOK_VARIABLE_VIEW_ENABLED
47
)
48
},
49
{
50
id: MenuId.NotebookToolbar,
51
order: -1,
52
group: 'navigation',
53
when: ContextKeyExpr.and(
54
KERNEL_HAS_VARIABLE_PROVIDER,
55
// jupyter extension currently contributes their own goto variables button
56
ContextKeyExpr.notEquals('jupyter.kernel.isjupyter', true),
57
ContextKeyExpr.equals('config.notebook.globalToolbar', true),
58
NOTEBOOK_VARIABLE_VIEW_ENABLED
59
)
60
}
61
]
62
});
63
}
64
65
override async runWithContext(accessor: ServicesAccessor, context: INotebookActionContext) {
66
const variableViewId = 'workbench.notebook.variables';
67
accessor.get(IViewsService).openView(variableViewId, true);
68
}
69
});
70
71