@eclipse-glsp/client 2.6.0-next.436 → 2.6.0-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/command-palette.css +2 -0
- package/css/navigation.css +2 -2
- package/css/search.css +12 -3
- package/lib/base/auto-complete/auto-complete-widget.d.ts +2 -2
- package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
- package/lib/base/auto-complete/auto-complete-widget.js +5 -2
- package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
- package/lib/base/auto-complete/autocomplete-suggestion-provider.d.ts +56 -0
- package/lib/base/auto-complete/autocomplete-suggestion-provider.d.ts.map +1 -0
- package/lib/base/auto-complete/autocomplete-suggestion-provider.js +56 -0
- package/lib/base/auto-complete/autocomplete-suggestion-provider.js.map +1 -0
- package/lib/base/auto-complete/base-autocomplete-palette.d.ts +4 -9
- package/lib/base/auto-complete/base-autocomplete-palette.d.ts.map +1 -1
- package/lib/base/auto-complete/base-autocomplete-palette.js +2 -2
- package/lib/base/auto-complete/base-autocomplete-palette.js.map +1 -1
- package/lib/base/default.module.d.ts.map +1 -1
- package/lib/base/default.module.js +4 -0
- package/lib/base/default.module.js.map +1 -1
- package/lib/base/messages.json +68 -57
- package/lib/base/tool-manager/tool-manager.d.ts +2 -2
- package/lib/base/tool-manager/tool-manager.d.ts.map +1 -1
- package/lib/base/tool-manager/tool-manager.js +4 -4
- package/lib/base/tool-manager/tool-manager.js.map +1 -1
- package/lib/default-modules.d.ts +1 -1
- package/lib/default-modules.d.ts.map +1 -1
- package/lib/default-modules.js +4 -1
- package/lib/default-modules.js.map +1 -1
- package/lib/features/accessibility/accessibility-module.d.ts.map +1 -1
- package/lib/features/accessibility/accessibility-module.js +2 -4
- package/lib/features/accessibility/accessibility-module.js.map +1 -1
- package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-palette.d.ts +21 -15
- package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-palette.d.ts.map +1 -1
- package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-palette.js +59 -45
- package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-palette.js.map +1 -1
- package/lib/features/accessibility/element-navigation/diagram-navigation-tool.d.ts.map +1 -1
- package/lib/features/accessibility/element-navigation/diagram-navigation-tool.js +2 -3
- package/lib/features/accessibility/element-navigation/diagram-navigation-tool.js.map +1 -1
- package/lib/features/accessibility/{keyboard-pointer/keyboard-pointer-module.d.ts → keyboard/keyboard-module.d.ts} +2 -2
- package/lib/features/accessibility/keyboard/keyboard-module.d.ts.map +1 -0
- package/lib/features/accessibility/{keyboard-pointer/keyboard-pointer-module.js → keyboard/keyboard-module.js} +7 -4
- package/lib/features/accessibility/keyboard/keyboard-module.js.map +1 -0
- package/lib/features/accessibility/keyboard-grid/keyboard-grid-search-palette.d.ts +15 -12
- package/lib/features/accessibility/keyboard-grid/keyboard-grid-search-palette.d.ts.map +1 -1
- package/lib/features/accessibility/keyboard-grid/keyboard-grid-search-palette.js +40 -22
- package/lib/features/accessibility/keyboard-grid/keyboard-grid-search-palette.js.map +1 -1
- package/lib/features/accessibility/keyboard-grid/keyboard-node-grid.d.ts +1 -1
- package/lib/features/accessibility/keyboard-grid/keyboard-node-grid.js +2 -2
- package/lib/features/accessibility/keyboard-grid/keyboard-node-grid.js.map +1 -1
- package/lib/features/command-palette/command-palette.d.ts +3 -1
- package/lib/features/command-palette/command-palette.d.ts.map +1 -1
- package/lib/features/command-palette/command-palette.js +37 -0
- package/lib/features/command-palette/command-palette.js.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.d.ts +4 -4
- package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
- package/lib/features/context-menu/delete-element-context-menu.js +6 -2
- package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.d.ts +4 -4
- package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
- package/lib/features/context-menu/server-context-menu-provider.js +4 -5
- package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -5
- package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
- package/lib/features/copy-paste/copy-paste-context-menu.js +16 -11
- package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
- package/{src/features/accessibility/edge-autocomplete/edge-autocomplete-context.ts → lib/features/search-palette/search-palette-key-listener.d.ts} +5 -9
- package/lib/features/search-palette/search-palette-key-listener.d.ts.map +1 -0
- package/lib/features/search-palette/search-palette-key-listener.js +45 -0
- package/lib/features/search-palette/search-palette-key-listener.js.map +1 -0
- package/lib/features/{accessibility/search → search-palette}/search-palette-module.d.ts +4 -3
- package/lib/features/search-palette/search-palette-module.d.ts.map +1 -0
- package/lib/features/search-palette/search-palette-module.js +39 -0
- package/lib/features/search-palette/search-palette-module.js.map +1 -0
- package/lib/features/search-palette/search-palette.d.ts +51 -0
- package/lib/features/search-palette/search-palette.d.ts.map +1 -0
- package/lib/features/search-palette/search-palette.js +141 -0
- package/lib/features/search-palette/search-palette.js.map +1 -0
- package/{src/base/auto-complete/autocomplete-suggestion-providers.ts → lib/features/search-palette/suggestions/edge-element-suggestions.d.ts} +11 -22
- package/lib/features/search-palette/suggestions/edge-element-suggestions.d.ts.map +1 -0
- package/lib/features/search-palette/suggestions/edge-element-suggestions.js +72 -0
- package/lib/features/search-palette/suggestions/edge-element-suggestions.js.map +1 -0
- package/lib/features/search-palette/suggestions/named-element-suggestions.d.ts +30 -0
- package/lib/features/search-palette/suggestions/named-element-suggestions.d.ts.map +1 -0
- package/lib/features/search-palette/suggestions/named-element-suggestions.js +83 -0
- package/lib/features/search-palette/suggestions/named-element-suggestions.js.map +1 -0
- package/lib/features/validation/marker-navigator.d.ts +3 -3
- package/lib/features/validation/marker-navigator.d.ts.map +1 -1
- package/lib/features/validation/marker-navigator.js +8 -7
- package/lib/features/validation/marker-navigator.js.map +1 -1
- package/lib/features/viewport/reposition.d.ts.map +1 -1
- package/lib/features/viewport/reposition.js +1 -5
- package/lib/features/viewport/reposition.js.map +1 -1
- package/lib/index.d.ts +7 -6
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -6
- package/lib/index.js.map +1 -1
- package/lib/standalone-modules.d.ts +1 -1
- package/lib/standalone-modules.d.ts.map +1 -1
- package/lib/standalone-modules.js +2 -0
- package/lib/standalone-modules.js.map +1 -1
- package/package.json +4 -4
- package/src/base/auto-complete/auto-complete-widget.ts +7 -4
- package/src/base/auto-complete/autocomplete-suggestion-provider.ts +86 -0
- package/src/base/auto-complete/base-autocomplete-palette.ts +6 -6
- package/src/base/default.module.ts +5 -0
- package/src/base/messages.json +68 -57
- package/src/base/tool-manager/tool-manager.ts +4 -4
- package/src/default-modules.ts +4 -1
- package/src/features/accessibility/accessibility-module.ts +1 -3
- package/src/features/accessibility/edge-autocomplete/edge-autocomplete-palette.ts +75 -52
- package/src/features/accessibility/element-navigation/diagram-navigation-tool.ts +2 -4
- package/src/features/accessibility/{keyboard-pointer/keyboard-pointer-module.ts → keyboard/keyboard-module.ts} +12 -5
- package/src/features/accessibility/keyboard-grid/keyboard-grid-search-palette.ts +36 -22
- package/src/features/accessibility/keyboard-grid/keyboard-node-grid.ts +3 -3
- package/src/features/command-palette/command-palette.ts +41 -1
- package/src/features/context-menu/delete-element-context-menu.ts +9 -5
- package/src/features/context-menu/server-context-menu-provider.ts +8 -9
- package/src/features/copy-paste/copy-paste-context-menu.ts +21 -17
- package/src/features/{accessibility/search/search-palette-module.ts → search-palette/search-palette-key-listener.ts} +15 -14
- package/src/features/search-palette/search-palette-module.ts +48 -0
- package/src/features/search-palette/search-palette.ts +164 -0
- package/src/features/search-palette/suggestions/edge-element-suggestions.ts +71 -0
- package/src/features/search-palette/suggestions/named-element-suggestions.ts +88 -0
- package/src/features/validation/marker-navigator.ts +9 -8
- package/src/features/viewport/reposition.ts +1 -7
- package/src/index.ts +7 -6
- package/src/standalone-modules.ts +2 -0
- package/lib/base/auto-complete/autocomplete-suggestion-providers.d.ts +0 -35
- package/lib/base/auto-complete/autocomplete-suggestion-providers.d.ts.map +0 -1
- package/lib/base/auto-complete/autocomplete-suggestion-providers.js +0 -18
- package/lib/base/auto-complete/autocomplete-suggestion-providers.js.map +0 -1
- package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-context.d.ts +0 -23
- package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-context.d.ts.map +0 -1
- package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-context.js +0 -18
- package/lib/features/accessibility/edge-autocomplete/edge-autocomplete-context.js.map +0 -1
- package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-module.d.ts.map +0 -1
- package/lib/features/accessibility/keyboard-pointer/keyboard-pointer-module.js.map +0 -1
- package/lib/features/accessibility/search/search-palette-module.d.ts.map +0 -1
- package/lib/features/accessibility/search/search-palette-module.js +0 -32
- package/lib/features/accessibility/search/search-palette-module.js.map +0 -1
- package/lib/features/accessibility/search/search-palette.d.ts +0 -51
- package/lib/features/accessibility/search/search-palette.d.ts.map +0 -1
- package/lib/features/accessibility/search/search-palette.js +0 -186
- package/lib/features/accessibility/search/search-palette.js.map +0 -1
- package/lib/features/accessibility/search/search-tool.d.ts +0 -33
- package/lib/features/accessibility/search/search-tool.d.ts.map +0 -1
- package/lib/features/accessibility/search/search-tool.js +0 -84
- package/lib/features/accessibility/search/search-tool.js.map +0 -1
- package/src/features/accessibility/search/search-palette.ts +0 -218
- package/src/features/accessibility/search/search-tool.ts +0 -74
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2023-2025 Business Informatics Group (TU Wien) and others.
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made available under the
|
|
5
|
-
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
*
|
|
8
|
-
* This Source Code may also be made available under the following Secondary
|
|
9
|
-
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
* with the GNU Classpath Exception which is available at
|
|
12
|
-
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
*
|
|
14
|
-
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
-
********************************************************************************/
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
Action,
|
|
19
|
-
CenterAction,
|
|
20
|
-
GModelElement,
|
|
21
|
-
GModelRoot,
|
|
22
|
-
GNode,
|
|
23
|
-
LabeledAction,
|
|
24
|
-
SelectAction,
|
|
25
|
-
SelectAllAction,
|
|
26
|
-
codiconCSSString,
|
|
27
|
-
isNameable,
|
|
28
|
-
name,
|
|
29
|
-
toArray
|
|
30
|
-
} from '@eclipse-glsp/sprotty';
|
|
31
|
-
import { injectable } from 'inversify';
|
|
32
|
-
import { isEqual } from 'lodash';
|
|
33
|
-
import { BaseAutocompletePalette } from '../../../base/auto-complete/base-autocomplete-palette';
|
|
34
|
-
|
|
35
|
-
import { AutocompleteSuggestion, IAutocompleteSuggestionProvider } from '../../../base/auto-complete/autocomplete-suggestion-providers';
|
|
36
|
-
import { applyCssClasses, deleteCssClasses } from '../../../base/feedback/css-feedback';
|
|
37
|
-
import { messages } from '../../../base/messages';
|
|
38
|
-
import { RepositionAction } from '../../../features/viewport/reposition';
|
|
39
|
-
import { GEdge } from '../../../model';
|
|
40
|
-
|
|
41
|
-
const CSS_SEARCH_HIDDEN = 'search-hidden';
|
|
42
|
-
const CSS_SEARCH_HIGHLIGHTED = 'search-highlighted';
|
|
43
|
-
|
|
44
|
-
export class RevealNamedElementAutocompleteSuggestionProvider implements IAutocompleteSuggestionProvider {
|
|
45
|
-
async retrieveSuggestions(root: Readonly<GModelRoot>, text: string): Promise<AutocompleteSuggestion[]> {
|
|
46
|
-
const nameables = toArray(root.index.all().filter(element => isNameable(element)));
|
|
47
|
-
return nameables.map(nameable => ({
|
|
48
|
-
element: nameable,
|
|
49
|
-
action: {
|
|
50
|
-
label: `[${nameable.type}] ${name(nameable) ?? '<no-name>'}`,
|
|
51
|
-
actions: this.getActions(nameable),
|
|
52
|
-
icon: codiconCSSString('eye')
|
|
53
|
-
}
|
|
54
|
-
}));
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
protected getActions(nameable: GModelElement): Action[] {
|
|
58
|
-
return [SelectAction.create({ selectedElementsIDs: [nameable.id] }), CenterAction.create([nameable.id], { retainZoom: true })];
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export class RevealNodesWithoutNameAutocompleteSuggestionProvider implements IAutocompleteSuggestionProvider {
|
|
62
|
-
async retrieveSuggestions(root: Readonly<GModelRoot>, text: string): Promise<AutocompleteSuggestion[]> {
|
|
63
|
-
const nodes = toArray(root.index.all().filter(element => !isNameable(element) && element instanceof GNode));
|
|
64
|
-
return nodes.map(node => ({
|
|
65
|
-
element: node,
|
|
66
|
-
action: {
|
|
67
|
-
label: `[${node.type}]`,
|
|
68
|
-
actions: this.getActions(node),
|
|
69
|
-
icon: codiconCSSString('symbol-namespace')
|
|
70
|
-
}
|
|
71
|
-
}));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
protected getActions(nameable: GModelElement): Action[] {
|
|
75
|
-
return [SelectAction.create({ selectedElementsIDs: [nameable.id] }), CenterAction.create([nameable.id], { retainZoom: true })];
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export class RevealEdgeElementAutocompleteSuggestionProvider implements IAutocompleteSuggestionProvider {
|
|
80
|
-
async retrieveSuggestions(root: Readonly<GModelRoot>, text: string): Promise<AutocompleteSuggestion[]> {
|
|
81
|
-
const edges = toArray(root.index.all().filter(element => element instanceof GEdge)) as GEdge[];
|
|
82
|
-
return edges.map(edge => ({
|
|
83
|
-
element: edge,
|
|
84
|
-
action: {
|
|
85
|
-
label: `[${edge.type}] ${this.getEdgeLabel(root, edge)}`,
|
|
86
|
-
actions: this.getActions(edge),
|
|
87
|
-
icon: codiconCSSString('arrow-both')
|
|
88
|
-
}
|
|
89
|
-
}));
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
protected getActions(edge: GEdge): Action[] {
|
|
93
|
-
return [SelectAction.create({ selectedElementsIDs: [edge.id] }), CenterAction.create([edge.sourceId, edge.targetId])];
|
|
94
|
-
}
|
|
95
|
-
protected getEdgeLabel(root: Readonly<GModelRoot>, edge: GEdge): string {
|
|
96
|
-
let sourceName = '';
|
|
97
|
-
let targetName = '';
|
|
98
|
-
|
|
99
|
-
const sourceNode = root.index.getById(edge.sourceId);
|
|
100
|
-
const targetNode = root.index.getById(edge.targetId);
|
|
101
|
-
|
|
102
|
-
if (sourceNode !== undefined) {
|
|
103
|
-
sourceName = name(sourceNode) ?? sourceNode.type;
|
|
104
|
-
}
|
|
105
|
-
if (targetNode !== undefined) {
|
|
106
|
-
targetName = name(targetNode) ?? targetNode.type;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return sourceName + ' -> ' + targetName;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
@injectable()
|
|
113
|
-
export class SearchAutocompletePalette extends BaseAutocompletePalette {
|
|
114
|
-
static readonly ID = 'search-autocomplete-palette';
|
|
115
|
-
|
|
116
|
-
protected cachedSuggestions: AutocompleteSuggestion[] = [];
|
|
117
|
-
|
|
118
|
-
id(): string {
|
|
119
|
-
return SearchAutocompletePalette.ID;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
protected override initializeContents(containerElement: HTMLElement): void {
|
|
123
|
-
super.initializeContents(containerElement);
|
|
124
|
-
|
|
125
|
-
this.autocompleteWidget.inputField.placeholder = messages.search.placeholder;
|
|
126
|
-
containerElement.setAttribute('aria-label', messages.search.label);
|
|
127
|
-
}
|
|
128
|
-
protected getSuggestionProviders(root: Readonly<GModelRoot>, input: string): IAutocompleteSuggestionProvider[] {
|
|
129
|
-
return [
|
|
130
|
-
new RevealNamedElementAutocompleteSuggestionProvider(),
|
|
131
|
-
new RevealEdgeElementAutocompleteSuggestionProvider(),
|
|
132
|
-
new RevealNodesWithoutNameAutocompleteSuggestionProvider()
|
|
133
|
-
];
|
|
134
|
-
}
|
|
135
|
-
protected async retrieveSuggestions(root: Readonly<GModelRoot>, input: string): Promise<LabeledAction[]> {
|
|
136
|
-
const providers = this.getSuggestionProviders(root, input);
|
|
137
|
-
const suggestions = (await Promise.all(providers.map(provider => provider.retrieveSuggestions(root, input)))).flat(1);
|
|
138
|
-
|
|
139
|
-
this.cachedSuggestions = suggestions;
|
|
140
|
-
|
|
141
|
-
return suggestions.map(s => s.action);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
protected override async visibleSuggestionsChanged(root: Readonly<GModelRoot>, labeledActions: LabeledAction[]): Promise<void> {
|
|
145
|
-
await this.applyCSS(this.getHiddenElements(root, this.getSuggestionsFromLabeledActions(labeledActions)), CSS_SEARCH_HIDDEN);
|
|
146
|
-
await this.deleteCSS(
|
|
147
|
-
this.getSuggestionsFromLabeledActions(labeledActions).map(s => s.element),
|
|
148
|
-
CSS_SEARCH_HIDDEN
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
protected override async selectedSuggestionChanged(
|
|
153
|
-
root: Readonly<GModelRoot>,
|
|
154
|
-
labeledAction?: LabeledAction | undefined
|
|
155
|
-
): Promise<void> {
|
|
156
|
-
await this.deleteAllCSS(root, CSS_SEARCH_HIGHLIGHTED);
|
|
157
|
-
if (labeledAction !== undefined) {
|
|
158
|
-
const suggestions = this.getSuggestionsFromLabeledActions([labeledAction]);
|
|
159
|
-
|
|
160
|
-
const actions: RepositionAction[] = [];
|
|
161
|
-
suggestions.map(currElem => actions.push(RepositionAction.create([currElem.element.id])));
|
|
162
|
-
|
|
163
|
-
this.actionDispatcher.dispatchAll(actions);
|
|
164
|
-
await this.applyCSS(
|
|
165
|
-
suggestions.map(s => s.element),
|
|
166
|
-
CSS_SEARCH_HIGHLIGHTED
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
public override show(root: Readonly<GModelRoot>, ...contextElementIds: string[]): void {
|
|
172
|
-
this.actionDispatcher.dispatch(SelectAllAction.create(false));
|
|
173
|
-
|
|
174
|
-
super.show(root, ...contextElementIds);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
public override hide(): void {
|
|
178
|
-
if (this.root !== undefined) {
|
|
179
|
-
this.deleteAllCSS(this.root, CSS_SEARCH_HIDDEN);
|
|
180
|
-
this.deleteAllCSS(this.root, CSS_SEARCH_HIGHLIGHTED);
|
|
181
|
-
this.autocompleteWidget.inputField.value = '';
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
super.hide();
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
protected applyCSS(elements: GModelElement[], cssClass: string): Promise<void> {
|
|
188
|
-
const actions = elements.map(element => applyCssClasses(element, cssClass));
|
|
189
|
-
return this.actionDispatcher.dispatchAll(actions);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
protected deleteCSS(elements: GModelElement[], cssClass: string): Promise<void> {
|
|
193
|
-
const actions = elements.map(element => deleteCssClasses(element, cssClass));
|
|
194
|
-
return this.actionDispatcher.dispatchAll(actions);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
protected deleteAllCSS(root: Readonly<GModelRoot>, cssClass: string): Promise<void> {
|
|
198
|
-
const actions = toArray(root.index.all().map(element => deleteCssClasses(element, cssClass)));
|
|
199
|
-
return this.actionDispatcher.dispatchAll(actions);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
protected getSuggestionsFromLabeledActions(labeledActions: LabeledAction[]): AutocompleteSuggestion[] {
|
|
203
|
-
return this.cachedSuggestions.filter(c => labeledActions.find(s => isEqual(s, c.action)));
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
protected getHiddenSuggestionsFromLabeledActions(labeledActions: LabeledAction[]): AutocompleteSuggestion[] {
|
|
207
|
-
return this.cachedSuggestions.filter(c => !labeledActions.find(s => isEqual(s, c.action)));
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
protected getHiddenElements(root: Readonly<GModelRoot>, suggestions: AutocompleteSuggestion[]): GModelElement[] {
|
|
211
|
-
return toArray(
|
|
212
|
-
root.index
|
|
213
|
-
.all()
|
|
214
|
-
.filter(element => element instanceof GNode || element instanceof GEdge)
|
|
215
|
-
.filter(element => suggestions.find(suggestion => suggestion.element.id === element.id) === undefined)
|
|
216
|
-
);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2023-2025 Business Informatics Group (TU Wien) and others.
|
|
3
|
-
*
|
|
4
|
-
* This program and the accompanying materials are made available under the
|
|
5
|
-
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
*
|
|
8
|
-
* This Source Code may also be made available under the following Secondary
|
|
9
|
-
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
* with the GNU Classpath Exception which is available at
|
|
12
|
-
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
*
|
|
14
|
-
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
-
********************************************************************************/
|
|
16
|
-
|
|
17
|
-
import { Action, GModelElement, KeyListener, matchesKeystroke, SetUIExtensionVisibilityAction, TYPES } from '@eclipse-glsp/sprotty';
|
|
18
|
-
import { inject, injectable } from 'inversify';
|
|
19
|
-
import { messages, repeatOnMessagesUpdated } from '../../../base/messages';
|
|
20
|
-
import type { IShortcutManager } from '../../../base/shortcuts/shortcuts-manager';
|
|
21
|
-
import { BaseTool } from '../../tools/base-tools';
|
|
22
|
-
import { SearchAutocompletePalette } from './search-palette';
|
|
23
|
-
|
|
24
|
-
@injectable()
|
|
25
|
-
export class SearchAutocompletePaletteTool extends BaseTool {
|
|
26
|
-
static readonly ID = 'glsp.search-autocomplete-palette-tool';
|
|
27
|
-
static readonly TOKEN = Symbol.for(SearchAutocompletePaletteTool.ID);
|
|
28
|
-
|
|
29
|
-
protected readonly keyListener = new SearchAutocompletePaletteKeyListener(this);
|
|
30
|
-
@inject(TYPES.IShortcutManager)
|
|
31
|
-
protected readonly shortcutManager: IShortcutManager;
|
|
32
|
-
|
|
33
|
-
get id(): string {
|
|
34
|
-
return SearchAutocompletePaletteTool.ID;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
enable(): void {
|
|
38
|
-
this.toDisposeOnDisable.push(
|
|
39
|
-
this.keyTool.registerListener(this.keyListener),
|
|
40
|
-
repeatOnMessagesUpdated(() =>
|
|
41
|
-
this.shortcutManager.register(SearchAutocompletePaletteTool.TOKEN, [
|
|
42
|
-
{
|
|
43
|
-
shortcuts: ['CTRL', 'F'],
|
|
44
|
-
description: messages.search.shortcut_activate,
|
|
45
|
-
group: messages.shortcut.group_search,
|
|
46
|
-
position: 0
|
|
47
|
-
}
|
|
48
|
-
])
|
|
49
|
-
)
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export class SearchAutocompletePaletteKeyListener extends KeyListener {
|
|
55
|
-
constructor(protected tool: SearchAutocompletePaletteTool) {
|
|
56
|
-
super();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
override keyDown(element: GModelElement, event: KeyboardEvent): Action[] {
|
|
60
|
-
if (this.matchesSearchActivateKeystroke(event)) {
|
|
61
|
-
return [
|
|
62
|
-
SetUIExtensionVisibilityAction.create({
|
|
63
|
-
extensionId: SearchAutocompletePalette.ID,
|
|
64
|
-
visible: true
|
|
65
|
-
})
|
|
66
|
-
];
|
|
67
|
-
}
|
|
68
|
-
return [];
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
protected matchesSearchActivateKeystroke(event: KeyboardEvent): boolean {
|
|
72
|
-
return matchesKeystroke(event, 'KeyF', 'ctrl');
|
|
73
|
-
}
|
|
74
|
-
}
|