@deephaven/console 0.16.1-beta.2 → 0.16.1-beta.5

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 (56) hide show
  1. package/dist/Console.js.map +1 -1
  2. package/dist/ConsoleInput.js.map +1 -1
  3. package/dist/ConsoleMenu.js.map +1 -1
  4. package/dist/ConsolePropTypes.js.map +1 -1
  5. package/dist/ConsoleShortcuts.js.map +1 -1
  6. package/dist/ConsoleStatusBar.js.map +1 -1
  7. package/dist/HeapUsage.js.map +1 -1
  8. package/dist/StoragePropTypes.js.map +1 -1
  9. package/dist/command-history/CommandHistory.js.map +1 -1
  10. package/dist/command-history/CommandHistoryActions.js.map +1 -1
  11. package/dist/command-history/CommandHistoryItem.js.map +1 -1
  12. package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
  13. package/dist/command-history/CommandHistoryStorage.js.map +1 -1
  14. package/dist/command-history/CommandHistoryTypes.js.map +1 -1
  15. package/dist/command-history/CommandHistoryViewportUpdater.js.map +1 -1
  16. package/dist/command-history/index.js.map +1 -1
  17. package/dist/common/Code.js.map +1 -1
  18. package/dist/common/ConsoleConstants.js.map +1 -1
  19. package/dist/common/ConsoleUtils.js.map +1 -1
  20. package/dist/common/ObjectIcon.js.map +1 -1
  21. package/dist/common/index.d.js.map +1 -1
  22. package/dist/common/index.js.map +1 -1
  23. package/dist/console-history/ConsoleHistory.js.map +1 -1
  24. package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
  25. package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
  26. package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
  27. package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
  28. package/dist/console-history/ConsoleHistoryTypes.js.map +1 -1
  29. package/dist/console-history/index.js.map +1 -1
  30. package/dist/csv/CsvFormats.js.map +1 -1
  31. package/dist/csv/CsvInputBar.js.map +1 -1
  32. package/dist/csv/CsvOverlay.js.map +1 -1
  33. package/dist/csv/CsvParser.js.map +1 -1
  34. package/dist/csv/CsvTypeParser.js.map +1 -1
  35. package/dist/csv/NewTableColumnTypes.js.map +1 -1
  36. package/dist/declaration.d.js.map +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/log/LogLevel.js.map +1 -1
  39. package/dist/log/LogLevelMenuItem.js.map +1 -1
  40. package/dist/log/LogView.js.map +1 -1
  41. package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
  42. package/dist/monaco/MonacoUtils.d.ts +1 -1
  43. package/dist/monaco/MonacoUtils.d.ts.map +1 -1
  44. package/dist/monaco/MonacoUtils.js +14 -1
  45. package/dist/monaco/MonacoUtils.js.map +1 -1
  46. package/dist/monaco/index.js.map +1 -1
  47. package/dist/monaco/lang/Language.js.map +1 -1
  48. package/dist/monaco/lang/db.js.map +1 -1
  49. package/dist/monaco/lang/groovy.js.map +1 -1
  50. package/dist/monaco/lang/log.js.map +1 -1
  51. package/dist/monaco/lang/python.js.map +1 -1
  52. package/dist/monaco/lang/scala.js.map +1 -1
  53. package/dist/notebook/Editor.js.map +1 -1
  54. package/dist/notebook/ScriptEditor.js.map +1 -1
  55. package/dist/notebook/ScriptEditorUtils.js.map +1 -1
  56. package/package.json +12 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/log/LogView.tsx"],"names":["React","PureComponent","FontAwesomeIcon","DropdownMenu","Tooltip","vsGear","dhTrashUndo","assertNotNull","monaco","ConsoleUtils","LogLevel","LogLevelMenuItem","LogView","getLogText","logItem","date","Date","micros","timestamp","formatTimestamp","logLevel","message","constructor","props","handleClearClick","bind","handleFlushTimeout","handleLogMessage","handleMenuItemClick","handleResetClick","handleResize","handleToggleAllClick","logLevelMenuItems","editorContainer","bufferedMessages","messages","state","shownLogLevels","componentDidMount","resetLogLevels","initMonaco","startListening","window","addEventListener","componentDidUpdate","prevProps","prevState","updateDimensions","refreshLogText","session","stopListening","clearLogs","componentWillUnmount","stopFlushTimer","destroyMonaco","removeEventListener","getMenuActions","actions","push","menuElement","group","order","i","AllLogLevels","on","title","element","length","isEnabled","DefaultLogLevels","indexOf","setState","cancelListener","onLogMessage","undefined","editor","create","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","language","lineDecorationsWidth","lineNumbersMinChars","minimap","enabled","readOnly","renderLineHighlight","scrollBeyondLastLine","value","wordWrap","addCommand","KeyCode","Escape","KeyMod","Shift","position","getPosition","setPosition","dispose","triggerFindWidget","focus","trigger","toggleAll","isAllEnabled","updatedLogLevels","toggleLogLevel","updateLogLevels","appendLogText","text","model","getModel","line","getLineCount","column","getLineLength","isBottomVisible","edits","range","startLineNumber","startColumn","endLineNumber","endColumn","forceMoveMarkers","applyEdits","lineCount","revealLine","truncateLogIfNecessary","logText","charAt","trimRight","setValue","maxLogSize","splice","truncateSize","scrollToBottom","isLineVisible","visibleRanges","getVisibleRanges","isLogItemVisible","flush","queue","flushTimer","setTimeout","bufferTimeout","clearTimeout","layout","render","popperOptions","placement","STDOUT","ERROR","FATAL","STDERR","WARN","INFO","DEBUG","TRACE"],"mappings":"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","sourcesContent":["import React, { PureComponent, ReactElement } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DropdownActions, DropdownMenu, Tooltip } from '@deephaven/components';\nimport { vsGear, dhTrashUndo } from '@deephaven/icons';\nimport { assertNotNull } from '@deephaven/utils';\nimport { IdeSession, LogItem } from '@deephaven/jsapi-shim';\nimport { Placement } from 'popper.js';\nimport * as monaco from 'monaco-editor';\nimport ConsoleUtils from '../common/ConsoleUtils';\nimport LogLevel from './LogLevel';\nimport './LogView.scss';\nimport LogLevelMenuItem from './LogLevelMenuItem';\n\ninterface LogViewProps {\n session: IdeSession;\n}\n\ninterface LogViewState {\n shownLogLevels: Record<string, boolean>;\n}\n/**\n * Log view contents. Uses a monaco editor to display/search the contents of the log.\n */\nclass LogView extends PureComponent<LogViewProps, LogViewState> {\n static DefaultLogLevels = [\n LogLevel.STDOUT,\n LogLevel.ERROR,\n LogLevel.FATAL,\n LogLevel.STDERR,\n LogLevel.WARN,\n ];\n\n static AllLogLevels = [\n LogLevel.INFO,\n LogLevel.STDOUT,\n LogLevel.ERROR,\n LogLevel.FATAL,\n LogLevel.STDERR,\n LogLevel.WARN,\n LogLevel.DEBUG,\n LogLevel.TRACE,\n ];\n\n /** ms to buffer log messages before processing them */\n static bufferTimeout = 16;\n\n /** Maximum number of messages to store in the log */\n static maxLogSize = 131072;\n\n static truncateSize = 65536;\n\n static getLogText(logItem: LogItem): string {\n const date = new Date(logItem.micros / 1000);\n const timestamp = ConsoleUtils.formatTimestamp(date);\n return `${timestamp} ${logItem.logLevel} ${logItem.message}`;\n }\n\n constructor(props: LogViewProps) {\n super(props);\n\n this.handleClearClick = this.handleClearClick.bind(this);\n this.handleFlushTimeout = this.handleFlushTimeout.bind(this);\n this.handleLogMessage = this.handleLogMessage.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleResetClick = this.handleResetClick.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleToggleAllClick = this.handleToggleAllClick.bind(this);\n\n this.logLevelMenuItems = {};\n\n this.editorContainer = null;\n\n this.bufferedMessages = [];\n this.messages = [];\n\n this.state = {\n shownLogLevels: {},\n };\n }\n\n componentDidMount(): void {\n this.resetLogLevels();\n this.initMonaco();\n this.startListening();\n\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(prevProps: LogViewProps, prevState: LogViewState): void {\n this.updateDimensions();\n\n const { shownLogLevels } = this.state;\n if (prevState.shownLogLevels !== shownLogLevels) {\n this.refreshLogText();\n }\n\n const { session } = this.props;\n if (prevProps.session !== session) {\n this.stopListening();\n this.startListening();\n // clear logs when starting a new console\n this.clearLogs();\n }\n }\n\n componentWillUnmount(): void {\n this.stopFlushTimer();\n this.stopListening();\n this.destroyMonaco();\n\n window.removeEventListener('resize', this.handleResize);\n }\n\n cancelListener?: () => void | null;\n\n editor?: monaco.editor.IStandaloneCodeEditor;\n\n editorContainer: HTMLDivElement | null;\n\n logLevelMenuItems: Record<string, LogLevelMenuItem>;\n\n flushTimer?: ReturnType<typeof setTimeout>;\n\n bufferedMessages: LogItem[];\n\n messages: LogItem[];\n\n getMenuActions(shownLogLevels: Record<string, boolean>): DropdownActions {\n const actions = [];\n\n actions.push({\n menuElement: (\n <div className=\"log-level-menu-title\">Display Log Levels</div>\n ),\n group: 1,\n order: 10,\n });\n\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n const on =\n shownLogLevels[logLevel] != null ? shownLogLevels[logLevel] : false;\n actions.push({\n title: logLevel,\n group: 1,\n order: i + 100,\n\n menuElement: (\n <LogLevelMenuItem\n logLevel={logLevel}\n on={on}\n onClick={this.handleMenuItemClick}\n ref={element => {\n if (element != null) {\n this.logLevelMenuItems[logLevel] = element;\n }\n }}\n />\n ),\n });\n }\n\n actions.push({\n group: 1,\n order: 1000,\n menuElement: (\n <div className=\"log-level-menu-controls\">\n <button\n type=\"button\"\n className=\"btn btn-link log-level-toggle-all\"\n onClick={this.handleToggleAllClick}\n >\n Toggle All\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.handleResetClick}\n >\n Reset\n </button>\n </div>\n ),\n });\n\n return actions;\n }\n\n resetLogLevels(): void {\n const shownLogLevels: Record<string, boolean> = {};\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n const isEnabled = LogView.DefaultLogLevels.indexOf(logLevel) >= 0;\n shownLogLevels[logLevel] = isEnabled;\n }\n\n this.setState({ shownLogLevels });\n }\n\n startListening(): void {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n stopListening(): void {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = undefined;\n }\n }\n\n initMonaco(): void {\n assertNotNull(this.editorContainer);\n this.editor = monaco.editor.create(this.editorContainer, {\n copyWithSyntaxHighlighting: false,\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language: 'log',\n lineDecorationsWidth: 0,\n // I commented this out since '' is not a valid parameter for line Numbers\n // lineNumbers: '',\n lineNumbersMinChars: 0,\n minimap: { enabled: false },\n readOnly: true,\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n value: '',\n wordWrap: 'on',\n });\n\n // When find widget is open, escape key closes it.\n // Instead, capture it and do nothing. Same for shift-escape.\n this.editor.addCommand(monaco.KeyCode.Escape, () => undefined);\n this.editor.addCommand(\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.Shift | monaco.KeyCode.Escape,\n () => undefined\n );\n\n // Restore regular escape to clear selection, when editorText has focus.\n this.editor.addCommand(\n monaco.KeyCode.Escape,\n () => {\n const position = this.editor?.getPosition();\n assertNotNull(position);\n this.editor?.setPosition(position);\n },\n 'findWidgetVisible && editorTextFocus'\n );\n\n this.editor.addCommand(\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.Shift | monaco.KeyCode.Escape,\n () => {\n const position = this.editor?.getPosition();\n assertNotNull(position);\n this.editor?.setPosition(position);\n },\n 'findWidgetVisible && editorTextFocus'\n );\n }\n\n destroyMonaco(): void {\n if (this.editor) {\n this.editor.dispose();\n this.editor = undefined;\n }\n }\n\n triggerFindWidget(): void {\n // The actions.find action can no longer be triggered when the editor is not in focus, with monaco 0.22.x.\n // As a workaround, just focus the editor before triggering the action\n // https://github.com/microsoft/monaco-editor/issues/2355\n this.editor?.focus();\n this.editor?.trigger('keyboard', 'actions.find', undefined);\n }\n\n toggleAll(): void {\n const { shownLogLevels } = this.state;\n let isAllEnabled = true;\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n if (!shownLogLevels[logLevel]) {\n isAllEnabled = false;\n break;\n }\n }\n\n if (isAllEnabled) {\n this.setState({ shownLogLevels: {} });\n } else {\n const updatedLogLevels: Record<string, boolean> = {};\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n updatedLogLevels[logLevel] = true;\n }\n this.setState({ shownLogLevels: updatedLogLevels });\n }\n }\n\n toggleLogLevel(logLevel: string): void {\n const { shownLogLevels } = this.state;\n const isEnabled = shownLogLevels[logLevel];\n const updatedLogLevels: Record<string, boolean> = {};\n updatedLogLevels[logLevel] = !isEnabled;\n this.updateLogLevels(updatedLogLevels);\n }\n\n updateLogLevels(updatedLogLevels: Record<string, boolean>): void {\n let { shownLogLevels } = this.state;\n shownLogLevels = { ...shownLogLevels, ...updatedLogLevels };\n this.setState({ shownLogLevels });\n }\n\n appendLogText(text: string): void {\n if (!this.editor) {\n return;\n }\n\n const model = this.editor.getModel();\n let line = model?.getLineCount();\n assertNotNull(line);\n let column = model?.getLineLength(line);\n assertNotNull(column);\n const isBottomVisible = this.isBottomVisible();\n\n const edits = [];\n if (column > 0) {\n edits.push({\n range: {\n startLineNumber: line,\n startColumn: column + 1,\n endLineNumber: line,\n endColumn: column + 1,\n },\n text: '\\n',\n forceMoveMarkers: true,\n });\n line += 1;\n column = 0;\n }\n\n edits.push({\n range: {\n startLineNumber: line,\n startColumn: column,\n endLineNumber: line,\n endColumn: column,\n },\n text,\n forceMoveMarkers: true,\n });\n\n model?.applyEdits(edits);\n\n if (isBottomVisible) {\n const lineCount = model?.getLineCount();\n assertNotNull(lineCount);\n this.editor.revealLine(lineCount, 1);\n }\n }\n\n /**\n * Refresh the contents of the log component with the updated filter text\n */\n refreshLogText(): void {\n if (!this.editor) {\n return;\n }\n\n this.truncateLogIfNecessary();\n\n const { shownLogLevels } = this.state;\n const isBottomVisible = this.isBottomVisible();\n\n let text = '';\n for (let i = 0; i < this.messages.length; i += 1) {\n const message = this.messages[i];\n if (shownLogLevels[message.logLevel]) {\n const logText = LogView.getLogText(message);\n if (logText.length > 0) {\n text += logText;\n if (logText.charAt(logText.length - 1) !== '\\n') {\n text += '\\n';\n }\n }\n }\n }\n text = text.trimRight();\n\n this.editor.setValue(text);\n\n if (isBottomVisible) {\n const line = this.editor.getModel()?.getLineCount();\n assertNotNull(line);\n this.editor.revealLine(line, 1);\n }\n\n this.stopFlushTimer();\n this.bufferedMessages = [];\n }\n\n truncateLogIfNecessary(): void {\n if (this.messages.length > LogView.maxLogSize) {\n this.messages = this.messages.splice(\n this.messages.length - LogView.truncateSize\n );\n }\n }\n\n scrollToBottom(): void {\n if (!this.editor) {\n return;\n }\n\n const line = this.editor?.getModel?.()?.getLineCount();\n assertNotNull(line);\n this.editor.revealLine(line, 1);\n }\n\n isBottomVisible(): boolean {\n if (!this.editor) {\n return true;\n }\n\n const model = this.editor.getModel();\n const line = model?.getLineCount();\n\n assertNotNull(line);\n return this.isLineVisible(line);\n }\n\n isLineVisible(line: number): boolean {\n const visibleRanges = this.editor?.getVisibleRanges();\n if (visibleRanges == null || visibleRanges.length === 0) {\n return false;\n }\n\n for (let i = 0; i < visibleRanges.length; i += 1) {\n const range = visibleRanges[i];\n if (range.startLineNumber <= line && line <= range.endLineNumber) {\n return true;\n }\n }\n\n return false;\n }\n\n /** Checks if the given log message is visible with the current filters */\n isLogItemVisible(message: LogItem): boolean {\n const { shownLogLevels } = this.state;\n return shownLogLevels[message.logLevel];\n }\n\n flush(): void {\n let text = '';\n for (let i = 0; i < this.bufferedMessages.length; i += 1) {\n const message = this.bufferedMessages[i];\n const logText = LogView.getLogText(message);\n text += logText;\n if (logText.charAt(logText.length - 1) !== '\\n') {\n text += '\\n';\n }\n }\n\n this.bufferedMessages = [];\n\n this.appendLogText(text);\n }\n\n queue(message: LogItem): void {\n this.bufferedMessages.push(message);\n if (this.bufferedMessages.length === 1) {\n this.flushTimer = setTimeout(\n this.handleFlushTimeout,\n LogView.bufferTimeout\n );\n }\n }\n\n stopFlushTimer(): void {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = undefined;\n }\n }\n\n updateDimensions(): void {\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n handleClearClick(): void {\n this.clearLogs();\n }\n\n clearLogs(): void {\n this.messages = [];\n this.refreshLogText();\n }\n\n handleFlushTimeout(): void {\n this.stopFlushTimer();\n this.flush();\n }\n\n handleLogMessage(message: LogItem): void {\n this.messages.push(message);\n\n if (this.editor && this.isLogItemVisible(message)) {\n this.queue(message);\n }\n }\n\n handleMenuItemClick(logLevel: string): void {\n this.toggleLogLevel(logLevel);\n }\n\n handleResetClick(): void {\n this.resetLogLevels();\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleToggleAllClick(): void {\n this.toggleAll();\n }\n\n render(): ReactElement {\n const popperOptions = { placement: 'bottom-end' as Placement };\n const { shownLogLevels } = this.state;\n const actions = this.getMenuActions(shownLogLevels);\n return (\n <div className=\"log-pane h-100 w-100\">\n <div className=\"log-pane-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-clear-logs\"\n onClick={this.handleClearClick}\n >\n <FontAwesomeIcon icon={dhTrashUndo} />\n <Tooltip>Clear log</Tooltip>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-overflow\"\n >\n <FontAwesomeIcon icon={vsGear} />\n <Tooltip>Log Settings</Tooltip>\n <DropdownMenu\n actions={actions}\n popperClassName=\"log-level-menu-popper\"\n popperOptions={popperOptions}\n />\n </button>\n </div>\n <div\n className=\"log-pane-editor h-100 w-100\"\n ref={editorContainer => {\n this.editorContainer = editorContainer;\n }}\n />\n </div>\n );\n }\n}\n\nexport default LogView;\n"],"file":"LogView.js"}
1
+ {"version":3,"file":"LogView.js","names":["React","PureComponent","FontAwesomeIcon","DropdownMenu","Tooltip","vsGear","dhTrashUndo","assertNotNull","monaco","ConsoleUtils","LogLevel","LogLevelMenuItem","LogView","getLogText","logItem","date","Date","micros","timestamp","formatTimestamp","logLevel","message","constructor","props","handleClearClick","bind","handleFlushTimeout","handleLogMessage","handleMenuItemClick","handleResetClick","handleResize","handleToggleAllClick","logLevelMenuItems","editorContainer","bufferedMessages","messages","state","shownLogLevels","componentDidMount","resetLogLevels","initMonaco","startListening","window","addEventListener","componentDidUpdate","prevProps","prevState","updateDimensions","refreshLogText","session","stopListening","clearLogs","componentWillUnmount","stopFlushTimer","destroyMonaco","removeEventListener","getMenuActions","actions","push","menuElement","group","order","i","AllLogLevels","on","title","element","length","isEnabled","DefaultLogLevels","indexOf","setState","cancelListener","onLogMessage","undefined","editor","create","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","language","lineDecorationsWidth","lineNumbersMinChars","minimap","enabled","readOnly","renderLineHighlight","scrollBeyondLastLine","value","wordWrap","addCommand","KeyCode","Escape","KeyMod","Shift","position","getPosition","setPosition","dispose","triggerFindWidget","focus","trigger","toggleAll","isAllEnabled","updatedLogLevels","toggleLogLevel","updateLogLevels","appendLogText","text","model","getModel","line","getLineCount","column","getLineLength","isBottomVisible","edits","range","startLineNumber","startColumn","endLineNumber","endColumn","forceMoveMarkers","applyEdits","lineCount","revealLine","truncateLogIfNecessary","logText","charAt","trimRight","setValue","maxLogSize","splice","truncateSize","scrollToBottom","isLineVisible","visibleRanges","getVisibleRanges","isLogItemVisible","flush","queue","flushTimer","setTimeout","bufferTimeout","clearTimeout","layout","render","popperOptions","placement","STDOUT","ERROR","FATAL","STDERR","WARN","INFO","DEBUG","TRACE"],"sources":["../../src/log/LogView.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DropdownActions, DropdownMenu, Tooltip } from '@deephaven/components';\nimport { vsGear, dhTrashUndo } from '@deephaven/icons';\nimport { assertNotNull } from '@deephaven/utils';\nimport { IdeSession, LogItem } from '@deephaven/jsapi-shim';\nimport { Placement } from 'popper.js';\nimport * as monaco from 'monaco-editor';\nimport ConsoleUtils from '../common/ConsoleUtils';\nimport LogLevel from './LogLevel';\nimport './LogView.scss';\nimport LogLevelMenuItem from './LogLevelMenuItem';\n\ninterface LogViewProps {\n session: IdeSession;\n}\n\ninterface LogViewState {\n shownLogLevels: Record<string, boolean>;\n}\n/**\n * Log view contents. Uses a monaco editor to display/search the contents of the log.\n */\nclass LogView extends PureComponent<LogViewProps, LogViewState> {\n static DefaultLogLevels = [\n LogLevel.STDOUT,\n LogLevel.ERROR,\n LogLevel.FATAL,\n LogLevel.STDERR,\n LogLevel.WARN,\n ];\n\n static AllLogLevels = [\n LogLevel.INFO,\n LogLevel.STDOUT,\n LogLevel.ERROR,\n LogLevel.FATAL,\n LogLevel.STDERR,\n LogLevel.WARN,\n LogLevel.DEBUG,\n LogLevel.TRACE,\n ];\n\n /** ms to buffer log messages before processing them */\n static bufferTimeout = 16;\n\n /** Maximum number of messages to store in the log */\n static maxLogSize = 131072;\n\n static truncateSize = 65536;\n\n static getLogText(logItem: LogItem): string {\n const date = new Date(logItem.micros / 1000);\n const timestamp = ConsoleUtils.formatTimestamp(date);\n return `${timestamp} ${logItem.logLevel} ${logItem.message}`;\n }\n\n constructor(props: LogViewProps) {\n super(props);\n\n this.handleClearClick = this.handleClearClick.bind(this);\n this.handleFlushTimeout = this.handleFlushTimeout.bind(this);\n this.handleLogMessage = this.handleLogMessage.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleResetClick = this.handleResetClick.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleToggleAllClick = this.handleToggleAllClick.bind(this);\n\n this.logLevelMenuItems = {};\n\n this.editorContainer = null;\n\n this.bufferedMessages = [];\n this.messages = [];\n\n this.state = {\n shownLogLevels: {},\n };\n }\n\n componentDidMount(): void {\n this.resetLogLevels();\n this.initMonaco();\n this.startListening();\n\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(prevProps: LogViewProps, prevState: LogViewState): void {\n this.updateDimensions();\n\n const { shownLogLevels } = this.state;\n if (prevState.shownLogLevels !== shownLogLevels) {\n this.refreshLogText();\n }\n\n const { session } = this.props;\n if (prevProps.session !== session) {\n this.stopListening();\n this.startListening();\n // clear logs when starting a new console\n this.clearLogs();\n }\n }\n\n componentWillUnmount(): void {\n this.stopFlushTimer();\n this.stopListening();\n this.destroyMonaco();\n\n window.removeEventListener('resize', this.handleResize);\n }\n\n cancelListener?: () => void | null;\n\n editor?: monaco.editor.IStandaloneCodeEditor;\n\n editorContainer: HTMLDivElement | null;\n\n logLevelMenuItems: Record<string, LogLevelMenuItem>;\n\n flushTimer?: ReturnType<typeof setTimeout>;\n\n bufferedMessages: LogItem[];\n\n messages: LogItem[];\n\n getMenuActions(shownLogLevels: Record<string, boolean>): DropdownActions {\n const actions = [];\n\n actions.push({\n menuElement: (\n <div className=\"log-level-menu-title\">Display Log Levels</div>\n ),\n group: 1,\n order: 10,\n });\n\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n const on =\n shownLogLevels[logLevel] != null ? shownLogLevels[logLevel] : false;\n actions.push({\n title: logLevel,\n group: 1,\n order: i + 100,\n\n menuElement: (\n <LogLevelMenuItem\n logLevel={logLevel}\n on={on}\n onClick={this.handleMenuItemClick}\n ref={element => {\n if (element != null) {\n this.logLevelMenuItems[logLevel] = element;\n }\n }}\n />\n ),\n });\n }\n\n actions.push({\n group: 1,\n order: 1000,\n menuElement: (\n <div className=\"log-level-menu-controls\">\n <button\n type=\"button\"\n className=\"btn btn-link log-level-toggle-all\"\n onClick={this.handleToggleAllClick}\n >\n Toggle All\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.handleResetClick}\n >\n Reset\n </button>\n </div>\n ),\n });\n\n return actions;\n }\n\n resetLogLevels(): void {\n const shownLogLevels: Record<string, boolean> = {};\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n const isEnabled = LogView.DefaultLogLevels.indexOf(logLevel) >= 0;\n shownLogLevels[logLevel] = isEnabled;\n }\n\n this.setState({ shownLogLevels });\n }\n\n startListening(): void {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n stopListening(): void {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = undefined;\n }\n }\n\n initMonaco(): void {\n assertNotNull(this.editorContainer);\n this.editor = monaco.editor.create(this.editorContainer, {\n copyWithSyntaxHighlighting: false,\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language: 'log',\n lineDecorationsWidth: 0,\n // I commented this out since '' is not a valid parameter for line Numbers\n // lineNumbers: '',\n lineNumbersMinChars: 0,\n minimap: { enabled: false },\n readOnly: true,\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n value: '',\n wordWrap: 'on',\n });\n\n // When find widget is open, escape key closes it.\n // Instead, capture it and do nothing. Same for shift-escape.\n this.editor.addCommand(monaco.KeyCode.Escape, () => undefined);\n this.editor.addCommand(\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.Shift | monaco.KeyCode.Escape,\n () => undefined\n );\n\n // Restore regular escape to clear selection, when editorText has focus.\n this.editor.addCommand(\n monaco.KeyCode.Escape,\n () => {\n const position = this.editor?.getPosition();\n assertNotNull(position);\n this.editor?.setPosition(position);\n },\n 'findWidgetVisible && editorTextFocus'\n );\n\n this.editor.addCommand(\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.Shift | monaco.KeyCode.Escape,\n () => {\n const position = this.editor?.getPosition();\n assertNotNull(position);\n this.editor?.setPosition(position);\n },\n 'findWidgetVisible && editorTextFocus'\n );\n }\n\n destroyMonaco(): void {\n if (this.editor) {\n this.editor.dispose();\n this.editor = undefined;\n }\n }\n\n triggerFindWidget(): void {\n // The actions.find action can no longer be triggered when the editor is not in focus, with monaco 0.22.x.\n // As a workaround, just focus the editor before triggering the action\n // https://github.com/microsoft/monaco-editor/issues/2355\n this.editor?.focus();\n this.editor?.trigger('keyboard', 'actions.find', undefined);\n }\n\n toggleAll(): void {\n const { shownLogLevels } = this.state;\n let isAllEnabled = true;\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n if (!shownLogLevels[logLevel]) {\n isAllEnabled = false;\n break;\n }\n }\n\n if (isAllEnabled) {\n this.setState({ shownLogLevels: {} });\n } else {\n const updatedLogLevels: Record<string, boolean> = {};\n for (let i = 0; i < LogView.AllLogLevels.length; i += 1) {\n const logLevel = LogView.AllLogLevels[i];\n updatedLogLevels[logLevel] = true;\n }\n this.setState({ shownLogLevels: updatedLogLevels });\n }\n }\n\n toggleLogLevel(logLevel: string): void {\n const { shownLogLevels } = this.state;\n const isEnabled = shownLogLevels[logLevel];\n const updatedLogLevels: Record<string, boolean> = {};\n updatedLogLevels[logLevel] = !isEnabled;\n this.updateLogLevels(updatedLogLevels);\n }\n\n updateLogLevels(updatedLogLevels: Record<string, boolean>): void {\n let { shownLogLevels } = this.state;\n shownLogLevels = { ...shownLogLevels, ...updatedLogLevels };\n this.setState({ shownLogLevels });\n }\n\n appendLogText(text: string): void {\n if (!this.editor) {\n return;\n }\n\n const model = this.editor.getModel();\n let line = model?.getLineCount();\n assertNotNull(line);\n let column = model?.getLineLength(line);\n assertNotNull(column);\n const isBottomVisible = this.isBottomVisible();\n\n const edits = [];\n if (column > 0) {\n edits.push({\n range: {\n startLineNumber: line,\n startColumn: column + 1,\n endLineNumber: line,\n endColumn: column + 1,\n },\n text: '\\n',\n forceMoveMarkers: true,\n });\n line += 1;\n column = 0;\n }\n\n edits.push({\n range: {\n startLineNumber: line,\n startColumn: column,\n endLineNumber: line,\n endColumn: column,\n },\n text,\n forceMoveMarkers: true,\n });\n\n model?.applyEdits(edits);\n\n if (isBottomVisible) {\n const lineCount = model?.getLineCount();\n assertNotNull(lineCount);\n this.editor.revealLine(lineCount, 1);\n }\n }\n\n /**\n * Refresh the contents of the log component with the updated filter text\n */\n refreshLogText(): void {\n if (!this.editor) {\n return;\n }\n\n this.truncateLogIfNecessary();\n\n const { shownLogLevels } = this.state;\n const isBottomVisible = this.isBottomVisible();\n\n let text = '';\n for (let i = 0; i < this.messages.length; i += 1) {\n const message = this.messages[i];\n if (shownLogLevels[message.logLevel]) {\n const logText = LogView.getLogText(message);\n if (logText.length > 0) {\n text += logText;\n if (logText.charAt(logText.length - 1) !== '\\n') {\n text += '\\n';\n }\n }\n }\n }\n text = text.trimRight();\n\n this.editor.setValue(text);\n\n if (isBottomVisible) {\n const line = this.editor.getModel()?.getLineCount();\n assertNotNull(line);\n this.editor.revealLine(line, 1);\n }\n\n this.stopFlushTimer();\n this.bufferedMessages = [];\n }\n\n truncateLogIfNecessary(): void {\n if (this.messages.length > LogView.maxLogSize) {\n this.messages = this.messages.splice(\n this.messages.length - LogView.truncateSize\n );\n }\n }\n\n scrollToBottom(): void {\n if (!this.editor) {\n return;\n }\n\n const line = this.editor?.getModel?.()?.getLineCount();\n assertNotNull(line);\n this.editor.revealLine(line, 1);\n }\n\n isBottomVisible(): boolean {\n if (!this.editor) {\n return true;\n }\n\n const model = this.editor.getModel();\n const line = model?.getLineCount();\n\n assertNotNull(line);\n return this.isLineVisible(line);\n }\n\n isLineVisible(line: number): boolean {\n const visibleRanges = this.editor?.getVisibleRanges();\n if (visibleRanges == null || visibleRanges.length === 0) {\n return false;\n }\n\n for (let i = 0; i < visibleRanges.length; i += 1) {\n const range = visibleRanges[i];\n if (range.startLineNumber <= line && line <= range.endLineNumber) {\n return true;\n }\n }\n\n return false;\n }\n\n /** Checks if the given log message is visible with the current filters */\n isLogItemVisible(message: LogItem): boolean {\n const { shownLogLevels } = this.state;\n return shownLogLevels[message.logLevel];\n }\n\n flush(): void {\n let text = '';\n for (let i = 0; i < this.bufferedMessages.length; i += 1) {\n const message = this.bufferedMessages[i];\n const logText = LogView.getLogText(message);\n text += logText;\n if (logText.charAt(logText.length - 1) !== '\\n') {\n text += '\\n';\n }\n }\n\n this.bufferedMessages = [];\n\n this.appendLogText(text);\n }\n\n queue(message: LogItem): void {\n this.bufferedMessages.push(message);\n if (this.bufferedMessages.length === 1) {\n this.flushTimer = setTimeout(\n this.handleFlushTimeout,\n LogView.bufferTimeout\n );\n }\n }\n\n stopFlushTimer(): void {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = undefined;\n }\n }\n\n updateDimensions(): void {\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n handleClearClick(): void {\n this.clearLogs();\n }\n\n clearLogs(): void {\n this.messages = [];\n this.refreshLogText();\n }\n\n handleFlushTimeout(): void {\n this.stopFlushTimer();\n this.flush();\n }\n\n handleLogMessage(message: LogItem): void {\n this.messages.push(message);\n\n if (this.editor && this.isLogItemVisible(message)) {\n this.queue(message);\n }\n }\n\n handleMenuItemClick(logLevel: string): void {\n this.toggleLogLevel(logLevel);\n }\n\n handleResetClick(): void {\n this.resetLogLevels();\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleToggleAllClick(): void {\n this.toggleAll();\n }\n\n render(): ReactElement {\n const popperOptions = { placement: 'bottom-end' as Placement };\n const { shownLogLevels } = this.state;\n const actions = this.getMenuActions(shownLogLevels);\n return (\n <div className=\"log-pane h-100 w-100\">\n <div className=\"log-pane-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-clear-logs\"\n onClick={this.handleClearClick}\n >\n <FontAwesomeIcon icon={dhTrashUndo} />\n <Tooltip>Clear log</Tooltip>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-overflow\"\n >\n <FontAwesomeIcon icon={vsGear} />\n <Tooltip>Log Settings</Tooltip>\n <DropdownMenu\n actions={actions}\n popperClassName=\"log-level-menu-popper\"\n popperOptions={popperOptions}\n />\n </button>\n </div>\n <div\n className=\"log-pane-editor h-100 w-100\"\n ref={editorContainer => {\n this.editorContainer = editorContainer;\n }}\n />\n </div>\n );\n }\n}\n\nexport default LogView;\n"],"mappings":"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"}
@@ -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';\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,"file":"MonacoCompletionProvider.js","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"],"sources":["../../src/monaco/MonacoCompletionProvider.tsx"],"sourcesContent":["/**\n * Completion provider for a code session\n */\nimport { PureComponent } from 'react';\nimport * as monaco from 'monaco-editor';\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"],"mappings":"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"}
@@ -55,7 +55,7 @@ declare class MonacoUtils {
55
55
  * @param editor The editor to remove the keybinding from
56
56
  * @param keybinding The key string to remove. E.g. 'ctrl+C' for copy on Windows
57
57
  */
58
- static removeKeybinding(editor: monaco.editor.IStandaloneCodeEditor, keybinding: string): void;
58
+ static removeKeybinding(editor: monaco.editor.IStandaloneCodeEditor, keybinding: string | undefined): void;
59
59
  static getMonacoKeyCodeFromShortcut(shortcut: Shortcut): number;
60
60
  }
61
61
  export default MonacoUtils;
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoUtils.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoUtils.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAUxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,cAAM,WAAW;IACf,MAAM,CAAC,IAAI,IAAI,IAAI;IAsHnB;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI3C,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAkBrD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAUjD;;;;OAIG;IACH,MAAM,CAAC,MAAM,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAC3C,WAAW,kCAAqC,GAC/C,IAAI;IAIP;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAC3C,OAAO,EAAE,UAAU,GAClB,MAAM,CAAC,WAAW;IAwDrB,MAAM,CAAC,aAAa,CAClB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAC3C,OAAO,EAAE,UAAU,GAClB,IAAI;IAWP;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,GAC1C,IAAI;IAoBP,MAAM,CAAC,aAAa,IAAI,OAAO;IAK/B;;;;OAIG;IACH,MAAM,CAAC,4BAA4B,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,GAC1C,IAAI;IAqCP;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,gBAAgB,CACrB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAC3C,UAAU,EAAE,MAAM,GACjB,IAAI;IA0BP,MAAM,CAAC,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;CA6BhE;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MonacoUtils.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoUtils.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAYxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAU3C,cAAM,WAAW;IACf,MAAM,CAAC,IAAI,IAAI,IAAI;IAsHnB;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI3C,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAkBrD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAUjD;;;;OAIG;IACH,MAAM,CAAC,MAAM,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAC3C,WAAW,kCAAqC,GAC/C,IAAI;IAIP;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAC3C,OAAO,EAAE,UAAU,GAClB,MAAM,CAAC,WAAW;IAwDrB,MAAM,CAAC,aAAa,CAClB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAC3C,OAAO,EAAE,UAAU,GAClB,IAAI;IAWP;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,GAC1C,IAAI;IAoBP,MAAM,CAAC,aAAa,IAAI,OAAO;IAK/B;;;;OAIG;IACH,MAAM,CAAC,4BAA4B,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,GAC1C,IAAI;IAmCP;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,gBAAgB,CACrB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAC3C,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,IAAI;IA8BP,MAAM,CAAC,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;CA6BhE;AAED,eAAe,WAAW,CAAC"}
@@ -6,7 +6,9 @@
6
6
  import { assertNotNull } from '@deephaven/utils';
7
7
  import * as monaco from 'monaco-editor'; // @ts-ignore
8
8
 
9
- import { KeyCodeUtils } from 'monaco-editor/esm/vs/base/common/keyCodes.js';
9
+ import { KeyCodeUtils } from 'monaco-editor/esm/vs/base/common/keyCodes.js'; // @ts-ignore
10
+
11
+ import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
10
12
  import Log from '@deephaven/log';
11
13
  import MonacoTheme from "./MonacoTheme.module.css";
12
14
  import PyLang from "./lang/python.js";
@@ -15,6 +17,12 @@ import ScalaLang from "./lang/scala.js";
15
17
  import DbLang from "./lang/db.js";
16
18
  import LogLang from "./lang/log.js";
17
19
  var log = Log.module('MonacoUtils');
20
+ window.MonacoEnvironment = {
21
+ getWorker(workerId, label) {
22
+ return editorWorker();
23
+ }
24
+
25
+ };
18
26
 
19
27
  class MonacoUtils {
20
28
  static init() {
@@ -335,9 +343,14 @@ class MonacoUtils {
335
343
 
336
344
 
337
345
  static removeKeybinding(editor, keybinding) {
346
+ if (!keybinding) {
347
+ return;
348
+ }
338
349
  /* eslint-disable no-underscore-dangle */
339
350
  // It's possible a single keybinding has multiple commands depending on context
340
351
  // @ts-ignore
352
+
353
+
341
354
  var keybindings = editor._standaloneKeybindingService._getResolver()._map.get(keybinding);
342
355
 
343
356
  if (keybindings) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/monaco/MonacoUtils.ts"],"names":["assertNotNull","monaco","KeyCodeUtils","Log","MonacoTheme","PyLang","GroovyLang","ScalaLang","DbLang","LogLang","log","module","MonacoUtils","init","debug","registerLanguages","removeHashtag","dhDarkRules","token","foreground","string","keyword","delimiter","comment","number","storage","identifier","operator","predefined","substring","dhDarkColors","errorForeground","background","focusBorder","editor","defineTheme","base","inherit","rules","colors","debug2","setTheme","color","languages","languageIds","map","id","getLanguages","filter","includes","forEach","languageParam","language","registerLanguage","register","onLanguage","setLanguageConfiguration","conf","setMonarchTokensProvider","setEOL","eolSequence","EndOfLineSequence","LF","getModel","openDocument","session","model","didOpenDocumentParams","textDocument","uri","languageId","getLanguageId","version","getVersionId","text","getValue","dispose","onDidChangeModelContent","changedEvent","changes","versionId","contentChanges","i","length","change","range","rangeLength","contentChange","start","line","startLineNumber","character","startColumn","end","endLineNumber","endColumn","push","didChangeDocumentParams","changeDocument","closeDocument","didCloseDocumentParams","registerPasteHandler","onDidPaste","pasteEvent","smartQuotes","invalidChars","editorModel","pastedText","getValueInRange","test","applyEdits","replace","isMacPlatform","platform","window","navigator","startsWith","removeConflictingKeybindings","keybindings","windows","mac","keybinding","removeKeybinding","err","error","_standaloneKeybindingService","_getResolver","_map","get","elem","command","addDynamicKeybinding","undefined","warn","getMonacoKeyCodeFromShortcut","shortcut","keyState","keyValue","isMac","metaKey","KeyMod","CtrlCmd","shiftKey","Shift","altKey","Alt","ctrlKey","WinCtrl","fromString"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/**\n * Exports a function for initializing monaco with the deephaven theme/config\n */\nimport { Shortcut } from '@deephaven/components';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport { assertNotNull } from '@deephaven/utils';\nimport * as monaco from 'monaco-editor';\n// @ts-ignore\nimport { KeyCodeUtils } from 'monaco-editor/esm/vs/base/common/keyCodes.js';\nimport Log from '@deephaven/log';\nimport MonacoTheme from './MonacoTheme.module.scss';\nimport PyLang from './lang/python';\nimport GroovyLang from './lang/groovy';\nimport ScalaLang from './lang/scala';\nimport DbLang from './lang/db';\nimport LogLang from './lang/log';\nimport { Language } from './lang/Language';\n\nconst log = Log.module('MonacoUtils');\nclass MonacoUtils {\n static init(): void {\n log.debug('Initializing Monaco...');\n\n const { registerLanguages, removeHashtag } = MonacoUtils;\n\n const dhDarkRules = [\n { token: '', foreground: removeHashtag(MonacoTheme.foreground) },\n { token: 'string', foreground: removeHashtag(MonacoTheme.string) },\n {\n token: 'string.delim',\n foreground: removeHashtag(MonacoTheme['string-delim']),\n },\n { token: 'keyword', foreground: removeHashtag(MonacoTheme.keyword) },\n {\n token: 'identifier.js',\n foreground: removeHashtag(MonacoTheme['identifier-js']),\n },\n {\n token: 'delimiter',\n foreground: removeHashtag(MonacoTheme.delimiter),\n },\n { token: 'comment', foreground: removeHashtag(MonacoTheme.comment) },\n { token: 'number', foreground: removeHashtag(MonacoTheme.number) },\n { token: 'storage', foreground: removeHashtag(MonacoTheme.storage) },\n {\n token: 'identifier',\n foreground: removeHashtag(MonacoTheme.identifier),\n },\n {\n token: 'namespace.identifier',\n foreground: removeHashtag(MonacoTheme['namespace-identifier']),\n },\n { token: 'operator', foreground: removeHashtag(MonacoTheme.operator) },\n {\n token: 'predefined',\n foreground: removeHashtag(MonacoTheme.predefined),\n },\n {\n token: 'error.log',\n foreground: MonacoTheme['log-error'].substring(1),\n },\n {\n token: 'warn.log',\n foreground: removeHashtag(MonacoTheme['log-warn']),\n },\n {\n token: 'info.log',\n foreground: removeHashtag(MonacoTheme['log-info']),\n },\n {\n token: 'stdout.log',\n foreground: removeHashtag(MonacoTheme['log-stdout']),\n },\n {\n token: 'trace.log',\n foreground: removeHashtag(MonacoTheme['log-trace']),\n },\n {\n token: 'debug.log',\n foreground: removeHashtag(MonacoTheme['log-debug']),\n },\n {\n token: 'date.log',\n foreground: removeHashtag(MonacoTheme['log-date']),\n },\n ];\n\n const dhDarkColors = {\n errorForeground: MonacoTheme['error-foreground'],\n 'inputOption.activeBorder': MonacoTheme['input-option-active-border'],\n 'editor.background': MonacoTheme.background,\n 'editor.foreground': MonacoTheme.foreground,\n 'editor.lineHighlightBackground': MonacoTheme['editor-line-highlight-bg'],\n 'editorLineNumber.foreground':\n MonacoTheme['editor-line-number-foreground'],\n 'editor.selectionBackground': MonacoTheme['editor-selection-background'],\n 'editor.findMatchBackground': MonacoTheme['editor-find-match-background'],\n 'editor.findMatchHighlightBackground':\n MonacoTheme['editor-find-match-highlight-background'],\n 'editorSuggestWidget.background':\n MonacoTheme['editor-suggest-widget-background'],\n 'editorSuggestWidget.border': MonacoTheme['editor-suggest-widget-border'],\n 'editorSuggestWidget.foreground':\n MonacoTheme['editor-suggest-widget-foreground'],\n 'editorSuggestWidget.selectedBackground':\n MonacoTheme['editor-suggest-widget-selected-background'],\n 'editorSuggestWidget.highlightForeground':\n MonacoTheme['editor-suggest-widget-highlightForeground'],\n 'list.hoverBackground': MonacoTheme['list-hover-background'],\n 'dropdown.background': MonacoTheme['context-menu-background'],\n 'dropdown.foreground': MonacoTheme['context-menu-foreground'],\n 'menu.selectionBackground': MonacoTheme['menu-selection-background'],\n 'list.focusBackground': MonacoTheme['menu-selection-background'],\n 'editorWidget.background': MonacoTheme['editor-widget-background'],\n 'inputOption.activeBackground':\n MonacoTheme['input-option-active-background'],\n 'inputOption.activeForeground':\n MonacoTheme['input-option-active-foreground'],\n focusBorder: MonacoTheme['focus-border'],\n 'input.background': MonacoTheme['input-background'],\n 'input.foreground': MonacoTheme['input-foreground'],\n 'input.border': MonacoTheme['input-border'],\n };\n\n monaco.editor.defineTheme('dh-dark', {\n base: 'vs-dark',\n inherit: true,\n rules: dhDarkRules,\n colors: dhDarkColors,\n });\n log.debug2('monaco theme: ', MonacoTheme);\n monaco.editor.setTheme('dh-dark');\n\n registerLanguages([DbLang, PyLang, GroovyLang, LogLang, ScalaLang]);\n\n log.debug('Monaco initialized.');\n }\n\n /**\n * Remove the hashtag prefix from a CSS color string.\n * Monaco expects colors to be the value only, no hashtag.\n * @param color The hex color string to remove the hashtag from, eg. '#ffffff'\n */\n static removeHashtag(color: string): string {\n return color.substring(1);\n }\n\n static registerLanguages(languages: Language[]): void {\n // First override the default loader for any language we have a custom definition for\n // https://github.com/Microsoft/monaco-editor/issues/252#issuecomment-482786867\n const languageIds = languages.map(({ id }) => id);\n monaco.languages\n .getLanguages()\n .filter(({ id }) => languageIds.includes(id))\n .forEach(languageParam => {\n const language = languageParam;\n log.debug2('Overriding default language loader:', language.id);\n });\n\n // Then register our language definitions\n languages.forEach(language => {\n MonacoUtils.registerLanguage(language);\n });\n }\n\n static registerLanguage(language: Language): void {\n log.debug2('Registering language: ', language.id);\n monaco.languages.register(language);\n\n monaco.languages.onLanguage(language.id, () => {\n monaco.languages.setLanguageConfiguration(language.id, language.conf);\n monaco.languages.setMonarchTokensProvider(language.id, language.language);\n });\n }\n\n /**\n * Set EOL preference for the editor\n * @param editor The editor to set the EOL for\n * @param eolSequence EOL sequence\n */\n static setEOL(\n editor: monaco.editor.IStandaloneCodeEditor,\n eolSequence = monaco.editor.EndOfLineSequence.LF\n ): void {\n editor.getModel()?.setEOL(eolSequence);\n }\n\n /**\n * Links an editor with a provided session to provide completion items.\n * @param session The IdeSession to link\n * @param editor The editor to link the session to\n * @returns A cleanup function for disposing of the created listeners\n */\n static openDocument(\n editor: monaco.editor.IStandaloneCodeEditor,\n session: IdeSession\n ): monaco.IDisposable {\n const model = editor.getModel();\n assertNotNull(model);\n const didOpenDocumentParams = {\n textDocument: {\n uri: `${model.uri}`,\n languageId: model.getLanguageId(),\n version: model.getVersionId(),\n text: model.getValue(),\n },\n };\n log.debug2('didOpenDocumentParams: ', didOpenDocumentParams);\n\n session.openDocument(didOpenDocumentParams);\n\n const dispose = editor.onDidChangeModelContent(changedEvent => {\n const { changes, versionId } = changedEvent;\n\n const contentChanges = [];\n for (let i = 0; i < changes.length; i += 1) {\n const change = changes[i];\n const { range, rangeLength, text } = change;\n const contentChange = {\n range: {\n start: {\n line: range.startLineNumber - 1,\n character: range.startColumn - 1,\n },\n end: {\n line: range.endLineNumber - 1,\n character: range.endColumn - 1,\n },\n },\n rangeLength,\n text,\n };\n\n contentChanges.push(contentChange);\n }\n\n if (contentChanges.length > 0) {\n const didChangeDocumentParams = {\n textDocument: {\n version: versionId,\n uri: `${model.uri}`,\n },\n contentChanges,\n };\n log.debug2('didChangeDocumentParams', didChangeDocumentParams);\n session.changeDocument(didChangeDocumentParams);\n }\n });\n\n return dispose;\n }\n\n static closeDocument(\n editor: monaco.editor.IStandaloneCodeEditor,\n session: IdeSession\n ): void {\n const model = editor.getModel();\n assertNotNull(model);\n const didCloseDocumentParams = {\n textDocument: {\n uri: `${model.uri}`,\n },\n };\n session.closeDocument(didCloseDocumentParams);\n }\n\n /**\n * Register a paste handle to clean up any garbage code pasted.\n * Most of this comes from copying from Slack, which has a bad habit of injecting their own characters in your code snippets.\n * I've emailed Slack about the issue and they're working on it. I can't reference a ticket number because their ticket system is entirely internally facing.\n * @param editor The editor the register the paste handler for\n */\n static registerPasteHandler(\n editor: monaco.editor.IStandaloneCodeEditor\n ): void {\n editor.onDidPaste(pasteEvent => {\n const smartQuotes = /“|”/g;\n const invalidChars = /\\u200b/g;\n const editorModel = editor.getModel();\n assertNotNull(editorModel);\n const pastedText = editorModel.getValueInRange(pasteEvent.range);\n if (smartQuotes.test(pastedText) || invalidChars.test(pastedText)) {\n editorModel.applyEdits([\n {\n range: pasteEvent.range,\n text: pastedText\n .replace(smartQuotes, '\"')\n .replace(invalidChars, ''),\n },\n ]);\n }\n });\n }\n\n static isMacPlatform(): boolean {\n const { platform } = window.navigator;\n return platform.startsWith('Mac');\n }\n\n /**\n * Remove any keybindings which are used for our own shortcuts.\n * This allows the key events to bubble up so a component higher up can capture them\n * @param editor The editor to remove the keybindings from\n */\n static removeConflictingKeybindings(\n editor: monaco.editor.IStandaloneCodeEditor\n ): void {\n // Multi-mod key events have a specific order\n // E.g. ctrl+alt+UpArrow is not found, but alt+ctrl+UpArrow is found\n // meta is WindowsKey on Windows and cmd on Mac\n // ctrl is ctrl Windows and ctrl on Mac\n // alt is alt on Windows and option on Mac\n const keybindings = [\n {\n windows: 'ctrl+D',\n mac: 'meta+D',\n },\n {\n windows: 'ctrl+H',\n },\n ];\n\n try {\n keybindings.forEach(keybinding => {\n if (\n (MonacoUtils.isMacPlatform() && keybinding.mac === '') ||\n (!MonacoUtils.isMacPlatform() && keybinding.windows === '')\n ) {\n return;\n }\n MonacoUtils.removeKeybinding(\n editor,\n (MonacoUtils.isMacPlatform()\n ? keybinding.mac\n : keybinding.windows) as string\n );\n });\n } catch (err) {\n // This is probably only caused by Monaco changing private methods used here\n log.error(err);\n }\n }\n\n /**\n * Remove a keybinding and allow the events to bubble up\n * If you want the keybinding removed for all editors, add it to removeConflictingKeybindings\n * Monaco still captures the event if you choose to override the keybinding with a no-op function\n *\n * Based on the following comment to remove a keybinding and let the event bubble up\n * https://github.com/microsoft/monaco-editor/issues/287#issuecomment-331447475\n * The issue for an API for this has apparently been open since 2016. Link below\n * https://github.com/microsoft/monaco-editor/issues/102\n * @param editor The editor to remove the keybinding from\n * @param keybinding The key string to remove. E.g. 'ctrl+C' for copy on Windows\n */\n static removeKeybinding(\n editor: monaco.editor.IStandaloneCodeEditor,\n keybinding: string\n ): void {\n /* eslint-disable no-underscore-dangle */\n // It's possible a single keybinding has multiple commands depending on context\n // @ts-ignore\n const keybindings = editor._standaloneKeybindingService\n ._getResolver()\n ._map.get(keybinding);\n\n if (keybindings) {\n keybindings.forEach((elem: { command: unknown }) => {\n log.debug2(\n `Removing Monaco keybinding ${keybinding} for ${elem.command}`\n );\n // @ts-ignore\n editor._standaloneKeybindingService.addDynamicKeybinding(\n `-${elem.command}`,\n null,\n () => undefined\n );\n });\n } else {\n log.warn(`Did not find any keybindings to remove for ${keybinding}`);\n }\n /* eslint-enable no-underscore-dangle */\n }\n\n static getMonacoKeyCodeFromShortcut(shortcut: Shortcut): number {\n const { keyState } = shortcut;\n const { keyValue } = keyState;\n if (keyValue === null) {\n return 0;\n }\n\n const isMac = MonacoUtils.isMacPlatform();\n\n if (isMac) {\n return (\n // eslint-disable-next-line no-bitwise\n (keyState.metaKey ? monaco.KeyMod.CtrlCmd : 0) |\n (keyState.shiftKey ? monaco.KeyMod.Shift : 0) |\n (keyState.altKey ? monaco.KeyMod.Alt : 0) |\n (keyState.ctrlKey ? monaco.KeyMod.WinCtrl : 0) |\n KeyCodeUtils.fromString(keyValue)\n );\n }\n\n return (\n // eslint-disable-next-line no-bitwise\n (keyState.ctrlKey ? monaco.KeyMod.CtrlCmd : 0) |\n (keyState.shiftKey ? monaco.KeyMod.Shift : 0) |\n (keyState.altKey ? monaco.KeyMod.Alt : 0) |\n (keyState.metaKey ? monaco.KeyMod.WinCtrl : 0) |\n KeyCodeUtils.fromString(keyValue)\n );\n }\n}\n\nexport default MonacoUtils;\n"],"file":"MonacoUtils.js"}
1
+ {"version":3,"file":"MonacoUtils.js","names":["assertNotNull","monaco","KeyCodeUtils","editorWorker","Log","MonacoTheme","PyLang","GroovyLang","ScalaLang","DbLang","LogLang","log","module","window","MonacoEnvironment","getWorker","workerId","label","MonacoUtils","init","debug","registerLanguages","removeHashtag","dhDarkRules","token","foreground","string","keyword","delimiter","comment","number","storage","identifier","operator","predefined","substring","dhDarkColors","errorForeground","background","focusBorder","editor","defineTheme","base","inherit","rules","colors","debug2","setTheme","color","languages","languageIds","map","id","getLanguages","filter","includes","forEach","languageParam","language","registerLanguage","register","onLanguage","setLanguageConfiguration","conf","setMonarchTokensProvider","setEOL","eolSequence","EndOfLineSequence","LF","getModel","openDocument","session","model","didOpenDocumentParams","textDocument","uri","languageId","getLanguageId","version","getVersionId","text","getValue","dispose","onDidChangeModelContent","changedEvent","changes","versionId","contentChanges","i","length","change","range","rangeLength","contentChange","start","line","startLineNumber","character","startColumn","end","endLineNumber","endColumn","push","didChangeDocumentParams","changeDocument","closeDocument","didCloseDocumentParams","registerPasteHandler","onDidPaste","pasteEvent","smartQuotes","invalidChars","editorModel","pastedText","getValueInRange","test","applyEdits","replace","isMacPlatform","platform","navigator","startsWith","removeConflictingKeybindings","keybindings","windows","mac","keybinding","removeKeybinding","err","error","_standaloneKeybindingService","_getResolver","_map","get","elem","command","addDynamicKeybinding","undefined","warn","getMonacoKeyCodeFromShortcut","shortcut","keyState","keyValue","isMac","metaKey","KeyMod","CtrlCmd","shiftKey","Shift","altKey","Alt","ctrlKey","WinCtrl","fromString"],"sources":["../../src/monaco/MonacoUtils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/**\n * Exports a function for initializing monaco with the deephaven theme/config\n */\nimport { Shortcut } from '@deephaven/components';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport { assertNotNull } from '@deephaven/utils';\nimport * as monaco from 'monaco-editor';\n// @ts-ignore\nimport { KeyCodeUtils } from 'monaco-editor/esm/vs/base/common/keyCodes.js';\n// @ts-ignore\nimport editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';\nimport Log from '@deephaven/log';\nimport MonacoTheme from './MonacoTheme.module.scss';\nimport PyLang from './lang/python';\nimport GroovyLang from './lang/groovy';\nimport ScalaLang from './lang/scala';\nimport DbLang from './lang/db';\nimport LogLang from './lang/log';\nimport { Language } from './lang/Language';\n\nconst log = Log.module('MonacoUtils');\n\nwindow.MonacoEnvironment = {\n getWorker(workerId, label) {\n return editorWorker();\n },\n};\n\nclass MonacoUtils {\n static init(): void {\n log.debug('Initializing Monaco...');\n\n const { registerLanguages, removeHashtag } = MonacoUtils;\n\n const dhDarkRules = [\n { token: '', foreground: removeHashtag(MonacoTheme.foreground) },\n { token: 'string', foreground: removeHashtag(MonacoTheme.string) },\n {\n token: 'string.delim',\n foreground: removeHashtag(MonacoTheme['string-delim']),\n },\n { token: 'keyword', foreground: removeHashtag(MonacoTheme.keyword) },\n {\n token: 'identifier.js',\n foreground: removeHashtag(MonacoTheme['identifier-js']),\n },\n {\n token: 'delimiter',\n foreground: removeHashtag(MonacoTheme.delimiter),\n },\n { token: 'comment', foreground: removeHashtag(MonacoTheme.comment) },\n { token: 'number', foreground: removeHashtag(MonacoTheme.number) },\n { token: 'storage', foreground: removeHashtag(MonacoTheme.storage) },\n {\n token: 'identifier',\n foreground: removeHashtag(MonacoTheme.identifier),\n },\n {\n token: 'namespace.identifier',\n foreground: removeHashtag(MonacoTheme['namespace-identifier']),\n },\n { token: 'operator', foreground: removeHashtag(MonacoTheme.operator) },\n {\n token: 'predefined',\n foreground: removeHashtag(MonacoTheme.predefined),\n },\n {\n token: 'error.log',\n foreground: MonacoTheme['log-error'].substring(1),\n },\n {\n token: 'warn.log',\n foreground: removeHashtag(MonacoTheme['log-warn']),\n },\n {\n token: 'info.log',\n foreground: removeHashtag(MonacoTheme['log-info']),\n },\n {\n token: 'stdout.log',\n foreground: removeHashtag(MonacoTheme['log-stdout']),\n },\n {\n token: 'trace.log',\n foreground: removeHashtag(MonacoTheme['log-trace']),\n },\n {\n token: 'debug.log',\n foreground: removeHashtag(MonacoTheme['log-debug']),\n },\n {\n token: 'date.log',\n foreground: removeHashtag(MonacoTheme['log-date']),\n },\n ];\n\n const dhDarkColors = {\n errorForeground: MonacoTheme['error-foreground'],\n 'inputOption.activeBorder': MonacoTheme['input-option-active-border'],\n 'editor.background': MonacoTheme.background,\n 'editor.foreground': MonacoTheme.foreground,\n 'editor.lineHighlightBackground': MonacoTheme['editor-line-highlight-bg'],\n 'editorLineNumber.foreground':\n MonacoTheme['editor-line-number-foreground'],\n 'editor.selectionBackground': MonacoTheme['editor-selection-background'],\n 'editor.findMatchBackground': MonacoTheme['editor-find-match-background'],\n 'editor.findMatchHighlightBackground':\n MonacoTheme['editor-find-match-highlight-background'],\n 'editorSuggestWidget.background':\n MonacoTheme['editor-suggest-widget-background'],\n 'editorSuggestWidget.border': MonacoTheme['editor-suggest-widget-border'],\n 'editorSuggestWidget.foreground':\n MonacoTheme['editor-suggest-widget-foreground'],\n 'editorSuggestWidget.selectedBackground':\n MonacoTheme['editor-suggest-widget-selected-background'],\n 'editorSuggestWidget.highlightForeground':\n MonacoTheme['editor-suggest-widget-highlightForeground'],\n 'list.hoverBackground': MonacoTheme['list-hover-background'],\n 'dropdown.background': MonacoTheme['context-menu-background'],\n 'dropdown.foreground': MonacoTheme['context-menu-foreground'],\n 'menu.selectionBackground': MonacoTheme['menu-selection-background'],\n 'list.focusBackground': MonacoTheme['menu-selection-background'],\n 'editorWidget.background': MonacoTheme['editor-widget-background'],\n 'inputOption.activeBackground':\n MonacoTheme['input-option-active-background'],\n 'inputOption.activeForeground':\n MonacoTheme['input-option-active-foreground'],\n focusBorder: MonacoTheme['focus-border'],\n 'input.background': MonacoTheme['input-background'],\n 'input.foreground': MonacoTheme['input-foreground'],\n 'input.border': MonacoTheme['input-border'],\n };\n\n monaco.editor.defineTheme('dh-dark', {\n base: 'vs-dark',\n inherit: true,\n rules: dhDarkRules,\n colors: dhDarkColors,\n });\n log.debug2('monaco theme: ', MonacoTheme);\n monaco.editor.setTheme('dh-dark');\n\n registerLanguages([DbLang, PyLang, GroovyLang, LogLang, ScalaLang]);\n\n log.debug('Monaco initialized.');\n }\n\n /**\n * Remove the hashtag prefix from a CSS color string.\n * Monaco expects colors to be the value only, no hashtag.\n * @param color The hex color string to remove the hashtag from, eg. '#ffffff'\n */\n static removeHashtag(color: string): string {\n return color.substring(1);\n }\n\n static registerLanguages(languages: Language[]): void {\n // First override the default loader for any language we have a custom definition for\n // https://github.com/Microsoft/monaco-editor/issues/252#issuecomment-482786867\n const languageIds = languages.map(({ id }) => id);\n monaco.languages\n .getLanguages()\n .filter(({ id }) => languageIds.includes(id))\n .forEach(languageParam => {\n const language = languageParam;\n log.debug2('Overriding default language loader:', language.id);\n });\n\n // Then register our language definitions\n languages.forEach(language => {\n MonacoUtils.registerLanguage(language);\n });\n }\n\n static registerLanguage(language: Language): void {\n log.debug2('Registering language: ', language.id);\n monaco.languages.register(language);\n\n monaco.languages.onLanguage(language.id, () => {\n monaco.languages.setLanguageConfiguration(language.id, language.conf);\n monaco.languages.setMonarchTokensProvider(language.id, language.language);\n });\n }\n\n /**\n * Set EOL preference for the editor\n * @param editor The editor to set the EOL for\n * @param eolSequence EOL sequence\n */\n static setEOL(\n editor: monaco.editor.IStandaloneCodeEditor,\n eolSequence = monaco.editor.EndOfLineSequence.LF\n ): void {\n editor.getModel()?.setEOL(eolSequence);\n }\n\n /**\n * Links an editor with a provided session to provide completion items.\n * @param session The IdeSession to link\n * @param editor The editor to link the session to\n * @returns A cleanup function for disposing of the created listeners\n */\n static openDocument(\n editor: monaco.editor.IStandaloneCodeEditor,\n session: IdeSession\n ): monaco.IDisposable {\n const model = editor.getModel();\n assertNotNull(model);\n const didOpenDocumentParams = {\n textDocument: {\n uri: `${model.uri}`,\n languageId: model.getLanguageId(),\n version: model.getVersionId(),\n text: model.getValue(),\n },\n };\n log.debug2('didOpenDocumentParams: ', didOpenDocumentParams);\n\n session.openDocument(didOpenDocumentParams);\n\n const dispose = editor.onDidChangeModelContent(changedEvent => {\n const { changes, versionId } = changedEvent;\n\n const contentChanges = [];\n for (let i = 0; i < changes.length; i += 1) {\n const change = changes[i];\n const { range, rangeLength, text } = change;\n const contentChange = {\n range: {\n start: {\n line: range.startLineNumber - 1,\n character: range.startColumn - 1,\n },\n end: {\n line: range.endLineNumber - 1,\n character: range.endColumn - 1,\n },\n },\n rangeLength,\n text,\n };\n\n contentChanges.push(contentChange);\n }\n\n if (contentChanges.length > 0) {\n const didChangeDocumentParams = {\n textDocument: {\n version: versionId,\n uri: `${model.uri}`,\n },\n contentChanges,\n };\n log.debug2('didChangeDocumentParams', didChangeDocumentParams);\n session.changeDocument(didChangeDocumentParams);\n }\n });\n\n return dispose;\n }\n\n static closeDocument(\n editor: monaco.editor.IStandaloneCodeEditor,\n session: IdeSession\n ): void {\n const model = editor.getModel();\n assertNotNull(model);\n const didCloseDocumentParams = {\n textDocument: {\n uri: `${model.uri}`,\n },\n };\n session.closeDocument(didCloseDocumentParams);\n }\n\n /**\n * Register a paste handle to clean up any garbage code pasted.\n * Most of this comes from copying from Slack, which has a bad habit of injecting their own characters in your code snippets.\n * I've emailed Slack about the issue and they're working on it. I can't reference a ticket number because their ticket system is entirely internally facing.\n * @param editor The editor the register the paste handler for\n */\n static registerPasteHandler(\n editor: monaco.editor.IStandaloneCodeEditor\n ): void {\n editor.onDidPaste(pasteEvent => {\n const smartQuotes = /“|”/g;\n const invalidChars = /\\u200b/g;\n const editorModel = editor.getModel();\n assertNotNull(editorModel);\n const pastedText = editorModel.getValueInRange(pasteEvent.range);\n if (smartQuotes.test(pastedText) || invalidChars.test(pastedText)) {\n editorModel.applyEdits([\n {\n range: pasteEvent.range,\n text: pastedText\n .replace(smartQuotes, '\"')\n .replace(invalidChars, ''),\n },\n ]);\n }\n });\n }\n\n static isMacPlatform(): boolean {\n const { platform } = window.navigator;\n return platform.startsWith('Mac');\n }\n\n /**\n * Remove any keybindings which are used for our own shortcuts.\n * This allows the key events to bubble up so a component higher up can capture them\n * @param editor The editor to remove the keybindings from\n */\n static removeConflictingKeybindings(\n editor: monaco.editor.IStandaloneCodeEditor\n ): void {\n // Multi-mod key events have a specific order\n // E.g. ctrl+alt+UpArrow is not found, but alt+ctrl+UpArrow is found\n // meta is WindowsKey on Windows and cmd on Mac\n // ctrl is ctrl Windows and ctrl on Mac\n // alt is alt on Windows and option on Mac\n const keybindings = [\n {\n windows: 'ctrl+D',\n mac: 'meta+D',\n },\n {\n windows: 'ctrl+H',\n },\n ];\n\n try {\n keybindings.forEach(keybinding => {\n if (\n (MonacoUtils.isMacPlatform() && keybinding.mac === '') ||\n (!MonacoUtils.isMacPlatform() && keybinding.windows === '')\n ) {\n return;\n }\n MonacoUtils.removeKeybinding(\n editor,\n MonacoUtils.isMacPlatform() ? keybinding.mac : keybinding.windows\n );\n });\n } catch (err) {\n // This is probably only caused by Monaco changing private methods used here\n log.error(err);\n }\n }\n\n /**\n * Remove a keybinding and allow the events to bubble up\n * If you want the keybinding removed for all editors, add it to removeConflictingKeybindings\n * Monaco still captures the event if you choose to override the keybinding with a no-op function\n *\n * Based on the following comment to remove a keybinding and let the event bubble up\n * https://github.com/microsoft/monaco-editor/issues/287#issuecomment-331447475\n * The issue for an API for this has apparently been open since 2016. Link below\n * https://github.com/microsoft/monaco-editor/issues/102\n * @param editor The editor to remove the keybinding from\n * @param keybinding The key string to remove. E.g. 'ctrl+C' for copy on Windows\n */\n static removeKeybinding(\n editor: monaco.editor.IStandaloneCodeEditor,\n keybinding: string | undefined\n ): void {\n if (!keybinding) {\n return;\n }\n\n /* eslint-disable no-underscore-dangle */\n // It's possible a single keybinding has multiple commands depending on context\n // @ts-ignore\n const keybindings = editor._standaloneKeybindingService\n ._getResolver()\n ._map.get(keybinding);\n\n if (keybindings) {\n keybindings.forEach((elem: { command: unknown }) => {\n log.debug2(\n `Removing Monaco keybinding ${keybinding} for ${elem.command}`\n );\n // @ts-ignore\n editor._standaloneKeybindingService.addDynamicKeybinding(\n `-${elem.command}`,\n null,\n () => undefined\n );\n });\n } else {\n log.warn(`Did not find any keybindings to remove for ${keybinding}`);\n }\n /* eslint-enable no-underscore-dangle */\n }\n\n static getMonacoKeyCodeFromShortcut(shortcut: Shortcut): number {\n const { keyState } = shortcut;\n const { keyValue } = keyState;\n if (keyValue === null) {\n return 0;\n }\n\n const isMac = MonacoUtils.isMacPlatform();\n\n if (isMac) {\n return (\n // eslint-disable-next-line no-bitwise\n (keyState.metaKey ? monaco.KeyMod.CtrlCmd : 0) |\n (keyState.shiftKey ? monaco.KeyMod.Shift : 0) |\n (keyState.altKey ? monaco.KeyMod.Alt : 0) |\n (keyState.ctrlKey ? monaco.KeyMod.WinCtrl : 0) |\n KeyCodeUtils.fromString(keyValue)\n );\n }\n\n return (\n // eslint-disable-next-line no-bitwise\n (keyState.ctrlKey ? monaco.KeyMod.CtrlCmd : 0) |\n (keyState.shiftKey ? monaco.KeyMod.Shift : 0) |\n (keyState.altKey ? monaco.KeyMod.Alt : 0) |\n (keyState.metaKey ? monaco.KeyMod.WinCtrl : 0) |\n KeyCodeUtils.fromString(keyValue)\n );\n }\n}\n\nexport default MonacoUtils;\n"],"mappings":"AAAA;;AACA;AACA;AACA;AAGA,SAASA,aAAT,QAA8B,kBAA9B;AACA,OAAO,KAAKC,MAAZ,MAAwB,eAAxB,C,CACA;;AACA,SAASC,YAAT,QAA6B,8CAA7B,C,CACA;;AACA,OAAOC,YAAP,MAAyB,kDAAzB;AACA,OAAOC,GAAP,MAAgB,gBAAhB;OACOC,W;OACAC,M;OACAC,U;OACAC,S;OACAC,M;OACAC,O;AAGP,IAAMC,GAAG,GAAGP,GAAG,CAACQ,MAAJ,CAAW,aAAX,CAAZ;AAEAC,MAAM,CAACC,iBAAP,GAA2B;EACzBC,SAAS,CAACC,QAAD,EAAWC,KAAX,EAAkB;IACzB,OAAOd,YAAY,EAAnB;EACD;;AAHwB,CAA3B;;AAMA,MAAMe,WAAN,CAAkB;EACL,OAAJC,IAAI,GAAS;IAClBR,GAAG,CAACS,KAAJ,CAAU,wBAAV;IAEA,IAAM;MAAEC,iBAAF;MAAqBC;IAArB,IAAuCJ,WAA7C;IAEA,IAAMK,WAAW,GAAG,CAClB;MAAEC,KAAK,EAAE,EAAT;MAAaC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAACoB,UAAb;IAAtC,CADkB,EAElB;MAAED,KAAK,EAAE,QAAT;MAAmBC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAACqB,MAAb;IAA5C,CAFkB,EAGlB;MACEF,KAAK,EAAE,cADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC,cAAD,CAAZ;IAF3B,CAHkB,EAOlB;MAAEmB,KAAK,EAAE,SAAT;MAAoBC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAACsB,OAAb;IAA7C,CAPkB,EAQlB;MACEH,KAAK,EAAE,eADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC,eAAD,CAAZ;IAF3B,CARkB,EAYlB;MACEmB,KAAK,EAAE,WADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAACuB,SAAb;IAF3B,CAZkB,EAgBlB;MAAEJ,KAAK,EAAE,SAAT;MAAoBC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAACwB,OAAb;IAA7C,CAhBkB,EAiBlB;MAAEL,KAAK,EAAE,QAAT;MAAmBC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAACyB,MAAb;IAA5C,CAjBkB,EAkBlB;MAAEN,KAAK,EAAE,SAAT;MAAoBC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC0B,OAAb;IAA7C,CAlBkB,EAmBlB;MACEP,KAAK,EAAE,YADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC2B,UAAb;IAF3B,CAnBkB,EAuBlB;MACER,KAAK,EAAE,sBADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC,sBAAD,CAAZ;IAF3B,CAvBkB,EA2BlB;MAAEmB,KAAK,EAAE,UAAT;MAAqBC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC4B,QAAb;IAA9C,CA3BkB,EA4BlB;MACET,KAAK,EAAE,YADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC6B,UAAb;IAF3B,CA5BkB,EAgClB;MACEV,KAAK,EAAE,WADT;MAEEC,UAAU,EAAEpB,WAAW,CAAC,WAAD,CAAX,CAAyB8B,SAAzB,CAAmC,CAAnC;IAFd,CAhCkB,EAoClB;MACEX,KAAK,EAAE,UADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC,UAAD,CAAZ;IAF3B,CApCkB,EAwClB;MACEmB,KAAK,EAAE,UADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC,UAAD,CAAZ;IAF3B,CAxCkB,EA4ClB;MACEmB,KAAK,EAAE,YADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC,YAAD,CAAZ;IAF3B,CA5CkB,EAgDlB;MACEmB,KAAK,EAAE,WADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC,WAAD,CAAZ;IAF3B,CAhDkB,EAoDlB;MACEmB,KAAK,EAAE,WADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC,WAAD,CAAZ;IAF3B,CApDkB,EAwDlB;MACEmB,KAAK,EAAE,UADT;MAEEC,UAAU,EAAEH,aAAa,CAACjB,WAAW,CAAC,UAAD,CAAZ;IAF3B,CAxDkB,CAApB;IA8DA,IAAM+B,YAAY,GAAG;MACnBC,eAAe,EAAEhC,WAAW,CAAC,kBAAD,CADT;MAEnB,4BAA4BA,WAAW,CAAC,4BAAD,CAFpB;MAGnB,qBAAqBA,WAAW,CAACiC,UAHd;MAInB,qBAAqBjC,WAAW,CAACoB,UAJd;MAKnB,kCAAkCpB,WAAW,CAAC,0BAAD,CAL1B;MAMnB,+BACEA,WAAW,CAAC,+BAAD,CAPM;MAQnB,8BAA8BA,WAAW,CAAC,6BAAD,CARtB;MASnB,8BAA8BA,WAAW,CAAC,8BAAD,CATtB;MAUnB,uCACEA,WAAW,CAAC,wCAAD,CAXM;MAYnB,kCACEA,WAAW,CAAC,kCAAD,CAbM;MAcnB,8BAA8BA,WAAW,CAAC,8BAAD,CAdtB;MAenB,kCACEA,WAAW,CAAC,kCAAD,CAhBM;MAiBnB,0CACEA,WAAW,CAAC,2CAAD,CAlBM;MAmBnB,2CACEA,WAAW,CAAC,2CAAD,CApBM;MAqBnB,wBAAwBA,WAAW,CAAC,uBAAD,CArBhB;MAsBnB,uBAAuBA,WAAW,CAAC,yBAAD,CAtBf;MAuBnB,uBAAuBA,WAAW,CAAC,yBAAD,CAvBf;MAwBnB,4BAA4BA,WAAW,CAAC,2BAAD,CAxBpB;MAyBnB,wBAAwBA,WAAW,CAAC,2BAAD,CAzBhB;MA0BnB,2BAA2BA,WAAW,CAAC,0BAAD,CA1BnB;MA2BnB,gCACEA,WAAW,CAAC,gCAAD,CA5BM;MA6BnB,gCACEA,WAAW,CAAC,gCAAD,CA9BM;MA+BnBkC,WAAW,EAAElC,WAAW,CAAC,cAAD,CA/BL;MAgCnB,oBAAoBA,WAAW,CAAC,kBAAD,CAhCZ;MAiCnB,oBAAoBA,WAAW,CAAC,kBAAD,CAjCZ;MAkCnB,gBAAgBA,WAAW,CAAC,cAAD;IAlCR,CAArB;IAqCAJ,MAAM,CAACuC,MAAP,CAAcC,WAAd,CAA0B,SAA1B,EAAqC;MACnCC,IAAI,EAAE,SAD6B;MAEnCC,OAAO,EAAE,IAF0B;MAGnCC,KAAK,EAAErB,WAH4B;MAInCsB,MAAM,EAAET;IAJ2B,CAArC;IAMAzB,GAAG,CAACmC,MAAJ,CAAW,gBAAX,EAA6BzC,WAA7B;IACAJ,MAAM,CAACuC,MAAP,CAAcO,QAAd,CAAuB,SAAvB;IAEA1B,iBAAiB,CAAC,CAACZ,MAAD,EAASH,MAAT,EAAiBC,UAAjB,EAA6BG,OAA7B,EAAsCF,SAAtC,CAAD,CAAjB;IAEAG,GAAG,CAACS,KAAJ,CAAU,qBAAV;EACD;EAED;AACF;AACA;AACA;AACA;;;EACsB,OAAbE,aAAa,CAAC0B,KAAD,EAAwB;IAC1C,OAAOA,KAAK,CAACb,SAAN,CAAgB,CAAhB,CAAP;EACD;;EAEuB,OAAjBd,iBAAiB,CAAC4B,SAAD,EAA8B;IACpD;IACA;IACA,IAAMC,WAAW,GAAGD,SAAS,CAACE,GAAV,CAAc;MAAA,IAAC;QAAEC;MAAF,CAAD;MAAA,OAAYA,EAAZ;IAAA,CAAd,CAApB;IACAnD,MAAM,CAACgD,SAAP,CACGI,YADH,GAEGC,MAFH,CAEU;MAAA,IAAC;QAAEF;MAAF,CAAD;MAAA,OAAYF,WAAW,CAACK,QAAZ,CAAqBH,EAArB,CAAZ;IAAA,CAFV,EAGGI,OAHH,CAGWC,aAAa,IAAI;MACxB,IAAMC,QAAQ,GAAGD,aAAjB;MACA9C,GAAG,CAACmC,MAAJ,CAAW,qCAAX,EAAkDY,QAAQ,CAACN,EAA3D;IACD,CANH,EAJoD,CAYpD;;IACAH,SAAS,CAACO,OAAV,CAAkBE,QAAQ,IAAI;MAC5BxC,WAAW,CAACyC,gBAAZ,CAA6BD,QAA7B;IACD,CAFD;EAGD;;EAEsB,OAAhBC,gBAAgB,CAACD,QAAD,EAA2B;IAChD/C,GAAG,CAACmC,MAAJ,CAAW,wBAAX,EAAqCY,QAAQ,CAACN,EAA9C;IACAnD,MAAM,CAACgD,SAAP,CAAiBW,QAAjB,CAA0BF,QAA1B;IAEAzD,MAAM,CAACgD,SAAP,CAAiBY,UAAjB,CAA4BH,QAAQ,CAACN,EAArC,EAAyC,MAAM;MAC7CnD,MAAM,CAACgD,SAAP,CAAiBa,wBAAjB,CAA0CJ,QAAQ,CAACN,EAAnD,EAAuDM,QAAQ,CAACK,IAAhE;MACA9D,MAAM,CAACgD,SAAP,CAAiBe,wBAAjB,CAA0CN,QAAQ,CAACN,EAAnD,EAAuDM,QAAQ,CAACA,QAAhE;IACD,CAHD;EAID;EAED;AACF;AACA;AACA;AACA;;;EACe,OAANO,MAAM,CACXzB,MADW,EAGL;IAAA;;IAAA,IADN0B,WACM,uEADQjE,MAAM,CAACuC,MAAP,CAAc2B,iBAAd,CAAgCC,EACxC;IACN,oBAAA5B,MAAM,CAAC6B,QAAP,wEAAmBJ,MAAnB,CAA0BC,WAA1B;EACD;EAED;AACF;AACA;AACA;AACA;AACA;;;EACqB,OAAZI,YAAY,CACjB9B,MADiB,EAEjB+B,OAFiB,EAGG;IACpB,IAAMC,KAAK,GAAGhC,MAAM,CAAC6B,QAAP,EAAd;IACArE,aAAa,CAACwE,KAAD,CAAb;IACA,IAAMC,qBAAqB,GAAG;MAC5BC,YAAY,EAAE;QACZC,GAAG,YAAKH,KAAK,CAACG,GAAX,CADS;QAEZC,UAAU,EAAEJ,KAAK,CAACK,aAAN,EAFA;QAGZC,OAAO,EAAEN,KAAK,CAACO,YAAN,EAHG;QAIZC,IAAI,EAAER,KAAK,CAACS,QAAN;MAJM;IADc,CAA9B;IAQAtE,GAAG,CAACmC,MAAJ,CAAW,yBAAX,EAAsC2B,qBAAtC;IAEAF,OAAO,CAACD,YAAR,CAAqBG,qBAArB;IAEA,IAAMS,OAAO,GAAG1C,MAAM,CAAC2C,uBAAP,CAA+BC,YAAY,IAAI;MAC7D,IAAM;QAAEC,OAAF;QAAWC;MAAX,IAAyBF,YAA/B;MAEA,IAAMG,cAAc,GAAG,EAAvB;;MACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACI,MAA5B,EAAoCD,CAAC,IAAI,CAAzC,EAA4C;QAC1C,IAAME,MAAM,GAAGL,OAAO,CAACG,CAAD,CAAtB;QACA,IAAM;UAAEG,KAAF;UAASC,WAAT;UAAsBZ;QAAtB,IAA+BU,MAArC;QACA,IAAMG,aAAa,GAAG;UACpBF,KAAK,EAAE;YACLG,KAAK,EAAE;cACLC,IAAI,EAAEJ,KAAK,CAACK,eAAN,GAAwB,CADzB;cAELC,SAAS,EAAEN,KAAK,CAACO,WAAN,GAAoB;YAF1B,CADF;YAKLC,GAAG,EAAE;cACHJ,IAAI,EAAEJ,KAAK,CAACS,aAAN,GAAsB,CADzB;cAEHH,SAAS,EAAEN,KAAK,CAACU,SAAN,GAAkB;YAF1B;UALA,CADa;UAWpBT,WAXoB;UAYpBZ;QAZoB,CAAtB;QAeAO,cAAc,CAACe,IAAf,CAAoBT,aAApB;MACD;;MAED,IAAIN,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;QAC7B,IAAMc,uBAAuB,GAAG;UAC9B7B,YAAY,EAAE;YACZI,OAAO,EAAEQ,SADG;YAEZX,GAAG,YAAKH,KAAK,CAACG,GAAX;UAFS,CADgB;UAK9BY;QAL8B,CAAhC;QAOA5E,GAAG,CAACmC,MAAJ,CAAW,yBAAX,EAAsCyD,uBAAtC;QACAhC,OAAO,CAACiC,cAAR,CAAuBD,uBAAvB;MACD;IACF,CApCe,CAAhB;IAsCA,OAAOrB,OAAP;EACD;;EAEmB,OAAbuB,aAAa,CAClBjE,MADkB,EAElB+B,OAFkB,EAGZ;IACN,IAAMC,KAAK,GAAGhC,MAAM,CAAC6B,QAAP,EAAd;IACArE,aAAa,CAACwE,KAAD,CAAb;IACA,IAAMkC,sBAAsB,GAAG;MAC7BhC,YAAY,EAAE;QACZC,GAAG,YAAKH,KAAK,CAACG,GAAX;MADS;IADe,CAA/B;IAKAJ,OAAO,CAACkC,aAAR,CAAsBC,sBAAtB;EACD;EAED;AACF;AACA;AACA;AACA;AACA;;;EAC6B,OAApBC,oBAAoB,CACzBnE,MADyB,EAEnB;IACNA,MAAM,CAACoE,UAAP,CAAkBC,UAAU,IAAI;MAC9B,IAAMC,WAAW,GAAG,MAApB;MACA,IAAMC,YAAY,GAAG,SAArB;MACA,IAAMC,WAAW,GAAGxE,MAAM,CAAC6B,QAAP,EAApB;MACArE,aAAa,CAACgH,WAAD,CAAb;MACA,IAAMC,UAAU,GAAGD,WAAW,CAACE,eAAZ,CAA4BL,UAAU,CAAClB,KAAvC,CAAnB;;MACA,IAAImB,WAAW,CAACK,IAAZ,CAAiBF,UAAjB,KAAgCF,YAAY,CAACI,IAAb,CAAkBF,UAAlB,CAApC,EAAmE;QACjED,WAAW,CAACI,UAAZ,CAAuB,CACrB;UACEzB,KAAK,EAAEkB,UAAU,CAAClB,KADpB;UAEEX,IAAI,EAAEiC,UAAU,CACbI,OADG,CACKP,WADL,EACkB,GADlB,EAEHO,OAFG,CAEKN,YAFL,EAEmB,EAFnB;QAFR,CADqB,CAAvB;MAQD;IACF,CAhBD;EAiBD;;EAEmB,OAAbO,aAAa,GAAY;IAC9B,IAAM;MAAEC;IAAF,IAAe1G,MAAM,CAAC2G,SAA5B;IACA,OAAOD,QAAQ,CAACE,UAAT,CAAoB,KAApB,CAAP;EACD;EAED;AACF;AACA;AACA;AACA;;;EACqC,OAA5BC,4BAA4B,CACjClF,MADiC,EAE3B;IACN;IACA;IACA;IACA;IACA;IACA,IAAMmF,WAAW,GAAG,CAClB;MACEC,OAAO,EAAE,QADX;MAEEC,GAAG,EAAE;IAFP,CADkB,EAKlB;MACED,OAAO,EAAE;IADX,CALkB,CAApB;;IAUA,IAAI;MACFD,WAAW,CAACnE,OAAZ,CAAoBsE,UAAU,IAAI;QAChC,IACG5G,WAAW,CAACoG,aAAZ,MAA+BQ,UAAU,CAACD,GAAX,KAAmB,EAAnD,IACC,CAAC3G,WAAW,CAACoG,aAAZ,EAAD,IAAgCQ,UAAU,CAACF,OAAX,KAAuB,EAF1D,EAGE;UACA;QACD;;QACD1G,WAAW,CAAC6G,gBAAZ,CACEvF,MADF,EAEEtB,WAAW,CAACoG,aAAZ,KAA8BQ,UAAU,CAACD,GAAzC,GAA+CC,UAAU,CAACF,OAF5D;MAID,CAXD;IAYD,CAbD,CAaE,OAAOI,GAAP,EAAY;MACZ;MACArH,GAAG,CAACsH,KAAJ,CAAUD,GAAV;IACD;EACF;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACyB,OAAhBD,gBAAgB,CACrBvF,MADqB,EAErBsF,UAFqB,EAGf;IACN,IAAI,CAACA,UAAL,EAAiB;MACf;IACD;IAED;IACA;IACA;;;IACA,IAAMH,WAAW,GAAGnF,MAAM,CAAC0F,4BAAP,CACjBC,YADiB,GAEjBC,IAFiB,CAEZC,GAFY,CAERP,UAFQ,CAApB;;IAIA,IAAIH,WAAJ,EAAiB;MACfA,WAAW,CAACnE,OAAZ,CAAqB8E,IAAD,IAAgC;QAClD3H,GAAG,CAACmC,MAAJ,sCACgCgF,UADhC,kBACkDQ,IAAI,CAACC,OADvD,GADkD,CAIlD;;QACA/F,MAAM,CAAC0F,4BAAP,CAAoCM,oBAApC,YACMF,IAAI,CAACC,OADX,GAEE,IAFF,EAGE,MAAME,SAHR;MAKD,CAVD;IAWD,CAZD,MAYO;MACL9H,GAAG,CAAC+H,IAAJ,sDAAuDZ,UAAvD;IACD;IACD;;EACD;;EAEkC,OAA5Ba,4BAA4B,CAACC,QAAD,EAA6B;IAC9D,IAAM;MAAEC;IAAF,IAAeD,QAArB;IACA,IAAM;MAAEE;IAAF,IAAeD,QAArB;;IACA,IAAIC,QAAQ,KAAK,IAAjB,EAAuB;MACrB,OAAO,CAAP;IACD;;IAED,IAAMC,KAAK,GAAG7H,WAAW,CAACoG,aAAZ,EAAd;;IAEA,IAAIyB,KAAJ,EAAW;MACT,OACE;QACA,CAACF,QAAQ,CAACG,OAAT,GAAmB/I,MAAM,CAACgJ,MAAP,CAAcC,OAAjC,GAA2C,CAA5C,KACCL,QAAQ,CAACM,QAAT,GAAoBlJ,MAAM,CAACgJ,MAAP,CAAcG,KAAlC,GAA0C,CAD3C,KAECP,QAAQ,CAACQ,MAAT,GAAkBpJ,MAAM,CAACgJ,MAAP,CAAcK,GAAhC,GAAsC,CAFvC,KAGCT,QAAQ,CAACU,OAAT,GAAmBtJ,MAAM,CAACgJ,MAAP,CAAcO,OAAjC,GAA2C,CAH5C,IAIAtJ,YAAY,CAACuJ,UAAb,CAAwBX,QAAxB;MANF;IAQD;;IAED,OACE;MACA,CAACD,QAAQ,CAACU,OAAT,GAAmBtJ,MAAM,CAACgJ,MAAP,CAAcC,OAAjC,GAA2C,CAA5C,KACCL,QAAQ,CAACM,QAAT,GAAoBlJ,MAAM,CAACgJ,MAAP,CAAcG,KAAlC,GAA0C,CAD3C,KAECP,QAAQ,CAACQ,MAAT,GAAkBpJ,MAAM,CAACgJ,MAAP,CAAcK,GAAhC,GAAsC,CAFvC,KAGCT,QAAQ,CAACG,OAAT,GAAmB/I,MAAM,CAACgJ,MAAP,CAAcO,OAAjC,GAA2C,CAH5C,IAIAtJ,YAAY,CAACuJ,UAAb,CAAwBX,QAAxB;IANF;EAQD;;AA3Ye;;AA8YlB,eAAe5H,WAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/monaco/index.ts"],"names":["default","MonacoUtils","MonacoCompletionProvider","MonacoTheme"],"mappings":"SAASA,OAAO,IAAIC,W;SACXD,OAAO,IAAIE,wB;SACXF,OAAO,IAAIG,W","sourcesContent":["export { default as MonacoUtils } from './MonacoUtils';\nexport { default as MonacoCompletionProvider } from './MonacoCompletionProvider';\nexport { default as MonacoTheme } from './MonacoTheme.module.scss';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["default","MonacoUtils","MonacoCompletionProvider","MonacoTheme"],"sources":["../../src/monaco/index.ts"],"sourcesContent":["export { default as MonacoUtils } from './MonacoUtils';\nexport { default as MonacoCompletionProvider } from './MonacoCompletionProvider';\nexport { default as MonacoTheme } from './MonacoTheme.module.scss';\n"],"mappings":"SAASA,OAAO,IAAIC,W;SACXD,OAAO,IAAIE,wB;SACXF,OAAO,IAAIG,W"}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"Language.js"}
1
+ {"version":3,"file":"Language.js","names":[],"sources":["../../../src/monaco/lang/Language.ts"],"sourcesContent":["import * as monaco from 'monaco-editor';\n\nexport type Language = {\n id: string;\n conf: monaco.languages.LanguageConfiguration;\n language:\n | monaco.languages.IMonarchLanguage\n | monaco.Thenable<monaco.languages.IMonarchLanguage>;\n};\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/monaco/lang/db.ts"],"names":["id","conf","comments","lineComment","blockComment","brackets","autoClosingPairs","open","close","notIn","surroundingPairs","onEnterRules","beforeText","RegExp","action","indentAction","folding","offSide","markers","start","end","language","tokenPostfix","keywords","builtins","operators","token","symbols","escapes","exponent","regexpctl","regexpesc","tokenizer","root","cases","$3","include","bracket","next","whitespace","comment","string","regexp","regexrange","lang"],"mappings":"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","sourcesContent":["import * as monaco from 'monaco-editor';\nimport { Language } from './Language';\n\n/* eslint no-useless-escape: \"off\" */\nconst id = 'deephavenDb';\n\nconst conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: '#',\n blockComment: [\"'''\", \"'''\"],\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"', notIn: ['string'] },\n { open: \"'\", close: \"'\", notIn: ['string', 'comment'] },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n onEnterRules: [\n {\n beforeText: new RegExp(\n '^\\\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\\\s*$'\n ),\n action: { indentAction: 1 }, // see monaco.languages.IndentAction.Indent\n },\n ],\n folding: {\n offSide: true,\n markers: {\n start: new RegExp('^\\\\s*#region\\\\b'),\n end: new RegExp('^\\\\s*#endregion\\\\b'),\n },\n },\n};\n\nconst language: monaco.languages.IMonarchLanguage = {\n tokenPostfix: '.js',\n\n keywords: [\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n ],\n\n builtins: ['define', 'require', 'window', 'document', 'undefined'],\n\n operators: [\n '=',\n '>',\n '<',\n '!',\n '~',\n '?',\n ':',\n '==',\n '<=',\n '>=',\n '!=',\n '&&',\n '||',\n '++',\n '--',\n '+',\n '-',\n '*',\n '/',\n '&',\n '|',\n '^',\n '%',\n '<<',\n '>>',\n '>>>',\n '+=',\n '-=',\n '*=',\n '/=',\n '&=',\n '|=',\n '^=',\n '%=',\n '<<=',\n '>>=',\n '>>>=',\n ],\n\n // define our own brackets as '<' and '>' do not match in javascript\n brackets: [\n { open: '{', close: '}', token: 'delimiter.curly' },\n { open: '[', close: ']', token: 'delimiter.bracket' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n ],\n\n // common regular expressions\n symbols: /[~!@#%\\^&*-+=|\\\\:`<>.?\\/]+/,\n escapes: /\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,\n exponent: /[eE][\\-+]?[0-9]+/,\n\n regexpctl: /[(){}\\[\\]\\$\\^|\\-*+?\\.]/,\n regexpesc: /\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,\n\n tokenizer: {\n root: [\n // identifiers and keywords\n [\n /([a-zA-Z_\\$][\\w\\$]*)(\\s*)(:?)/,\n {\n cases: {\n '$1@keywords': ['keyword', 'white', 'delimiter'],\n $3: ['key.identifier', 'white', 'delimiter'], // followed by :\n '$1@builtins': ['predefined.identifier', 'white', 'delimiter'],\n '@default': ['identifier', 'white', 'delimiter'],\n },\n },\n ],\n\n // whitespace\n { include: '@whitespace' },\n\n // regular expression: ensure it is terminated before beginning (otherwise it is an opeator)\n [\n /\\/(?=([^\\\\\\/]|\\\\.)+\\/)/,\n { token: 'regexp.slash', bracket: '@open', next: '@regexp' },\n ],\n\n // delimiters and operators\n [/[{}()\\[\\]]/, '@brackets'],\n [/[;,.]/, 'delimiter'],\n [\n /@symbols/,\n {\n cases: {\n '@operators': 'operator',\n '@default': '',\n },\n },\n ],\n\n // numbers\n [/\\d+\\.\\d*(@exponent)?/, 'number.float'],\n [/\\.\\d+(@exponent)?/, 'number.float'],\n [/\\d+@exponent/, 'number.float'],\n [/0[xX][\\da-fA-F]+/, 'number.hex'],\n [/0[0-7]+/, 'number.octal'],\n [/\\d+/, 'number'],\n\n // strings: recover on non-terminated strings\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/\"/, 'string', '@string.\"'],\n [/'/, 'string', \"@string.'\"],\n ],\n\n whitespace: [\n [/[ \\t\\r\\n]+/, 'white'],\n [/\\/\\*/, 'comment', '@comment'],\n [/\\/\\/.*$/, 'comment'],\n ],\n\n comment: [\n [/[^\\/*]+/, 'comment'],\n // [/\\/\\*/, 'comment', '@push' ], // nested comment not allowed :-(\n [/\\/\\*/, 'comment.invalid'],\n ['\\\\*/', 'comment', '@pop'],\n [/[\\/*]/, 'comment'],\n ],\n\n string: [\n [/[^\\\\\"']+/, 'string'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n [\n /[\"']/,\n {\n cases: {\n '$#==$S2': { token: 'string', next: '@pop' },\n '@default': 'string',\n },\n },\n ],\n ],\n\n // We match regular expression quite precisely\n regexp: [\n [\n /(\\{)(\\d+(?:,\\d*)?)(\\})/,\n [\n '@brackets.regexp.escape.control',\n 'regexp.escape.control',\n '@brackets.regexp.escape.control',\n ],\n ],\n [\n /(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,\n [\n { token: '@brackets.regexp.escape.control' },\n {\n token: 'regexp.escape.control',\n next: '@regexrange',\n },\n ],\n ],\n [\n /(\\()(\\?:|\\?=|\\?!)/,\n ['@brackets.regexp.escape.control', 'regexp.escape.control'],\n ],\n [/[()]/, '@brackets.regexp.escape.control'],\n [/@regexpctl/, 'regexp.escape.control'],\n [/[^\\\\\\/]/, 'regexp'],\n [/@regexpesc/, 'regexp.escape'],\n [/\\\\\\./, 'regexp.invalid'],\n ['/', { token: 'regexp.slash', bracket: '@close' }, '@pop'],\n ],\n\n regexrange: [\n [/-/, 'regexp.escape.control'],\n [/\\^/, 'regexp.invalid'],\n [/@regexpesc/, 'regexp.escape'],\n [/[^\\]]/, 'regexp'],\n [/\\]/, '@brackets.regexp.escape.control', '@pop'],\n ],\n },\n};\n\nconst lang: Language = { id, conf, language };\nexport default lang;\n"],"file":"db.js"}
1
+ {"version":3,"file":"db.js","names":["id","conf","comments","lineComment","blockComment","brackets","autoClosingPairs","open","close","notIn","surroundingPairs","onEnterRules","beforeText","RegExp","action","indentAction","folding","offSide","markers","start","end","language","tokenPostfix","keywords","builtins","operators","token","symbols","escapes","exponent","regexpctl","regexpesc","tokenizer","root","cases","$3","include","bracket","next","whitespace","comment","string","regexp","regexrange","lang"],"sources":["../../../src/monaco/lang/db.ts"],"sourcesContent":["import * as monaco from 'monaco-editor';\nimport { Language } from './Language';\n\n/* eslint no-useless-escape: \"off\" */\nconst id = 'deephavenDb';\n\nconst conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: '#',\n blockComment: [\"'''\", \"'''\"],\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"', notIn: ['string'] },\n { open: \"'\", close: \"'\", notIn: ['string', 'comment'] },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n onEnterRules: [\n {\n beforeText: new RegExp(\n '^\\\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\\\s*$'\n ),\n action: { indentAction: 1 }, // see monaco.languages.IndentAction.Indent\n },\n ],\n folding: {\n offSide: true,\n markers: {\n start: new RegExp('^\\\\s*#region\\\\b'),\n end: new RegExp('^\\\\s*#endregion\\\\b'),\n },\n },\n};\n\nconst language: monaco.languages.IMonarchLanguage = {\n tokenPostfix: '.js',\n\n keywords: [\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n ],\n\n builtins: ['define', 'require', 'window', 'document', 'undefined'],\n\n operators: [\n '=',\n '>',\n '<',\n '!',\n '~',\n '?',\n ':',\n '==',\n '<=',\n '>=',\n '!=',\n '&&',\n '||',\n '++',\n '--',\n '+',\n '-',\n '*',\n '/',\n '&',\n '|',\n '^',\n '%',\n '<<',\n '>>',\n '>>>',\n '+=',\n '-=',\n '*=',\n '/=',\n '&=',\n '|=',\n '^=',\n '%=',\n '<<=',\n '>>=',\n '>>>=',\n ],\n\n // define our own brackets as '<' and '>' do not match in javascript\n brackets: [\n { open: '{', close: '}', token: 'delimiter.curly' },\n { open: '[', close: ']', token: 'delimiter.bracket' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n ],\n\n // common regular expressions\n symbols: /[~!@#%\\^&*-+=|\\\\:`<>.?\\/]+/,\n escapes: /\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,\n exponent: /[eE][\\-+]?[0-9]+/,\n\n regexpctl: /[(){}\\[\\]\\$\\^|\\-*+?\\.]/,\n regexpesc: /\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,\n\n tokenizer: {\n root: [\n // identifiers and keywords\n [\n /([a-zA-Z_\\$][\\w\\$]*)(\\s*)(:?)/,\n {\n cases: {\n '$1@keywords': ['keyword', 'white', 'delimiter'],\n $3: ['key.identifier', 'white', 'delimiter'], // followed by :\n '$1@builtins': ['predefined.identifier', 'white', 'delimiter'],\n '@default': ['identifier', 'white', 'delimiter'],\n },\n },\n ],\n\n // whitespace\n { include: '@whitespace' },\n\n // regular expression: ensure it is terminated before beginning (otherwise it is an opeator)\n [\n /\\/(?=([^\\\\\\/]|\\\\.)+\\/)/,\n { token: 'regexp.slash', bracket: '@open', next: '@regexp' },\n ],\n\n // delimiters and operators\n [/[{}()\\[\\]]/, '@brackets'],\n [/[;,.]/, 'delimiter'],\n [\n /@symbols/,\n {\n cases: {\n '@operators': 'operator',\n '@default': '',\n },\n },\n ],\n\n // numbers\n [/\\d+\\.\\d*(@exponent)?/, 'number.float'],\n [/\\.\\d+(@exponent)?/, 'number.float'],\n [/\\d+@exponent/, 'number.float'],\n [/0[xX][\\da-fA-F]+/, 'number.hex'],\n [/0[0-7]+/, 'number.octal'],\n [/\\d+/, 'number'],\n\n // strings: recover on non-terminated strings\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/\"/, 'string', '@string.\"'],\n [/'/, 'string', \"@string.'\"],\n ],\n\n whitespace: [\n [/[ \\t\\r\\n]+/, 'white'],\n [/\\/\\*/, 'comment', '@comment'],\n [/\\/\\/.*$/, 'comment'],\n ],\n\n comment: [\n [/[^\\/*]+/, 'comment'],\n // [/\\/\\*/, 'comment', '@push' ], // nested comment not allowed :-(\n [/\\/\\*/, 'comment.invalid'],\n ['\\\\*/', 'comment', '@pop'],\n [/[\\/*]/, 'comment'],\n ],\n\n string: [\n [/[^\\\\\"']+/, 'string'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n [\n /[\"']/,\n {\n cases: {\n '$#==$S2': { token: 'string', next: '@pop' },\n '@default': 'string',\n },\n },\n ],\n ],\n\n // We match regular expression quite precisely\n regexp: [\n [\n /(\\{)(\\d+(?:,\\d*)?)(\\})/,\n [\n '@brackets.regexp.escape.control',\n 'regexp.escape.control',\n '@brackets.regexp.escape.control',\n ],\n ],\n [\n /(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,\n [\n { token: '@brackets.regexp.escape.control' },\n {\n token: 'regexp.escape.control',\n next: '@regexrange',\n },\n ],\n ],\n [\n /(\\()(\\?:|\\?=|\\?!)/,\n ['@brackets.regexp.escape.control', 'regexp.escape.control'],\n ],\n [/[()]/, '@brackets.regexp.escape.control'],\n [/@regexpctl/, 'regexp.escape.control'],\n [/[^\\\\\\/]/, 'regexp'],\n [/@regexpesc/, 'regexp.escape'],\n [/\\\\\\./, 'regexp.invalid'],\n ['/', { token: 'regexp.slash', bracket: '@close' }, '@pop'],\n ],\n\n regexrange: [\n [/-/, 'regexp.escape.control'],\n [/\\^/, 'regexp.invalid'],\n [/@regexpesc/, 'regexp.escape'],\n [/[^\\]]/, 'regexp'],\n [/\\]/, '@brackets.regexp.escape.control', '@pop'],\n ],\n },\n};\n\nconst lang: Language = { id, conf, language };\nexport default lang;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/monaco/lang/groovy.ts"],"names":["id","conf","comments","lineComment","blockComment","brackets","autoClosingPairs","open","close","notIn","surroundingPairs","onEnterRules","beforeText","RegExp","action","indentAction","folding","offSide","markers","start","end","language","keywords","operators","token","symbols","delimiters","escapes","rawpre","strpre","tokenizer","root","bracket","next","nextEmbedded","cases","include","mstring","sstring","string","strcontent","mrawstring","rawstring","rawstrcontent","whitespace","comment","doccomment","lang"],"mappings":"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","sourcesContent":["import * as monaco from 'monaco-editor';\nimport { Language } from './Language';\n\nconst id = 'groovy';\n\nconst conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: '//',\n blockComment: ['/*', '*/'],\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"', notIn: ['string'] },\n { open: \"'\", close: \"'\", notIn: ['string', 'comment'] },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n onEnterRules: [\n {\n beforeText: new RegExp(\n '^\\\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\\\s*$'\n ),\n action: { indentAction: 1 }, // see monaco.languages.IndentAction.Indent\n },\n ],\n folding: {\n offSide: true,\n markers: {\n start: new RegExp('^\\\\s*#region\\\\b'),\n end: new RegExp('^\\\\s*#endregion\\\\b'),\n },\n },\n};\n\nconst language: monaco.languages.IMonarchLanguage = {\n // Set defaultToken to invalid to see what you do not tokenize yet\n // defaultToken: 'invalid',\n\n keywords: [\n 'and',\n 'del',\n 'from',\n 'not',\n 'while',\n 'as',\n 'elif',\n 'global',\n 'or',\n 'with',\n 'assert',\n 'else',\n 'if',\n 'pass',\n 'yield',\n 'break',\n 'except',\n 'import',\n 'print',\n 'println',\n 'class',\n 'exec',\n 'in',\n 'raise',\n 'continue',\n 'finally',\n 'is',\n 'return',\n 'def',\n 'for',\n 'lambda',\n 'try',\n ':',\n '=',\n 'isinstance',\n '__debug__',\n ],\n\n operators: [\n '+',\n '-',\n '*',\n '**',\n '/',\n '//',\n '%',\n '<<',\n '>>',\n '&',\n '|',\n '^',\n '~',\n '<',\n '>',\n '<=',\n '>=',\n '==',\n '!=',\n '<>',\n '+=',\n '-=',\n '*=',\n '/',\n '//=',\n '%=',\n '&=',\n '|=',\n '^=',\n '>>=',\n '<<=',\n '**=',\n ],\n\n brackets: [\n { open: '{', close: '}', token: 'delimiter.curly' },\n { open: '[', close: ']', token: 'delimiter.square' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n ],\n\n // operator symbols\n symbols: /[=><!~&|+\\-*/^%]+/,\n delimiters: /[;=.@:,`]/,\n\n // strings\n escapes: /\\\\(?:[abfnrtv\\\\\"'\\n\\r]|x[0-9A-Fa-f]{2}|[0-7]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\\{\\w+\\})/,\n rawpre: /(?:[rR]|ur|Ur|uR|UR|br|Br|bR|BR)/,\n strpre: /(?:[buBU])/,\n\n // The main tokenizer for our languages\n tokenizer: {\n root: [\n // strings: need to check first due to the prefix\n [\n /@strpre?(\"\"\"|''')/,\n { token: 'string.delim', bracket: '@open', next: '@mstring.$1' },\n ],\n [/@strpre?\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/@strpre?'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [\n /@strpre?([\"])/,\n {\n token: 'string.delim',\n bracket: '@open',\n next: '@sstring.$1',\n nextEmbedded: 'deephavenDb',\n },\n ],\n [\n /@strpre?([\"'])/,\n { token: 'string.delim', bracket: '@open', next: '@string.$1' },\n ],\n\n [\n /@rawpre(\"\"\"|''')/,\n { token: 'string.delim', bracket: '@open', next: '@mrawstring.$1' },\n ],\n [/@rawpre\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/@rawpre'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [\n /@rawpre([\"'])/,\n { token: 'string.delim', bracket: '@open', next: '@rawstring.$1' },\n ],\n\n // identifiers and keywords\n [/__[\\w$]*/, 'predefined'],\n [\n /[a-z_$][\\w$]*/,\n {\n cases: {\n '@keywords': 'keyword',\n '@default': 'identifier',\n },\n },\n ],\n [\n /[A-Z][\\w]*/,\n {\n cases: {\n '~[A-Z0-9_]+': 'constructor.identifier',\n '@default': 'namespace.identifier',\n },\n },\n ], // to show class names nicely\n\n // whitespace\n { include: '@whitespace' },\n\n // delimiters and operators\n [/[{}()[\\]]/, '@brackets'],\n [\n /@symbols/,\n {\n cases: {\n '@keywords': 'keyword',\n '@operators': 'operator',\n '@default': '',\n },\n },\n ],\n\n // numbers\n [/\\d*\\.\\d+([eE][-+]?\\d+)?/, 'number.float'],\n [/0[xX][0-9a-fA-F]+[lL]?/, 'number.hex'],\n [/0[bB][0-1]+[lL]?/, 'number.binary'],\n [/(0[oO][0-7]+|0[0-7]+)[lL]?/, 'number.octal'],\n [/(0|[1-9]\\d*)[lL]?/, 'number'],\n\n // delimiter: after number because of .\\d floats\n [':', { token: 'keyword', bracket: '@open' }], // bracket for indentation\n [\n /@delimiters/,\n {\n cases: {\n '@keywords': 'keyword',\n '@default': 'delimiter',\n },\n },\n ],\n ],\n\n // Regular strings\n mstring: [\n { include: '@strcontent' },\n [\n /\"\"\"|'''/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/[\"']/, 'string'],\n [/./, 'string.invalid'],\n ],\n\n sstring: [\n { include: '@strcontent' },\n [\n /[\"]/,\n {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n nextEmbedded: '@pop',\n },\n ],\n [/./, 'string.invalid'],\n ],\n\n string: [\n { include: '@strcontent' },\n [/[']/, { token: 'string.delim', bracket: '@close', next: '@pop' }],\n [/./, 'string.invalid'],\n ],\n\n strcontent: [\n [/[^\\\\\"']+/, 'string'],\n [/\\\\$/, 'string.escape'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n ],\n\n // Raw strings: we distinguish them to color escape sequences correctly\n mrawstring: [\n { include: '@rawstrcontent' },\n [\n /\"\"\"|'''/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/[\"']/, 'string'],\n [/./, 'string.invalid'],\n ],\n\n rawstring: [\n { include: '@rawstrcontent' },\n [\n /[\"']/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/./, 'string.invalid'],\n ],\n\n rawstrcontent: [\n [/[^\\\\\"']+/, 'string'],\n [/\\\\[\"']/, 'string'],\n [/\\\\u[0-9A-Fa-f]{4}/, 'string.escape'],\n [/\\\\/, 'string'],\n ],\n\n whitespace: [\n [/[ \\t\\r\\n]+/, ''],\n [/\\/\\*\\*(?!\\/)/, 'comment.doc', '@doccomment'],\n [/\\/\\*/, 'comment', '@comment'],\n [/\\/\\/.*$/, 'comment'],\n ],\n\n comment: [\n [/[^/*]+/, 'comment'],\n [/\\*\\//, 'comment', '@pop'],\n [/[/*]/, 'comment'],\n ],\n\n doccomment: [\n [/[^/*]+/, 'comment.doc'],\n [/\\*\\//, 'comment.doc', '@pop'],\n [/[/*]/, 'comment.doc'],\n ],\n },\n};\n\nconst lang: Language = { id, conf, language };\nexport default lang;\n"],"file":"groovy.js"}
1
+ {"version":3,"file":"groovy.js","names":["id","conf","comments","lineComment","blockComment","brackets","autoClosingPairs","open","close","notIn","surroundingPairs","onEnterRules","beforeText","RegExp","action","indentAction","folding","offSide","markers","start","end","language","keywords","operators","token","symbols","delimiters","escapes","rawpre","strpre","tokenizer","root","bracket","next","nextEmbedded","cases","include","mstring","sstring","string","strcontent","mrawstring","rawstring","rawstrcontent","whitespace","comment","doccomment","lang"],"sources":["../../../src/monaco/lang/groovy.ts"],"sourcesContent":["import * as monaco from 'monaco-editor';\nimport { Language } from './Language';\n\nconst id = 'groovy';\n\nconst conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: '//',\n blockComment: ['/*', '*/'],\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"', notIn: ['string'] },\n { open: \"'\", close: \"'\", notIn: ['string', 'comment'] },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n onEnterRules: [\n {\n beforeText: new RegExp(\n '^\\\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\\\s*$'\n ),\n action: { indentAction: 1 }, // see monaco.languages.IndentAction.Indent\n },\n ],\n folding: {\n offSide: true,\n markers: {\n start: new RegExp('^\\\\s*#region\\\\b'),\n end: new RegExp('^\\\\s*#endregion\\\\b'),\n },\n },\n};\n\nconst language: monaco.languages.IMonarchLanguage = {\n // Set defaultToken to invalid to see what you do not tokenize yet\n // defaultToken: 'invalid',\n\n keywords: [\n 'and',\n 'del',\n 'from',\n 'not',\n 'while',\n 'as',\n 'elif',\n 'global',\n 'or',\n 'with',\n 'assert',\n 'else',\n 'if',\n 'pass',\n 'yield',\n 'break',\n 'except',\n 'import',\n 'print',\n 'println',\n 'class',\n 'exec',\n 'in',\n 'raise',\n 'continue',\n 'finally',\n 'is',\n 'return',\n 'def',\n 'for',\n 'lambda',\n 'try',\n ':',\n '=',\n 'isinstance',\n '__debug__',\n ],\n\n operators: [\n '+',\n '-',\n '*',\n '**',\n '/',\n '//',\n '%',\n '<<',\n '>>',\n '&',\n '|',\n '^',\n '~',\n '<',\n '>',\n '<=',\n '>=',\n '==',\n '!=',\n '<>',\n '+=',\n '-=',\n '*=',\n '/',\n '//=',\n '%=',\n '&=',\n '|=',\n '^=',\n '>>=',\n '<<=',\n '**=',\n ],\n\n brackets: [\n { open: '{', close: '}', token: 'delimiter.curly' },\n { open: '[', close: ']', token: 'delimiter.square' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n ],\n\n // operator symbols\n symbols: /[=><!~&|+\\-*/^%]+/,\n delimiters: /[;=.@:,`]/,\n\n // strings\n escapes: /\\\\(?:[abfnrtv\\\\\"'\\n\\r]|x[0-9A-Fa-f]{2}|[0-7]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\\{\\w+\\})/,\n rawpre: /(?:[rR]|ur|Ur|uR|UR|br|Br|bR|BR)/,\n strpre: /(?:[buBU])/,\n\n // The main tokenizer for our languages\n tokenizer: {\n root: [\n // strings: need to check first due to the prefix\n [\n /@strpre?(\"\"\"|''')/,\n { token: 'string.delim', bracket: '@open', next: '@mstring.$1' },\n ],\n [/@strpre?\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/@strpre?'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [\n /@strpre?([\"])/,\n {\n token: 'string.delim',\n bracket: '@open',\n next: '@sstring.$1',\n nextEmbedded: 'deephavenDb',\n },\n ],\n [\n /@strpre?([\"'])/,\n { token: 'string.delim', bracket: '@open', next: '@string.$1' },\n ],\n\n [\n /@rawpre(\"\"\"|''')/,\n { token: 'string.delim', bracket: '@open', next: '@mrawstring.$1' },\n ],\n [/@rawpre\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/@rawpre'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [\n /@rawpre([\"'])/,\n { token: 'string.delim', bracket: '@open', next: '@rawstring.$1' },\n ],\n\n // identifiers and keywords\n [/__[\\w$]*/, 'predefined'],\n [\n /[a-z_$][\\w$]*/,\n {\n cases: {\n '@keywords': 'keyword',\n '@default': 'identifier',\n },\n },\n ],\n [\n /[A-Z][\\w]*/,\n {\n cases: {\n '~[A-Z0-9_]+': 'constructor.identifier',\n '@default': 'namespace.identifier',\n },\n },\n ], // to show class names nicely\n\n // whitespace\n { include: '@whitespace' },\n\n // delimiters and operators\n [/[{}()[\\]]/, '@brackets'],\n [\n /@symbols/,\n {\n cases: {\n '@keywords': 'keyword',\n '@operators': 'operator',\n '@default': '',\n },\n },\n ],\n\n // numbers\n [/\\d*\\.\\d+([eE][-+]?\\d+)?/, 'number.float'],\n [/0[xX][0-9a-fA-F]+[lL]?/, 'number.hex'],\n [/0[bB][0-1]+[lL]?/, 'number.binary'],\n [/(0[oO][0-7]+|0[0-7]+)[lL]?/, 'number.octal'],\n [/(0|[1-9]\\d*)[lL]?/, 'number'],\n\n // delimiter: after number because of .\\d floats\n [':', { token: 'keyword', bracket: '@open' }], // bracket for indentation\n [\n /@delimiters/,\n {\n cases: {\n '@keywords': 'keyword',\n '@default': 'delimiter',\n },\n },\n ],\n ],\n\n // Regular strings\n mstring: [\n { include: '@strcontent' },\n [\n /\"\"\"|'''/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/[\"']/, 'string'],\n [/./, 'string.invalid'],\n ],\n\n sstring: [\n { include: '@strcontent' },\n [\n /[\"]/,\n {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n nextEmbedded: '@pop',\n },\n ],\n [/./, 'string.invalid'],\n ],\n\n string: [\n { include: '@strcontent' },\n [/[']/, { token: 'string.delim', bracket: '@close', next: '@pop' }],\n [/./, 'string.invalid'],\n ],\n\n strcontent: [\n [/[^\\\\\"']+/, 'string'],\n [/\\\\$/, 'string.escape'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n ],\n\n // Raw strings: we distinguish them to color escape sequences correctly\n mrawstring: [\n { include: '@rawstrcontent' },\n [\n /\"\"\"|'''/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/[\"']/, 'string'],\n [/./, 'string.invalid'],\n ],\n\n rawstring: [\n { include: '@rawstrcontent' },\n [\n /[\"']/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/./, 'string.invalid'],\n ],\n\n rawstrcontent: [\n [/[^\\\\\"']+/, 'string'],\n [/\\\\[\"']/, 'string'],\n [/\\\\u[0-9A-Fa-f]{4}/, 'string.escape'],\n [/\\\\/, 'string'],\n ],\n\n whitespace: [\n [/[ \\t\\r\\n]+/, ''],\n [/\\/\\*\\*(?!\\/)/, 'comment.doc', '@doccomment'],\n [/\\/\\*/, 'comment', '@comment'],\n [/\\/\\/.*$/, 'comment'],\n ],\n\n comment: [\n [/[^/*]+/, 'comment'],\n [/\\*\\//, 'comment', '@pop'],\n [/[/*]/, 'comment'],\n ],\n\n doccomment: [\n [/[^/*]+/, 'comment.doc'],\n [/\\*\\//, 'comment.doc', '@pop'],\n [/[/*]/, 'comment.doc'],\n ],\n },\n};\n\nconst lang: Language = { id, conf, language };\nexport default lang;\n"],"mappings":"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"}