@finos/legend-application 10.2.11 → 10.2.13

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.
Files changed (78) hide show
  1. package/lib/application/LegendApplication.d.ts.map +1 -1
  2. package/lib/application/LegendApplication.js +1 -2
  3. package/lib/application/LegendApplication.js.map +1 -1
  4. package/lib/components/ActionAlert.d.ts +1 -0
  5. package/lib/components/ActionAlert.d.ts.map +1 -1
  6. package/lib/components/BlockingAlert.d.ts +1 -0
  7. package/lib/components/BlockingAlert.d.ts.map +1 -1
  8. package/lib/components/LegendApplicationComponentFrameworkProvider.d.ts +6 -0
  9. package/lib/components/LegendApplicationComponentFrameworkProvider.d.ts.map +1 -1
  10. package/lib/components/LegendApplicationComponentFrameworkProvider.js +21 -13
  11. package/lib/components/LegendApplicationComponentFrameworkProvider.js.map +1 -1
  12. package/lib/components/NotificationManager.d.ts +1 -0
  13. package/lib/components/NotificationManager.d.ts.map +1 -1
  14. package/lib/components/VirtualAssistant.d.ts +1 -0
  15. package/lib/components/VirtualAssistant.d.ts.map +1 -1
  16. package/lib/components/shared/TabManager.d.ts +1 -0
  17. package/lib/components/shared/TabManager.d.ts.map +1 -1
  18. package/lib/components/shared/TextSearchAdvancedConfigMenu.d.ts +1 -0
  19. package/lib/components/shared/TextSearchAdvancedConfigMenu.d.ts.map +1 -1
  20. package/lib/const.d.ts +1 -1
  21. package/lib/const.d.ts.map +1 -1
  22. package/lib/const.js +1 -1
  23. package/lib/const.js.map +1 -1
  24. package/lib/index.css +2 -2
  25. package/lib/index.css.map +1 -1
  26. package/lib/index.d.ts +1 -0
  27. package/lib/index.d.ts.map +1 -1
  28. package/lib/index.js +1 -0
  29. package/lib/index.js.map +1 -1
  30. package/lib/stores/ApplicationEvent.d.ts +1 -0
  31. package/lib/stores/ApplicationEvent.d.ts.map +1 -1
  32. package/lib/stores/ApplicationEvent.js +1 -0
  33. package/lib/stores/ApplicationEvent.js.map +1 -1
  34. package/lib/stores/ApplicationStore.d.ts +2 -0
  35. package/lib/stores/ApplicationStore.d.ts.map +1 -1
  36. package/lib/stores/ApplicationStore.js +3 -0
  37. package/lib/stores/ApplicationStore.js.map +1 -1
  38. package/lib/stores/CommandCenter.d.ts +1 -0
  39. package/lib/stores/CommandCenter.d.ts.map +1 -1
  40. package/lib/stores/CommandCenter.js.map +1 -1
  41. package/lib/stores/KeyboardShortcutsService.d.ts +4 -10
  42. package/lib/stores/KeyboardShortcutsService.d.ts.map +1 -1
  43. package/lib/stores/KeyboardShortcutsService.js +36 -33
  44. package/lib/stores/KeyboardShortcutsService.js.map +1 -1
  45. package/lib/stores/LegendApplicationDocumentation.d.ts +1 -0
  46. package/lib/stores/LegendApplicationDocumentation.d.ts.map +1 -1
  47. package/lib/stores/LegendApplicationDocumentation.js +1 -0
  48. package/lib/stores/LegendApplicationDocumentation.js.map +1 -1
  49. package/lib/stores/PureLanguageSupport.d.ts.map +1 -1
  50. package/lib/stores/PureLanguageSupport.js +14 -1
  51. package/lib/stores/PureLanguageSupport.js.map +1 -1
  52. package/lib/stores/TerminalService.d.ts +23 -0
  53. package/lib/stores/TerminalService.d.ts.map +1 -0
  54. package/lib/stores/TerminalService.js +25 -0
  55. package/lib/stores/TerminalService.js.map +1 -0
  56. package/lib/stores/terminal/Terminal.d.ts +155 -0
  57. package/lib/stores/terminal/Terminal.d.ts.map +1 -0
  58. package/lib/stores/terminal/Terminal.js +171 -0
  59. package/lib/stores/terminal/Terminal.js.map +1 -0
  60. package/lib/stores/terminal/XTerm.d.ts +91 -0
  61. package/lib/stores/terminal/XTerm.d.ts.map +1 -0
  62. package/lib/stores/terminal/XTerm.js +693 -0
  63. package/lib/stores/terminal/XTerm.js.map +1 -0
  64. package/package.json +19 -13
  65. package/src/application/LegendApplication.tsx +5 -2
  66. package/src/components/LegendApplicationComponentFrameworkProvider.tsx +24 -18
  67. package/src/const.ts +1 -1
  68. package/src/index.ts +1 -0
  69. package/src/stores/ApplicationEvent.ts +1 -0
  70. package/src/stores/ApplicationStore.ts +4 -1
  71. package/src/stores/CommandCenter.ts +1 -0
  72. package/src/stores/KeyboardShortcutsService.ts +43 -48
  73. package/src/stores/LegendApplicationDocumentation.ts +1 -0
  74. package/src/stores/PureLanguageSupport.ts +15 -1
  75. package/src/stores/TerminalService.ts +30 -0
  76. package/src/stores/terminal/Terminal.ts +259 -0
  77. package/src/stores/terminal/XTerm.ts +880 -0
  78. package/tsconfig.json +3 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XTerm.js","sourceRoot":"","sources":["../../../src/stores/terminal/XTerm.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application",
