@deephaven/console 0.6.1-alpha.5 → 0.6.1-markdownnotebooks.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/ConsoleInput.d.ts +1 -1
- package/dist/ConsoleInput.js +1 -1
- package/dist/ConsoleInput.js.map +1 -1
- package/dist/common/Code.js +1 -1
- package/dist/common/Code.js.map +1 -1
- package/dist/log/LogView.d.ts +1 -1
- package/dist/log/LogView.js +1 -1
- 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 +51 -51
- package/dist/monaco/MonacoUtils.js.map +1 -1
- package/dist/notebook/Editor.d.ts +1 -1
- package/dist/notebook/Editor.js +1 -1
- 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 +10 -10
package/dist/ConsoleInput.d.ts
CHANGED
|
@@ -51,6 +51,6 @@ export namespace ConsoleInput {
|
|
|
51
51
|
}
|
|
52
52
|
export default ConsoleInput;
|
|
53
53
|
import React from "react";
|
|
54
|
-
import * as monaco from "monaco-editor/esm/vs/editor/editor.api
|
|
54
|
+
import * as monaco from "monaco-editor/esm/vs/editor/editor.api";
|
|
55
55
|
import PropTypes from "prop-types";
|
|
56
56
|
//# sourceMappingURL=ConsoleInput.d.ts.map
|
package/dist/ConsoleInput.js
CHANGED
|
@@ -7,7 +7,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
7
7
|
import React, { PureComponent } from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import classNames from 'classnames';
|
|
10
|
-
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api
|
|
10
|
+
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
|
11
11
|
import Log from '@deephaven/log';
|
|
12
12
|
import { PromiseUtils } from '@deephaven/utils';
|
|
13
13
|
import { MonacoCompletionProvider, MonacoTheme, MonacoUtils } from "./monaco/index.js";
|
package/dist/ConsoleInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ConsoleInput.jsx"],"names":["React","PureComponent","PropTypes","classNames","monaco","Log","PromiseUtils","MonacoCompletionProvider","MonacoTheme","MonacoUtils","StoragePropTypes","log","module","LINE_HEIGHT","parseInt","TOP_PADDING","BOTTOM_PADDING","MIN_INPUT_HEIGHT","BUFFER_SIZE","ConsoleInput","constructor","props","handleWindowResize","bind","cancelListener","commandContainer","createRef","commandEditor","commandHistoryIndex","commandSuggestionContainer","isCommandModified","loadingPromise","timestamp","Date","now","bufferIndex","history","state","commandEditorHeight","isFocused","model","componentDidMount","initCommandEditor","window","addEventListener","loadMoreHistory","componentDidUpdate","layoutEditor","componentWillUnmount","removeEventListener","cancel","destroyCommandEditor","setConsoleText","text","focus","execute","debug","setValue","focusEnd","updateDimensions","processCommand","language","session","commandSettings","copyWithSyntaxHighlighting","cursorStyle","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineHeight","lineDecorationsWidth","lineNumbers","minimap","enabled","renderLineHighlight","scrollBeyondLastLine","scrollbar","arrowSize","horizontal","horizontalScrollbarSize","padding","top","bottom","tabCompletion","value","wordWrap","editor","create","current","setEOL","openDocument","onDidChangeModelContent","onDidFocusEditorText","setState","onDidBlurEditorText","onKeyDown","keyEvent","getModel","getValueLength","keyCode","KeyCode","UpArrow","loadCommand","stopPropagation","preventDefault","DownArrow","altKey","shiftKey","metaKey","Enter","isSuggestionMenuPopulated","Tab","isSuggestionMenuActive","trigger","addCommand","KeyMod","CtrlCmd","KEY_F","removeConflictingKeybindings","registerPasteHandler","closeDocument","dispose","getDomNode","querySelector","classList","contains","childElementCount","lastLine","getLineCount","column","getLineLength","lastCharTop","getTopForPosition","setPosition","lineNumber","setScrollTop","clear","layout","index","length","commandHistoryStorage","scope","makeCancelable","getTable","resolved","close","table","setReversed","setViewport","getViewportData","viewportData","size","items","map","name","reverse","err","isCanceled","debug2","error","command","getValue","trim","push","onSubmit","maxHeight","contentHeight","getContentHeight","Math","max","min","render","INPUT_CLASS_NAME","height","propTypes","shape","isRequired","string","CommandHistoryStorage","func","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport Log from '@deephaven/log';\nimport { PromiseUtils } from '@deephaven/utils';\nimport { MonacoCompletionProvider, MonacoTheme, MonacoUtils } from './monaco';\nimport './ConsoleInput.scss';\nimport StoragePropTypes from './StoragePropTypes';\n\nconst log = Log.module('ConsoleInput');\n\nconst LINE_HEIGHT = parseInt(MonacoTheme['line-height'], 10);\nconst TOP_PADDING = 6;\nconst BOTTOM_PADDING = 6;\nconst MIN_INPUT_HEIGHT = LINE_HEIGHT + TOP_PADDING + BOTTOM_PADDING;\nconst BUFFER_SIZE = 100;\n\n/**\n * Component for input in a console session. Handles loading the recent command history\n */\nexport class ConsoleInput extends PureComponent {\n static INPUT_CLASS_NAME = 'console-input';\n\n constructor(props) {\n super(props);\n\n this.handleWindowResize = this.handleWindowResize.bind(this);\n\n this.cancelListener = null;\n this.commandContainer = React.createRef();\n this.commandEditor = null;\n this.commandHistoryIndex = null;\n this.commandSuggestionContainer = null;\n this.isCommandModified = false;\n this.loadingPromise = null;\n this.timestamp = Date.now();\n this.bufferIndex = 0;\n this.history = [];\n\n this.state = {\n commandEditorHeight: LINE_HEIGHT,\n isFocused: false,\n model: null,\n };\n }\n\n componentDidMount() {\n this.initCommandEditor();\n\n window.addEventListener('resize', this.handleWindowResize);\n\n this.loadMoreHistory();\n }\n\n componentDidUpdate() {\n this.layoutEditor();\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n\n if (this.loadingPromise != null) {\n this.loadingPromise.cancel();\n }\n\n this.destroyCommandEditor();\n }\n\n setConsoleText(text, focus = true, execute = false) {\n if (!text) {\n return;\n }\n\n log.debug('Command received: ', text);\n\n this.commandEditor.setValue(text);\n\n if (focus) {\n this.focusEnd();\n }\n\n this.updateDimensions();\n\n if (execute) {\n this.processCommand();\n }\n }\n\n initCommandEditor() {\n const { language, session } = this.props;\n const commandSettings = {\n copyWithSyntaxHighlighting: 'false',\n cursorStyle: 'block',\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language,\n lineHeight: LINE_HEIGHT,\n lineDecorationsWidth: 3,\n lineNumbers: 'off',\n minimap: { enabled: false },\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n scrollbar: {\n arrowSize: 0,\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n padding: {\n top: TOP_PADDING,\n bottom: BOTTOM_PADDING,\n },\n tabCompletion: 'on',\n value: '',\n wordWrap: 'on',\n };\n\n this.commandEditor = monaco.editor.create(\n this.commandContainer.current,\n commandSettings\n );\n\n MonacoUtils.setEOL(this.commandEditor);\n MonacoUtils.openDocument(this.commandEditor, session);\n\n this.commandEditor.onDidChangeModelContent(() => {\n this.isCommandModified = true;\n this.updateDimensions();\n });\n\n this.commandEditor.onDidFocusEditorText(() => {\n this.setState({ isFocused: true });\n });\n\n this.commandEditor.onDidBlurEditorText(() => {\n this.setState({ isFocused: false });\n });\n\n /**\n * Register for keydown events to capture the `Enter` key.\n * Need to do it this way instead of using `addCommand`, because that would eat the Enter key in all situations, which is not what we want.\n * Can't do it in `onDidChangeModelContent` either, since we want to stop the Enter action from modifying the command.\n */\n this.commandEditor.onKeyDown(keyEvent => {\n if (\n !this.isCommandModified ||\n this.commandEditor.getModel().getValueLength() === 0\n ) {\n if (keyEvent.keyCode === monaco.KeyCode.UpArrow) {\n const { commandHistoryIndex } = this;\n if (commandHistoryIndex != null) {\n this.loadCommand(commandHistoryIndex + 1);\n } else {\n this.loadCommand(0);\n }\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n return;\n }\n if (keyEvent.keyCode === monaco.KeyCode.DownArrow) {\n const { commandHistoryIndex } = this;\n if (commandHistoryIndex != null && commandHistoryIndex >= 0) {\n this.loadCommand(commandHistoryIndex - 1);\n } else {\n this.commandHistoryIndex = null;\n }\n\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n return;\n }\n }\n\n if (!keyEvent.altKey && !keyEvent.shiftKey && !keyEvent.metaKey) {\n if (keyEvent.keyCode === monaco.KeyCode.Enter) {\n if (!this.isSuggestionMenuPopulated()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n this.processCommand();\n }\n } else if (keyEvent.keyCode === monaco.KeyCode.Tab) {\n if (!this.isSuggestionMenuActive()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n this.commandEditor.trigger(\n 'Tab key trigger suggestions',\n 'editor.action.triggerSuggest',\n {}\n );\n } else if (!this.isSuggestionMenuPopulated()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n }\n }\n }\n });\n\n // Override the Ctrl+F functionality so that the find window doesn't appear\n this.commandEditor.addCommand(\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_F, // eslint-disable-line no-bitwise\n () => {}\n );\n\n MonacoUtils.removeConflictingKeybindings(this.commandEditor);\n\n MonacoUtils.registerPasteHandler(this.commandEditor);\n\n this.commandEditor.focus();\n\n this.updateDimensions();\n\n this.setState({ model: this.commandEditor.getModel() });\n }\n\n destroyCommandEditor() {\n const { session } = this.props;\n if (this.commandEditor) {\n MonacoUtils.closeDocument(this.commandEditor, session);\n this.commandEditor.dispose();\n this.commandEditor = null;\n }\n }\n\n handleWindowResize() {\n this.updateDimensions();\n }\n\n isSuggestionMenuActive() {\n if (!this.commandSuggestionContainer) {\n this.commandSuggestionContainer = this.commandEditor\n .getDomNode()\n .querySelector('.suggest-widget');\n }\n\n return (\n this.commandSuggestionContainer &&\n this.commandSuggestionContainer.classList.contains('visible')\n );\n }\n\n isSuggestionMenuPopulated() {\n return (\n this.isSuggestionMenuActive() &&\n this.commandSuggestionContainer.querySelector('.monaco-list-rows')\n .childElementCount > 0\n );\n }\n\n focus() {\n this.commandEditor.focus();\n }\n\n focusEnd() {\n const model = this.commandEditor.getModel();\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n const lastCharTop = this.commandEditor.getTopForPosition(lastLine, column);\n this.commandEditor.setPosition({ lineNumber: lastLine, column });\n this.commandEditor.setScrollTop(lastCharTop);\n this.commandEditor.focus();\n }\n\n clear() {\n this.commandEditor.focus();\n this.commandEditor.getModel().setValue('');\n this.commandHistoryIndex = null;\n }\n\n layoutEditor() {\n if (this.commandEditor) {\n this.commandEditor.layout();\n }\n }\n\n loadCommand(index) {\n if (index < 0) {\n this.commandHistoryIndex = null;\n this.commandEditor.getModel().setValue('');\n } else if (index < this.history.length) {\n this.commandHistoryIndex = index;\n this.commandEditor\n .getModel()\n .setValue(this.history[this.history.length - index - 1]);\n if (index > this.history.length - BUFFER_SIZE) {\n this.loadMoreHistory();\n }\n }\n\n this.isCommandModified = false;\n this.focusEnd();\n }\n\n async loadMoreHistory() {\n try {\n if (this.loadingPromise != null || this.bufferIndex == null) {\n return;\n }\n\n const { commandHistoryStorage, language, scope } = this.props;\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n commandHistoryStorage.getTable(language, scope, this.timestamp),\n resolved => resolved.close()\n );\n\n const table = await this.loadingPromise;\n table.setReversed(true);\n table.setViewport({\n top: this.bufferIndex,\n bottom: this.bufferIndex + BUFFER_SIZE - 1,\n });\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n table.getViewportData(),\n () => table.close()\n );\n const viewportData = await this.loadingPromise;\n this.bufferIndex += BUFFER_SIZE;\n if (this.bufferIndex >= table.size) {\n // We've loaded the full history, no need to load any more\n this.bufferIndex = null;\n }\n this.history = [\n ...viewportData.items.map(({ name }) => name).reverse(),\n ...this.history,\n ];\n\n this.loadingPromise = null;\n\n table.close();\n } catch (err) {\n this.loadingPromise = null;\n if (PromiseUtils.isCanceled(err)) {\n log.debug2('Promise canceled, not loading history');\n return;\n }\n\n log.error('Error fetching history', err);\n }\n }\n\n processCommand() {\n this.isCommandModified = false;\n this.commandHistoryIndex = null;\n\n const command = this.commandEditor.getValue().trim();\n this.history.push(command);\n this.commandEditor.setValue('');\n this.updateDimensions();\n\n const { onSubmit } = this.props;\n onSubmit(command);\n }\n\n updateDimensions() {\n if (!this.commandEditor) {\n return;\n }\n\n const { maxHeight } = this.props;\n const contentHeight = this.commandEditor.getContentHeight();\n const commandEditorHeight = Math.max(\n Math.min(contentHeight, maxHeight),\n MIN_INPUT_HEIGHT\n );\n this.setState(\n {\n commandEditorHeight,\n },\n () => {\n this.commandEditor.layout();\n }\n );\n }\n\n render() {\n const { language, session } = this.props;\n const { commandEditorHeight, isFocused, model } = this.state;\n return (\n <div className=\"console-input-wrapper\">\n <div\n className={classNames('console-input-inner-wrapper', {\n focus: isFocused,\n })}\n >\n <div\n className={ConsoleInput.INPUT_CLASS_NAME}\n ref={this.commandContainer}\n style={{ height: commandEditorHeight }}\n />\n {model && (\n <MonacoCompletionProvider\n model={model}\n language={language}\n session={session}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nConsoleInput.propTypes = {\n session: PropTypes.shape({}).isRequired,\n language: PropTypes.string.isRequired,\n scope: PropTypes.string,\n commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired,\n onSubmit: PropTypes.func.isRequired,\n maxHeight: PropTypes.number,\n};\n\nConsoleInput.defaultProps = {\n maxHeight: LINE_HEIGHT * 10,\n scope: null,\n};\n\nexport default ConsoleInput;\n"],"file":"ConsoleInput.js"}
|
|
1
|
+
{"version":3,"sources":["../src/ConsoleInput.jsx"],"names":["React","PureComponent","PropTypes","classNames","monaco","Log","PromiseUtils","MonacoCompletionProvider","MonacoTheme","MonacoUtils","StoragePropTypes","log","module","LINE_HEIGHT","parseInt","TOP_PADDING","BOTTOM_PADDING","MIN_INPUT_HEIGHT","BUFFER_SIZE","ConsoleInput","constructor","props","handleWindowResize","bind","cancelListener","commandContainer","createRef","commandEditor","commandHistoryIndex","commandSuggestionContainer","isCommandModified","loadingPromise","timestamp","Date","now","bufferIndex","history","state","commandEditorHeight","isFocused","model","componentDidMount","initCommandEditor","window","addEventListener","loadMoreHistory","componentDidUpdate","layoutEditor","componentWillUnmount","removeEventListener","cancel","destroyCommandEditor","setConsoleText","text","focus","execute","debug","setValue","focusEnd","updateDimensions","processCommand","language","session","commandSettings","copyWithSyntaxHighlighting","cursorStyle","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineHeight","lineDecorationsWidth","lineNumbers","minimap","enabled","renderLineHighlight","scrollBeyondLastLine","scrollbar","arrowSize","horizontal","horizontalScrollbarSize","padding","top","bottom","tabCompletion","value","wordWrap","editor","create","current","setEOL","openDocument","onDidChangeModelContent","onDidFocusEditorText","setState","onDidBlurEditorText","onKeyDown","keyEvent","getModel","getValueLength","keyCode","KeyCode","UpArrow","loadCommand","stopPropagation","preventDefault","DownArrow","altKey","shiftKey","metaKey","Enter","isSuggestionMenuPopulated","Tab","isSuggestionMenuActive","trigger","addCommand","KeyMod","CtrlCmd","KEY_F","removeConflictingKeybindings","registerPasteHandler","closeDocument","dispose","getDomNode","querySelector","classList","contains","childElementCount","lastLine","getLineCount","column","getLineLength","lastCharTop","getTopForPosition","setPosition","lineNumber","setScrollTop","clear","layout","index","length","commandHistoryStorage","scope","makeCancelable","getTable","resolved","close","table","setReversed","setViewport","getViewportData","viewportData","size","items","map","name","reverse","err","isCanceled","debug2","error","command","getValue","trim","push","onSubmit","maxHeight","contentHeight","getContentHeight","Math","max","min","render","INPUT_CLASS_NAME","height","propTypes","shape","isRequired","string","CommandHistoryStorage","func","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport Log from '@deephaven/log';\nimport { PromiseUtils } from '@deephaven/utils';\nimport { MonacoCompletionProvider, MonacoTheme, MonacoUtils } from './monaco';\nimport './ConsoleInput.scss';\nimport StoragePropTypes from './StoragePropTypes';\n\nconst log = Log.module('ConsoleInput');\n\nconst LINE_HEIGHT = parseInt(MonacoTheme['line-height'], 10);\nconst TOP_PADDING = 6;\nconst BOTTOM_PADDING = 6;\nconst MIN_INPUT_HEIGHT = LINE_HEIGHT + TOP_PADDING + BOTTOM_PADDING;\nconst BUFFER_SIZE = 100;\n\n/**\n * Component for input in a console session. Handles loading the recent command history\n */\nexport class ConsoleInput extends PureComponent {\n static INPUT_CLASS_NAME = 'console-input';\n\n constructor(props) {\n super(props);\n\n this.handleWindowResize = this.handleWindowResize.bind(this);\n\n this.cancelListener = null;\n this.commandContainer = React.createRef();\n this.commandEditor = null;\n this.commandHistoryIndex = null;\n this.commandSuggestionContainer = null;\n this.isCommandModified = false;\n this.loadingPromise = null;\n this.timestamp = Date.now();\n this.bufferIndex = 0;\n this.history = [];\n\n this.state = {\n commandEditorHeight: LINE_HEIGHT,\n isFocused: false,\n model: null,\n };\n }\n\n componentDidMount() {\n this.initCommandEditor();\n\n window.addEventListener('resize', this.handleWindowResize);\n\n this.loadMoreHistory();\n }\n\n componentDidUpdate() {\n this.layoutEditor();\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n\n if (this.loadingPromise != null) {\n this.loadingPromise.cancel();\n }\n\n this.destroyCommandEditor();\n }\n\n setConsoleText(text, focus = true, execute = false) {\n if (!text) {\n return;\n }\n\n log.debug('Command received: ', text);\n\n this.commandEditor.setValue(text);\n\n if (focus) {\n this.focusEnd();\n }\n\n this.updateDimensions();\n\n if (execute) {\n this.processCommand();\n }\n }\n\n initCommandEditor() {\n const { language, session } = this.props;\n const commandSettings = {\n copyWithSyntaxHighlighting: 'false',\n cursorStyle: 'block',\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language,\n lineHeight: LINE_HEIGHT,\n lineDecorationsWidth: 3,\n lineNumbers: 'off',\n minimap: { enabled: false },\n renderLineHighlight: 'none',\n scrollBeyondLastLine: false,\n scrollbar: {\n arrowSize: 0,\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n padding: {\n top: TOP_PADDING,\n bottom: BOTTOM_PADDING,\n },\n tabCompletion: 'on',\n value: '',\n wordWrap: 'on',\n };\n\n this.commandEditor = monaco.editor.create(\n this.commandContainer.current,\n commandSettings\n );\n\n MonacoUtils.setEOL(this.commandEditor);\n MonacoUtils.openDocument(this.commandEditor, session);\n\n this.commandEditor.onDidChangeModelContent(() => {\n this.isCommandModified = true;\n this.updateDimensions();\n });\n\n this.commandEditor.onDidFocusEditorText(() => {\n this.setState({ isFocused: true });\n });\n\n this.commandEditor.onDidBlurEditorText(() => {\n this.setState({ isFocused: false });\n });\n\n /**\n * Register for keydown events to capture the `Enter` key.\n * Need to do it this way instead of using `addCommand`, because that would eat the Enter key in all situations, which is not what we want.\n * Can't do it in `onDidChangeModelContent` either, since we want to stop the Enter action from modifying the command.\n */\n this.commandEditor.onKeyDown(keyEvent => {\n if (\n !this.isCommandModified ||\n this.commandEditor.getModel().getValueLength() === 0\n ) {\n if (keyEvent.keyCode === monaco.KeyCode.UpArrow) {\n const { commandHistoryIndex } = this;\n if (commandHistoryIndex != null) {\n this.loadCommand(commandHistoryIndex + 1);\n } else {\n this.loadCommand(0);\n }\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n return;\n }\n if (keyEvent.keyCode === monaco.KeyCode.DownArrow) {\n const { commandHistoryIndex } = this;\n if (commandHistoryIndex != null && commandHistoryIndex >= 0) {\n this.loadCommand(commandHistoryIndex - 1);\n } else {\n this.commandHistoryIndex = null;\n }\n\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n return;\n }\n }\n\n if (!keyEvent.altKey && !keyEvent.shiftKey && !keyEvent.metaKey) {\n if (keyEvent.keyCode === monaco.KeyCode.Enter) {\n if (!this.isSuggestionMenuPopulated()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n this.processCommand();\n }\n } else if (keyEvent.keyCode === monaco.KeyCode.Tab) {\n if (!this.isSuggestionMenuActive()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n this.commandEditor.trigger(\n 'Tab key trigger suggestions',\n 'editor.action.triggerSuggest',\n {}\n );\n } else if (!this.isSuggestionMenuPopulated()) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n }\n }\n }\n });\n\n // Override the Ctrl+F functionality so that the find window doesn't appear\n this.commandEditor.addCommand(\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_F, // eslint-disable-line no-bitwise\n () => {}\n );\n\n MonacoUtils.removeConflictingKeybindings(this.commandEditor);\n\n MonacoUtils.registerPasteHandler(this.commandEditor);\n\n this.commandEditor.focus();\n\n this.updateDimensions();\n\n this.setState({ model: this.commandEditor.getModel() });\n }\n\n destroyCommandEditor() {\n const { session } = this.props;\n if (this.commandEditor) {\n MonacoUtils.closeDocument(this.commandEditor, session);\n this.commandEditor.dispose();\n this.commandEditor = null;\n }\n }\n\n handleWindowResize() {\n this.updateDimensions();\n }\n\n isSuggestionMenuActive() {\n if (!this.commandSuggestionContainer) {\n this.commandSuggestionContainer = this.commandEditor\n .getDomNode()\n .querySelector('.suggest-widget');\n }\n\n return (\n this.commandSuggestionContainer &&\n this.commandSuggestionContainer.classList.contains('visible')\n );\n }\n\n isSuggestionMenuPopulated() {\n return (\n this.isSuggestionMenuActive() &&\n this.commandSuggestionContainer.querySelector('.monaco-list-rows')\n .childElementCount > 0\n );\n }\n\n focus() {\n this.commandEditor.focus();\n }\n\n focusEnd() {\n const model = this.commandEditor.getModel();\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n const lastCharTop = this.commandEditor.getTopForPosition(lastLine, column);\n this.commandEditor.setPosition({ lineNumber: lastLine, column });\n this.commandEditor.setScrollTop(lastCharTop);\n this.commandEditor.focus();\n }\n\n clear() {\n this.commandEditor.focus();\n this.commandEditor.getModel().setValue('');\n this.commandHistoryIndex = null;\n }\n\n layoutEditor() {\n if (this.commandEditor) {\n this.commandEditor.layout();\n }\n }\n\n loadCommand(index) {\n if (index < 0) {\n this.commandHistoryIndex = null;\n this.commandEditor.getModel().setValue('');\n } else if (index < this.history.length) {\n this.commandHistoryIndex = index;\n this.commandEditor\n .getModel()\n .setValue(this.history[this.history.length - index - 1]);\n if (index > this.history.length - BUFFER_SIZE) {\n this.loadMoreHistory();\n }\n }\n\n this.isCommandModified = false;\n this.focusEnd();\n }\n\n async loadMoreHistory() {\n try {\n if (this.loadingPromise != null || this.bufferIndex == null) {\n return;\n }\n\n const { commandHistoryStorage, language, scope } = this.props;\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n commandHistoryStorage.getTable(language, scope, this.timestamp),\n resolved => resolved.close()\n );\n\n const table = await this.loadingPromise;\n table.setReversed(true);\n table.setViewport({\n top: this.bufferIndex,\n bottom: this.bufferIndex + BUFFER_SIZE - 1,\n });\n\n this.loadingPromise = PromiseUtils.makeCancelable(\n table.getViewportData(),\n () => table.close()\n );\n const viewportData = await this.loadingPromise;\n this.bufferIndex += BUFFER_SIZE;\n if (this.bufferIndex >= table.size) {\n // We've loaded the full history, no need to load any more\n this.bufferIndex = null;\n }\n this.history = [\n ...viewportData.items.map(({ name }) => name).reverse(),\n ...this.history,\n ];\n\n this.loadingPromise = null;\n\n table.close();\n } catch (err) {\n this.loadingPromise = null;\n if (PromiseUtils.isCanceled(err)) {\n log.debug2('Promise canceled, not loading history');\n return;\n }\n\n log.error('Error fetching history', err);\n }\n }\n\n processCommand() {\n this.isCommandModified = false;\n this.commandHistoryIndex = null;\n\n const command = this.commandEditor.getValue().trim();\n this.history.push(command);\n this.commandEditor.setValue('');\n this.updateDimensions();\n\n const { onSubmit } = this.props;\n onSubmit(command);\n }\n\n updateDimensions() {\n if (!this.commandEditor) {\n return;\n }\n\n const { maxHeight } = this.props;\n const contentHeight = this.commandEditor.getContentHeight();\n const commandEditorHeight = Math.max(\n Math.min(contentHeight, maxHeight),\n MIN_INPUT_HEIGHT\n );\n this.setState(\n {\n commandEditorHeight,\n },\n () => {\n this.commandEditor.layout();\n }\n );\n }\n\n render() {\n const { language, session } = this.props;\n const { commandEditorHeight, isFocused, model } = this.state;\n return (\n <div className=\"console-input-wrapper\">\n <div\n className={classNames('console-input-inner-wrapper', {\n focus: isFocused,\n })}\n >\n <div\n className={ConsoleInput.INPUT_CLASS_NAME}\n ref={this.commandContainer}\n style={{ height: commandEditorHeight }}\n />\n {model && (\n <MonacoCompletionProvider\n model={model}\n language={language}\n session={session}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nConsoleInput.propTypes = {\n session: PropTypes.shape({}).isRequired,\n language: PropTypes.string.isRequired,\n scope: PropTypes.string,\n commandHistoryStorage: StoragePropTypes.CommandHistoryStorage.isRequired,\n onSubmit: PropTypes.func.isRequired,\n maxHeight: PropTypes.number,\n};\n\nConsoleInput.defaultProps = {\n maxHeight: LINE_HEIGHT * 10,\n scope: null,\n};\n\nexport default ConsoleInput;\n"],"file":"ConsoleInput.js"}
|
package/dist/common/Code.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { Component } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api
|
|
3
|
+
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
|
4
4
|
|
|
5
5
|
class Code extends Component {
|
|
6
6
|
constructor(props) {
|
package/dist/common/Code.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/common/Code.jsx"],"names":["React","Component","PropTypes","monaco","Code","constructor","props","container","componentDidMount","colorize","children","editor","colorizeElement","theme","render","language","pointerEvents","propTypes","node","isRequired","string"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAO,KAAKC,MAAZ,MAAwB,
|
|
1
|
+
{"version":3,"sources":["../../src/common/Code.jsx"],"names":["React","Component","PropTypes","monaco","Code","constructor","props","container","componentDidMount","colorize","children","editor","colorizeElement","theme","render","language","pointerEvents","propTypes","node","isRequired","string"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAO,KAAKC,MAAZ,MAAwB,wCAAxB;;AAEA,MAAMC,IAAN,SAAmBH,SAAnB,CAA6B;AAC3BI,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAMA,KAAN;AAEA,SAAKC,SAAL,GAAiB,IAAjB;AACD;;AAEDC,EAAAA,iBAAiB,GAAG;AAClB,SAAKC,QAAL;AACD;;AAEDA,EAAAA,QAAQ,GAAG;AACT,QAAM;AAAEC,MAAAA;AAAF,QAAe,KAAKJ,KAA1B;;AACA,QAAI,KAAKC,SAAL,IAAkBG,QAAtB,EAAgC;AAC9BP,MAAAA,MAAM,CAACQ,MAAP,CAAcC,eAAd,CAA8B,KAAKL,SAAnC,EAA8C;AAC5CM,QAAAA,KAAK,EAAE;AADqC,OAA9C;AAGD;AACF;;AAEDC,EAAAA,MAAM,GAAG;AACP,QAAM;AAAEJ,MAAAA,QAAF;AAAYK,MAAAA;AAAZ,QAAyB,KAAKT,KAApC;AACA,wBACE,8CACE;AACE,mBAAWS,QADb;AAEE,MAAA,GAAG,EAAER,SAAS,IAAI;AAChB,aAAKA,SAAL,GAAiBA,SAAjB;AACD,OAJH,CAKE;AACA;AANF;AAOE,MAAA,KAAK,EAAE;AAAES,QAAAA,aAAa,EAAE;AAAjB;AAPT,OASGN,QATH,CADF,CADF;AAeD;;AArC0B;;AAwC7BN,IAAI,CAACa,SAAL,GAAiB;AACfP,EAAAA,QAAQ,EAAER,SAAS,CAACgB,IAAV,CAAeC,UADV;AAEfJ,EAAAA,QAAQ,EAAEb,SAAS,CAACkB,MAAV,CAAiBD;AAFZ,CAAjB;AAKA,eAAef,IAAf","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\n\nclass Code extends Component {\n constructor(props) {\n super(props);\n\n this.container = null;\n }\n\n componentDidMount() {\n this.colorize();\n }\n\n colorize() {\n const { children } = this.props;\n if (this.container && children) {\n monaco.editor.colorizeElement(this.container, {\n theme: 'dh-dark',\n });\n }\n }\n\n render() {\n const { children, language } = this.props;\n return (\n <div>\n <div\n data-lang={language}\n ref={container => {\n this.container = container;\n }}\n // Add pointerEvents: 'none' has huge benefits on performance with Hit Test testing on large colorized elements.\n // You can still select the text event with this set\n style={{ pointerEvents: 'none' }}\n >\n {children}\n </div>\n </div>\n );\n }\n}\n\nCode.propTypes = {\n children: PropTypes.node.isRequired,\n language: PropTypes.string.isRequired,\n};\n\nexport default Code;\n"],"file":"Code.js"}
|
package/dist/log/LogView.d.ts
CHANGED
package/dist/log/LogView.js
CHANGED
|
@@ -9,7 +9,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
|
9
9
|
import { DropdownMenu, Tooltip } from '@deephaven/components';
|
|
10
10
|
import { vsGear, dhTrashUndo } from '@deephaven/icons';
|
|
11
11
|
import { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
|
|
12
|
-
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api
|
|
12
|
+
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
|
13
13
|
import ConsoleUtils from "../common/ConsoleUtils.js";
|
|
14
14
|
import LogLevel from "./LogLevel.js";
|
|
15
15
|
import "./LogView.css";
|
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.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"}
|
|
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"}
|
|
@@ -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";
|
|
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';
|
|
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';\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";
|
|
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';
|
|
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';
|
|
59
59
|
import Log from '@deephaven/log';
|
|
60
60
|
import MonacoTheme from "./MonacoTheme.module.css";
|
|
61
61
|
import PyLang from "./lang/python.js";
|