@deephaven/console 0.15.5-beta.0 → 0.15.5-beta.4
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/dist/command-history/CommandHistory.d.ts +2 -2
- package/dist/command-history/CommandHistory.d.ts.map +1 -1
- package/dist/command-history/CommandHistory.js +3 -1
- package/dist/command-history/CommandHistory.js.map +1 -1
- package/dist/command-history/index.d.ts +1 -0
- package/dist/command-history/index.d.ts.map +1 -1
- package/dist/command-history/index.js +1 -0
- package/dist/command-history/index.js.map +1 -1
- package/dist/common/ConsoleConstants.d.ts.map +1 -1
- package/dist/common/ConsoleConstants.js +1 -10
- package/dist/common/ConsoleConstants.js.map +1 -1
- package/dist/common/ConsoleUtils.d.ts +0 -1
- package/dist/common/ConsoleUtils.d.ts.map +1 -1
- package/dist/common/ConsoleUtils.js +0 -18
- package/dist/common/ConsoleUtils.js.map +1 -1
- package/dist/monaco/MonacoCompletionProvider.js +1 -1
- package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
- package/dist/notebook/ScriptEditor.d.ts +1 -1
- package/dist/notebook/ScriptEditor.d.ts.map +1 -1
- package/dist/notebook/ScriptEditor.js.map +1 -1
- package/package.json +10 -10
|
@@ -5,14 +5,14 @@ import { Pending, Range } from '@deephaven/utils';
|
|
|
5
5
|
import './CommandHistory.scss';
|
|
6
6
|
import CommandHistoryStorage, { CommandHistoryStorageItem, CommandHistoryTable } from './CommandHistoryStorage';
|
|
7
7
|
import { ItemAction, HistoryAction } from './CommandHistoryTypes';
|
|
8
|
-
declare type
|
|
8
|
+
export declare type CommandHistorySettings = {
|
|
9
9
|
value: string;
|
|
10
10
|
language: string;
|
|
11
11
|
};
|
|
12
12
|
interface CommandHistoryProps {
|
|
13
13
|
language: string;
|
|
14
14
|
sendToConsole: (command: string, focus?: boolean, execute?: boolean) => void;
|
|
15
|
-
sendToNotebook: (settings:
|
|
15
|
+
sendToNotebook: (settings: CommandHistorySettings, forceNewNotebook?: boolean) => void;
|
|
16
16
|
table: CommandHistoryTable;
|
|
17
17
|
commandHistoryStorage: CommandHistoryStorage;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHistory.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistory.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAIL,WAAW,EAEX,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQlD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAMlD,OAAO,uBAAuB,CAAC;AAG/B,OAAO,qBAAqB,EAAE,EAC5B,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAIlE,
|
|
1
|
+
{"version":3,"file":"CommandHistory.d.ts","sourceRoot":"","sources":["../../src/command-history/CommandHistory.tsx"],"names":[],"mappings":"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"}
|
|
@@ -331,6 +331,8 @@ class CommandHistory extends Component {
|
|
|
331
331
|
}
|
|
332
332
|
|
|
333
333
|
render() {
|
|
334
|
+
var _ConsoleConstants$LAN;
|
|
335
|
+
|
|
334
336
|
var {
|
|
335
337
|
language,
|
|
336
338
|
table
|
|
@@ -346,7 +348,7 @@ class CommandHistory extends Component {
|
|
|
346
348
|
offset,
|
|
347
349
|
selectedRanges
|
|
348
350
|
} = this.state;
|
|
349
|
-
var languageDisplayString = ConsoleConstants.LANGUAGE_MAP.get(language);
|
|
351
|
+
var languageDisplayString = (_ConsoleConstants$LAN = ConsoleConstants.LANGUAGE_MAP.get(language)) !== null && _ConsoleConstants$LAN !== void 0 ? _ConsoleConstants$LAN : '';
|
|
350
352
|
return /*#__PURE__*/React.createElement("div", {
|
|
351
353
|
className: "command-history"
|
|
352
354
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/command-history/CommandHistory.tsx"],"names":["React","Component","ContextActions","ContextActionUtils","ItemList","SearchInput","GLOBAL_SHORTCUTS","vsFileCode","vsFiles","vsNewFile","vsPlay","vsTerminal","Pending","Log","CommandHistoryItem","CommandHistoryActions","ConsoleConstants","CommandHistoryViewportUpdater","SHORTCUTS","log","module","CommandHistory","getCommandsFromViewport","items","offset","sortedRanges","commands","i","length","range","j","name","push","getCommandsFromSnapshot","table","getSnapshot","values","map","item","constructor","props","copySelectedCommands","bind","createNotebook","sendToConsole","renderItem","runInConsole","sendToNotebook","handleSelect","handleSelectionChange","handleSearchChange","handleViewportChange","handleViewportUpdate","itemActions","title","description","icon","shortcut","COPY","action","group","groups","edit","COMMAND_HISTORY","SEND_TO_CONSOLE","menuGroups","send","order","RUN","SEND_TO_NOTEBOOK","historyActions","selectionRequired","pending","searchInputRef","createRef","state","actions","top","bottom","itemCount","size","selectedRanges","searchText","componentWillUnmount","cancel","getSelectedCommands","ranges","slice","sort","a","b","add","getSelectedCommandText","then","join","updateActions","setState","selectedRowCount","reduce","count","MAX_SELECTION_COUNT","debug","copyToClipboard","catch","error","commandText","language","value","index","e","target","itemIndex","isSelected","commandHistoryStorage","focus","current","render","languageDisplayString","LANGUAGE_MAP","get","ITEM_HEIGHT","medium"],"mappings":"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","sourcesContent":["import React, { ChangeEvent, Component, ReactElement, RefObject } from 'react';\nimport {\n ContextActions,\n ContextActionUtils,\n ItemList,\n SearchInput,\n GLOBAL_SHORTCUTS,\n RenderItemProps,\n} from '@deephaven/components';\nimport { ViewportData } from '@deephaven/storage';\nimport {\n vsFileCode,\n vsFiles,\n vsNewFile,\n vsPlay,\n vsTerminal,\n} from '@deephaven/icons';\nimport { Pending, Range } from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport CommandHistoryItem from './CommandHistoryItem';\nimport CommandHistoryActions from './CommandHistoryActions';\nimport ConsoleConstants from '../common/ConsoleConstants';\n\nimport './CommandHistory.scss';\nimport CommandHistoryViewportUpdater from './CommandHistoryViewportUpdater';\nimport SHORTCUTS from '../ConsoleShortcuts';\nimport CommandHistoryStorage, {\n CommandHistoryStorageItem,\n CommandHistoryTable,\n} from './CommandHistoryStorage';\nimport { ItemAction, HistoryAction } from './CommandHistoryTypes';\n\nconst log = Log.module('CommandHistory');\n\ntype Settings = {\n value: string;\n language: string;\n};\ninterface CommandHistoryProps {\n language: string;\n sendToConsole: (command: string, focus?: boolean, execute?: boolean) => void;\n sendToNotebook: (settings: Settings, forceNewNotebook?: boolean) => void;\n table: CommandHistoryTable;\n commandHistoryStorage: CommandHistoryStorage;\n}\ninterface CommandHistoryState {\n actions: ItemAction[];\n historyActions: HistoryAction[];\n top: number;\n bottom: number;\n itemCount: number;\n items: CommandHistoryStorageItem[];\n offset: number;\n selectedRanges: Range[];\n searchText: string;\n}\n\nclass CommandHistory extends Component<\n CommandHistoryProps,\n CommandHistoryState\n> {\n static ITEM_HEIGHT = 29;\n\n static MAX_SELECTION_COUNT = 10000;\n\n static menuGroups = {\n send: ContextActions.groups.medium + 100,\n };\n\n static getCommandsFromViewport(\n items: CommandHistoryStorageItem[],\n offset: number,\n sortedRanges: Range[]\n ): string[] {\n const commands = [];\n for (let i = 0; i < sortedRanges.length; i += 1) {\n const range = sortedRanges[i];\n for (let j = range[0]; j <= range[1]; j += 1) {\n if (j >= offset && j < offset + items.length) {\n const { name } = items[j - offset];\n commands.push(name);\n }\n }\n }\n return commands;\n }\n\n static async getCommandsFromSnapshot(\n table: CommandHistoryTable,\n sortedRanges: Range[]\n ): Promise<string[]> {\n const items = await table.getSnapshot(sortedRanges);\n return [...items.values()].map(item => item.name);\n }\n\n constructor(props: CommandHistoryProps) {\n super(props);\n\n this.copySelectedCommands = this.copySelectedCommands.bind(this);\n this.createNotebook = this.createNotebook.bind(this);\n this.sendToConsole = this.sendToConsole.bind(this);\n this.renderItem = this.renderItem.bind(this);\n this.runInConsole = this.runInConsole.bind(this);\n this.sendToNotebook = this.sendToNotebook.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handleSelectionChange = this.handleSelectionChange.bind(this);\n this.handleSearchChange = this.handleSearchChange.bind(this);\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleViewportUpdate = this.handleViewportUpdate.bind(this);\n\n this.itemActions = [\n {\n title: 'Copy Selection',\n description: 'Copy selected commands to clipboard',\n icon: vsFiles,\n shortcut: GLOBAL_SHORTCUTS.COPY,\n action: this.copySelectedCommands,\n group: ContextActions.groups.edit,\n },\n {\n title: 'Send to Console',\n description: 'Open selected commands in the console',\n icon: vsTerminal,\n shortcut: SHORTCUTS.COMMAND_HISTORY.SEND_TO_CONSOLE,\n action: this.sendToConsole,\n group: CommandHistory.menuGroups.send,\n order: 10,\n },\n {\n title: 'Run in Console',\n description: 'Run selected commands in the console',\n icon: vsPlay,\n shortcut: SHORTCUTS.COMMAND_HISTORY.RUN,\n action: this.runInConsole,\n group: CommandHistory.menuGroups.send,\n order: 10,\n },\n {\n title: 'Send to Active Notebook',\n description: 'Open selected commands in a notebook',\n icon: vsFileCode,\n shortcut: SHORTCUTS.COMMAND_HISTORY.SEND_TO_NOTEBOOK,\n action: this.sendToNotebook,\n group: CommandHistory.menuGroups.send,\n order: 20,\n },\n {\n title: 'Send to New Notebook',\n description: 'Open selected commands in a new notebook',\n icon: vsNewFile,\n action: this.createNotebook,\n group: CommandHistory.menuGroups.send,\n order: 30,\n },\n ];\n\n this.historyActions = [\n {\n title: 'Send to Console',\n icon: vsTerminal,\n selectionRequired: true,\n description: 'Open selected commands in the console',\n action: this.sendToConsole,\n },\n {\n title: 'Send to Notebook',\n icon: vsFileCode,\n selectionRequired: true,\n description: 'Open selected commands in a notebook',\n action: this.sendToNotebook,\n },\n ];\n\n this.pending = new Pending();\n this.searchInputRef = React.createRef();\n\n const { table } = props;\n\n this.state = {\n actions: [],\n historyActions: this.historyActions,\n top: 0,\n bottom: 0,\n itemCount: table.size,\n items: [],\n offset: 0,\n selectedRanges: [],\n searchText: '',\n };\n }\n\n componentWillUnmount(): void {\n this.pending.cancel();\n }\n\n itemActions: ItemAction[];\n\n historyActions: HistoryAction[];\n\n pending: Pending;\n\n searchInputRef: RefObject<SearchInput>;\n\n /**\n * Retrieves the selected commands as an array.\n * If they're not within the current viewport, will fetch them from the table\n * @returns Array of selected commands\n */\n async getSelectedCommands(): Promise<string[]> {\n const { items, offset, selectedRanges } = this.state;\n const ranges = selectedRanges.slice().sort((a, b) => a[0] - b[0]);\n\n if (ranges.length === 0) {\n return [];\n }\n if (\n ranges[0][0] >= offset &&\n ranges[ranges.length - 1][1] < offset + items.length\n ) {\n // All ranges are in the current viewport, just copy the data we've already got\n return CommandHistory.getCommandsFromViewport(items, offset, ranges);\n }\n const { table } = this.props;\n return this.pending.add(\n CommandHistory.getCommandsFromSnapshot(table, ranges)\n );\n }\n\n /**\n * Retrieves the text of all the currently selected commands, joined by a new line char\n * @returns The commands joined by \\n char\n */\n getSelectedCommandText(): Promise<string> {\n return this.getSelectedCommands().then(commands => commands.join('\\n'));\n }\n\n updateActions(): void {\n this.setState(state => {\n const { selectedRanges } = state;\n const selectedRowCount = selectedRanges.reduce(\n (count, range) => count + range[1] - range[0] + 1,\n 0\n );\n if (\n selectedRowCount > 0 &&\n selectedRowCount < CommandHistory.MAX_SELECTION_COUNT\n ) {\n log.debug('Updating actions', this.itemActions);\n return { actions: this.itemActions };\n }\n log.debug('Disabling actions', selectedRowCount);\n return { actions: [] };\n });\n }\n\n copySelectedCommands(): void {\n this.getSelectedCommandText()\n .then(ContextActionUtils.copyToClipboard)\n .catch(log.error);\n }\n\n createNotebook(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { language, sendToNotebook } = this.props;\n sendToNotebook({ value: commandText, language }, true);\n })\n .catch(log.error);\n }\n\n sendToNotebook(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { language, sendToNotebook } = this.props;\n sendToNotebook({ value: commandText, language });\n })\n .catch(log.error);\n }\n\n sendToConsole(): void {\n const { sendToConsole } = this.props;\n this.getSelectedCommandText().then(sendToConsole).catch(log.error);\n }\n\n runInConsole(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { sendToConsole } = this.props;\n sendToConsole(commandText, true, true);\n })\n .catch(log.error);\n }\n\n handleSelect(index: number): void {\n const { sendToConsole } = this.props;\n const { items, offset } = this.state;\n if (index < offset || index >= offset + items.length) {\n log.error('Invalid index!', index);\n return;\n }\n\n const { name } = items[index - offset];\n sendToConsole(name);\n }\n\n handleSelectionChange(selectedRanges: Range[]): void {\n this.setState({ selectedRanges });\n this.updateActions();\n }\n\n handleViewportChange(top: number, bottom: number): void {\n this.setState({ top, bottom });\n }\n\n handleSearchChange(e: ChangeEvent<HTMLInputElement>): void {\n // clear selected range, as old selection could be filtered from list\n this.setState({ searchText: e.target.value, selectedRanges: [] });\n }\n\n handleViewportUpdate({\n items,\n offset,\n }: ViewportData<CommandHistoryStorageItem>): void {\n const { table } = this.props;\n const itemCount = table.size;\n this.setState({ items, itemCount, offset });\n }\n\n renderItem({\n item,\n itemIndex,\n isSelected,\n }: RenderItemProps<CommandHistoryStorageItem>): ReactElement {\n const { language, commandHistoryStorage } = this.props;\n return (\n <CommandHistoryItem\n isSelected={isSelected}\n item={item}\n language={language}\n commandHistoryStorage={commandHistoryStorage}\n />\n );\n }\n\n focus(): void {\n if (this.searchInputRef.current) {\n this.searchInputRef.current.focus();\n }\n }\n\n render(): ReactElement {\n const { language, table } = this.props;\n const {\n actions,\n historyActions,\n searchText,\n top,\n bottom,\n items,\n itemCount,\n offset,\n selectedRanges,\n } = this.state;\n const languageDisplayString = ConsoleConstants.LANGUAGE_MAP.get(language);\n return (\n <div className=\"command-history\">\n <div className=\"command-history-search-bar\">\n <SearchInput\n ref={this.searchInputRef}\n value={searchText}\n placeholder={`${languageDisplayString} Command History`}\n onChange={this.handleSearchChange}\n />\n <CommandHistoryActions\n actions={historyActions}\n hasSelection={selectedRanges.length > 0}\n />\n </div>\n <div className=\"command-history-list\">\n <ItemList\n itemCount={itemCount}\n items={items}\n offset={offset}\n selectedRanges={selectedRanges}\n onSelect={this.handleSelect}\n onSelectionChange={this.handleSelectionChange}\n onViewportChange={this.handleViewportChange}\n renderItem={this.renderItem}\n rowHeight={CommandHistory.ITEM_HEIGHT}\n isDoubleClickSelect\n isMultiSelect\n isStickyBottom\n />\n <CommandHistoryViewportUpdater\n table={table}\n top={top}\n bottom={bottom}\n search={searchText}\n onUpdate={this.handleViewportUpdate}\n />\n <ContextActions actions={actions} />\n </div>\n </div>\n );\n }\n}\n\nexport default CommandHistory;\n"],"file":"CommandHistory.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/command-history/CommandHistory.tsx"],"names":["React","Component","ContextActions","ContextActionUtils","ItemList","SearchInput","GLOBAL_SHORTCUTS","vsFileCode","vsFiles","vsNewFile","vsPlay","vsTerminal","Pending","Log","CommandHistoryItem","CommandHistoryActions","ConsoleConstants","CommandHistoryViewportUpdater","SHORTCUTS","log","module","CommandHistory","getCommandsFromViewport","items","offset","sortedRanges","commands","i","length","range","j","name","push","getCommandsFromSnapshot","table","getSnapshot","values","map","item","constructor","props","copySelectedCommands","bind","createNotebook","sendToConsole","renderItem","runInConsole","sendToNotebook","handleSelect","handleSelectionChange","handleSearchChange","handleViewportChange","handleViewportUpdate","itemActions","title","description","icon","shortcut","COPY","action","group","groups","edit","COMMAND_HISTORY","SEND_TO_CONSOLE","menuGroups","send","order","RUN","SEND_TO_NOTEBOOK","historyActions","selectionRequired","pending","searchInputRef","createRef","state","actions","top","bottom","itemCount","size","selectedRanges","searchText","componentWillUnmount","cancel","getSelectedCommands","ranges","slice","sort","a","b","add","getSelectedCommandText","then","join","updateActions","setState","selectedRowCount","reduce","count","MAX_SELECTION_COUNT","debug","copyToClipboard","catch","error","commandText","language","value","index","e","target","itemIndex","isSelected","commandHistoryStorage","focus","current","render","languageDisplayString","LANGUAGE_MAP","get","ITEM_HEIGHT","medium"],"mappings":"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","sourcesContent":["import React, { ChangeEvent, Component, ReactElement, RefObject } from 'react';\nimport {\n ContextActions,\n ContextActionUtils,\n ItemList,\n SearchInput,\n GLOBAL_SHORTCUTS,\n RenderItemProps,\n} from '@deephaven/components';\nimport { ViewportData } from '@deephaven/storage';\nimport {\n vsFileCode,\n vsFiles,\n vsNewFile,\n vsPlay,\n vsTerminal,\n} from '@deephaven/icons';\nimport { Pending, Range } from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport CommandHistoryItem from './CommandHistoryItem';\nimport CommandHistoryActions from './CommandHistoryActions';\nimport ConsoleConstants from '../common/ConsoleConstants';\n\nimport './CommandHistory.scss';\nimport CommandHistoryViewportUpdater from './CommandHistoryViewportUpdater';\nimport SHORTCUTS from '../ConsoleShortcuts';\nimport CommandHistoryStorage, {\n CommandHistoryStorageItem,\n CommandHistoryTable,\n} from './CommandHistoryStorage';\nimport { ItemAction, HistoryAction } from './CommandHistoryTypes';\n\nconst log = Log.module('CommandHistory');\n\nexport type CommandHistorySettings = {\n value: string;\n language: string;\n};\ninterface CommandHistoryProps {\n language: string;\n sendToConsole: (command: string, focus?: boolean, execute?: boolean) => void;\n sendToNotebook: (\n settings: CommandHistorySettings,\n forceNewNotebook?: boolean\n ) => void;\n table: CommandHistoryTable;\n commandHistoryStorage: CommandHistoryStorage;\n}\ninterface CommandHistoryState {\n actions: ItemAction[];\n historyActions: HistoryAction[];\n top: number;\n bottom: number;\n itemCount: number;\n items: CommandHistoryStorageItem[];\n offset: number;\n selectedRanges: Range[];\n searchText: string;\n}\n\nclass CommandHistory extends Component<\n CommandHistoryProps,\n CommandHistoryState\n> {\n static ITEM_HEIGHT = 29;\n\n static MAX_SELECTION_COUNT = 10000;\n\n static menuGroups = {\n send: ContextActions.groups.medium + 100,\n };\n\n static getCommandsFromViewport(\n items: CommandHistoryStorageItem[],\n offset: number,\n sortedRanges: Range[]\n ): string[] {\n const commands = [];\n for (let i = 0; i < sortedRanges.length; i += 1) {\n const range = sortedRanges[i];\n for (let j = range[0]; j <= range[1]; j += 1) {\n if (j >= offset && j < offset + items.length) {\n const { name } = items[j - offset];\n commands.push(name);\n }\n }\n }\n return commands;\n }\n\n static async getCommandsFromSnapshot(\n table: CommandHistoryTable,\n sortedRanges: Range[]\n ): Promise<string[]> {\n const items = await table.getSnapshot(sortedRanges);\n return [...items.values()].map(item => item.name);\n }\n\n constructor(props: CommandHistoryProps) {\n super(props);\n\n this.copySelectedCommands = this.copySelectedCommands.bind(this);\n this.createNotebook = this.createNotebook.bind(this);\n this.sendToConsole = this.sendToConsole.bind(this);\n this.renderItem = this.renderItem.bind(this);\n this.runInConsole = this.runInConsole.bind(this);\n this.sendToNotebook = this.sendToNotebook.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handleSelectionChange = this.handleSelectionChange.bind(this);\n this.handleSearchChange = this.handleSearchChange.bind(this);\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleViewportUpdate = this.handleViewportUpdate.bind(this);\n\n this.itemActions = [\n {\n title: 'Copy Selection',\n description: 'Copy selected commands to clipboard',\n icon: vsFiles,\n shortcut: GLOBAL_SHORTCUTS.COPY,\n action: this.copySelectedCommands,\n group: ContextActions.groups.edit,\n },\n {\n title: 'Send to Console',\n description: 'Open selected commands in the console',\n icon: vsTerminal,\n shortcut: SHORTCUTS.COMMAND_HISTORY.SEND_TO_CONSOLE,\n action: this.sendToConsole,\n group: CommandHistory.menuGroups.send,\n order: 10,\n },\n {\n title: 'Run in Console',\n description: 'Run selected commands in the console',\n icon: vsPlay,\n shortcut: SHORTCUTS.COMMAND_HISTORY.RUN,\n action: this.runInConsole,\n group: CommandHistory.menuGroups.send,\n order: 10,\n },\n {\n title: 'Send to Active Notebook',\n description: 'Open selected commands in a notebook',\n icon: vsFileCode,\n shortcut: SHORTCUTS.COMMAND_HISTORY.SEND_TO_NOTEBOOK,\n action: this.sendToNotebook,\n group: CommandHistory.menuGroups.send,\n order: 20,\n },\n {\n title: 'Send to New Notebook',\n description: 'Open selected commands in a new notebook',\n icon: vsNewFile,\n action: this.createNotebook,\n group: CommandHistory.menuGroups.send,\n order: 30,\n },\n ];\n\n this.historyActions = [\n {\n title: 'Send to Console',\n icon: vsTerminal,\n selectionRequired: true,\n description: 'Open selected commands in the console',\n action: this.sendToConsole,\n },\n {\n title: 'Send to Notebook',\n icon: vsFileCode,\n selectionRequired: true,\n description: 'Open selected commands in a notebook',\n action: this.sendToNotebook,\n },\n ];\n\n this.pending = new Pending();\n this.searchInputRef = React.createRef();\n\n const { table } = props;\n\n this.state = {\n actions: [],\n historyActions: this.historyActions,\n top: 0,\n bottom: 0,\n itemCount: table.size,\n items: [],\n offset: 0,\n selectedRanges: [],\n searchText: '',\n };\n }\n\n componentWillUnmount(): void {\n this.pending.cancel();\n }\n\n itemActions: ItemAction[];\n\n historyActions: HistoryAction[];\n\n pending: Pending;\n\n searchInputRef: RefObject<SearchInput>;\n\n /**\n * Retrieves the selected commands as an array.\n * If they're not within the current viewport, will fetch them from the table\n * @returns Array of selected commands\n */\n async getSelectedCommands(): Promise<string[]> {\n const { items, offset, selectedRanges } = this.state;\n const ranges = selectedRanges.slice().sort((a, b) => a[0] - b[0]);\n\n if (ranges.length === 0) {\n return [];\n }\n if (\n ranges[0][0] >= offset &&\n ranges[ranges.length - 1][1] < offset + items.length\n ) {\n // All ranges are in the current viewport, just copy the data we've already got\n return CommandHistory.getCommandsFromViewport(items, offset, ranges);\n }\n const { table } = this.props;\n return this.pending.add(\n CommandHistory.getCommandsFromSnapshot(table, ranges)\n );\n }\n\n /**\n * Retrieves the text of all the currently selected commands, joined by a new line char\n * @returns The commands joined by \\n char\n */\n getSelectedCommandText(): Promise<string> {\n return this.getSelectedCommands().then(commands => commands.join('\\n'));\n }\n\n updateActions(): void {\n this.setState(state => {\n const { selectedRanges } = state;\n const selectedRowCount = selectedRanges.reduce(\n (count, range) => count + range[1] - range[0] + 1,\n 0\n );\n if (\n selectedRowCount > 0 &&\n selectedRowCount < CommandHistory.MAX_SELECTION_COUNT\n ) {\n log.debug('Updating actions', this.itemActions);\n return { actions: this.itemActions };\n }\n log.debug('Disabling actions', selectedRowCount);\n return { actions: [] };\n });\n }\n\n copySelectedCommands(): void {\n this.getSelectedCommandText()\n .then(ContextActionUtils.copyToClipboard)\n .catch(log.error);\n }\n\n createNotebook(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { language, sendToNotebook } = this.props;\n sendToNotebook({ value: commandText, language }, true);\n })\n .catch(log.error);\n }\n\n sendToNotebook(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { language, sendToNotebook } = this.props;\n sendToNotebook({ value: commandText, language });\n })\n .catch(log.error);\n }\n\n sendToConsole(): void {\n const { sendToConsole } = this.props;\n this.getSelectedCommandText().then(sendToConsole).catch(log.error);\n }\n\n runInConsole(): void {\n this.getSelectedCommandText()\n .then(commandText => {\n const { sendToConsole } = this.props;\n sendToConsole(commandText, true, true);\n })\n .catch(log.error);\n }\n\n handleSelect(index: number): void {\n const { sendToConsole } = this.props;\n const { items, offset } = this.state;\n if (index < offset || index >= offset + items.length) {\n log.error('Invalid index!', index);\n return;\n }\n\n const { name } = items[index - offset];\n sendToConsole(name);\n }\n\n handleSelectionChange(selectedRanges: Range[]): void {\n this.setState({ selectedRanges });\n this.updateActions();\n }\n\n handleViewportChange(top: number, bottom: number): void {\n this.setState({ top, bottom });\n }\n\n handleSearchChange(e: ChangeEvent<HTMLInputElement>): void {\n // clear selected range, as old selection could be filtered from list\n this.setState({ searchText: e.target.value, selectedRanges: [] });\n }\n\n handleViewportUpdate({\n items,\n offset,\n }: ViewportData<CommandHistoryStorageItem>): void {\n const { table } = this.props;\n const itemCount = table.size;\n this.setState({ items, itemCount, offset });\n }\n\n renderItem({\n item,\n itemIndex,\n isSelected,\n }: RenderItemProps<CommandHistoryStorageItem>): ReactElement {\n const { language, commandHistoryStorage } = this.props;\n return (\n <CommandHistoryItem\n isSelected={isSelected}\n item={item}\n language={language}\n commandHistoryStorage={commandHistoryStorage}\n />\n );\n }\n\n focus(): void {\n if (this.searchInputRef.current) {\n this.searchInputRef.current.focus();\n }\n }\n\n render(): ReactElement {\n const { language, table } = this.props;\n const {\n actions,\n historyActions,\n searchText,\n top,\n bottom,\n items,\n itemCount,\n offset,\n selectedRanges,\n } = this.state;\n const languageDisplayString =\n ConsoleConstants.LANGUAGE_MAP.get(language) ?? '';\n return (\n <div className=\"command-history\">\n <div className=\"command-history-search-bar\">\n <SearchInput\n ref={this.searchInputRef}\n value={searchText}\n placeholder={`${languageDisplayString} Command History`}\n onChange={this.handleSearchChange}\n />\n <CommandHistoryActions\n actions={historyActions}\n hasSelection={selectedRanges.length > 0}\n />\n </div>\n <div className=\"command-history-list\">\n <ItemList\n itemCount={itemCount}\n items={items}\n offset={offset}\n selectedRanges={selectedRanges}\n onSelect={this.handleSelect}\n onSelectionChange={this.handleSelectionChange}\n onViewportChange={this.handleViewportChange}\n renderItem={this.renderItem}\n rowHeight={CommandHistory.ITEM_HEIGHT}\n isDoubleClickSelect\n isMultiSelect\n isStickyBottom\n />\n <CommandHistoryViewportUpdater\n table={table}\n top={top}\n bottom={bottom}\n search={searchText}\n onUpdate={this.handleViewportUpdate}\n />\n <ContextActions actions={actions} />\n </div>\n </div>\n );\n }\n}\n\nexport default CommandHistory;\n"],"file":"CommandHistory.js"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as CommandHistory } from './CommandHistory';
|
|
2
|
+
export * from './CommandHistory';
|
|
2
3
|
export { default as CommandHistoryActions } from './CommandHistoryActions';
|
|
3
4
|
export { default as CommandHistoryItem } from './CommandHistoryItem';
|
|
4
5
|
export { default as CommandHistoryItemTooltip } from './CommandHistoryItemTooltip';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command-history/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command-history/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,cAAc,yBAAyB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as CommandHistory } from "./CommandHistory.js";
|
|
2
|
+
export * from "./CommandHistory.js";
|
|
2
3
|
export { default as CommandHistoryActions } from "./CommandHistoryActions.js";
|
|
3
4
|
export { default as CommandHistoryItem } from "./CommandHistoryItem.js";
|
|
4
5
|
export { default as CommandHistoryItemTooltip } from "./CommandHistoryItemTooltip.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/command-history/index.tsx"],"names":["default","CommandHistory","CommandHistoryActions","CommandHistoryItem","CommandHistoryItemTooltip"],"mappings":"SAASA,OAAO,IAAIC,c
|
|
1
|
+
{"version":3,"sources":["../../src/command-history/index.tsx"],"names":["default","CommandHistory","CommandHistoryActions","CommandHistoryItem","CommandHistoryItemTooltip"],"mappings":"SAASA,OAAO,IAAIC,c;;SAEXD,OAAO,IAAIE,qB;SACXF,OAAO,IAAIG,kB;SACXH,OAAO,IAAII,yB","sourcesContent":["export { default as CommandHistory } from './CommandHistory';\nexport * from './CommandHistory';\nexport { default as CommandHistoryActions } from './CommandHistoryActions';\nexport { default as CommandHistoryItem } from './CommandHistoryItem';\nexport { default as CommandHistoryItemTooltip } from './CommandHistoryItemTooltip';\nexport * from './CommandHistoryStorage';\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleConstants.d.ts","sourceRoot":"","sources":["../../src/common/ConsoleConstants.ts"],"names":[],"mappings":"AAAA,cAAM,gBAAgB;IACpB;;OAEG;IACH,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ConsoleConstants.d.ts","sourceRoot":"","sources":["../../src/common/ConsoleConstants.ts"],"names":[],"mappings":"AAAA,cAAM,gBAAgB;IACpB;;OAEG;IACH,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7C;CACF;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -3,16 +3,7 @@ class ConsoleConstants {
|
|
|
3
3
|
* Map of language keys to their display names
|
|
4
4
|
*/
|
|
5
5
|
static get LANGUAGE_MAP() {
|
|
6
|
-
|
|
7
|
-
var _process$env$REACT_AP;
|
|
8
|
-
|
|
9
|
-
return new Map((_process$env$REACT_AP = process.env.REACT_APP_SESSION_LANGUAGES) === null || _process$env$REACT_AP === void 0 ? void 0 : _process$env$REACT_AP.split(',').map(str => str.split('=')).map(_ref => {
|
|
10
|
-
var [language, displayName] = _ref;
|
|
11
|
-
return [language, displayName !== null && displayName !== void 0 ? displayName : language];
|
|
12
|
-
}));
|
|
13
|
-
} catch (_unused) {
|
|
14
|
-
return new Map();
|
|
15
|
-
}
|
|
6
|
+
return new Map([['python', 'Python'], ['groovy', 'Groovy'], ['scala', 'Scala']]);
|
|
16
7
|
}
|
|
17
8
|
|
|
18
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/common/ConsoleConstants.ts"],"names":["ConsoleConstants","LANGUAGE_MAP","Map"
|
|
1
|
+
{"version":3,"sources":["../../src/common/ConsoleConstants.ts"],"names":["ConsoleConstants","LANGUAGE_MAP","Map"],"mappings":"AAAA,MAAMA,gBAAN,CAAuB;AACrB;AACF;AACA;AACyB,aAAZC,YAAY,GAAwB;AAC7C,WAAO,IAAIC,GAAJ,CAAQ,CACb,CAAC,QAAD,EAAW,QAAX,CADa,EAEb,CAAC,QAAD,EAAW,QAAX,CAFa,EAGb,CAAC,OAAD,EAAU,OAAV,CAHa,CAAR,CAAP;AAKD;;AAVoB;;AAavB,eAAeF,gBAAf","sourcesContent":["class ConsoleConstants {\n /**\n * Map of language keys to their display names\n */\n static get LANGUAGE_MAP(): Map<string, string> {\n return new Map([\n ['python', 'Python'],\n ['groovy', 'Groovy'],\n ['scala', 'Scala'],\n ]);\n }\n}\n\nexport default ConsoleConstants;\n"],"file":"ConsoleConstants.js"}
|
|
@@ -18,7 +18,6 @@ declare class ConsoleUtils {
|
|
|
18
18
|
*/
|
|
19
19
|
static parseArguments(str: unknown): string[];
|
|
20
20
|
static formatTimestamp(date: Date): string | null;
|
|
21
|
-
static defaultHost(): string;
|
|
22
21
|
static isTableType(type: VariableTypeUnion): boolean;
|
|
23
22
|
static isWidgetType(type: VariableTypeUnion): boolean;
|
|
24
23
|
static isOpenableType(type: VariableTypeUnion): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleUtils.d.ts","sourceRoot":"","sources":["../../src/common/ConsoleUtils.ts"],"names":[],"mappings":"AAAA,OAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtE,OAAW,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ConsoleUtils.d.ts","sourceRoot":"","sources":["../../src/common/ConsoleUtils.ts"],"names":[],"mappings":"AAAA,OAAmB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtE,OAAW,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,cAAM,YAAY;IAChB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,IAAI;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAI9D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAI1E,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,IAAI;QAAE,EAAE,EAAE,eAAe,CAAA;KAAE;IAI7D;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE;IAoB7C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI;IAajD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAIpD,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAQrD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAIvD,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAIrD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;CAGlD;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import ShellQuote from 'shell-quote';
|
|
2
2
|
import dh from '@deephaven/jsapi-shim';
|
|
3
|
-
import Log from '@deephaven/log';
|
|
4
|
-
var log = Log.module('FigureChartModel');
|
|
5
3
|
|
|
6
4
|
class ConsoleUtils {
|
|
7
5
|
static hasComment(arg) {
|
|
@@ -54,22 +52,6 @@ class ConsoleUtils {
|
|
|
54
52
|
return "".concat(hours, ":").concat(minutes, ":").concat(seconds, ".").concat(milliseconds);
|
|
55
53
|
}
|
|
56
54
|
|
|
57
|
-
static defaultHost() {
|
|
58
|
-
var defaultHost = window.location.hostname;
|
|
59
|
-
var apiUrl = process.env.REACT_APP_CORE_API_URL;
|
|
60
|
-
|
|
61
|
-
if (apiUrl != null) {
|
|
62
|
-
try {
|
|
63
|
-
var url = new URL(apiUrl);
|
|
64
|
-
defaultHost = url.hostname;
|
|
65
|
-
} catch (error) {
|
|
66
|
-
log.error('API_URL failed', error);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return defaultHost;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
55
|
static isTableType(type) {
|
|
74
56
|
return type === dh.VariableType.TABLE || type === dh.VariableType.TREETABLE;
|
|
75
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/common/ConsoleUtils.ts"],"names":["ShellQuote","dh","
|
|
1
|
+
{"version":3,"sources":["../../src/common/ConsoleUtils.ts"],"names":["ShellQuote","dh","ConsoleUtils","hasComment","arg","comment","undefined","hasPattern","pattern","hasOp","op","parseArguments","str","String","parse","filter","map","formatTimestamp","date","Date","hours","getHours","padStart","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","isTableType","type","VariableType","TABLE","TREETABLE","isWidgetType","FIGURE","OTHERWIDGET","PANDAS","isOpenableType","isFigureType","isPandas"],"mappings":"AAAA,OAAOA,UAAP,MAAwD,aAAxD;AACA,OAAOC,EAAP,MAAsC,uBAAtC;;AAEA,MAAMC,YAAN,CAAmB;AACA,SAAVC,UAAU,CAACC,GAAD,EAA8C;AAC7D,WAAQA,GAAD,CAA6BC,OAA7B,KAAyCC,SAAhD;AACD;;AAEgB,SAAVC,UAAU,CAACH,GAAD,EAA0D;AACzE,WAAQA,GAAD,CAA6BI,OAA7B,KAAyCF,SAAhD;AACD;;AAEW,SAALG,KAAK,CAACL,GAAD,EAAkD;AAC5D,WAAQA,GAAD,CAAiCM,EAAjC,KAAwCJ,SAA/C;AACD;AAED;AACF;AACA;AACA;AACA;;;AACuB,SAAdK,cAAc,CAACC,GAAD,EAAyB;AAC5C,QAAI,CAACA,GAAD,IAAQ,EAAE,OAAOA,GAAP,KAAe,QAAf,IAA2BA,GAAG,YAAYC,MAA5C,CAAZ,EAAiE;AAC/D,aAAO,EAAP;AACD,KAH2C,CAK5C;AACA;;;AACA,WAAOb,UAAU,CAACc,KAAX,CAAiBF,GAAjB,EACJG,MADI,CACGX,GAAG,IAAI,CAAC,KAAKD,UAAL,CAAgBC,GAAhB,CADX,EAEJY,GAFI,CAEAZ,GAAG,IAAI;AACV,UAAI,KAAKG,UAAL,CAAgBH,GAAhB,CAAJ,EAA0B;AACxB,eAAOA,GAAG,CAACI,OAAX;AACD;;AACD,UAAI,KAAKC,KAAL,CAAWL,GAAX,CAAJ,EAAqB;AACnB,eAAOA,GAAG,CAACM,EAAX;AACD;;AACD,uBAAUN,GAAV;AACD,KAVI,CAAP;AAWD;;AAEqB,SAAfa,eAAe,CAACC,IAAD,EAA4B;AAChD,QAAI,CAACA,IAAD,IAAS,EAAEA,IAAI,YAAYC,IAAlB,CAAb,EAAsC;AACpC,aAAO,IAAP;AACD;;AAED,QAAMC,KAAK,GAAG,UAAGF,IAAI,CAACG,QAAL,EAAH,EAAqBC,QAArB,CAA8B,CAA9B,EAAiC,GAAjC,CAAd;AACA,QAAMC,OAAO,GAAG,UAAGL,IAAI,CAACM,UAAL,EAAH,EAAuBF,QAAvB,CAAgC,CAAhC,EAAmC,GAAnC,CAAhB;AACA,QAAMG,OAAO,GAAG,UAAGP,IAAI,CAACQ,UAAL,EAAH,EAAuBJ,QAAvB,CAAgC,CAAhC,EAAmC,GAAnC,CAAhB;AACA,QAAMK,YAAY,GAAG,UAAGT,IAAI,CAACU,eAAL,EAAH,EAA4BN,QAA5B,CAAqC,CAArC,EAAwC,GAAxC,CAArB;AAEA,qBAAUF,KAAV,cAAmBG,OAAnB,cAA8BE,OAA9B,cAAyCE,YAAzC;AACD;;AAEiB,SAAXE,WAAW,CAACC,IAAD,EAAmC;AACnD,WAAOA,IAAI,KAAK7B,EAAE,CAAC8B,YAAH,CAAgBC,KAAzB,IAAkCF,IAAI,KAAK7B,EAAE,CAAC8B,YAAH,CAAgBE,SAAlE;AACD;;AAEkB,SAAZC,YAAY,CAACJ,IAAD,EAAmC;AACpD,WACEA,IAAI,KAAK7B,EAAE,CAAC8B,YAAH,CAAgBI,MAAzB,IACAL,IAAI,KAAK7B,EAAE,CAAC8B,YAAH,CAAgBK,WADzB,IAEAN,IAAI,KAAK7B,EAAE,CAAC8B,YAAH,CAAgBM,MAH3B;AAKD;;AAEoB,SAAdC,cAAc,CAACR,IAAD,EAAmC;AACtD,WAAO5B,YAAY,CAAC2B,WAAb,CAAyBC,IAAzB,KAAkC5B,YAAY,CAACgC,YAAb,CAA0BJ,IAA1B,CAAzC;AACD;;AAEkB,SAAZS,YAAY,CAACT,IAAD,EAAmC;AACpD,WAAOA,IAAI,KAAK7B,EAAE,CAAC8B,YAAH,CAAgBI,MAAhC;AACD;;AAEc,SAARK,QAAQ,CAACV,IAAD,EAAmC;AAChD,WAAOA,IAAI,KAAK7B,EAAE,CAAC8B,YAAH,CAAgBM,MAAhC;AACD;;AAzEgB;;AA4EnB,eAAenC,YAAf","sourcesContent":["import ShellQuote, { ParseEntry, ControlOperator } from 'shell-quote';\nimport dh, { VariableTypeUnion } from '@deephaven/jsapi-shim';\n\nclass ConsoleUtils {\n static hasComment(arg: ParseEntry): arg is { comment: string } {\n return (arg as { comment: string }).comment !== undefined;\n }\n\n static hasPattern(arg: ParseEntry): arg is { op: 'glob'; pattern: string } {\n return (arg as { pattern: string }).pattern !== undefined;\n }\n\n static hasOp(arg: ParseEntry): arg is { op: ControlOperator } {\n return (arg as { op: ControlOperator }).op !== undefined;\n }\n\n /**\n * Given the provided text, parse out arguments using shell quoting rules.\n * @param str The text to parse.\n * @return string[] of the arguments. Empty if no arguments found.\n */\n static parseArguments(str: unknown): string[] {\n if (!str || !(typeof str === 'string' || str instanceof String)) {\n return [];\n }\n\n // Parse can return an object, not just a string. See the `ParseEntry` type def for all types\n // We must map them all to strings. Filter out comments that will not be needed as well.\n return ShellQuote.parse(str as string)\n .filter(arg => !this.hasComment(arg))\n .map(arg => {\n if (this.hasPattern(arg)) {\n return arg.pattern;\n }\n if (this.hasOp(arg)) {\n return arg.op;\n }\n return `${arg}`;\n });\n }\n\n static formatTimestamp(date: Date): string | null {\n if (!date || !(date instanceof Date)) {\n return null;\n }\n\n const hours = `${date.getHours()}`.padStart(2, '0');\n const minutes = `${date.getMinutes()}`.padStart(2, '0');\n const seconds = `${date.getSeconds()}`.padStart(2, '0');\n const milliseconds = `${date.getMilliseconds()}`.padStart(3, '0');\n\n return `${hours}:${minutes}:${seconds}.${milliseconds}`;\n }\n\n static isTableType(type: VariableTypeUnion): boolean {\n return type === dh.VariableType.TABLE || type === dh.VariableType.TREETABLE;\n }\n\n static isWidgetType(type: VariableTypeUnion): boolean {\n return (\n type === dh.VariableType.FIGURE ||\n type === dh.VariableType.OTHERWIDGET ||\n type === dh.VariableType.PANDAS\n );\n }\n\n static isOpenableType(type: VariableTypeUnion): boolean {\n return ConsoleUtils.isTableType(type) || ConsoleUtils.isWidgetType(type);\n }\n\n static isFigureType(type: VariableTypeUnion): boolean {\n return type === dh.VariableType.FIGURE;\n }\n\n static isPandas(type: VariableTypeUnion): boolean {\n return type === dh.VariableType.PANDAS;\n }\n}\n\nexport default ConsoleUtils;\n"],"file":"ConsoleUtils.js"}
|
|
@@ -24,7 +24,7 @@ class MonacoCompletionProvider extends PureComponent {
|
|
|
24
24
|
var {
|
|
25
25
|
language
|
|
26
26
|
} = this.props;
|
|
27
|
-
this.registeredCompletionProvider = monaco.languages.registerCompletionItemProvider(language, {
|
|
27
|
+
this.registeredCompletionProvider = monaco.languages.registerCompletionItemProvider(language !== null && language !== void 0 ? language : '', {
|
|
28
28
|
provideCompletionItems: this.handleCompletionRequest,
|
|
29
29
|
triggerCharacters: ['"', '.', "'", '(', '[', '{', ',']
|
|
30
30
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/monaco/MonacoCompletionProvider.tsx"],"names":["PureComponent","monaco","Log","log","module","MonacoCompletionProvider","constructor","props","handleCompletionRequest","bind","componentDidMount","language","registeredCompletionProvider","languages","registerCompletionItemProvider","provideCompletionItems","triggerCharacters","componentWillUnmount","dispose","model","position","context","propModel","session","params","textDocument","uri","line","lineNumber","character","column","completionItems","getCompletionItems","debug","monacoCompletionItems","then","items","suggestions","map","item","label","kind","detail","documentation","sortText","filterText","textEdit","insertTextFormat","start","end","range","startLineNumber","startColumn","endLineNumber","endColumn","insertText","text","insertTextRules","incomplete","catch","error","render"],"mappings":"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","sourcesContent":["/**\n * Completion provider for a code session\n */\nimport { PureComponent } from 'react';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\n\nconst log = Log.module('MonacoCompletionProvider');\n\ninterface MonacoCompletionProviderProps {\n model: monaco.editor.ITextModel;\n session: IdeSession;\n language: string;\n}\n\n/**\n * Registers a completion provider with monaco for the language and session provided.\n */\nclass MonacoCompletionProvider extends PureComponent<\n MonacoCompletionProviderProps,\n Record<string, never>\n> {\n constructor(props: MonacoCompletionProviderProps) {\n super(props);\n\n this.handleCompletionRequest = this.handleCompletionRequest.bind(this);\n }\n\n componentDidMount(): void {\n const { language } = this.props;\n this.registeredCompletionProvider = monaco.languages.registerCompletionItemProvider(\n language,\n {\n provideCompletionItems: this.handleCompletionRequest,\n triggerCharacters: ['\"', '.', \"'\", '(', '[', '{', ','],\n }\n );\n }\n\n componentWillUnmount(): void {\n this.registeredCompletionProvider?.dispose();\n }\n\n registeredCompletionProvider?: monaco.IDisposable;\n\n handleCompletionRequest(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): monaco.languages.ProviderResult<monaco.languages.CompletionList> {\n const { model: propModel, session } = this.props;\n if (model !== propModel) {\n return null;\n }\n\n const params = {\n textDocument: {\n uri: `${model.uri}`,\n },\n // Yes, the Monaco API Position is different than the Position received by the LSP\n // Why? I do not know.\n position: {\n line: position.lineNumber - 1,\n character: position.column - 1,\n },\n context,\n };\n\n const completionItems = session.getCompletionItems(params);\n\n log.debug('Completion items received: ', params, completionItems);\n\n const monacoCompletionItems = completionItems\n .then(items => {\n // Annoying that the LSP protocol returns completion items with a range that's slightly different than what Monaco expects\n // Need to remap the items here\n const suggestions = items.map(item => {\n const {\n label,\n kind,\n detail,\n documentation,\n sortText,\n filterText,\n textEdit,\n insertTextFormat,\n } = item;\n\n const { start, end } = textEdit.range;\n\n // Monaco expects the columns/ranges to start at 1.\n const range = {\n startLineNumber: start.line + 1,\n startColumn: start.character + 1,\n endLineNumber: end.line + 1,\n endColumn: end.character + 1,\n };\n return {\n label,\n kind,\n detail,\n documentation,\n sortText,\n filterText,\n insertText: textEdit.text,\n // We are basically guessing that LSP's insertTextFormat===2 is\n // semantically equivalent to monaco's insertTextRules===4.\n // Why microsoft is using almost-but-not-LSP apis is beyond me....\n insertTextRules: insertTextFormat === 2 ? 4 : insertTextFormat,\n range,\n };\n });\n\n return {\n incomplete: true,\n suggestions,\n };\n })\n .catch((error: unknown) => {\n log.error('There was an error retrieving completion items', error);\n return { suggestions: [] };\n });\n\n return monacoCompletionItems;\n }\n\n render(): null {\n return null;\n }\n}\n\nexport default MonacoCompletionProvider;\n"],"file":"MonacoCompletionProvider.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/monaco/MonacoCompletionProvider.tsx"],"names":["PureComponent","monaco","Log","log","module","MonacoCompletionProvider","constructor","props","handleCompletionRequest","bind","componentDidMount","language","registeredCompletionProvider","languages","registerCompletionItemProvider","provideCompletionItems","triggerCharacters","componentWillUnmount","dispose","model","position","context","propModel","session","params","textDocument","uri","line","lineNumber","character","column","completionItems","getCompletionItems","debug","monacoCompletionItems","then","items","suggestions","map","item","label","kind","detail","documentation","sortText","filterText","textEdit","insertTextFormat","start","end","range","startLineNumber","startColumn","endLineNumber","endColumn","insertText","text","insertTextRules","incomplete","catch","error","render"],"mappings":"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","sourcesContent":["/**\n * Completion provider for a code session\n */\nimport { PureComponent } from 'react';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\n\nconst log = Log.module('MonacoCompletionProvider');\n\ninterface MonacoCompletionProviderProps {\n model: monaco.editor.ITextModel;\n session: IdeSession;\n language: string;\n}\n\n/**\n * Registers a completion provider with monaco for the language and session provided.\n */\nclass MonacoCompletionProvider extends PureComponent<\n MonacoCompletionProviderProps,\n Record<string, never>\n> {\n constructor(props: MonacoCompletionProviderProps) {\n super(props);\n\n this.handleCompletionRequest = this.handleCompletionRequest.bind(this);\n }\n\n componentDidMount(): void {\n const { language } = this.props;\n this.registeredCompletionProvider = monaco.languages.registerCompletionItemProvider(\n language ?? '',\n {\n provideCompletionItems: this.handleCompletionRequest,\n triggerCharacters: ['\"', '.', \"'\", '(', '[', '{', ','],\n }\n );\n }\n\n componentWillUnmount(): void {\n this.registeredCompletionProvider?.dispose();\n }\n\n registeredCompletionProvider?: monaco.IDisposable;\n\n handleCompletionRequest(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): monaco.languages.ProviderResult<monaco.languages.CompletionList> {\n const { model: propModel, session } = this.props;\n if (model !== propModel) {\n return null;\n }\n\n const params = {\n textDocument: {\n uri: `${model.uri}`,\n },\n // Yes, the Monaco API Position is different than the Position received by the LSP\n // Why? I do not know.\n position: {\n line: position.lineNumber - 1,\n character: position.column - 1,\n },\n context,\n };\n\n const completionItems = session.getCompletionItems(params);\n\n log.debug('Completion items received: ', params, completionItems);\n\n const monacoCompletionItems = completionItems\n .then(items => {\n // Annoying that the LSP protocol returns completion items with a range that's slightly different than what Monaco expects\n // Need to remap the items here\n const suggestions = items.map(item => {\n const {\n label,\n kind,\n detail,\n documentation,\n sortText,\n filterText,\n textEdit,\n insertTextFormat,\n } = item;\n\n const { start, end } = textEdit.range;\n\n // Monaco expects the columns/ranges to start at 1.\n const range = {\n startLineNumber: start.line + 1,\n startColumn: start.character + 1,\n endLineNumber: end.line + 1,\n endColumn: end.character + 1,\n };\n return {\n label,\n kind,\n detail,\n documentation,\n sortText,\n filterText,\n insertText: textEdit.text,\n // We are basically guessing that LSP's insertTextFormat===2 is\n // semantically equivalent to monaco's insertTextRules===4.\n // Why microsoft is using almost-but-not-LSP apis is beyond me....\n insertTextRules: insertTextFormat === 2 ? 4 : insertTextFormat,\n range,\n };\n });\n\n return {\n incomplete: true,\n suggestions,\n };\n })\n .catch((error: unknown) => {\n log.error('There was an error retrieving completion items', error);\n return { suggestions: [] };\n });\n\n return monacoCompletionItems;\n }\n\n render(): null {\n return null;\n }\n}\n\nexport default MonacoCompletionProvider;\n"],"file":"MonacoCompletionProvider.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptEditor.d.ts","sourceRoot":"","sources":["../../src/notebook/ScriptEditor.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,OAAO,qBAAqB,CAAC;AAK7B,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,KAAK,IAAI,CAAC;IACxD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,UAAU,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,
|
|
1
|
+
{"version":3,"file":"ScriptEditor.d.ts","sourceRoot":"","sources":["../../src/notebook/ScriptEditor.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAc,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,OAAO,qBAAqB,CAAC;AAK7B,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,KAAK,IAAI,CAAC;IACxD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,UAAU,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;CACjC;AAED,cAAM,YAAa,SAAQ,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACxE,MAAM,CAAC,YAAY;;;;;wBAKH,IAAI;;;;MAIlB;gBAEU,KAAK,EAAE,iBAAiB;IAgBpC,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAuCtD,oBAAoB,IAAI,IAAI;IAI5B,qBAAqB,EAAE,WAAW,EAAE,CAAC;IAErC,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC,MAAM,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAEtC,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAEnC,QAAQ,IAAI,MAAM,GAAG,IAAI;IAQzB,kBAAkB,IAAI,MAAM;IAkB5B,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,qBAAqB,GAAG,IAAI;IA4BxE,uBAAuB,IAAI,IAAI;IAQ/B,SAAS,IAAI,IAAI;IAQjB,iBAAiB,IAAI,IAAI;IAMzB,kBAAkB,IAAI,IAAI;IAgD1B,oBAAoB,IAAI,IAAI;IAO5B,eAAe,IAAI,IAAI;IAKvB,kBAAkB,IAAI,IAAI;IAY1B,oBAAoB,IAAI,IAAI;IAY5B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAO,GAAG,IAAI;IAqBxC,gBAAgB,IAAI,IAAI;IAOxB,KAAK,IAAI,IAAI;IAOb,UAAU,IAAI,IAAI;IAMlB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAMpC,MAAM,IAAI,YAAY;CAmDvB;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/notebook/ScriptEditor.tsx"],"names":["React","Component","LoadingOverlay","ShortcutRegistry","Log","assertNotNull","Editor","MonacoCompletionProvider","MonacoUtils","SHORTCUTS","log","module","ScriptEditor","constructor","props","handleEditorInitialized","bind","handleEditorWillDestroy","handleRun","handleRunSelected","updateShortcuts","contextActionCleanups","editorComponent","createRef","state","model","componentDidMount","addEventListener","componentDidUpdate","prevProps","sessionLanguage","settings","language","languageChanged","debug","setLanguage","sessionDisconnected","languageMatch","prevLanguageMatch","deInitContextActions","deInitCodeCompletion","sessionConnected","initContextActions","initCodeCompletion","componentWillUnmount","removeEventListener","getValue","editor","error","getSelectedCommand","range","getSelection","getModel","startLineNumber","endColumn","endLineNumber","startLineMinColumn","getLineMinColumn","endLineMaxColumn","getLineMaxColumn","wholeLineRange","setStartPosition","setEndPosition","getValueInRange","innerEditor","focusOnMount","onChange","session","setState","setEOL","registerPasteHandler","onDidChangeModelContent","focus","undefined","onRunCommand","command","length","cleanups","push","addAction","id","label","keybindings","getMonacoKeyCodeFromShortcut","NOTEBOOK","RUN","contextMenuGroupId","contextMenuOrder","run","RUN_SELECTED","forEach","cleanup","dispose","completionCleanup","openDocument","closeDocument","append","text","currentText","setValue","lastLine","getLineCount","column","getLineLength","setPosition","lineNumber","updateDimensions","layout","toggleFind","current","render","isLoaded","isLoading","errorMessage","editorLanguage","completionProviderEnabled"],"mappings":"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","sourcesContent":["/**\n * Script editor for large blocks of code\n */\nimport React, { Component, ReactElement, RefObject } from 'react';\nimport { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport { assertNotNull } from '@deephaven/utils';\nimport { editor, IDisposable } from 'monaco-editor';\nimport Editor from './Editor';\nimport { MonacoCompletionProvider, MonacoUtils } from '../monaco';\nimport './ScriptEditor.scss';\nimport SHORTCUTS from '../ConsoleShortcuts';\n\nconst log = Log.module('ScriptEditor');\n\ninterface ScriptEditorProps {\n error?: { message?: string };\n isLoading: boolean;\n isLoaded: boolean;\n focusOnMount?: boolean;\n onChange: (e: editor.IModelContentChangedEvent) => void;\n onRunCommand: (command: string) => void;\n session: IdeSession;\n sessionLanguage?: string;\n settings?: {\n language: string;\n value?: string;\n };\n}\n\ninterface ScriptEditorState {\n model: editor.ITextModel | null;\n}\n\nclass ScriptEditor extends Component<ScriptEditorProps, ScriptEditorState> {\n static defaultProps = {\n error: null,\n isLoading: false,\n isLoaded: false,\n focusOnMount: true,\n onChange: (): void => undefined,\n session: null,\n sessionLanguage: null,\n settings: null,\n };\n\n constructor(props: ScriptEditorProps) {\n super(props);\n this.handleEditorInitialized = this.handleEditorInitialized.bind(this);\n this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);\n this.handleRun = this.handleRun.bind(this);\n this.handleRunSelected = this.handleRunSelected.bind(this);\n this.updateShortcuts = this.updateShortcuts.bind(this);\n\n this.contextActionCleanups = [];\n this.editorComponent = React.createRef();\n\n this.state = {\n model: null,\n };\n }\n\n componentDidMount(): void {\n ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);\n }\n\n componentDidUpdate(prevProps: ScriptEditorProps): void {\n const { sessionLanguage, settings } = this.props;\n\n const language = settings?.language;\n\n const languageChanged = language !== prevProps.settings?.language;\n if (languageChanged) {\n log.debug('Set language', language);\n this.setLanguage(language);\n }\n\n const sessionDisconnected =\n sessionLanguage == null && prevProps.sessionLanguage != null;\n const languageMatch = language === sessionLanguage;\n const prevLanguageMatch =\n prevProps.settings?.language === prevProps.sessionLanguage;\n if (\n sessionDisconnected ||\n (sessionLanguage && prevLanguageMatch && !languageMatch)\n ) {\n // Session disconnected or language changed from matching the session language to non-matching\n log.debug('De-init completion and context actions');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n }\n\n const sessionConnected =\n sessionLanguage != null && prevProps.sessionLanguage == null;\n if (\n (sessionConnected && languageMatch) ||\n (sessionLanguage && !prevLanguageMatch && languageMatch)\n ) {\n // Session connected with a matching language or notebook language changed to matching\n log.debug('Init completion and context actions');\n this.initContextActions();\n this.initCodeCompletion();\n }\n }\n\n componentWillUnmount(): void {\n ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);\n }\n\n contextActionCleanups: IDisposable[];\n\n completionCleanup?: IDisposable;\n\n editor?: editor.IStandaloneCodeEditor;\n\n editorComponent: RefObject<Editor>;\n\n getValue(): string | null {\n if (this.editor) {\n return this.editor.getValue();\n }\n log.error('Editor not initialized');\n return null;\n }\n\n getSelectedCommand(): string {\n const range = this.editor?.getSelection();\n assertNotNull(range);\n const model = this.editor?.getModel();\n assertNotNull(model);\n const { startLineNumber, endColumn } = range;\n let { endLineNumber } = range;\n if (endColumn === 1 && endLineNumber > startLineNumber) {\n endLineNumber -= 1;\n }\n const startLineMinColumn = model?.getLineMinColumn(startLineNumber);\n const endLineMaxColumn = model?.getLineMaxColumn(endLineNumber);\n const wholeLineRange = range\n .setStartPosition(startLineNumber, startLineMinColumn)\n .setEndPosition(endLineNumber, endLineMaxColumn);\n return model?.getValueInRange(wholeLineRange);\n }\n\n handleEditorInitialized(innerEditor: editor.IStandaloneCodeEditor): void {\n const {\n focusOnMount,\n onChange,\n settings,\n session,\n sessionLanguage,\n } = this.props;\n\n log.debug('handleEditorInitialized', sessionLanguage, session, settings);\n\n this.editor = innerEditor;\n this.setState({ model: this.editor.getModel() });\n\n MonacoUtils.setEOL(innerEditor);\n MonacoUtils.registerPasteHandler(innerEditor);\n\n if (session && settings && sessionLanguage === settings.language) {\n this.initContextActions();\n this.initCodeCompletion();\n }\n\n innerEditor.onDidChangeModelContent(onChange);\n if (focusOnMount) {\n innerEditor.focus();\n }\n }\n\n handleEditorWillDestroy(): void {\n log.debug('handleEditorWillDestroy');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n this.setState({ model: null });\n this.editor = undefined;\n }\n\n handleRun(): void {\n const { onRunCommand } = this.props;\n const command = this.getValue();\n if (command != null) {\n onRunCommand(command);\n }\n }\n\n handleRunSelected(): void {\n const { onRunCommand } = this.props;\n const command = this.getSelectedCommand();\n onRunCommand(command);\n }\n\n initContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n log.error('Context actions already initialized.');\n return;\n }\n\n if (!this.editor) {\n return;\n }\n\n const cleanups = [];\n cleanups.push(\n this.editor.addAction({\n id: 'run-code',\n label: 'Run',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRun();\n },\n })\n );\n\n cleanups.push(\n this.editor.addAction({\n id: 'run-selected-code',\n label: 'Run Selected',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(\n SHORTCUTS.NOTEBOOK.RUN_SELECTED\n ),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRunSelected();\n },\n })\n );\n\n this.contextActionCleanups = cleanups;\n }\n\n deInitContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n this.contextActionCleanups.forEach(cleanup => cleanup.dispose());\n this.contextActionCleanups = [];\n }\n }\n\n updateShortcuts(): void {\n this.deInitContextActions();\n this.initContextActions();\n }\n\n initCodeCompletion(): void {\n if (this.completionCleanup != null) {\n log.error('Code completion already initialized.');\n return;\n }\n const { session } = this.props;\n log.debug('initCodeCompletion', this.editor, session);\n if (this.editor && session) {\n this.completionCleanup = MonacoUtils.openDocument(this.editor, session);\n }\n }\n\n deInitCodeCompletion(): void {\n const { session } = this.props;\n log.debug('deInitCodeCompletion', this.editor, session);\n if (this.completionCleanup) {\n this.completionCleanup.dispose();\n this.completionCleanup = undefined;\n }\n if (this.editor && session) {\n MonacoUtils.closeDocument(this.editor, session);\n }\n }\n\n append(text: string, focus = true): void {\n assertNotNull(this.editor);\n const model = this.editor.getModel();\n assertNotNull(model);\n const currentText = model.getValue();\n if (currentText) {\n model.setValue(`${currentText}\\n${text}`);\n } else {\n model.setValue(`${text}`);\n }\n\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n\n this.editor.setPosition({ lineNumber: lastLine, column });\n\n if (focus) {\n this.editor.focus();\n }\n }\n\n updateDimensions(): void {\n log.debug('updateDimensions');\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n focus(): void {\n log.debug('focus');\n if (this.editor) {\n this.editor.focus();\n }\n }\n\n toggleFind(): void {\n if (this.editorComponent.current) {\n this.editorComponent.current.toggleFind();\n }\n }\n\n setLanguage(language?: string): void {\n if (this.editorComponent.current && language) {\n this.editorComponent.current.setLanguage(language);\n }\n }\n\n render(): ReactElement {\n const {\n error,\n isLoaded,\n isLoading,\n session,\n sessionLanguage,\n settings,\n } = this.props;\n const { model } = this.state;\n const errorMessage = error ? `Unable to open document. ${error}` : null;\n const editorLanguage = settings ? settings.language : null;\n const completionProviderEnabled =\n model && session && editorLanguage === sessionLanguage;\n\n return (\n <>\n {(error || isLoading) && (\n <div className=\"h-100 w-100 position-relative\">\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n />\n </div>\n )}\n\n {isLoaded && (\n <div className=\"h-100 w-100 script-editor\">\n {settings && (\n <>\n <Editor\n ref={this.editorComponent}\n settings={settings}\n onEditorInitialized={this.handleEditorInitialized}\n onEditorWillDestroy={this.handleEditorWillDestroy}\n />\n {completionProviderEnabled && (\n <MonacoCompletionProvider\n model={model}\n language={editorLanguage}\n session={session}\n />\n )}\n </>\n )}\n </div>\n )}\n </>\n );\n }\n}\n\nexport default ScriptEditor;\n"],"file":"ScriptEditor.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/notebook/ScriptEditor.tsx"],"names":["React","Component","LoadingOverlay","ShortcutRegistry","Log","assertNotNull","Editor","MonacoCompletionProvider","MonacoUtils","SHORTCUTS","log","module","ScriptEditor","constructor","props","handleEditorInitialized","bind","handleEditorWillDestroy","handleRun","handleRunSelected","updateShortcuts","contextActionCleanups","editorComponent","createRef","state","model","componentDidMount","addEventListener","componentDidUpdate","prevProps","sessionLanguage","settings","language","languageChanged","debug","setLanguage","sessionDisconnected","languageMatch","prevLanguageMatch","deInitContextActions","deInitCodeCompletion","sessionConnected","initContextActions","initCodeCompletion","componentWillUnmount","removeEventListener","getValue","editor","error","getSelectedCommand","range","getSelection","getModel","startLineNumber","endColumn","endLineNumber","startLineMinColumn","getLineMinColumn","endLineMaxColumn","getLineMaxColumn","wholeLineRange","setStartPosition","setEndPosition","getValueInRange","innerEditor","focusOnMount","onChange","session","setState","setEOL","registerPasteHandler","onDidChangeModelContent","focus","undefined","onRunCommand","command","length","cleanups","push","addAction","id","label","keybindings","getMonacoKeyCodeFromShortcut","NOTEBOOK","RUN","contextMenuGroupId","contextMenuOrder","run","RUN_SELECTED","forEach","cleanup","dispose","completionCleanup","openDocument","closeDocument","append","text","currentText","setValue","lastLine","getLineCount","column","getLineLength","setPosition","lineNumber","updateDimensions","layout","toggleFind","current","render","isLoaded","isLoading","errorMessage","editorLanguage","completionProviderEnabled"],"mappings":"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","sourcesContent":["/**\n * Script editor for large blocks of code\n */\nimport React, { Component, ReactElement, RefObject } from 'react';\nimport { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport { assertNotNull } from '@deephaven/utils';\nimport { editor, IDisposable } from 'monaco-editor';\nimport Editor from './Editor';\nimport { MonacoCompletionProvider, MonacoUtils } from '../monaco';\nimport './ScriptEditor.scss';\nimport SHORTCUTS from '../ConsoleShortcuts';\n\nconst log = Log.module('ScriptEditor');\n\ninterface ScriptEditorProps {\n error?: { message?: string };\n isLoading: boolean;\n isLoaded: boolean;\n focusOnMount?: boolean;\n onChange: (e: editor.IModelContentChangedEvent) => void;\n onRunCommand: (command: string) => void;\n session: IdeSession;\n sessionLanguage?: string;\n settings?: {\n language: string;\n value: string | null;\n };\n}\n\ninterface ScriptEditorState {\n model: editor.ITextModel | null;\n}\n\nclass ScriptEditor extends Component<ScriptEditorProps, ScriptEditorState> {\n static defaultProps = {\n error: null,\n isLoading: false,\n isLoaded: false,\n focusOnMount: true,\n onChange: (): void => undefined,\n session: null,\n sessionLanguage: null,\n settings: null,\n };\n\n constructor(props: ScriptEditorProps) {\n super(props);\n this.handleEditorInitialized = this.handleEditorInitialized.bind(this);\n this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);\n this.handleRun = this.handleRun.bind(this);\n this.handleRunSelected = this.handleRunSelected.bind(this);\n this.updateShortcuts = this.updateShortcuts.bind(this);\n\n this.contextActionCleanups = [];\n this.editorComponent = React.createRef();\n\n this.state = {\n model: null,\n };\n }\n\n componentDidMount(): void {\n ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);\n }\n\n componentDidUpdate(prevProps: ScriptEditorProps): void {\n const { sessionLanguage, settings } = this.props;\n\n const language = settings?.language;\n\n const languageChanged = language !== prevProps.settings?.language;\n if (languageChanged) {\n log.debug('Set language', language);\n this.setLanguage(language);\n }\n\n const sessionDisconnected =\n sessionLanguage == null && prevProps.sessionLanguage != null;\n const languageMatch = language === sessionLanguage;\n const prevLanguageMatch =\n prevProps.settings?.language === prevProps.sessionLanguage;\n if (\n sessionDisconnected ||\n (sessionLanguage && prevLanguageMatch && !languageMatch)\n ) {\n // Session disconnected or language changed from matching the session language to non-matching\n log.debug('De-init completion and context actions');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n }\n\n const sessionConnected =\n sessionLanguage != null && prevProps.sessionLanguage == null;\n if (\n (sessionConnected && languageMatch) ||\n (sessionLanguage && !prevLanguageMatch && languageMatch)\n ) {\n // Session connected with a matching language or notebook language changed to matching\n log.debug('Init completion and context actions');\n this.initContextActions();\n this.initCodeCompletion();\n }\n }\n\n componentWillUnmount(): void {\n ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);\n }\n\n contextActionCleanups: IDisposable[];\n\n completionCleanup?: IDisposable;\n\n editor?: editor.IStandaloneCodeEditor;\n\n editorComponent: RefObject<Editor>;\n\n getValue(): string | null {\n if (this.editor) {\n return this.editor.getValue();\n }\n log.error('Editor not initialized');\n return null;\n }\n\n getSelectedCommand(): string {\n const range = this.editor?.getSelection();\n assertNotNull(range);\n const model = this.editor?.getModel();\n assertNotNull(model);\n const { startLineNumber, endColumn } = range;\n let { endLineNumber } = range;\n if (endColumn === 1 && endLineNumber > startLineNumber) {\n endLineNumber -= 1;\n }\n const startLineMinColumn = model?.getLineMinColumn(startLineNumber);\n const endLineMaxColumn = model?.getLineMaxColumn(endLineNumber);\n const wholeLineRange = range\n .setStartPosition(startLineNumber, startLineMinColumn)\n .setEndPosition(endLineNumber, endLineMaxColumn);\n return model?.getValueInRange(wholeLineRange);\n }\n\n handleEditorInitialized(innerEditor: editor.IStandaloneCodeEditor): void {\n const {\n focusOnMount,\n onChange,\n settings,\n session,\n sessionLanguage,\n } = this.props;\n\n log.debug('handleEditorInitialized', sessionLanguage, session, settings);\n\n this.editor = innerEditor;\n this.setState({ model: this.editor.getModel() });\n\n MonacoUtils.setEOL(innerEditor);\n MonacoUtils.registerPasteHandler(innerEditor);\n\n if (session && settings && sessionLanguage === settings.language) {\n this.initContextActions();\n this.initCodeCompletion();\n }\n\n innerEditor.onDidChangeModelContent(onChange);\n if (focusOnMount) {\n innerEditor.focus();\n }\n }\n\n handleEditorWillDestroy(): void {\n log.debug('handleEditorWillDestroy');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n this.setState({ model: null });\n this.editor = undefined;\n }\n\n handleRun(): void {\n const { onRunCommand } = this.props;\n const command = this.getValue();\n if (command != null) {\n onRunCommand(command);\n }\n }\n\n handleRunSelected(): void {\n const { onRunCommand } = this.props;\n const command = this.getSelectedCommand();\n onRunCommand(command);\n }\n\n initContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n log.error('Context actions already initialized.');\n return;\n }\n\n if (!this.editor) {\n return;\n }\n\n const cleanups = [];\n cleanups.push(\n this.editor.addAction({\n id: 'run-code',\n label: 'Run',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRun();\n },\n })\n );\n\n cleanups.push(\n this.editor.addAction({\n id: 'run-selected-code',\n label: 'Run Selected',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(\n SHORTCUTS.NOTEBOOK.RUN_SELECTED\n ),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRunSelected();\n },\n })\n );\n\n this.contextActionCleanups = cleanups;\n }\n\n deInitContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n this.contextActionCleanups.forEach(cleanup => cleanup.dispose());\n this.contextActionCleanups = [];\n }\n }\n\n updateShortcuts(): void {\n this.deInitContextActions();\n this.initContextActions();\n }\n\n initCodeCompletion(): void {\n if (this.completionCleanup != null) {\n log.error('Code completion already initialized.');\n return;\n }\n const { session } = this.props;\n log.debug('initCodeCompletion', this.editor, session);\n if (this.editor && session) {\n this.completionCleanup = MonacoUtils.openDocument(this.editor, session);\n }\n }\n\n deInitCodeCompletion(): void {\n const { session } = this.props;\n log.debug('deInitCodeCompletion', this.editor, session);\n if (this.completionCleanup) {\n this.completionCleanup.dispose();\n this.completionCleanup = undefined;\n }\n if (this.editor && session) {\n MonacoUtils.closeDocument(this.editor, session);\n }\n }\n\n append(text: string, focus = true): void {\n assertNotNull(this.editor);\n const model = this.editor.getModel();\n assertNotNull(model);\n const currentText = model.getValue();\n if (currentText) {\n model.setValue(`${currentText}\\n${text}`);\n } else {\n model.setValue(`${text}`);\n }\n\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n\n this.editor.setPosition({ lineNumber: lastLine, column });\n\n if (focus) {\n this.editor.focus();\n }\n }\n\n updateDimensions(): void {\n log.debug('updateDimensions');\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n focus(): void {\n log.debug('focus');\n if (this.editor) {\n this.editor.focus();\n }\n }\n\n toggleFind(): void {\n if (this.editorComponent.current) {\n this.editorComponent.current.toggleFind();\n }\n }\n\n setLanguage(language?: string): void {\n if (this.editorComponent.current && language) {\n this.editorComponent.current.setLanguage(language);\n }\n }\n\n render(): ReactElement {\n const {\n error,\n isLoaded,\n isLoading,\n session,\n sessionLanguage,\n settings,\n } = this.props;\n const { model } = this.state;\n const errorMessage = error ? `Unable to open document. ${error}` : null;\n const editorLanguage = settings ? settings.language : null;\n const completionProviderEnabled =\n model && session && editorLanguage === sessionLanguage;\n\n return (\n <>\n {(error || isLoading) && (\n <div className=\"h-100 w-100 position-relative\">\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n />\n </div>\n )}\n\n {isLoaded && (\n <div className=\"h-100 w-100 script-editor\">\n {settings && (\n <>\n <Editor\n ref={this.editorComponent}\n settings={settings}\n onEditorInitialized={this.handleEditorInitialized}\n onEditorWillDestroy={this.handleEditorWillDestroy}\n />\n {completionProviderEnabled && (\n <MonacoCompletionProvider\n model={model}\n language={editorLanguage}\n session={session}\n />\n )}\n </>\n )}\n </div>\n )}\n </>\n );\n }\n}\n\nexport default ScriptEditor;\n"],"file":"ScriptEditor.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/console",
|
|
3
|
-
"version": "0.15.5-beta.
|
|
3
|
+
"version": "0.15.5-beta.4+951179d",
|
|
4
4
|
"description": "Deephaven Console",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
"start": "cross-env NODE_ENV=development npm run watch"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@deephaven/components": "^0.15.5-beta.
|
|
34
|
-
"@deephaven/icons": "^0.15.5-beta.
|
|
35
|
-
"@deephaven/jsapi-shim": "^0.15.5-beta.
|
|
36
|
-
"@deephaven/log": "^0.15.5-beta.
|
|
37
|
-
"@deephaven/storage": "^0.15.5-beta.
|
|
38
|
-
"@deephaven/utils": "^0.15.5-beta.
|
|
33
|
+
"@deephaven/components": "^0.15.5-beta.4+951179d",
|
|
34
|
+
"@deephaven/icons": "^0.15.5-beta.4+951179d",
|
|
35
|
+
"@deephaven/jsapi-shim": "^0.15.5-beta.4+951179d",
|
|
36
|
+
"@deephaven/log": "^0.15.5-beta.4+951179d",
|
|
37
|
+
"@deephaven/storage": "^0.15.5-beta.4+951179d",
|
|
38
|
+
"@deephaven/utils": "^0.15.5-beta.4+951179d",
|
|
39
39
|
"@fortawesome/react-fontawesome": "^0.1.18",
|
|
40
40
|
"classnames": "^2.3.1",
|
|
41
41
|
"lodash.debounce": "^4.0.8",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"react-dom": "^17.x"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@deephaven/mocks": "^0.15.5-beta.
|
|
57
|
-
"@deephaven/tsconfig": "^0.15.5-beta.
|
|
56
|
+
"@deephaven/mocks": "^0.15.5-beta.4+951179d",
|
|
57
|
+
"@deephaven/tsconfig": "^0.15.5-beta.4+951179d"
|
|
58
58
|
},
|
|
59
59
|
"files": [
|
|
60
60
|
"dist"
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"publishConfig": {
|
|
66
66
|
"access": "public"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "951179d8b471f5909365d22da4f0f49a765870c8"
|
|
69
69
|
}
|