3
- "version": "10.2.11",
3
+ "version": "10.2.13",
4
4
  "description": "Legend application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -43,9 +43,9 @@
43
43
  "test:watch": "jest --watch"
44
44
  },
45
45
  "dependencies": {
46
- "@finos/legend-art": "5.0.21",
47
- "@finos/legend-graph": "22.2.3",
48
- "@finos/legend-shared": "6.2.15",
46
+ "@finos/legend-art": "5.0.23",
47
+ "@finos/legend-graph": "22.2.5",
48
+ "@finos/legend-shared": "6.2.17",
49
49
  "@types/css-font-loading-module": "0.0.8",
50
50
  "@types/react": "18.0.27",
51
51
  "@types/react-dom": "18.0.10",
@@ -53,7 +53,7 @@
53
53
  "history": "5.3.0",
54
54
  "mobx": "6.7.0",
55
55
  "mobx-react-lite": "3.4.0",
56
- "monaco-editor": "0.34.1",
56
+ "monaco-editor": "0.35.0",
57
57
  "react": "18.2.0",
58
58
  "react-dnd": "16.0.1",
59
59
  "react-dnd-html5-backend": "16.0.1",
@@ -62,18 +62,24 @@
62
62
  "react-router": "5.3.4",
63
63
  "react-router-dom": "5.3.4",
64
64
  "serializr": "3.0.2",
65
- "sql-formatter": "12.1.0"
65
+ "sql-formatter": "12.1.0",
66
+ "xterm": "5.1.0",
67
+ "xterm-addon-fit": "0.7.0",
68
+ "xterm-addon-search": "0.11.0",
69
+ "xterm-addon-unicode11": "0.5.0",
70
+ "xterm-addon-web-links": "0.8.0",
71
+ "xterm-addon-webgl": "0.14.0"
66
72
  },
67
73
  "devDependencies": {
68
- "@finos/legend-dev-utils": "2.0.38",
69
- "@jest/globals": "29.4.1",
74
+ "@finos/legend-dev-utils": "2.0.40",
75
+ "@jest/globals": "29.4.2",
70
76
  "cross-env": "7.0.3",
71
- "eslint": "8.32.0",
72
- "jest": "29.4.1",
77
+ "eslint": "8.33.0",
78
+ "jest": "29.4.2",
73
79
  "npm-run-all": "4.1.5",
74
- "rimraf": "3.0.2",
75
- "sass": "1.57.1",
76
- "typescript": "4.9.4"
80
+ "rimraf": "4.1.2",
81
+ "sass": "1.58.0",
82
+ "typescript": "4.9.5"
77
83
  },
