@deephaven/console 0.6.1-fixed-deps.2 → 0.6.3-alpha.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.
- package/dist/Console.js +2 -2
- package/dist/ConsoleInput.d.ts +1 -1
- package/dist/ConsoleInput.js +2 -2
- package/dist/ConsoleInput.js.map +1 -1
- package/dist/ConsoleMenu.js +1 -1
- package/dist/command-history/CommandHistoryStorage.js +1 -1
- package/dist/common/Code.js +1 -1
- package/dist/common/Code.js.map +1 -1
- package/dist/common/ConsoleConstants.d.ts +1 -1
- package/dist/common/ConsoleConstants.d.ts.map +1 -1
- package/dist/common/ConsoleConstants.js +16 -8
- package/dist/common/ConsoleConstants.js.map +1 -1
- package/dist/common/ObjectIcon.js +1 -1
- package/dist/common/ObjectIcon.js.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.css +18 -4
- package/dist/console-history/ConsoleHistoryItem.css.map +1 -1
- package/dist/console-history/ConsoleHistoryItem.js +1 -1
- package/dist/console-history/ConsoleHistoryItemResult.js +1 -1
- package/dist/console-history/ConsoleHistoryResultErrorMessage.d.ts +2 -0
- package/dist/console-history/ConsoleHistoryResultErrorMessage.d.ts.map +1 -1
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js +29 -13
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
- package/dist/csv/CsvInputBar.js +1 -1
- package/dist/csv/CsvTypeParser.js +1 -1
- package/dist/log/LogView.d.ts +1 -1
- package/dist/log/LogView.js +2 -2
- package/dist/log/LogView.js.map +1 -1
- package/dist/monaco/MonacoCompletionProvider.d.ts +1 -1
- package/dist/monaco/MonacoCompletionProvider.js +1 -1
- package/dist/monaco/MonacoCompletionProvider.js.map +1 -1
- package/dist/monaco/MonacoUtils.d.ts +1 -1
- package/dist/monaco/MonacoUtils.js +53 -53
- package/dist/monaco/MonacoUtils.js.map +1 -1
- package/dist/notebook/Editor.d.ts +1 -1
- package/dist/notebook/Editor.js +2 -2
- package/dist/notebook/Editor.js.map +1 -1
- package/dist/notebook/ScriptEditor.js +1 -1
- package/dist/notebook/ScriptEditor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -11
package/dist/log/LogView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/log/LogView.jsx"],"names":["React","PureComponent","FontAwesomeIcon","DropdownMenu","Tooltip","vsGear","dhTrashUndo","PropTypes","APIPropTypes","monaco","ConsoleUtils","LogLevel","LogLevelMenuItem","LogView","getLogText","logItem","date","Date","micros","timestamp","formatTimestamp","logLevel","message","constructor","props","handleClearClick","bind","handleFlushTimeout","handleLogMessage","handleMenuItemClick","handleResetClick","handleResize","handleToggleAllClick","cancelListener","editor","editorContainer","logLevelMenuItems","flushTimer","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","onLogMessage","create","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","language","lineDecorationsWidth","lineNumbers","lineNumbersMinChars","minimap","enabled","readOnly","renderLineHighlight","scrollBeyondLastLine","value","wordWrap","addCommand","KeyCode","Escape","KeyMod","Shift","setPosition","getPosition","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","revealLine","truncateLogIfNecessary","logText","charAt","trimRight","setValue","maxLogSize","splice","truncateSize","scrollToBottom","isLineVisible","visibleRanges","getVisibleRanges","isLogItemVisible","flush","queue","setTimeout","bufferTimeout","clearTimeout","layout","render","popperOptions","placement","STDOUT","ERROR","FATAL","STDERR","WARN","INFO","DEBUG","TRACE","propTypes","IdeSession","isRequired"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DropdownMenu, Tooltip } from '@deephaven/components';\nimport { vsGear, dhTrashUndo } from '@deephaven/icons';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport ConsoleUtils from '../common/ConsoleUtils';\nimport LogLevel from './LogLevel';\nimport './LogView.scss';\nimport LogLevelMenuItem from './LogLevelMenuItem';\n\n/**\n * Log view contents. Uses a monaco editor to display/search the contents of the log.\n */\nclass LogView extends PureComponent {\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) {\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) {\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.cancelListener = null;\n this.editor = null;\n this.editorContainer = null;\n this.logLevelMenuItems = {};\n this.flushTimer = null;\n\n this.bufferedMessages = [];\n this.messages = [];\n\n this.state = {\n shownLogLevels: {},\n };\n }\n\n componentDidMount() {\n this.resetLogLevels();\n this.initMonaco();\n this.startListening();\n\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(prevProps, prevState) {\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() {\n this.stopFlushTimer();\n this.stopListening();\n this.destroyMonaco();\n\n window.removeEventListener('resize', this.handleResize);\n }\n\n getMenuActions(shownLogLevels) {\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 this.logLevelMenuItems[logLevel] = element;\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() {\n const shownLogLevels = {};\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() {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n stopListening() {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = null;\n }\n }\n\n initMonaco() {\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 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, () => {});\n this.editor.addCommand(\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.Shift | monaco.KeyCode.Escape,\n () => {}\n );\n\n // Restore regular escape to clear selection, when editorText has focus.\n this.editor.addCommand(\n monaco.KeyCode.Escape,\n () => {\n this.editor.setPosition(this.editor.getPosition());\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 this.editor.setPosition(this.editor.getPosition());\n },\n 'findWidgetVisible && editorTextFocus'\n );\n }\n\n destroyMonaco() {\n if (this.editor) {\n this.editor.dispose();\n this.editor = null;\n }\n }\n\n triggerFindWidget() {\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');\n }\n\n toggleAll() {\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 = {};\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) {\n const { shownLogLevels } = this.state;\n const isEnabled = shownLogLevels[logLevel];\n const updatedLogLevels = {};\n updatedLogLevels[logLevel] = !isEnabled;\n this.updateLogLevels(updatedLogLevels);\n }\n\n updateLogLevels(updatedLogLevels) {\n let { shownLogLevels } = this.state;\n shownLogLevels = { ...shownLogLevels, ...updatedLogLevels };\n this.setState({ shownLogLevels });\n }\n\n appendLogText(text) {\n if (!this.editor) {\n return;\n }\n\n const model = this.editor.getModel();\n let line = model.getLineCount();\n let column = model.getLineLength(line);\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 this.editor.revealLine(model.getLineCount(), 1);\n }\n }\n\n /**\n * Refresh the contents of the log component with the updated filter text\n */\n refreshLogText() {\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 this.editor.revealLine(line, 1);\n }\n\n this.stopFlushTimer();\n this.bufferedMessages = [];\n }\n\n truncateLogIfNecessary() {\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() {\n if (!this.editor) {\n return;\n }\n\n const line = this.editor.getModel().getLineCount();\n this.editor.revealLine(line, 1);\n }\n\n isBottomVisible() {\n if (!this.editor) {\n return true;\n }\n\n const model = this.editor.getModel();\n const line = model.getLineCount();\n\n return this.isLineVisible(line);\n }\n\n isLineVisible(line) {\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) {\n const { shownLogLevels } = this.state;\n return shownLogLevels[message.logLevel];\n }\n\n flush() {\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) {\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() {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = null;\n }\n }\n\n updateDimensions() {\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n handleClearClick() {\n this.clearLogs();\n }\n\n clearLogs() {\n this.messages = [];\n this.refreshLogText();\n }\n\n handleFlushTimeout() {\n this.stopFlushTimer();\n this.flush();\n }\n\n handleLogMessage(message) {\n this.messages.push(message);\n\n if (this.editor && this.isLogItemVisible(message)) {\n this.queue(message);\n }\n }\n\n handleMenuItemClick(logLevel) {\n this.toggleLogLevel(logLevel);\n }\n\n handleResetClick() {\n this.resetLogLevels();\n }\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleToggleAllClick() {\n this.toggleAll();\n }\n\n render() {\n const popperOptions = { placement: 'bottom-end' };\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\nLogView.propTypes = {\n session: APIPropTypes.IdeSession.isRequired,\n};\n\nexport default LogView;\n"],"file":"LogView.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/log/LogView.jsx"],"names":["React","PureComponent","FontAwesomeIcon","DropdownMenu","Tooltip","vsGear","dhTrashUndo","PropTypes","APIPropTypes","monaco","ConsoleUtils","LogLevel","LogLevelMenuItem","LogView","getLogText","logItem","date","Date","micros","timestamp","formatTimestamp","logLevel","message","constructor","props","handleClearClick","bind","handleFlushTimeout","handleLogMessage","handleMenuItemClick","handleResetClick","handleResize","handleToggleAllClick","cancelListener","editor","editorContainer","logLevelMenuItems","flushTimer","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","onLogMessage","create","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","language","lineDecorationsWidth","lineNumbers","lineNumbersMinChars","minimap","enabled","readOnly","renderLineHighlight","scrollBeyondLastLine","value","wordWrap","addCommand","KeyCode","Escape","KeyMod","Shift","setPosition","getPosition","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","revealLine","truncateLogIfNecessary","logText","charAt","trimRight","setValue","maxLogSize","splice","truncateSize","scrollToBottom","isLineVisible","visibleRanges","getVisibleRanges","isLogItemVisible","flush","queue","setTimeout","bufferTimeout","clearTimeout","layout","render","popperOptions","placement","STDOUT","ERROR","FATAL","STDERR","WARN","INFO","DEBUG","TRACE","propTypes","IdeSession","isRequired"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DropdownMenu, Tooltip } from '@deephaven/components';\nimport { vsGear, dhTrashUndo } from '@deephaven/icons';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport ConsoleUtils from '../common/ConsoleUtils';\nimport LogLevel from './LogLevel';\nimport './LogView.scss';\nimport LogLevelMenuItem from './LogLevelMenuItem';\n\n/**\n * Log view contents. Uses a monaco editor to display/search the contents of the log.\n */\nclass LogView extends PureComponent {\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) {\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) {\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.cancelListener = null;\n this.editor = null;\n this.editorContainer = null;\n this.logLevelMenuItems = {};\n this.flushTimer = null;\n\n this.bufferedMessages = [];\n this.messages = [];\n\n this.state = {\n shownLogLevels: {},\n };\n }\n\n componentDidMount() {\n this.resetLogLevels();\n this.initMonaco();\n this.startListening();\n\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(prevProps, prevState) {\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() {\n this.stopFlushTimer();\n this.stopListening();\n this.destroyMonaco();\n\n window.removeEventListener('resize', this.handleResize);\n }\n\n getMenuActions(shownLogLevels) {\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 this.logLevelMenuItems[logLevel] = element;\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() {\n const shownLogLevels = {};\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() {\n const { session } = this.props;\n this.cancelListener = session.onLogMessage(this.handleLogMessage);\n }\n\n stopListening() {\n if (this.cancelListener != null) {\n this.cancelListener();\n this.cancelListener = null;\n }\n }\n\n initMonaco() {\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 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, () => {});\n this.editor.addCommand(\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.Shift | monaco.KeyCode.Escape,\n () => {}\n );\n\n // Restore regular escape to clear selection, when editorText has focus.\n this.editor.addCommand(\n monaco.KeyCode.Escape,\n () => {\n this.editor.setPosition(this.editor.getPosition());\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 this.editor.setPosition(this.editor.getPosition());\n },\n 'findWidgetVisible && editorTextFocus'\n );\n }\n\n destroyMonaco() {\n if (this.editor) {\n this.editor.dispose();\n this.editor = null;\n }\n }\n\n triggerFindWidget() {\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');\n }\n\n toggleAll() {\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 = {};\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) {\n const { shownLogLevels } = this.state;\n const isEnabled = shownLogLevels[logLevel];\n const updatedLogLevels = {};\n updatedLogLevels[logLevel] = !isEnabled;\n this.updateLogLevels(updatedLogLevels);\n }\n\n updateLogLevels(updatedLogLevels) {\n let { shownLogLevels } = this.state;\n shownLogLevels = { ...shownLogLevels, ...updatedLogLevels };\n this.setState({ shownLogLevels });\n }\n\n appendLogText(text) {\n if (!this.editor) {\n return;\n }\n\n const model = this.editor.getModel();\n let line = model.getLineCount();\n let column = model.getLineLength(line);\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 this.editor.revealLine(model.getLineCount(), 1);\n }\n }\n\n /**\n * Refresh the contents of the log component with the updated filter text\n */\n refreshLogText() {\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 this.editor.revealLine(line, 1);\n }\n\n this.stopFlushTimer();\n this.bufferedMessages = [];\n }\n\n truncateLogIfNecessary() {\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() {\n if (!this.editor) {\n return;\n }\n\n const line = this.editor.getModel().getLineCount();\n this.editor.revealLine(line, 1);\n }\n\n isBottomVisible() {\n if (!this.editor) {\n return true;\n }\n\n const model = this.editor.getModel();\n const line = model.getLineCount();\n\n return this.isLineVisible(line);\n }\n\n isLineVisible(line) {\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) {\n const { shownLogLevels } = this.state;\n return shownLogLevels[message.logLevel];\n }\n\n flush() {\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) {\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() {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = null;\n }\n }\n\n updateDimensions() {\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n handleClearClick() {\n this.clearLogs();\n }\n\n clearLogs() {\n this.messages = [];\n this.refreshLogText();\n }\n\n handleFlushTimeout() {\n this.stopFlushTimer();\n this.flush();\n }\n\n handleLogMessage(message) {\n this.messages.push(message);\n\n if (this.editor && this.isLogItemVisible(message)) {\n this.queue(message);\n }\n }\n\n handleMenuItemClick(logLevel) {\n this.toggleLogLevel(logLevel);\n }\n\n handleResetClick() {\n this.resetLogLevels();\n }\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleToggleAllClick() {\n this.toggleAll();\n }\n\n render() {\n const popperOptions = { placement: 'bottom-end' };\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\nLogView.propTypes = {\n session: APIPropTypes.IdeSession.isRequired,\n};\n\nexport default LogView;\n"],"file":"LogView.js"}
|
|
@@ -19,6 +19,6 @@ declare namespace MonacoCompletionProvider {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
import { PureComponent } from "react";
|
|
22
|
-
import * as monaco from "monaco-editor/esm/vs/editor/editor.api";
|
|
22
|
+
import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";
|
|
23
23
|
import PropTypes from "prop-types";
|
|
24
24
|
//# sourceMappingURL=MonacoCompletionProvider.d.ts.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { PureComponent } from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
|
-
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
|
6
|
+
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
|
|
7
7
|
import Log from '@deephaven/log';
|
|
8
8
|
var log = Log.module('MonacoCompletionProvider');
|
|
9
9
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/monaco/MonacoCompletionProvider.jsx"],"names":["PureComponent","PropTypes","monaco","Log","log","module","MonacoCompletionProvider","constructor","props","handleCompletionRequest","bind","registeredCompletionProvider","componentDidMount","language","languages","registerCompletionItemProvider","provideCompletionItems","triggerCharacters","componentWillUnmount","dispose","model","position","context","propModel","session","params","textDocument","uri","line","lineNumber","character","column","completionItems","getCompletionItems","debug","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","propTypes","shape","isRequired","func","string"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAT,QAA8B,OAA9B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAO,KAAKC,MAAZ,MAAwB,
|
|
1
|
+
{"version":3,"sources":["../../src/monaco/MonacoCompletionProvider.jsx"],"names":["PureComponent","PropTypes","monaco","Log","log","module","MonacoCompletionProvider","constructor","props","handleCompletionRequest","bind","registeredCompletionProvider","componentDidMount","language","languages","registerCompletionItemProvider","provideCompletionItems","triggerCharacters","componentWillUnmount","dispose","model","position","context","propModel","session","params","textDocument","uri","line","lineNumber","character","column","completionItems","getCompletionItems","debug","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","propTypes","shape","isRequired","func","string"],"mappings":"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","sourcesContent":["/**\n * Completion provider for a code session\n */\nimport { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('MonacoCompletionProvider');\n\n/**\n * Registers a completion provider with monaco for the language and session provided.\n */\nclass MonacoCompletionProvider extends PureComponent {\n constructor(props) {\n super(props);\n\n this.handleCompletionRequest = this.handleCompletionRequest.bind(this);\n\n this.registeredCompletionProvider = null;\n }\n\n componentDidMount() {\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() {\n this.registeredCompletionProvider.dispose();\n }\n\n handleCompletionRequest(model, position, context) {\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 let completionItems = session.getCompletionItems(params);\n\n log.debug('Completion items received: ', params, completionItems);\n\n completionItems = 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 => {\n log.error('There was an error retrieving completion items', error);\n return { suggestions: [] };\n });\n\n return completionItems;\n }\n\n render() {\n return null;\n }\n}\n\nMonacoCompletionProvider.propTypes = {\n model: PropTypes.shape({ uri: PropTypes.shape({}) }).isRequired,\n session: PropTypes.shape({ getCompletionItems: PropTypes.func }).isRequired,\n language: PropTypes.string.isRequired,\n};\n\nexport default MonacoCompletionProvider;\n"],"file":"MonacoCompletionProvider.js"}
|
|
@@ -51,5 +51,5 @@ declare class MonacoUtils {
|
|
|
51
51
|
*/
|
|
52
52
|
static removeKeybinding(editor: any, keybinding: string): void;
|
|
53
53
|
}
|
|
54
|
-
import * as monaco from "monaco-editor/esm/vs/editor/editor.api";
|
|
54
|
+
import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";
|
|
55
55
|
//# sourceMappingURL=MonacoUtils.d.ts.map
|
|
@@ -5,57 +5,57 @@
|
|
|
5
5
|
// Default list of features here: https://github.com/microsoft/monaco-editor-webpack-plugin
|
|
6
6
|
// Mapping to paths here: https://github.com/microsoft/monaco-editor-webpack-plugin/blob/main/src/features.ts
|
|
7
7
|
// Importing this way rather than using the plugin because I don't want to hook up react-app-rewired for the build
|
|
8
|
-
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
|
9
|
-
import 'monaco-editor/esm/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp';
|
|
10
|
-
import 'monaco-editor/esm/vs/editor/contrib/anchorSelect/anchorSelect';
|
|
11
|
-
import 'monaco-editor/esm/vs/editor/contrib/bracketMatching/bracketMatching';
|
|
12
|
-
import 'monaco-editor/esm/vs/editor/contrib/caretOperations/caretOperations';
|
|
13
|
-
import 'monaco-editor/esm/vs/editor/contrib/clipboard/clipboard';
|
|
14
|
-
import 'monaco-editor/esm/vs/editor/contrib/codeAction/codeActionContributions';
|
|
15
|
-
import 'monaco-editor/esm/vs/editor/contrib/codelens/codelensController';
|
|
16
|
-
import 'monaco-editor/esm/vs/editor/contrib/colorPicker/colorContributions';
|
|
17
|
-
import 'monaco-editor/esm/vs/editor/contrib/comment/comment';
|
|
18
|
-
import 'monaco-editor/esm/vs/editor/contrib/contextmenu/contextmenu';
|
|
19
|
-
import 'monaco-editor/esm/vs/editor/browser/controller/coreCommands';
|
|
20
|
-
import 'monaco-editor/esm/vs/editor/contrib/cursorUndo/cursorUndo';
|
|
21
|
-
import 'monaco-editor/esm/vs/editor/contrib/dnd/dnd';
|
|
22
|
-
import 'monaco-editor/esm/vs/editor/contrib/documentSymbols/documentSymbols';
|
|
23
|
-
import 'monaco-editor/esm/vs/editor/contrib/find/findController';
|
|
24
|
-
import 'monaco-editor/esm/vs/editor/contrib/folding/folding';
|
|
25
|
-
import 'monaco-editor/esm/vs/editor/contrib/fontZoom/fontZoom';
|
|
26
|
-
import 'monaco-editor/esm/vs/editor/contrib/format/formatActions';
|
|
27
|
-
import 'monaco-editor/esm/vs/editor/contrib/gotoError/gotoError';
|
|
28
|
-
import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess';
|
|
29
|
-
import 'monaco-editor/esm/vs/editor/contrib/gotoSymbol/goToCommands';
|
|
30
|
-
import 'monaco-editor/esm/vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition';
|
|
31
|
-
import 'monaco-editor/esm/vs/editor/contrib/hover/hover';
|
|
32
|
-
import 'monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard';
|
|
33
|
-
import 'monaco-editor/esm/vs/editor/contrib/inPlaceReplace/inPlaceReplace';
|
|
34
|
-
import 'monaco-editor/esm/vs/editor/contrib/indentation/indentation';
|
|
35
|
-
import 'monaco-editor/esm/vs/editor/contrib/inlineCompletions/ghostTextController';
|
|
36
|
-
import 'monaco-editor/esm/vs/editor/contrib/inlayHints/inlayHintsController';
|
|
37
|
-
import 'monaco-editor/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens';
|
|
38
|
-
import 'monaco-editor/esm/vs/editor/contrib/linesOperations/linesOperations';
|
|
39
|
-
import 'monaco-editor/esm/vs/editor/contrib/linkedEditing/linkedEditing';
|
|
40
|
-
import 'monaco-editor/esm/vs/editor/contrib/links/links';
|
|
41
|
-
import 'monaco-editor/esm/vs/editor/contrib/multicursor/multicursor';
|
|
42
|
-
import 'monaco-editor/esm/vs/editor/contrib/parameterHints/parameterHints';
|
|
43
|
-
import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess';
|
|
44
|
-
import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess';
|
|
45
|
-
import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess';
|
|
46
|
-
import 'monaco-editor/esm/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch';
|
|
47
|
-
import 'monaco-editor/esm/vs/editor/contrib/rename/rename';
|
|
48
|
-
import 'monaco-editor/esm/vs/editor/contrib/smartSelect/smartSelect';
|
|
49
|
-
import 'monaco-editor/esm/vs/editor/contrib/snippet/snippetController2';
|
|
50
|
-
import 'monaco-editor/esm/vs/editor/contrib/suggest/suggestController';
|
|
51
|
-
import 'monaco-editor/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast';
|
|
52
|
-
import 'monaco-editor/esm/vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode';
|
|
53
|
-
import 'monaco-editor/esm/vs/editor/contrib/caretOperations/transpose';
|
|
54
|
-
import 'monaco-editor/esm/vs/editor/contrib/unusualLineTerminators/unusualLineTerminators';
|
|
55
|
-
import 'monaco-editor/esm/vs/editor/contrib/viewportSemanticTokens/viewportSemanticTokens';
|
|
56
|
-
import 'monaco-editor/esm/vs/editor/contrib/wordHighlighter/wordHighlighter';
|
|
57
|
-
import 'monaco-editor/esm/vs/editor/contrib/wordOperations/wordOperations';
|
|
58
|
-
import 'monaco-editor/esm/vs/editor/contrib/wordPartOperations/wordPartOperations';
|
|
8
|
+
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
|
|
9
|
+
import 'monaco-editor/esm/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.js';
|
|
10
|
+
import 'monaco-editor/esm/vs/editor/contrib/anchorSelect/anchorSelect.js';
|
|
11
|
+
import 'monaco-editor/esm/vs/editor/contrib/bracketMatching/bracketMatching.js';
|
|
12
|
+
import 'monaco-editor/esm/vs/editor/contrib/caretOperations/caretOperations.js';
|
|
13
|
+
import 'monaco-editor/esm/vs/editor/contrib/clipboard/clipboard.js';
|
|
14
|
+
import 'monaco-editor/esm/vs/editor/contrib/codeAction/codeActionContributions.js';
|
|
15
|
+
import 'monaco-editor/esm/vs/editor/contrib/codelens/codelensController.js';
|
|
16
|
+
import 'monaco-editor/esm/vs/editor/contrib/colorPicker/colorContributions.js';
|
|
17
|
+
import 'monaco-editor/esm/vs/editor/contrib/comment/comment.js';
|
|
18
|
+
import 'monaco-editor/esm/vs/editor/contrib/contextmenu/contextmenu.js';
|
|
19
|
+
import 'monaco-editor/esm/vs/editor/browser/controller/coreCommands.js';
|
|
20
|
+
import 'monaco-editor/esm/vs/editor/contrib/cursorUndo/cursorUndo.js';
|
|
21
|
+
import 'monaco-editor/esm/vs/editor/contrib/dnd/dnd.js';
|
|
22
|
+
import 'monaco-editor/esm/vs/editor/contrib/documentSymbols/documentSymbols.js';
|
|
23
|
+
import 'monaco-editor/esm/vs/editor/contrib/find/findController.js';
|
|
24
|
+
import 'monaco-editor/esm/vs/editor/contrib/folding/folding.js';
|
|
25
|
+
import 'monaco-editor/esm/vs/editor/contrib/fontZoom/fontZoom.js';
|
|
26
|
+
import 'monaco-editor/esm/vs/editor/contrib/format/formatActions.js';
|
|
27
|
+
import 'monaco-editor/esm/vs/editor/contrib/gotoError/gotoError.js';
|
|
28
|
+
import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';
|
|
29
|
+
import 'monaco-editor/esm/vs/editor/contrib/gotoSymbol/goToCommands.js';
|
|
30
|
+
import 'monaco-editor/esm/vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition.js';
|
|
31
|
+
import 'monaco-editor/esm/vs/editor/contrib/hover/hover.js';
|
|
32
|
+
import 'monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';
|
|
33
|
+
import 'monaco-editor/esm/vs/editor/contrib/inPlaceReplace/inPlaceReplace.js';
|
|
34
|
+
import 'monaco-editor/esm/vs/editor/contrib/indentation/indentation.js';
|
|
35
|
+
import 'monaco-editor/esm/vs/editor/contrib/inlineCompletions/ghostTextController.js';
|
|
36
|
+
import 'monaco-editor/esm/vs/editor/contrib/inlayHints/inlayHintsController.js';
|
|
37
|
+
import 'monaco-editor/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.js';
|
|
38
|
+
import 'monaco-editor/esm/vs/editor/contrib/linesOperations/linesOperations.js';
|
|
39
|
+
import 'monaco-editor/esm/vs/editor/contrib/linkedEditing/linkedEditing.js';
|
|
40
|
+
import 'monaco-editor/esm/vs/editor/contrib/links/links.js';
|
|
41
|
+
import 'monaco-editor/esm/vs/editor/contrib/multicursor/multicursor.js';
|
|
42
|
+
import 'monaco-editor/esm/vs/editor/contrib/parameterHints/parameterHints.js';
|
|
43
|
+
import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';
|
|
44
|
+
import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';
|
|
45
|
+
import 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';
|
|
46
|
+
import 'monaco-editor/esm/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';
|
|
47
|
+
import 'monaco-editor/esm/vs/editor/contrib/rename/rename.js';
|
|
48
|
+
import 'monaco-editor/esm/vs/editor/contrib/smartSelect/smartSelect.js';
|
|
49
|
+
import 'monaco-editor/esm/vs/editor/contrib/snippet/snippetController2.js';
|
|
50
|
+
import 'monaco-editor/esm/vs/editor/contrib/suggest/suggestController.js';
|
|
51
|
+
import 'monaco-editor/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';
|
|
52
|
+
import 'monaco-editor/esm/vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode.js';
|
|
53
|
+
import 'monaco-editor/esm/vs/editor/contrib/caretOperations/transpose.js';
|
|
54
|
+
import 'monaco-editor/esm/vs/editor/contrib/unusualLineTerminators/unusualLineTerminators.js';
|
|
55
|
+
import 'monaco-editor/esm/vs/editor/contrib/viewportSemanticTokens/viewportSemanticTokens.js';
|
|
56
|
+
import 'monaco-editor/esm/vs/editor/contrib/wordHighlighter/wordHighlighter.js';
|
|
57
|
+
import 'monaco-editor/esm/vs/editor/contrib/wordOperations/wordOperations.js';
|
|
58
|
+
import 'monaco-editor/esm/vs/editor/contrib/wordPartOperations/wordPartOperations.js';
|
|
59
59
|
import Log from '@deephaven/log';
|
|
60
60
|
import MonacoTheme from "./MonacoTheme.module.css";
|
|
61
61
|
import PyLang from "./lang/python.js";
|
|
@@ -186,13 +186,13 @@ class MonacoUtils {
|
|
|
186
186
|
static registerLanguages(languages) {
|
|
187
187
|
// First override the default loader for any language we have a custom definition for
|
|
188
188
|
// https://github.com/Microsoft/monaco-editor/issues/252#issuecomment-482786867
|
|
189
|
-
var languageIds = languages.map(
|
|
189
|
+
var languageIds = languages.map(_ref => {
|
|
190
190
|
var {
|
|
191
191
|
id
|
|
192
192
|
} = _ref;
|
|
193
193
|
return id;
|
|
194
194
|
});
|
|
195
|
-
monaco.languages.getLanguages().filter(
|
|
195
|
+
monaco.languages.getLanguages().filter(_ref2 => {
|
|
196
196
|
var {
|
|
197
197
|
id
|
|
198
198
|
} = _ref2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/monaco/MonacoUtils.js"],"names":["monaco","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","loader","then","registerLanguage","register","onLanguage","setLanguageConfiguration","conf","setMonarchTokensProvider","setEOL","eolSequence","EndOfLineSequence","LF","getModel","openDocument","session","model","didOpenDocumentParams","textDocument","uri","languageId","getModeId","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","warn"],"mappings":"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","sourcesContent":["/**\n * Exports a function for initializing monaco with the deephaven theme/config\n */\n// Instead of importing just 'monaco-editor' and importing all languages and features, just import the features and don't import all the languages we don't care about\n// Default list of features here: https://github.com/microsoft/monaco-editor-webpack-plugin\n// Mapping to paths here: https://github.com/microsoft/monaco-editor-webpack-plugin/blob/main/src/features.ts\n// Importing this way rather than using the plugin because I don't want to hook up react-app-rewired for the build\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp';\nimport 'monaco-editor/esm/vs/editor/contrib/anchorSelect/anchorSelect';\nimport 'monaco-editor/esm/vs/editor/contrib/bracketMatching/bracketMatching';\nimport 'monaco-editor/esm/vs/editor/contrib/caretOperations/caretOperations';\nimport 'monaco-editor/esm/vs/editor/contrib/clipboard/clipboard';\nimport 'monaco-editor/esm/vs/editor/contrib/codeAction/codeActionContributions';\nimport 'monaco-editor/esm/vs/editor/contrib/codelens/codelensController';\nimport 'monaco-editor/esm/vs/editor/contrib/colorPicker/colorContributions';\nimport 'monaco-editor/esm/vs/editor/contrib/comment/comment';\nimport 'monaco-editor/esm/vs/editor/contrib/contextmenu/contextmenu';\nimport 'monaco-editor/esm/vs/editor/browser/controller/coreCommands';\nimport 'monaco-editor/esm/vs/editor/contrib/cursorUndo/cursorUndo';\nimport 'monaco-editor/esm/vs/editor/contrib/dnd/dnd';\nimport 'monaco-editor/esm/vs/editor/contrib/documentSymbols/documentSymbols';\nimport 'monaco-editor/esm/vs/editor/contrib/find/findController';\nimport 'monaco-editor/esm/vs/editor/contrib/folding/folding';\nimport 'monaco-editor/esm/vs/editor/contrib/fontZoom/fontZoom';\nimport 'monaco-editor/esm/vs/editor/contrib/format/formatActions';\nimport 'monaco-editor/esm/vs/editor/contrib/gotoError/gotoError';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess';\nimport 'monaco-editor/esm/vs/editor/contrib/gotoSymbol/goToCommands';\nimport 'monaco-editor/esm/vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition';\nimport 'monaco-editor/esm/vs/editor/contrib/hover/hover';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard';\nimport 'monaco-editor/esm/vs/editor/contrib/inPlaceReplace/inPlaceReplace';\nimport 'monaco-editor/esm/vs/editor/contrib/indentation/indentation';\nimport 'monaco-editor/esm/vs/editor/contrib/inlineCompletions/ghostTextController';\nimport 'monaco-editor/esm/vs/editor/contrib/inlayHints/inlayHintsController';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens';\nimport 'monaco-editor/esm/vs/editor/contrib/linesOperations/linesOperations';\nimport 'monaco-editor/esm/vs/editor/contrib/linkedEditing/linkedEditing';\nimport 'monaco-editor/esm/vs/editor/contrib/links/links';\nimport 'monaco-editor/esm/vs/editor/contrib/multicursor/multicursor';\nimport 'monaco-editor/esm/vs/editor/contrib/parameterHints/parameterHints';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch';\nimport 'monaco-editor/esm/vs/editor/contrib/rename/rename';\nimport 'monaco-editor/esm/vs/editor/contrib/smartSelect/smartSelect';\nimport 'monaco-editor/esm/vs/editor/contrib/snippet/snippetController2';\nimport 'monaco-editor/esm/vs/editor/contrib/suggest/suggestController';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast';\nimport 'monaco-editor/esm/vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode';\nimport 'monaco-editor/esm/vs/editor/contrib/caretOperations/transpose';\nimport 'monaco-editor/esm/vs/editor/contrib/unusualLineTerminators/unusualLineTerminators';\nimport 'monaco-editor/esm/vs/editor/contrib/viewportSemanticTokens/viewportSemanticTokens';\nimport 'monaco-editor/esm/vs/editor/contrib/wordHighlighter/wordHighlighter';\nimport 'monaco-editor/esm/vs/editor/contrib/wordOperations/wordOperations';\nimport 'monaco-editor/esm/vs/editor/contrib/wordPartOperations/wordPartOperations';\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';\n\nconst log = Log.module('MonacoUtils');\n\nclass MonacoUtils {\n static init() {\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 {String} color The hex color string to remove the hashtag from, eg. '#ffffff'\n */\n static removeHashtag(color) {\n return color.substring(1);\n }\n\n static registerLanguages(languages) {\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 language.loader = () => ({\n then: () => {},\n });\n });\n\n // Then register our language definitions\n languages.forEach(language => {\n MonacoUtils.registerLanguage(language);\n });\n }\n\n static registerLanguage(language) {\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 {monaco.editor.IEditor} editor The editor to set the EOL for\n * @param {monaco.editor.EndOfLineSequence} eolSequence EOL sequence\n */\n static setEOL(editor, eolSequence = monaco.editor.EndOfLineSequence.LF) {\n editor.getModel().setEOL(eolSequence);\n }\n\n /**\n * Links an editor with a provided session to provide completion items.\n * @param {dh.IdeSession} session The IdeSession to link\n * @param {monaco.editor.IEditor} editor The editor to link the session to\n * @return A cleanup function for disposing of the created listeners\n */\n static openDocument(editor, session) {\n const model = editor.getModel();\n const didOpenDocumentParams = {\n textDocument: {\n uri: `${model.uri}`,\n languageId: model.getModeId(),\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(editor, session) {\n const model = editor.getModel();\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 {Monaco.editor} editor The editor the register the paste handler for\n */\n static registerPasteHandler(editor) {\n editor.onDidPaste(pasteEvent => {\n const smartQuotes = /“|”/g;\n const invalidChars = /\\u200b/g;\n const editorModel = editor.getModel();\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() {\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 {Monaco.editor} editor The editor to remove the keybindings from\n */\n static removeConflictingKeybindings(editor) {\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 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 {Monaco.editor} editor The editor to remove the keybinding from\n * @param {string} keybinding The key string to remove. E.g. 'ctrl+C' for copy on Windows\n */\n static removeKeybinding(editor, keybinding) {\n if (!keybinding) {\n return;\n }\n /* eslint-disable no-underscore-dangle */\n // It's possible a single keybinding has multiple commands depending on context\n const keybindings = editor._standaloneKeybindingService\n ._getResolver()\n ._map.get(keybinding);\n\n if (keybindings) {\n keybindings.forEach(elem => {\n log.debug2(\n `Removing Monaco keybinding ${keybinding} for ${elem.command}`\n );\n editor._standaloneKeybindingService.addDynamicKeybinding(\n `-${elem.command}`,\n null,\n () => {}\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\nexport default MonacoUtils;\n"],"file":"MonacoUtils.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/monaco/MonacoUtils.js"],"names":["monaco","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","loader","then","registerLanguage","register","onLanguage","setLanguageConfiguration","conf","setMonarchTokensProvider","setEOL","eolSequence","EndOfLineSequence","LF","getModel","openDocument","session","model","didOpenDocumentParams","textDocument","uri","languageId","getModeId","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","warn"],"mappings":"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","sourcesContent":["/**\n * Exports a function for initializing monaco with the deephaven theme/config\n */\n// Instead of importing just 'monaco-editor' and importing all languages and features, just import the features and don't import all the languages we don't care about\n// Default list of features here: https://github.com/microsoft/monaco-editor-webpack-plugin\n// Mapping to paths here: https://github.com/microsoft/monaco-editor-webpack-plugin/blob/main/src/features.ts\n// Importing this way rather than using the plugin because I don't want to hook up react-app-rewired for the build\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.js';\nimport 'monaco-editor/esm/vs/editor/contrib/anchorSelect/anchorSelect.js';\nimport 'monaco-editor/esm/vs/editor/contrib/bracketMatching/bracketMatching.js';\nimport 'monaco-editor/esm/vs/editor/contrib/caretOperations/caretOperations.js';\nimport 'monaco-editor/esm/vs/editor/contrib/clipboard/clipboard.js';\nimport 'monaco-editor/esm/vs/editor/contrib/codeAction/codeActionContributions.js';\nimport 'monaco-editor/esm/vs/editor/contrib/codelens/codelensController.js';\nimport 'monaco-editor/esm/vs/editor/contrib/colorPicker/colorContributions.js';\nimport 'monaco-editor/esm/vs/editor/contrib/comment/comment.js';\nimport 'monaco-editor/esm/vs/editor/contrib/contextmenu/contextmenu.js';\nimport 'monaco-editor/esm/vs/editor/browser/controller/coreCommands.js';\nimport 'monaco-editor/esm/vs/editor/contrib/cursorUndo/cursorUndo.js';\nimport 'monaco-editor/esm/vs/editor/contrib/dnd/dnd.js';\nimport 'monaco-editor/esm/vs/editor/contrib/documentSymbols/documentSymbols.js';\nimport 'monaco-editor/esm/vs/editor/contrib/find/findController.js';\nimport 'monaco-editor/esm/vs/editor/contrib/folding/folding.js';\nimport 'monaco-editor/esm/vs/editor/contrib/fontZoom/fontZoom.js';\nimport 'monaco-editor/esm/vs/editor/contrib/format/formatActions.js';\nimport 'monaco-editor/esm/vs/editor/contrib/gotoError/gotoError.js';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';\nimport 'monaco-editor/esm/vs/editor/contrib/gotoSymbol/goToCommands.js';\nimport 'monaco-editor/esm/vs/editor/contrib/gotoSymbol/link/goToDefinitionAtPosition.js';\nimport 'monaco-editor/esm/vs/editor/contrib/hover/hover.js';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';\nimport 'monaco-editor/esm/vs/editor/contrib/inPlaceReplace/inPlaceReplace.js';\nimport 'monaco-editor/esm/vs/editor/contrib/indentation/indentation.js';\nimport 'monaco-editor/esm/vs/editor/contrib/inlineCompletions/ghostTextController.js';\nimport 'monaco-editor/esm/vs/editor/contrib/inlayHints/inlayHintsController.js';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.js';\nimport 'monaco-editor/esm/vs/editor/contrib/linesOperations/linesOperations.js';\nimport 'monaco-editor/esm/vs/editor/contrib/linkedEditing/linkedEditing.js';\nimport 'monaco-editor/esm/vs/editor/contrib/links/links.js';\nimport 'monaco-editor/esm/vs/editor/contrib/multicursor/multicursor.js';\nimport 'monaco-editor/esm/vs/editor/contrib/parameterHints/parameterHints.js';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';\nimport 'monaco-editor/esm/vs/editor/contrib/rename/rename.js';\nimport 'monaco-editor/esm/vs/editor/contrib/smartSelect/smartSelect.js';\nimport 'monaco-editor/esm/vs/editor/contrib/snippet/snippetController2.js';\nimport 'monaco-editor/esm/vs/editor/contrib/suggest/suggestController.js';\nimport 'monaco-editor/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';\nimport 'monaco-editor/esm/vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode.js';\nimport 'monaco-editor/esm/vs/editor/contrib/caretOperations/transpose.js';\nimport 'monaco-editor/esm/vs/editor/contrib/unusualLineTerminators/unusualLineTerminators.js';\nimport 'monaco-editor/esm/vs/editor/contrib/viewportSemanticTokens/viewportSemanticTokens.js';\nimport 'monaco-editor/esm/vs/editor/contrib/wordHighlighter/wordHighlighter.js';\nimport 'monaco-editor/esm/vs/editor/contrib/wordOperations/wordOperations.js';\nimport 'monaco-editor/esm/vs/editor/contrib/wordPartOperations/wordPartOperations.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';\n\nconst log = Log.module('MonacoUtils');\n\nclass MonacoUtils {\n static init() {\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 {String} color The hex color string to remove the hashtag from, eg. '#ffffff'\n */\n static removeHashtag(color) {\n return color.substring(1);\n }\n\n static registerLanguages(languages) {\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 language.loader = () => ({\n then: () => {},\n });\n });\n\n // Then register our language definitions\n languages.forEach(language => {\n MonacoUtils.registerLanguage(language);\n });\n }\n\n static registerLanguage(language) {\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 {monaco.editor.IEditor} editor The editor to set the EOL for\n * @param {monaco.editor.EndOfLineSequence} eolSequence EOL sequence\n */\n static setEOL(editor, eolSequence = monaco.editor.EndOfLineSequence.LF) {\n editor.getModel().setEOL(eolSequence);\n }\n\n /**\n * Links an editor with a provided session to provide completion items.\n * @param {dh.IdeSession} session The IdeSession to link\n * @param {monaco.editor.IEditor} editor The editor to link the session to\n * @return A cleanup function for disposing of the created listeners\n */\n static openDocument(editor, session) {\n const model = editor.getModel();\n const didOpenDocumentParams = {\n textDocument: {\n uri: `${model.uri}`,\n languageId: model.getModeId(),\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(editor, session) {\n const model = editor.getModel();\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 {Monaco.editor} editor The editor the register the paste handler for\n */\n static registerPasteHandler(editor) {\n editor.onDidPaste(pasteEvent => {\n const smartQuotes = /“|”/g;\n const invalidChars = /\\u200b/g;\n const editorModel = editor.getModel();\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() {\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 {Monaco.editor} editor The editor to remove the keybindings from\n */\n static removeConflictingKeybindings(editor) {\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 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 {Monaco.editor} editor The editor to remove the keybinding from\n * @param {string} keybinding The key string to remove. E.g. 'ctrl+C' for copy on Windows\n */\n static removeKeybinding(editor, keybinding) {\n if (!keybinding) {\n return;\n }\n /* eslint-disable no-underscore-dangle */\n // It's possible a single keybinding has multiple commands depending on context\n const keybindings = editor._standaloneKeybindingService\n ._getResolver()\n ._map.get(keybinding);\n\n if (keybindings) {\n keybindings.forEach(elem => {\n log.debug2(\n `Removing Monaco keybinding ${keybinding} for ${elem.command}`\n );\n editor._standaloneKeybindingService.addDynamicKeybinding(\n `-${elem.command}`,\n null,\n () => {}\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\nexport default MonacoUtils;\n"],"file":"MonacoUtils.js"}
|
|
@@ -29,6 +29,6 @@ declare namespace Editor {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
import React from "react";
|
|
32
|
-
import * as monaco from "monaco-editor/esm/vs/editor/editor.api";
|
|
32
|
+
import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";
|
|
33
33
|
import PropTypes from "prop-types";
|
|
34
34
|
//# sourceMappingURL=Editor.d.ts.map
|
package/dist/notebook/Editor.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
2
2
|
|
|
3
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
4
|
|
|
@@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
10
10
|
import React, { Component } from 'react';
|
|
11
11
|
import PropTypes from 'prop-types';
|
|
12
12
|
import classNames from 'classnames';
|
|
13
|
-
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
|
13
|
+
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
|
|
14
14
|
import MonacoUtils from "../monaco/MonacoUtils.js";
|
|
15
15
|
|
|
16
16
|
class Editor extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/notebook/Editor.jsx"],"names":["React","Component","PropTypes","classNames","monaco","MonacoUtils","Editor","constructor","props","handleResize","bind","container","editor","state","componentDidMount","initEditor","window","addEventListener","componentWillUnmount","removeEventListener","destroyEditor","setLanguage","language","setModelLanguage","getModel","updateDimensions","toggleFind","focus","trigger","layout","onEditorInitialized","settings","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineNumbersMinChars","minimap","enabled","scrollBeyondLastLine","tabCompletion","value","wordWrap","create","addAction","id","label","keybindings","KeyMod","CtrlCmd","KeyCode","KEY_F","precondition","keybindingContext","contextMenuGroupId","contextMenuOrder","run","removeConflictingKeybindings","onEditorWillDestroy","dispose","render","className","propTypes","string","func","shape","defaultProps"],"mappings":";;;;;;AAAA;AACA;AACA;AACA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAO,KAAKC,MAAZ,MAAwB,
|
|
1
|
+
{"version":3,"sources":["../../src/notebook/Editor.jsx"],"names":["React","Component","PropTypes","classNames","monaco","MonacoUtils","Editor","constructor","props","handleResize","bind","container","editor","state","componentDidMount","initEditor","window","addEventListener","componentWillUnmount","removeEventListener","destroyEditor","setLanguage","language","setModelLanguage","getModel","updateDimensions","toggleFind","focus","trigger","layout","onEditorInitialized","settings","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineNumbersMinChars","minimap","enabled","scrollBeyondLastLine","tabCompletion","value","wordWrap","create","addAction","id","label","keybindings","KeyMod","CtrlCmd","KeyCode","KEY_F","precondition","keybindingContext","contextMenuGroupId","contextMenuOrder","run","removeConflictingKeybindings","onEditorWillDestroy","dispose","render","className","propTypes","string","func","shape","defaultProps"],"mappings":"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","sourcesContent":["/**\n * Editor editor for large blocks of code\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport MonacoUtils from '../monaco/MonacoUtils';\n\nclass Editor extends Component {\n constructor(props) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n\n this.container = null;\n this.editor = null;\n\n this.state = {};\n }\n\n componentDidMount() {\n this.initEditor();\n\n window.addEventListener('resize', this.handleResize);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleResize);\n\n this.destroyEditor();\n }\n\n setLanguage(language) {\n if (this.editor) {\n monaco.editor.setModelLanguage(this.editor.getModel(), language);\n }\n }\n\n handleResize() {\n this.updateDimensions();\n }\n\n toggleFind() {\n if (this.editor) {\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('toggleFind', 'actions.find');\n }\n }\n\n updateDimensions() {\n this.editor.layout();\n }\n\n initEditor() {\n const { onEditorInitialized } = this.props;\n let { settings } = this.props;\n settings = {\n copyWithSyntaxHighlighting: 'false',\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language: `python`,\n lineNumbersMinChars: 3,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n tabCompletion: 'on',\n value: '',\n wordWrap: 'off',\n ...settings,\n };\n this.editor = monaco.editor.create(this.container, settings);\n this.editor.addAction({\n id: 'find',\n label: 'Find',\n keybindings: [\n // eslint-disable-next-line no-bitwise\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_F,\n ],\n precondition: null,\n keybindingContext: null,\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.0,\n\n run: () => {\n this.toggleFind();\n return null;\n },\n });\n this.editor.layout();\n MonacoUtils.removeConflictingKeybindings(this.editor);\n\n onEditorInitialized(this.editor);\n }\n\n destroyEditor() {\n const { onEditorWillDestroy } = this.props;\n onEditorWillDestroy(this.editor);\n this.editor.dispose();\n this.editor = null;\n }\n\n render() {\n const { className } = this.props;\n return (\n <div\n className={classNames('editor-container', className)}\n ref={container => {\n this.container = container;\n }}\n />\n );\n }\n}\n\nEditor.propTypes = {\n className: PropTypes.string,\n onEditorInitialized: PropTypes.func,\n onEditorWillDestroy: PropTypes.func,\n settings: PropTypes.shape({}),\n};\n\nEditor.defaultProps = {\n className: 'fill-parent-absolute',\n onEditorInitialized: () => {},\n onEditorWillDestroy: () => {},\n settings: {},\n};\n\nexport default Editor;\n"],"file":"Editor.js"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import React, { Component } from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
|
-
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
|
6
|
+
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
|
|
7
7
|
import { LoadingOverlay } from '@deephaven/components';
|
|
8
8
|
import Log from '@deephaven/log';
|
|
9
9
|
import Editor from "./Editor.js";
|