78
84
  "peerDependencies": {
79
85
  "react": "^18.0.0"
@@ -102,8 +102,11 @@ export const setupLegendApplicationUILibrary = async (
102
102
  * this is to ensure
103
103
  */
104
104
  const fontLoadFailureErrorMessage = `Monospaced font '${MONOSPACED_FONT_FAMILY}' has not been loaded properly, text editor display problems might occur`;
105
- await document.fonts
106
- .load(`1em ${MONOSPACED_FONT_FAMILY}`)
105
+ await Promise.all(
106
+ [400, 700].map((weight) =>
107
+ document.fonts.load(`${weight} 1em ${MONOSPACED_FONT_FAMILY}`),
108
+ ),
109
+ )
107
110
  .then(() => {
108
111
  if (document.fonts.check(`1em ${MONOSPACED_FONT_FAMILY}`)) {
109
112
  monacoEditorAPI.remeasureFonts();
@@ -41,26 +41,26 @@ const PLATFORM_NATIVE_KEYBOARD_SHORTCUTS = [
41
41
  'F10', // Chrome: Developer Tools > Sources: Step over next function call
42
42
  'F11', // Chrome: Developer Tools > Sources: Step into next function call
43
43
  'Meta+Shift+KeyP', // Chrome: Developer Tools: Open Command Prompt inside developer tools
44
+ 'Control+Backquote', // Chrome: Developer Tools: Open console
44
45
  'Control+Shift+KeyP',
45
46
  'Meta+KeyB', // Firefox: Open bookmark sidebar
46
47
  'Control+KeyB',
47
48
  'F7', // Firefox: Caret browsing
48
49
  'Alt+F7', // Firefox: Caret browsing (Mac)
49
50
  'Control+Shift+KeyB',
51
+ 'Alt+KeyZ', // Mac: special symbol
50
52
  ];
51
53
 
52
- const buildReactHotkeysConfiguration = (
53
- commandKeyMap: Map<string, string | undefined>,
54
- handlerCreator: (
55
- keyCombination: string,
56
- ) => (keyEvent?: KeyboardEvent) => void,
54
+ const buildHotkeysConfiguration = (
55
+ commandKeyMap: Map<string, string[]>,
56
+ handler: (keyCombination: string, event: KeyboardEvent) => void,
57
57
  ): KeyBindingConfig => {
58
58
  const keyMap: KeyBindingConfig = {};
59
- commandKeyMap.forEach((keyCombination, commandKey) => {
60
- if (keyCombination) {
59
+ commandKeyMap.forEach((keyCombinations, commandKey) => {
60
+ if (keyCombinations.length) {
61
61
  keyMap[commandKey] = {
62
- combinations: [keyCombination],
63
- handler: handlerCreator(keyCombination),
62
+ combinations: keyCombinations,
63
+ handler,
64
64
  };
65
65
  }
66
66
  });
@@ -70,15 +70,21 @@ const buildReactHotkeysConfiguration = (
70
70
  'INTERNAL__PLATFORM_NATIVE_KEYBOARD_COMMAND';
71
71
  keyMap[PLATFORM_NATIVE_KEYBOARD_COMMAND] = {
72
72
  combinations: PLATFORM_NATIVE_KEYBOARD_SHORTCUTS,
73
- handler: (event?: KeyboardEvent) => {
73
+ handler: (keyCombination: string, event: KeyboardEvent) => {
74
74
  // prevent default from potentially clashing key combinations
75
- event?.preventDefault();
75
+ event.preventDefault();
76
76
  },
77
77
  };
78
78
 
79
79
  return keyMap;
80
80
  };
81
81
 
82
+ /**
83
+ * Some elements (e.g. <canvas>) and components that we do not control the implementation
84
+ * might have special logic to prevent `keydown` event bubbling naturally, this
85
+ * method forces those event to surface to the top of the app and being handled
86
+ * by keybinding service
87
+ */
82
88
  export const forceDispatchKeyboardEvent = (event: KeyboardEvent): void => {
83
89
  document
84
90
  .getElementById(APP_CONTAINER_ID)
@@ -108,17 +114,17 @@ export const LegendApplicationComponentFrameworkProvider = observer(
108
114
  document.getElementById(APP_BACKDROP_CONTAINER_ID)
109
115
  : document.getElementById(APP_BACKDROP_CONTAINER_ID);
110
116
 
111
- const keyBindingMap = buildReactHotkeysConfiguration(
117
+ const keyBindingMap = buildHotkeysConfiguration(
112
118
  applicationStore.keyboardShortcutsService.commandKeyMap,
113
- (keyCombination: string) => (event?: KeyboardEvent) => {
119
+ (keyCombination: string, event: KeyboardEvent) => {
114
120
  // prevent default from potentially clashing key combinations with platform native keyboard shortcuts
121
+ // NOTE: Though tempting since it's a good way to simplify and potentially avoid conflicts,
122
+ // we should not call `preventDefault()` because if we have any hotkey sequence which is too short,
123
+ // such as `r`, `a` - we risk blocking some very common interaction, i.e. user typing, or even
124
+ // constructing longer key combinations
115
125
  if (PLATFORM_NATIVE_KEYBOARD_SHORTCUTS.includes(keyCombination)) {
116
- event?.preventDefault();
126
+ event.preventDefault();
117
127
  }
118
- // NOTE: Though tempting since it's a good way to simplify and potentially avoid conflicts,
119
- // we should not call `preventDefault()` because if we have any hotkey which is too short, such as `r`, `a`
120
- // we risk blocking some very common interaction, i.e. user typing, or even constructing longer
121
- // key combinations
122
128
  applicationStore.keyboardShortcutsService.dispatch(keyCombination);
123
129
  },
124
130
  );
package/src/const.ts CHANGED
@@ -26,7 +26,7 @@ export enum EDITOR_THEME {
26
26
  }
27
27
 
28
28
  export enum EDITOR_LANGUAGE {
29
- TEXT = 'text',
29
+ TEXT = 'plaintext',
30
30
  PURE = 'pure',
31
31
  JSON = 'json',
32
32
  JAVA = 'java',
package/src/index.ts CHANGED
@@ -46,6 +46,7 @@ export * from './stores/ApplicationStoreTestUtils.js';
46
46
  export * from './stores/WebApplicationRouter.js';
47
47
  export { PURE_GRAMMAR_TOKEN } from './stores/PureLanguageSupport.js';
48
48
  export * from './stores/PureLanguageTextEditorSupport.js';
49
+ export { DISPLAY_ANSI_ESCAPE } from './stores/terminal/Terminal.js';
49
50
 
50
51
  // ------------------------------------------- Shared components -------------------------------------------
51
52
 
@@ -25,6 +25,7 @@ export enum APPLICATION_EVENT {
25
25
  APPLICATION_DOCUMENTATION_LOAD_SKIPPED = 'application.load.documentation.skipped',
26
26
  APPLICATION_DOCUMENTATION_REQUIREMENT_CHECK_FAILURE = 'application.load.documentation.requirement-check.failure',
27
27
  APPLICATION_KEYBOARD_SHORTCUTS_CONFIGURATION_CHECK_FAILURE = 'application.load.keyboard-shortcuts.configuration-check.failure',
28
+ APPLICATION_TERMINAL_COMMAND_CONFIGURATION_CHECK_FAILURE = 'application.load.terminal-command.configuration-check.failure',
28
29
  APPLICATION_CONTEXTUAL_DOCUMENTATION_LOAD_SKIPPED = 'application.load.contextual-documentation.skipped',
29
30
 
30
31
  APPLICATION_COMMAND_CENTER_REGISTRATION_FAILURE = 'application.command-center.registration.failure',
@@ -37,6 +37,7 @@ import { ApplicationNavigationContextService } from './ApplicationNavigationCont
37
37
  import type { LegendApplicationPlugin } from './LegendApplicationPlugin.js';
38
38
  import { CommandCenter } from './CommandCenter.js';
39
39
  import { KeyboardShortcutsService } from './KeyboardShortcutsService.js';
40
+ import { TerminalService } from './TerminalService.js';
40
41
 
41
42
  export enum ActionAlertType {
42
43
  STANDARD = 'STANDARD',
@@ -127,7 +128,8 @@ export class ApplicationStore<
127
128
  actionAlertInfo?: ActionAlertInfo | undefined;
128
129
 
129
130
  // TODO: consider renaming this to `LogService`
130
- log: Log = new Log();
131
+ log = new Log();
132
+ terminalService: TerminalService;
131
133
 
132
134
  // documentation & help
133
135
  documentationService: DocumentationService;
@@ -183,6 +185,7 @@ export class ApplicationStore<
183
185
  this.pluginManager = pluginManager;
184
186
  // NOTE: set the logger first so other loading could use the configured logger
185
187
  this.log.registerPlugins(pluginManager.getLoggerPlugins());
188
+ this.terminalService = new TerminalService(this);
186
189
 
187
190
  this.navigationContextService = new ApplicationNavigationContextService(
188
191
  this,
@@ -31,6 +31,7 @@ export type CommandConfigEntry = {
31
31
  * See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code
32
32
  */
33
33
  defaultKeyboardShortcut?: string;
34
+ additionalKeyboardShortcuts?: string[];
34
35
  when?: string;
35
36
  };
36
37
  export type KeyedCommandConfigEntry = {
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { addUniqueEntry, LogEvent } from '@finos/legend-shared';
17
+ import { isNonNullable, LogEvent } from '@finos/legend-shared';
18
18
  import { action, makeObservable, observable } from 'mobx';
19
19
  import { APPLICATION_EVENT } from './ApplicationEvent.js';
20
20
  import type { GenericLegendApplicationStore } from './ApplicationStore.js';
@@ -22,17 +22,11 @@ import type { GenericLegendApplicationStore } from './ApplicationStore.js';
22
22
  export class KeyboardShortcutsService {
23
23
  readonly applicationStore: GenericLegendApplicationStore;
24
24
  /**
25
- * NOTE: with this design, the relationship between command and key is many-to-one
26
- * We can have multiple commands being mapped to the same key combination, not the other
27
- * way around
25
+ * NOTE: with this design, the relationship between command and key is many-to-many
26
+ * We can have multiple commands being mapped to the same key combination, and vice versa
28
27
  */
29
28
  readonly keyMap = new Map<string, string[]>();
30
- /**
31
- * NOTE: we want to leave the value of the map as optional because we want
32
- * to use this map to quickly construct the key-binding view: some commands
33
- * don't already have a hotkey
34
- */
35
- readonly commandKeyMap = new Map<string, string | undefined>();
29
+ readonly commandKeyMap = new Map<string, string[]>();
36
30
  isHotkeysBlocked = false;
37
31
 
38
32
  constructor(applicationStore: GenericLegendApplicationStore) {
@@ -40,36 +34,45 @@ export class KeyboardShortcutsService {
40
34
  keyMap: observable,
41
35
  commandKeyMap: observable,
42
36
  isHotkeysBlocked: observable,
43
- updateHotkey: action,
37
+ addHotkey: action,
44
38
  blockGlobalHotkeys: action,
45
39
  unblockGlobalHotkeys: action,
46
40
  });
47
41
 
48
42
  this.applicationStore = applicationStore;
49
- const commandsWithMultipleKeyBindings: string[] = [];
50
43
  this.applicationStore.pluginManager
51
44
  .getApplicationPlugins()
52
45
  .flatMap((plugin) => plugin.getExtraKeyedCommandConfigEntries?.() ?? [])
53
46
  .forEach((entry) => {
54
- if (
55
- entry.content.defaultKeyboardShortcut &&
56
- this.commandKeyMap.get(entry.key)
57
- ) {
58
- addUniqueEntry(commandsWithMultipleKeyBindings, entry.key);
47
+ // NOTE: since we allow mapping multiple commands to the same key combination
48
+ // and when dispatching the command with a particular key combination, we only
49
+ // execute the first matching command, if we override the config, we would need
50
+ // to add them to the beginning of this list.
51
+ // TODO: do validation on hot keys, hot keys which consist only of modifier keys, e.g. `Shift Shift` should not be supported
52
+ const shortcuts = [
53
+ entry.content.defaultKeyboardShortcut,
54
+ ...(entry.content.additionalKeyboardShortcuts ?? []),
55
+ ].filter(isNonNullable);
56
+ if (shortcuts.length) {
57
+ shortcuts.forEach((shortcut) => this.addHotkey(entry.key, shortcut));
58
+ } else {
59
+ if (!this.commandKeyMap.has(entry.key)) {
60
+ this.commandKeyMap.set(entry.key, []);
61
+ }
59
62
  }
60
- this.updateHotkey(entry.key, entry.content.defaultKeyboardShortcut);
61
63
  });
62
64
 
63
- if (commandsWithMultipleKeyBindings.length) {
64
- this.applicationStore.log.warn(
65
- LogEvent.create(
66
- APPLICATION_EVENT.APPLICATION_KEYBOARD_SHORTCUTS_CONFIGURATION_CHECK_FAILURE,
67
- ),
68
- `Found multiple key bindings in configuration for commands:\n${commandsWithMultipleKeyBindings
69
- .map((key) => `- ${key}`)
70
- .join('\n')}`,
71
- );
72
- }
65
+ // Warn when detected multiple commands bound to the same key combination
66
+ Array.from(this.keyMap.entries()).forEach(([keyCombination, commands]) => {
67
+ if (commands.length > 1) {
68
+ this.applicationStore.log.warn(
69
+ LogEvent.create(
70
+ APPLICATION_EVENT.APPLICATION_KEYBOARD_SHORTCUTS_CONFIGURATION_CHECK_FAILURE,
71
+ ),
72
+ `Found multiple commands with key binding '${keyCombination}'`,
73
+ );
74
+ }
75
+ });
73
76
  }
74
77
 
75
78
  blockGlobalHotkeys(): void {
@@ -80,27 +83,19 @@ export class KeyboardShortcutsService {
80
83
  this.isHotkeysBlocked = false;
81
84
  }
82
85
 
83
- updateHotkey(commandKey: string, keyCombination: string | undefined): void {
84
- const currentKeyCombination = this.commandKeyMap.get(commandKey);
85
- this.commandKeyMap.set(commandKey, keyCombination);
86
- // remove old key map
87
- if (currentKeyCombination) {
88
- this.keyMap.set(
89
- currentKeyCombination,
90
- (this.keyMap.get(currentKeyCombination) ?? []).filter(
91
- (key) => key === commandKey,
92
- ),
93
- );
94
- }
86
+ addHotkey(commandKey: string, keyCombination: string): void {
87
+ // add shortcut to command key map
88
+ this.commandKeyMap.set(commandKey, [
89
+ ...(this.commandKeyMap.get(commandKey) ?? []),
90
+ keyCombination,
91
+ ]);
95
92
  // add new key map
96
- if (keyCombination) {
97
- this.keyMap.set(keyCombination, [
98
- ...(this.keyMap.get(keyCombination) ?? []).filter(
99
- (key) => key !== commandKey,
100
- ),
101
- commandKey,
102
- ]);
103
- }
93
+ this.keyMap.set(keyCombination, [
94
+ ...(this.keyMap.get(keyCombination) ?? []).filter(
95
+ (key) => key !== commandKey,
96
+ ),
97
+ commandKey,
98
+ ]);
104
99
  }
105
100
 
106
101
  dispatch(keyCombination: string): void {
@@ -19,6 +19,7 @@ export enum LEGEND_APPLICATION_DOCUMENTATION_KEY {
19
19
  QUESTION_HOW_TO_USE_ADVANCED_SEARCH_SYNTAX = 'question.how-to-use-advanced-search-syntax',
20
20
  QUESTION_WHEN_TO_CONFIGURE_PLATFORM_VERSIONS = 'question.when-to-configure-project-platform-dependencies-versions',
21
21
  QUESTION_HOW_TO_WRITE_A_SERVICE_TEST = 'question.how-to-write-a-service-test',
22
+ QUESTION_WHY_DO_I_SEE_ERROR_WITH_ASSOCIATION_PROPERTY_TYPE = 'question.why-do-i-see-error-with-association-property-type',
22
23
  QUESTION_HOW_TO_ADD_PARAMETERS_TO_QUERY = 'question.how-to-add-parameters-to-query',
23
24
  QUESTION_HOW_TO_ADD_CONSTANTS_TO_QUERY = 'question.how-to-add-constants-to-query',
24
25
  QUESTION_HOW_TO_WRITE_SERVICE_CONNECTION_TEST_DATA = 'question.how-to-write-service-connection-test-data',
@@ -81,12 +81,15 @@ const theme: monacoEditorAPI.IStandaloneThemeData = {
81
81
  { token: PURE_GRAMMAR_TOKEN.PARAMETER, foreground: '9cdcfe' },
82
82
  { token: PURE_GRAMMAR_TOKEN.VARIABLE, foreground: '4fc1ff' },
83
83
  { token: PURE_GRAMMAR_TOKEN.TYPE, foreground: '3dc9b0' },
84
+ { token: `${PURE_GRAMMAR_TOKEN.STRING}.escape`, foreground: 'd7ba7d' },
84
85
  ],
85
86
  };
86
87
 
87
88
  // Taken from `monaco-languages` configuration for Java in order to do propert brace matching
88
89
  // See https://github.com/microsoft/monaco-languages/blob/master/src/java/java.ts
89
90
  const configuration: monacoLanguagesAPI.LanguageConfiguration = {
91
+ // NOTE: Pure identifier includes $
92
+ wordPattern: /(-?\d*\.\d\w*)|([^`~!@#%^&*()\-=+[{\]}\\|;:'",.<>/?\s]+)/,
90
93
  comments: {
91
94
  lineComment: '//',
92
95
  blockComment: ['/*', '*/'],
@@ -256,7 +259,15 @@ const generateLanguageMonarch = (
256
259
  hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,
257
260
  multiplicity: /\[(?:[a-zA-Z0-9]+(?:\.\.(?:[a-zA-Z0-9]+|\*|))?|\*)\]/,
258
261
  package: /(?:[\w_]+::)+/,
259
- generics: /<.+>/,
262
+ // NOTE: generics is a little tricky because in order to do it right, we have to
263
+ // do some sort of bracket matching, but we just can use a simple tokenizer here
264
+ // so to account for cases like `<Nil,Any|*>)->` `Function<{T[1]->Boolean[1]}>[1]`
265
+ // we have to make sure the content does not contain any `:` or `.` characters
266
+ // in order to avoid the accidental greedy match with inputs like
267
+ // `function doSomething<T>(a: Function<T[1]->Boolean[1]>)`
268
+ // nor we want to make sure the last character of the content is not `-` to avoid
269
+ // accidentally matching `->` as the end of the generics
270
+ generics: /(?:(?:<\w+>)|(?:<[^:.@^()]+[^-]>))/,
260
271
  date: /%-?\d+(?:-\d+(?:-\d+(?:T(?:\d+(?::\d+(?::\d+(?:.\d+)?)?)?)(?:[+-][0-9]{4})?)))/,
261
272
  time: /%\d+(?::\d+(?::\d+(?:.\d+)?)?)?/,
262
273
 
@@ -295,6 +306,9 @@ const generateLanguageMonarch = (
295
306
  cases: {
296
307
  '@languageStructs': PURE_GRAMMAR_TOKEN.LANGUAGE_STRUCT,
297
308
  '@keywords': `${PURE_GRAMMAR_TOKEN.KEYWORD}.$0`,
309
+ // function descriptor
310
+ '([a-zA-Z_$][\\w$]*)_((\\w+_(([a-zA-Z0-9]+)|(\\$[a-zA-Z0-9]+_[a-zA-Z0-9]+\\$)))__)*(\\w+_(([a-zA-Z0-9]+)|(\\$[a-zA-Z0-9]+_[a-zA-Z0-9]+\\$)))_':
311
+ PURE_GRAMMAR_TOKEN.TYPE,
298
312
  '@default': PURE_GRAMMAR_TOKEN.IDENTIFIER,
299
313
  },
300
314
  },
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import type { GenericLegendApplicationStore } from './ApplicationStore.js';
18
+ import type { Terminal } from './terminal/Terminal.js';
19
+ import { XTerm } from './terminal/XTerm.js';
20
+
21
+ export class TerminalService {
22
+ readonly applicationStore: GenericLegendApplicationStore;
23
+
24
+ readonly terminal: Terminal;
25
+
26
+ constructor(applicationStore: GenericLegendApplicationStore) {
27
+ this.applicationStore = applicationStore;
28
+ this.terminal = new XTerm(applicationStore);
29
+ }
30
+ }