@deephaven/console 0.95.1-beta.1 → 0.95.1-beta.3
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.map +1 -1
- package/dist/ConsoleInput.js +3 -2
- package/dist/ConsoleInput.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/monaco/MonacoProviders.d.ts +20 -0
- package/dist/monaco/MonacoProviders.d.ts.map +1 -1
- package/dist/monaco/MonacoProviders.js +223 -1
- package/dist/monaco/MonacoProviders.js.map +1 -1
- package/dist/monaco/MonacoUtils.d.ts +11 -0
- package/dist/monaco/MonacoUtils.d.ts.map +1 -1
- package/dist/monaco/MonacoUtils.js +29 -0
- package/dist/monaco/MonacoUtils.js.map +1 -1
- package/dist/monaco/RuffDefaultSettings.d.ts +19 -0
- package/dist/monaco/RuffDefaultSettings.d.ts.map +1 -0
- package/dist/monaco/RuffDefaultSettings.js +73 -0
- package/dist/monaco/RuffDefaultSettings.js.map +1 -0
- package/dist/monaco/RuffSettingsModal.css +11 -0
- package/dist/monaco/RuffSettingsModal.css.map +1 -0
- package/dist/monaco/RuffSettingsModal.d.ts +11 -0
- package/dist/monaco/RuffSettingsModal.d.ts.map +1 -0
- package/dist/monaco/RuffSettingsModal.js +173 -0
- package/dist/monaco/RuffSettingsModal.js.map +1 -0
- package/dist/monaco/index.d.ts +2 -0
- package/dist/monaco/index.d.ts.map +1 -1
- package/dist/monaco/index.js +2 -0
- package/dist/monaco/index.js.map +1 -1
- package/dist/monaco/ruffSchema.d.ts +2041 -0
- package/dist/monaco/ruffSchema.d.ts.map +1 -0
- package/dist/monaco/ruffSchema.js +1933 -0
- package/dist/monaco/ruffSchema.js.map +1 -0
- package/package.json +15 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleInput.d.ts","sourceRoot":"","sources":["../src/ConsoleInput.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,qBAAqB,CAAC;AAU7B,UAAU,iBAAiB;IACzB,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa,CAC7C,iBAAiB,EACjB,iBAAiB,CAClB;IACC,MAAM,CAAC,YAAY;;;;MAIjB;IAEF,MAAM,CAAC,gBAAgB,SAAmB;gBAE9B,KAAK,EAAE,iBAAiB;IAqBpC,iBAAiB,IAAI,IAAI;IAMzB,kBAAkB,IAAI,IAAI;IAI1B,oBAAoB,IAAI,IAAI;IAU5B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAE5B,cAAc,EAAE,cAAc,CAAC;IAE/B,gBAAgB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAE5C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAEpD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,0BAA0B,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAE5C,cAAc,CAAC,EACX,iBAAiB,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC,GAC1D,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAE3C,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlB,gBAAgB,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAEpD;;;;;;;OAOG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAO,EAAE,OAAO,UAAQ,GAAG,IAAI;IA0BjE,iBAAiB,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"ConsoleInput.d.ts","sourceRoot":"","sources":["../src/ConsoleInput.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,qBAAqB,CAAC;AAU7B,UAAU,iBAAiB;IACzB,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa,CAC7C,iBAAiB,EACjB,iBAAiB,CAClB;IACC,MAAM,CAAC,YAAY;;;;MAIjB;IAEF,MAAM,CAAC,gBAAgB,SAAmB;gBAE9B,KAAK,EAAE,iBAAiB;IAqBpC,iBAAiB,IAAI,IAAI;IAMzB,kBAAkB,IAAI,IAAI;IAI1B,oBAAoB,IAAI,IAAI;IAU5B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAE5B,cAAc,EAAE,cAAc,CAAC;IAE/B,gBAAgB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAE5C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAEpD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,0BAA0B,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAE5C,cAAc,CAAC,EACX,iBAAiB,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC,GAC1D,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAE3C,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlB,gBAAgB,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAEpD;;;;;;;OAOG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAO,EAAE,OAAO,UAAQ,GAAG,IAAI;IA0BjE,iBAAiB,IAAI,IAAI;IAyIzB,oBAAoB,IAAI,IAAI;IAS5B,YAAY,IAAI,IAAI;IAIpB,sBAAsB,IAAI,OAAO;IAcjC,yBAAyB,IAAI,OAAO;IAQpC,KAAK,IAAI,IAAI;IAIb,UAAU,IAAI,IAAI;IAWlB,QAAQ,IAAI,IAAI;IAYhB,KAAK,IAAI,IAAI;IAMb,YAAY,IAAI,IAAI;IAMpB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAiBjC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDtC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAkBrC,gBAAgB,IAAI,IAAI;IA6BxB,MAAM,IAAI,YAAY;CA0BvB;AAED,eAAe,YAAY,CAAC"}
|
package/dist/ConsoleInput.js
CHANGED
|
@@ -104,6 +104,7 @@ export class ConsoleInput extends PureComponent {
|
|
|
104
104
|
language,
|
|
105
105
|
session
|
|
106
106
|
} = this.props;
|
|
107
|
+
var model = monaco.editor.createModel('', language, MonacoUtils.generateConsoleUri());
|
|
107
108
|
var commandSettings = {
|
|
108
109
|
copyWithSyntaxHighlighting: false,
|
|
109
110
|
cursorStyle: 'block',
|
|
@@ -131,7 +132,8 @@ export class ConsoleInput extends PureComponent {
|
|
|
131
132
|
},
|
|
132
133
|
value: '',
|
|
133
134
|
wordWrap: 'on',
|
|
134
|
-
autoClosingBrackets: 'beforeWhitespace'
|
|
135
|
+
autoClosingBrackets: 'beforeWhitespace',
|
|
136
|
+
model
|
|
135
137
|
};
|
|
136
138
|
var element = this.commandContainer.current;
|
|
137
139
|
assertNotNull(element);
|
|
@@ -170,7 +172,6 @@ export class ConsoleInput extends PureComponent {
|
|
|
170
172
|
var {
|
|
171
173
|
lineNumber
|
|
172
174
|
} = position;
|
|
173
|
-
var model = commandEditor === null || commandEditor === void 0 ? void 0 : commandEditor.getModel();
|
|
174
175
|
if (keyEvent.code === 'ArrowUp' && !this.isSuggestionMenuPopulated() && lineNumber === 1) {
|
|
175
176
|
if (commandHistoryIndex != null) {
|
|
176
177
|
this.loadCommand(commandHistoryIndex + 1);
|
package/dist/ConsoleInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleInput.js","names":["React","PureComponent","classNames","monaco","Log","assertNotNull","PromiseUtils","MonacoProviders","MonacoTheme","MonacoUtils","jsx","_jsx","jsxs","_jsxs","log","module","LINE_HEIGHT","parseInt","TOP_PADDING","BOTTOM_PADDING","MIN_INPUT_HEIGHT","BUFFER_SIZE","ConsoleInput","constructor","props","_defineProperty","handleResize","bind","commandContainer","createRef","commandHistoryIndex","timestamp","Date","now","bufferIndex","history","modifiedCommands","Map","resizeObserver","window","ResizeObserver","state","commandEditorHeight","isFocused","model","componentDidMount","initCommandEditor","loadMoreHistory","componentDidUpdate","layoutEditor","componentWillUnmount","disconnect","loadingPromise","cancel","destroyCommandEditor","setConsoleText","text","focus","arguments","length","undefined","execute","debug","_this$commandEditor","commandEditor","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","value","wordWrap","autoClosingBrackets","element","current","editor","create","setEOL","openDocument","onDidChangeModelContent","_this$commandEditor2","getValue","set","onDidFocusEditorText","setState","onDidBlurEditorText","onKeyDown","keyEvent","position","getPosition","lineNumber","getModel","code","isSuggestionMenuPopulated","loadCommand","focusStart","stopPropagation","preventDefault","getLineCount","altKey","shiftKey","metaKey","keyCode","KeyCode","Enter","_this$commandEditor3","command","trim","_this$commandEditor4","disableKeyBindings","KeyMod","CtrlCmd","KeyF","registerPasteHandler","observe","closeDocument","dispose","isSuggestionMenuActive","_ref","commandSuggestionContainer","_this$commandEditor5","_this$commandEditor5$","getDomNode","querySelector","classList","contains","_this$commandSuggesti","_this$commandSuggesti2","_this$commandSuggesti3","childElementCount","_this$commandEditor6","_this$commandEditor7","_this$commandEditor8","_this$commandEditor9","_this$commandEditor10","_this$commandEditor11","column","getLineLength","firstCharTop","getTopForPosition","setPosition","setScrollTop","_this$commandEditor12","_this$commandEditor13","_this$commandEditor14","_this$commandEditor15","_this$commandEditor16","lastLine","lastCharTop","clear","_this$commandEditor17","_this$commandEditor18","_this$commandEditor19","layout","index","_this$commandEditor20","_this$commandEditor21","modifiedValue","get","historyValue","_this","_asyncToGenerator","commandHistoryStorage","scope","makeCancelable","getTable","resolved","close","table","setReversed","setViewport","getViewportData","viewportData","size","items","filter","_ref2","pos","arr","name","map","_ref3","reverse","err","isCanceled","debug2","error","push","onSubmit","maxHeight","contentHeight","getContentHeight","Math","max","min","shouldScroll","options","overviewRulerLanes","_this$commandEditor22","_this$commandEditor23","updateOptions","render","disabled","className","children","INPUT_CLASS_NAME","ref","style","height"],"sources":["../src/ConsoleInput.tsx"],"sourcesContent":["import React, { PureComponent, type ReactElement, type RefObject } from 'react';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor';\nimport Log from '@deephaven/log';\nimport {\n assertNotNull,\n type CancelablePromise,\n PromiseUtils,\n} from '@deephaven/utils';\nimport { type ViewportData } from '@deephaven/storage';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n type CommandHistoryStorage,\n type CommandHistoryStorageItem,\n type CommandHistoryTable,\n} from './command-history';\nimport { MonacoProviders, MonacoTheme, MonacoUtils } from './monaco';\nimport './ConsoleInput.scss';\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\ninterface ConsoleInputProps {\n session: dh.IdeSession;\n language: string;\n scope?: string;\n commandHistoryStorage: CommandHistoryStorage;\n onSubmit: (command: string) => void;\n maxHeight?: number;\n disabled?: boolean;\n}\n\ninterface ConsoleInputState {\n commandEditorHeight: number;\n isFocused: boolean;\n model: monaco.editor.ITextModel | null;\n}\n\n/**\n * Component for input in a console session. Handles loading the recent command history\n */\nexport class ConsoleInput extends PureComponent<\n ConsoleInputProps,\n ConsoleInputState\n> {\n static defaultProps = {\n maxHeight: LINE_HEIGHT * 10,\n scope: null,\n disabled: false,\n };\n\n static INPUT_CLASS_NAME = 'console-input';\n\n constructor(props: ConsoleInputProps) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n\n this.commandContainer = React.createRef();\n this.commandHistoryIndex = null;\n this.timestamp = Date.now();\n this.bufferIndex = 0;\n this.history = [];\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n this.modifiedCommands = new Map();\n this.resizeObserver = new window.ResizeObserver(this.handleResize);\n\n this.state = {\n commandEditorHeight: LINE_HEIGHT,\n isFocused: false,\n model: null,\n };\n }\n\n componentDidMount(): void {\n this.initCommandEditor();\n\n this.loadMoreHistory();\n }\n\n componentDidUpdate(): void {\n this.layoutEditor();\n }\n\n componentWillUnmount(): void {\n this.resizeObserver.disconnect();\n\n if (this.loadingPromise != null) {\n this.loadingPromise.cancel();\n }\n\n this.destroyCommandEditor();\n }\n\n cancelListener?: () => void;\n\n resizeObserver: ResizeObserver;\n\n commandContainer: RefObject<HTMLDivElement>;\n\n commandEditor?: monaco.editor.IStandaloneCodeEditor;\n\n commandHistoryIndex: number | null;\n\n commandSuggestionContainer?: Element | null;\n\n loadingPromise?:\n | CancelablePromise<ViewportData<CommandHistoryStorageItem>>\n | CancelablePromise<CommandHistoryTable>;\n\n timestamp: number;\n\n bufferIndex: number | null;\n\n history: string[];\n\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n modifiedCommands: Map<number | null, string | null>;\n\n /**\n * Sets the console text from an external source.\n * Sets commandHistoryIndex to null since the source is not part of the history\n * @param text The text to set in the input\n * @param focus If the input should be focused\n * @param execute If the input should be executed\n * @returns void\n */\n setConsoleText(text: string, focus = true, execute = false): void {\n if (!text) {\n return;\n }\n\n log.debug('Command received: ', text);\n\n // Only set the console text if we're not running this command\n if (!execute) {\n // Need to set commandHistoryIndex before value\n // On value change, modified commands map updates\n this.commandHistoryIndex = null;\n this.commandEditor?.setValue(text);\n }\n\n if (focus) {\n this.focusEnd();\n }\n\n this.updateDimensions();\n\n if (execute) {\n this.processCommand(text);\n }\n }\n\n initCommandEditor(): void {\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 value: '',\n wordWrap: 'on',\n autoClosingBrackets: 'beforeWhitespace',\n } as const;\n\n const element = this.commandContainer.current;\n assertNotNull(element);\n\n this.commandEditor = monaco.editor.create(element, commandSettings);\n\n MonacoUtils.setEOL(this.commandEditor);\n MonacoUtils.openDocument(this.commandEditor, session);\n\n this.commandEditor.onDidChangeModelContent(() => {\n const value = this.commandEditor?.getValue();\n this.modifiedCommands.set(this.commandHistoryIndex, value ?? null);\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 const { commandEditor, commandHistoryIndex } = this;\n const position = commandEditor?.getPosition();\n assertNotNull(position);\n const { lineNumber } = position;\n const model = commandEditor?.getModel();\n if (\n keyEvent.code === 'ArrowUp' &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === 1\n ) {\n if (commandHistoryIndex != null) {\n this.loadCommand(commandHistoryIndex + 1);\n } else {\n this.loadCommand(0);\n }\n\n this.focusStart();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (\n keyEvent.code === 'ArrowDown' &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === model?.getLineCount()\n ) {\n if (commandHistoryIndex != null && commandHistoryIndex > 0) {\n this.loadCommand(commandHistoryIndex - 1);\n } else {\n this.loadCommand(null);\n }\n\n this.focusEnd();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (!keyEvent.altKey && !keyEvent.shiftKey && !keyEvent.metaKey) {\n if (\n keyEvent.keyCode === monaco.KeyCode.Enter &&\n !this.isSuggestionMenuPopulated()\n ) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n const command = this.commandEditor?.getValue().trim();\n if (command !== undefined) {\n this.processCommand(command);\n this.commandEditor?.setValue('');\n }\n }\n }\n });\n\n // Disable the Ctrl+F functionality so that the find window doesn't appear\n MonacoUtils.disableKeyBindings(this.commandEditor, [\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyF, // eslint-disable-line no-bitwise\n ]);\n\n MonacoUtils.registerPasteHandler(this.commandEditor);\n\n this.commandEditor.focus();\n\n this.resizeObserver.observe(element);\n\n this.updateDimensions();\n\n this.setState({ model: this.commandEditor.getModel() });\n }\n\n destroyCommandEditor(): void {\n const { session } = this.props;\n if (this.commandEditor) {\n MonacoUtils.closeDocument(this.commandEditor, session);\n this.commandEditor.dispose();\n this.commandEditor = undefined;\n }\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n isSuggestionMenuActive(): boolean {\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 false\n );\n }\n\n isSuggestionMenuPopulated(): boolean {\n return (\n this.isSuggestionMenuActive() &&\n (this.commandSuggestionContainer?.querySelector('.monaco-list-rows')\n ?.childElementCount ?? 0) > 0\n );\n }\n\n focus(): void {\n this.commandEditor?.focus();\n }\n\n focusStart(): void {\n const model = this.commandEditor?.getModel();\n assertNotNull(model);\n const column = model.getLineLength(1) + 1; // Length of 1st line\n const firstCharTop = this.commandEditor?.getTopForPosition(1, column);\n assertNotNull(firstCharTop);\n this.commandEditor?.setPosition({ lineNumber: 1, column });\n this.commandEditor?.setScrollTop(firstCharTop);\n this.commandEditor?.focus();\n }\n\n focusEnd(): void {\n const model = this.commandEditor?.getModel();\n assertNotNull(model);\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n const lastCharTop = this.commandEditor?.getTopForPosition(lastLine, column);\n assertNotNull(lastCharTop);\n this.commandEditor?.setPosition({ lineNumber: lastLine, column });\n this.commandEditor?.setScrollTop(lastCharTop);\n this.commandEditor?.focus();\n }\n\n clear(): void {\n this.commandEditor?.focus();\n this.commandEditor?.getModel()?.setValue('');\n this.commandHistoryIndex = null;\n }\n\n layoutEditor(): void {\n if (this.commandEditor) {\n this.commandEditor.layout();\n }\n }\n\n /**\n * Loads the given command from history\n * If edits have been made to the command since last run command, loads the modified version\n * @param index The index to load. Null to load command started in the editor and not in the history\n */\n loadCommand(index: number | null): void {\n if (index !== null && index >= this.history.length) {\n return;\n }\n\n const modifiedValue = this.modifiedCommands.get(index);\n const historyValue =\n index === null ? '' : this.history[this.history.length - index - 1];\n\n this.commandHistoryIndex = index;\n this.commandEditor?.getModel()?.setValue(modifiedValue ?? historyValue);\n\n if (index !== null && index > this.history.length - BUFFER_SIZE) {\n this.loadMoreHistory();\n }\n }\n\n async loadMoreHistory(): Promise<void> {\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\n .filter(\n ({ name }, pos, arr) => pos === 0 || name !== arr[pos - 1].name\n )\n .map(({ name }) => name)\n .reverse(),\n ...this.history,\n ];\n\n this.loadingPromise = undefined;\n\n table.close();\n } catch (err) {\n this.loadingPromise = undefined;\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(command: string): void {\n this.commandHistoryIndex = null;\n this.modifiedCommands.clear();\n\n assertNotNull(command);\n if (\n command !== '' &&\n (this.history.length === 0 ||\n command !== this.history[this.history.length - 1])\n ) {\n this.history.push(command);\n }\n this.updateDimensions();\n\n const { onSubmit } = this.props;\n onSubmit(command);\n }\n\n updateDimensions(): void {\n if (!this.commandEditor) {\n return;\n }\n\n const { maxHeight } = this.props;\n assertNotNull(maxHeight);\n const contentHeight = this.commandEditor.getContentHeight();\n const commandEditorHeight = Math.max(\n Math.min(contentHeight, maxHeight),\n MIN_INPUT_HEIGHT\n );\n\n // Only show the overview ruler (markings overlapping sroll bar area) if the scrollbar will show\n const shouldScroll = contentHeight > commandEditorHeight;\n\n const options = { overviewRulerLanes: shouldScroll ? undefined : 0 };\n\n this.setState(\n {\n commandEditorHeight,\n },\n () => {\n this.commandEditor?.updateOptions(options);\n this.commandEditor?.layout();\n }\n );\n }\n\n render(): ReactElement {\n const { disabled, language, session } = this.props;\n const { commandEditorHeight, isFocused, model } = this.state;\n return (\n <div className={classNames('console-input-wrapper', { disabled })}>\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 <MonacoProviders\n model={model}\n language={language}\n session={session}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default ConsoleInput;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConsoleInput.js","names":["React","PureComponent","classNames","monaco","Log","assertNotNull","PromiseUtils","MonacoProviders","MonacoTheme","MonacoUtils","jsx","_jsx","jsxs","_jsxs","log","module","LINE_HEIGHT","parseInt","TOP_PADDING","BOTTOM_PADDING","MIN_INPUT_HEIGHT","BUFFER_SIZE","ConsoleInput","constructor","props","_defineProperty","handleResize","bind","commandContainer","createRef","commandHistoryIndex","timestamp","Date","now","bufferIndex","history","modifiedCommands","Map","resizeObserver","window","ResizeObserver","state","commandEditorHeight","isFocused","model","componentDidMount","initCommandEditor","loadMoreHistory","componentDidUpdate","layoutEditor","componentWillUnmount","disconnect","loadingPromise","cancel","destroyCommandEditor","setConsoleText","text","focus","arguments","length","undefined","execute","debug","_this$commandEditor","commandEditor","setValue","focusEnd","updateDimensions","processCommand","language","session","editor","createModel","generateConsoleUri","commandSettings","copyWithSyntaxHighlighting","cursorStyle","fixedOverflowWidgets","folding","fontFamily","glyphMargin","lineHeight","lineDecorationsWidth","lineNumbers","minimap","enabled","renderLineHighlight","scrollBeyondLastLine","scrollbar","arrowSize","horizontal","horizontalScrollbarSize","padding","top","bottom","value","wordWrap","autoClosingBrackets","element","current","create","setEOL","openDocument","onDidChangeModelContent","_this$commandEditor2","getValue","set","onDidFocusEditorText","setState","onDidBlurEditorText","onKeyDown","keyEvent","position","getPosition","lineNumber","code","isSuggestionMenuPopulated","loadCommand","focusStart","stopPropagation","preventDefault","getLineCount","altKey","shiftKey","metaKey","keyCode","KeyCode","Enter","_this$commandEditor3","command","trim","_this$commandEditor4","disableKeyBindings","KeyMod","CtrlCmd","KeyF","registerPasteHandler","observe","getModel","closeDocument","dispose","isSuggestionMenuActive","_ref","commandSuggestionContainer","_this$commandEditor5","_this$commandEditor5$","getDomNode","querySelector","classList","contains","_this$commandSuggesti","_this$commandSuggesti2","_this$commandSuggesti3","childElementCount","_this$commandEditor6","_this$commandEditor7","_this$commandEditor8","_this$commandEditor9","_this$commandEditor10","_this$commandEditor11","column","getLineLength","firstCharTop","getTopForPosition","setPosition","setScrollTop","_this$commandEditor12","_this$commandEditor13","_this$commandEditor14","_this$commandEditor15","_this$commandEditor16","lastLine","lastCharTop","clear","_this$commandEditor17","_this$commandEditor18","_this$commandEditor19","layout","index","_this$commandEditor20","_this$commandEditor21","modifiedValue","get","historyValue","_this","_asyncToGenerator","commandHistoryStorage","scope","makeCancelable","getTable","resolved","close","table","setReversed","setViewport","getViewportData","viewportData","size","items","filter","_ref2","pos","arr","name","map","_ref3","reverse","err","isCanceled","debug2","error","push","onSubmit","maxHeight","contentHeight","getContentHeight","Math","max","min","shouldScroll","options","overviewRulerLanes","_this$commandEditor22","_this$commandEditor23","updateOptions","render","disabled","className","children","INPUT_CLASS_NAME","ref","style","height"],"sources":["../src/ConsoleInput.tsx"],"sourcesContent":["import React, { PureComponent, type ReactElement, type RefObject } from 'react';\nimport classNames from 'classnames';\nimport * as monaco from 'monaco-editor';\nimport Log from '@deephaven/log';\nimport {\n assertNotNull,\n type CancelablePromise,\n PromiseUtils,\n} from '@deephaven/utils';\nimport { type ViewportData } from '@deephaven/storage';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n type CommandHistoryStorage,\n type CommandHistoryStorageItem,\n type CommandHistoryTable,\n} from './command-history';\nimport { MonacoProviders, MonacoTheme, MonacoUtils } from './monaco';\nimport './ConsoleInput.scss';\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\ninterface ConsoleInputProps {\n session: dh.IdeSession;\n language: string;\n scope?: string;\n commandHistoryStorage: CommandHistoryStorage;\n onSubmit: (command: string) => void;\n maxHeight?: number;\n disabled?: boolean;\n}\n\ninterface ConsoleInputState {\n commandEditorHeight: number;\n isFocused: boolean;\n model: monaco.editor.ITextModel | null;\n}\n\n/**\n * Component for input in a console session. Handles loading the recent command history\n */\nexport class ConsoleInput extends PureComponent<\n ConsoleInputProps,\n ConsoleInputState\n> {\n static defaultProps = {\n maxHeight: LINE_HEIGHT * 10,\n scope: null,\n disabled: false,\n };\n\n static INPUT_CLASS_NAME = 'console-input';\n\n constructor(props: ConsoleInputProps) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n\n this.commandContainer = React.createRef();\n this.commandHistoryIndex = null;\n this.timestamp = Date.now();\n this.bufferIndex = 0;\n this.history = [];\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n this.modifiedCommands = new Map();\n this.resizeObserver = new window.ResizeObserver(this.handleResize);\n\n this.state = {\n commandEditorHeight: LINE_HEIGHT,\n isFocused: false,\n model: null,\n };\n }\n\n componentDidMount(): void {\n this.initCommandEditor();\n\n this.loadMoreHistory();\n }\n\n componentDidUpdate(): void {\n this.layoutEditor();\n }\n\n componentWillUnmount(): void {\n this.resizeObserver.disconnect();\n\n if (this.loadingPromise != null) {\n this.loadingPromise.cancel();\n }\n\n this.destroyCommandEditor();\n }\n\n cancelListener?: () => void;\n\n resizeObserver: ResizeObserver;\n\n commandContainer: RefObject<HTMLDivElement>;\n\n commandEditor?: monaco.editor.IStandaloneCodeEditor;\n\n commandHistoryIndex: number | null;\n\n commandSuggestionContainer?: Element | null;\n\n loadingPromise?:\n | CancelablePromise<ViewportData<CommandHistoryStorageItem>>\n | CancelablePromise<CommandHistoryTable>;\n\n timestamp: number;\n\n bufferIndex: number | null;\n\n history: string[];\n\n // Tracks every command that has been modified by its commandHistoryIndex. Cleared on any command being executed\n modifiedCommands: Map<number | null, string | null>;\n\n /**\n * Sets the console text from an external source.\n * Sets commandHistoryIndex to null since the source is not part of the history\n * @param text The text to set in the input\n * @param focus If the input should be focused\n * @param execute If the input should be executed\n * @returns void\n */\n setConsoleText(text: string, focus = true, execute = false): void {\n if (!text) {\n return;\n }\n\n log.debug('Command received: ', text);\n\n // Only set the console text if we're not running this command\n if (!execute) {\n // Need to set commandHistoryIndex before value\n // On value change, modified commands map updates\n this.commandHistoryIndex = null;\n this.commandEditor?.setValue(text);\n }\n\n if (focus) {\n this.focusEnd();\n }\n\n this.updateDimensions();\n\n if (execute) {\n this.processCommand(text);\n }\n }\n\n initCommandEditor(): void {\n const { language, session } = this.props;\n const model = monaco.editor.createModel(\n '',\n language,\n MonacoUtils.generateConsoleUri()\n );\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 value: '',\n wordWrap: 'on',\n autoClosingBrackets: 'beforeWhitespace',\n model,\n } as const;\n\n const element = this.commandContainer.current;\n assertNotNull(element);\n\n this.commandEditor = monaco.editor.create(element, commandSettings);\n\n MonacoUtils.setEOL(this.commandEditor);\n MonacoUtils.openDocument(this.commandEditor, session);\n\n this.commandEditor.onDidChangeModelContent(() => {\n const value = this.commandEditor?.getValue();\n this.modifiedCommands.set(this.commandHistoryIndex, value ?? null);\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 const { commandEditor, commandHistoryIndex } = this;\n const position = commandEditor?.getPosition();\n assertNotNull(position);\n const { lineNumber } = position;\n if (\n keyEvent.code === 'ArrowUp' &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === 1\n ) {\n if (commandHistoryIndex != null) {\n this.loadCommand(commandHistoryIndex + 1);\n } else {\n this.loadCommand(0);\n }\n\n this.focusStart();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (\n keyEvent.code === 'ArrowDown' &&\n !this.isSuggestionMenuPopulated() &&\n lineNumber === model?.getLineCount()\n ) {\n if (commandHistoryIndex != null && commandHistoryIndex > 0) {\n this.loadCommand(commandHistoryIndex - 1);\n } else {\n this.loadCommand(null);\n }\n\n this.focusEnd();\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n return;\n }\n\n if (!keyEvent.altKey && !keyEvent.shiftKey && !keyEvent.metaKey) {\n if (\n keyEvent.keyCode === monaco.KeyCode.Enter &&\n !this.isSuggestionMenuPopulated()\n ) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n\n const command = this.commandEditor?.getValue().trim();\n if (command !== undefined) {\n this.processCommand(command);\n this.commandEditor?.setValue('');\n }\n }\n }\n });\n\n // Disable the Ctrl+F functionality so that the find window doesn't appear\n MonacoUtils.disableKeyBindings(this.commandEditor, [\n monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyF, // eslint-disable-line no-bitwise\n ]);\n\n MonacoUtils.registerPasteHandler(this.commandEditor);\n\n this.commandEditor.focus();\n\n this.resizeObserver.observe(element);\n\n this.updateDimensions();\n\n this.setState({ model: this.commandEditor.getModel() });\n }\n\n destroyCommandEditor(): void {\n const { session } = this.props;\n if (this.commandEditor) {\n MonacoUtils.closeDocument(this.commandEditor, session);\n this.commandEditor.dispose();\n this.commandEditor = undefined;\n }\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n isSuggestionMenuActive(): boolean {\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 false\n );\n }\n\n isSuggestionMenuPopulated(): boolean {\n return (\n this.isSuggestionMenuActive() &&\n (this.commandSuggestionContainer?.querySelector('.monaco-list-rows')\n ?.childElementCount ?? 0) > 0\n );\n }\n\n focus(): void {\n this.commandEditor?.focus();\n }\n\n focusStart(): void {\n const model = this.commandEditor?.getModel();\n assertNotNull(model);\n const column = model.getLineLength(1) + 1; // Length of 1st line\n const firstCharTop = this.commandEditor?.getTopForPosition(1, column);\n assertNotNull(firstCharTop);\n this.commandEditor?.setPosition({ lineNumber: 1, column });\n this.commandEditor?.setScrollTop(firstCharTop);\n this.commandEditor?.focus();\n }\n\n focusEnd(): void {\n const model = this.commandEditor?.getModel();\n assertNotNull(model);\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n const lastCharTop = this.commandEditor?.getTopForPosition(lastLine, column);\n assertNotNull(lastCharTop);\n this.commandEditor?.setPosition({ lineNumber: lastLine, column });\n this.commandEditor?.setScrollTop(lastCharTop);\n this.commandEditor?.focus();\n }\n\n clear(): void {\n this.commandEditor?.focus();\n this.commandEditor?.getModel()?.setValue('');\n this.commandHistoryIndex = null;\n }\n\n layoutEditor(): void {\n if (this.commandEditor) {\n this.commandEditor.layout();\n }\n }\n\n /**\n * Loads the given command from history\n * If edits have been made to the command since last run command, loads the modified version\n * @param index The index to load. Null to load command started in the editor and not in the history\n */\n loadCommand(index: number | null): void {\n if (index !== null && index >= this.history.length) {\n return;\n }\n\n const modifiedValue = this.modifiedCommands.get(index);\n const historyValue =\n index === null ? '' : this.history[this.history.length - index - 1];\n\n this.commandHistoryIndex = index;\n this.commandEditor?.getModel()?.setValue(modifiedValue ?? historyValue);\n\n if (index !== null && index > this.history.length - BUFFER_SIZE) {\n this.loadMoreHistory();\n }\n }\n\n async loadMoreHistory(): Promise<void> {\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\n .filter(\n ({ name }, pos, arr) => pos === 0 || name !== arr[pos - 1].name\n )\n .map(({ name }) => name)\n .reverse(),\n ...this.history,\n ];\n\n this.loadingPromise = undefined;\n\n table.close();\n } catch (err) {\n this.loadingPromise = undefined;\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(command: string): void {\n this.commandHistoryIndex = null;\n this.modifiedCommands.clear();\n\n assertNotNull(command);\n if (\n command !== '' &&\n (this.history.length === 0 ||\n command !== this.history[this.history.length - 1])\n ) {\n this.history.push(command);\n }\n this.updateDimensions();\n\n const { onSubmit } = this.props;\n onSubmit(command);\n }\n\n updateDimensions(): void {\n if (!this.commandEditor) {\n return;\n }\n\n const { maxHeight } = this.props;\n assertNotNull(maxHeight);\n const contentHeight = this.commandEditor.getContentHeight();\n const commandEditorHeight = Math.max(\n Math.min(contentHeight, maxHeight),\n MIN_INPUT_HEIGHT\n );\n\n // Only show the overview ruler (markings overlapping sroll bar area) if the scrollbar will show\n const shouldScroll = contentHeight > commandEditorHeight;\n\n const options = { overviewRulerLanes: shouldScroll ? undefined : 0 };\n\n this.setState(\n {\n commandEditorHeight,\n },\n () => {\n this.commandEditor?.updateOptions(options);\n this.commandEditor?.layout();\n }\n );\n }\n\n render(): ReactElement {\n const { disabled, language, session } = this.props;\n const { commandEditorHeight, isFocused, model } = this.state;\n return (\n <div className={classNames('console-input-wrapper', { disabled })}>\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 <MonacoProviders\n model={model}\n language={language}\n session={session}\n />\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default ConsoleInput;\n"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export { default as ScriptEditorUtils } from './notebook/ScriptEditorUtils';
|
|
|
12
12
|
export * from './common';
|
|
13
13
|
export * from './command-history';
|
|
14
14
|
export * from './console-history';
|
|
15
|
+
export * from './monaco';
|
|
15
16
|
export { default as LogView } from './log/LogView';
|
|
16
17
|
export { default as HeapUsage } from './HeapUsage';
|
|
17
18
|
export { default as NewTableColumnTypes } from './csv/NewTableColumnTypes';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,eAAe,OAAO,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,eAAe,OAAO,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export { default as ScriptEditorUtils } from "./notebook/ScriptEditorUtils.js";
|
|
|
12
12
|
export * from "./common/index.js";
|
|
13
13
|
export * from "./command-history/index.js";
|
|
14
14
|
export * from "./console-history/index.js";
|
|
15
|
+
export * from "./monaco/index.js";
|
|
15
16
|
export { default as LogView } from "./log/LogView.js";
|
|
16
17
|
export { default as HeapUsage } from "./HeapUsage.js";
|
|
17
18
|
export { default as NewTableColumnTypes } from "./csv/NewTableColumnTypes.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Console","default","ConsoleInput","SHORTCUTS","ConsoleStatusBar","MonacoUtils","Editor","ScriptEditor","ScriptEditorUtils","LogView","HeapUsage","NewTableColumnTypes"],"sources":["../src/index.ts"],"sourcesContent":["import Console from './Console';\n\nexport default Console;\nexport { Console };\nexport { default as ConsoleInput } from './ConsoleInput';\nexport { default as SHORTCUTS } from './ConsoleShortcuts';\nexport { default as ConsoleStatusBar } from './ConsoleStatusBar';\nexport * from './monaco/MonacoThemeProvider';\nexport { default as MonacoUtils } from './monaco/MonacoUtils';\nexport { default as Editor, type EditorProps } from './notebook/Editor';\nexport { default as ScriptEditor } from './notebook/ScriptEditor';\nexport { default as ScriptEditorUtils } from './notebook/ScriptEditorUtils';\nexport * from './common';\nexport * from './command-history';\nexport * from './console-history';\nexport { default as LogView } from './log/LogView';\nexport { default as HeapUsage } from './HeapUsage';\nexport { default as NewTableColumnTypes } from './csv/NewTableColumnTypes';\n"],"mappings":"OAAOA,OAAO;AAEd,eAAeA,OAAO;AACtB,SAASA,OAAO;AAAG,SACVC,OAAO,IAAIC,YAAY;AAAA,SACvBD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,gBAAgB;AAAA;AAAA,SAE3BH,OAAO,IAAII,WAAW;AAAA,SACtBJ,OAAO,IAAIK,MAAM;AAAA,SACjBL,OAAO,IAAIM,YAAY;AAAA,SACvBN,OAAO,IAAIO,iBAAiB;AAAA;AAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["Console","default","ConsoleInput","SHORTCUTS","ConsoleStatusBar","MonacoUtils","Editor","ScriptEditor","ScriptEditorUtils","LogView","HeapUsage","NewTableColumnTypes"],"sources":["../src/index.ts"],"sourcesContent":["import Console from './Console';\n\nexport default Console;\nexport { Console };\nexport { default as ConsoleInput } from './ConsoleInput';\nexport { default as SHORTCUTS } from './ConsoleShortcuts';\nexport { default as ConsoleStatusBar } from './ConsoleStatusBar';\nexport * from './monaco/MonacoThemeProvider';\nexport { default as MonacoUtils } from './monaco/MonacoUtils';\nexport { default as Editor, type EditorProps } from './notebook/Editor';\nexport { default as ScriptEditor } from './notebook/ScriptEditor';\nexport { default as ScriptEditorUtils } from './notebook/ScriptEditorUtils';\nexport * from './common';\nexport * from './command-history';\nexport * from './console-history';\nexport * from './monaco';\nexport { default as LogView } from './log/LogView';\nexport { default as HeapUsage } from './HeapUsage';\nexport { default as NewTableColumnTypes } from './csv/NewTableColumnTypes';\n"],"mappings":"OAAOA,OAAO;AAEd,eAAeA,OAAO;AACtB,SAASA,OAAO;AAAG,SACVC,OAAO,IAAIC,YAAY;AAAA,SACvBD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,gBAAgB;AAAA;AAAA,SAE3BH,OAAO,IAAII,WAAW;AAAA,SACtBJ,OAAO,IAAIK,MAAM;AAAA,SACjBL,OAAO,IAAIM,YAAY;AAAA,SACvBN,OAAO,IAAIO,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,SAK5BP,OAAO,IAAIQ,OAAO;AAAA,SAClBR,OAAO,IAAIS,SAAS;AAAA,SACpBT,OAAO,IAAIU,mBAAmB"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { PureComponent } from 'react';
|
|
5
5
|
import * as monaco from 'monaco-editor';
|
|
6
6
|
import type { dh } from '@deephaven/jsapi-types';
|
|
7
|
+
import { Workspace, type Diagnostic } from '@astral-sh/ruff-wasm-web';
|
|
7
8
|
interface MonacoProviderProps {
|
|
8
9
|
model: monaco.editor.ITextModel;
|
|
9
10
|
session: dh.IdeSession;
|
|
@@ -13,6 +14,23 @@ interface MonacoProviderProps {
|
|
|
13
14
|
* Registers a completion provider with monaco for the language and session provided.
|
|
14
15
|
*/
|
|
15
16
|
declare class MonacoProviders extends PureComponent<MonacoProviderProps, Record<string, never>> {
|
|
17
|
+
static ruffWorkspace?: Workspace;
|
|
18
|
+
static initRuffPromise?: Promise<void>;
|
|
19
|
+
static isRuffEnabled: boolean;
|
|
20
|
+
static ruffSettings: Record<string, unknown>;
|
|
21
|
+
/**
|
|
22
|
+
* Loads and initializes Ruff.
|
|
23
|
+
* Subsequent calls will return the same promise.
|
|
24
|
+
*/
|
|
25
|
+
static initRuff(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Sets ruff settings
|
|
28
|
+
* @param settings The ruff settings
|
|
29
|
+
*/
|
|
30
|
+
static setRuffSettings(settings?: Record<string, unknown>): Promise<void>;
|
|
31
|
+
static getDiagnostics(model: monaco.editor.ITextModel): Diagnostic[];
|
|
32
|
+
static lintAllPython(): void;
|
|
33
|
+
static lintPython(model: monaco.editor.ITextModel): void;
|
|
16
34
|
/**
|
|
17
35
|
* Converts LSP CompletionItemKind to Monaco CompletionItemKind
|
|
18
36
|
* Defaults to Variable if no LSP kind was provided
|
|
@@ -38,6 +56,8 @@ declare class MonacoProviders extends PureComponent<MonacoProviderProps, Record<
|
|
|
38
56
|
* @returns The corresponding LSP position
|
|
39
57
|
*/
|
|
40
58
|
static monacoToLspPosition(position: monaco.IPosition): Pick<dh.lsp.Position, 'line' | 'character'>;
|
|
59
|
+
static handlePythonCodeActionRequest(model: monaco.editor.ITextModel, range: monaco.Range): monaco.languages.ProviderResult<monaco.languages.CodeActionList>;
|
|
60
|
+
static handlePythonFormatRequest(model: monaco.editor.ITextModel, options: monaco.languages.FormattingOptions, token: monaco.CancellationToken): monaco.languages.ProviderResult<monaco.languages.TextEdit[]>;
|
|
41
61
|
constructor(props: MonacoProviderProps);
|
|
42
62
|
componentDidMount(): void;
|
|
43
63
|
componentWillUnmount(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonacoProviders.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoProviders.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"MonacoProviders.d.ts","sourceRoot":"","sources":["../../src/monaco/MonacoProviders.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
2
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
1
3
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
4
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
@@ -6,12 +8,93 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
|
|
|
6
8
|
*/
|
|
7
9
|
import { PureComponent } from 'react';
|
|
8
10
|
import * as monaco from 'monaco-editor';
|
|
11
|
+
import throttle from 'lodash.throttle';
|
|
9
12
|
import Log from '@deephaven/log';
|
|
13
|
+
import init, { Workspace } from '@astral-sh/ruff-wasm-web';
|
|
14
|
+
import RUFF_DEFAULT_SETTINGS from "./RuffDefaultSettings.js";
|
|
15
|
+
import MonacoUtils from "./MonacoUtils.js";
|
|
10
16
|
var log = Log.module('MonacoCompletionProvider');
|
|
11
17
|
/**
|
|
12
18
|
* Registers a completion provider with monaco for the language and session provided.
|
|
13
19
|
*/
|
|
14
20
|
class MonacoProviders extends PureComponent {
|
|
21
|
+
/**
|
|
22
|
+
* Loads and initializes Ruff.
|
|
23
|
+
* Subsequent calls will return the same promise.
|
|
24
|
+
*/
|
|
25
|
+
static initRuff() {
|
|
26
|
+
return _asyncToGenerator(function* () {
|
|
27
|
+
if (MonacoProviders.initRuffPromise) {
|
|
28
|
+
return MonacoProviders.initRuffPromise;
|
|
29
|
+
}
|
|
30
|
+
MonacoProviders.initRuffPromise = init({}).then(() => {
|
|
31
|
+
log.debug('Initialized Ruff', Workspace.version());
|
|
32
|
+
MonacoProviders.ruffWorkspace = new Workspace(MonacoProviders.ruffSettings);
|
|
33
|
+
MonacoProviders.lintAllPython();
|
|
34
|
+
});
|
|
35
|
+
return MonacoProviders.initRuffPromise;
|
|
36
|
+
})();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Sets ruff settings
|
|
41
|
+
* @param settings The ruff settings
|
|
42
|
+
*/
|
|
43
|
+
static setRuffSettings() {
|
|
44
|
+
var _arguments = arguments;
|
|
45
|
+
return _asyncToGenerator(function* () {
|
|
46
|
+
var settings = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : MonacoProviders.ruffSettings;
|
|
47
|
+
MonacoProviders.ruffSettings = settings;
|
|
48
|
+
|
|
49
|
+
// Ruff has not been initialized yet
|
|
50
|
+
if (MonacoProviders.ruffWorkspace == null) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
MonacoProviders.ruffWorkspace = new Workspace(settings);
|
|
54
|
+
MonacoProviders.lintAllPython();
|
|
55
|
+
})();
|
|
56
|
+
}
|
|
57
|
+
static getDiagnostics(model) {
|
|
58
|
+
if (!MonacoProviders.ruffWorkspace) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
var diagnostics = MonacoProviders.ruffWorkspace.check(model.getValue());
|
|
62
|
+
if (MonacoUtils.isConsoleModel(model)) {
|
|
63
|
+
// Only want SyntaxErrors for console which have no code
|
|
64
|
+
return diagnostics.filter(d => d.code == null);
|
|
65
|
+
}
|
|
66
|
+
return diagnostics;
|
|
67
|
+
}
|
|
68
|
+
static lintAllPython() {
|
|
69
|
+
if (!MonacoProviders.isRuffEnabled) {
|
|
70
|
+
monaco.editor.removeAllMarkers('ruff');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
monaco.editor.getModels().filter(m => m.getLanguageId() === 'python').forEach(MonacoProviders.lintPython);
|
|
74
|
+
}
|
|
75
|
+
static lintPython(model) {
|
|
76
|
+
if (!MonacoProviders.isRuffEnabled) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (!MonacoProviders.ruffWorkspace) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
monaco.editor.setModelMarkers(model, 'ruff', MonacoProviders.getDiagnostics(model).map(d => {
|
|
83
|
+
// Unused variable or import. Mark as warning and unnecessary to fade the text
|
|
84
|
+
var isUnnecessary = d.code === 'F401' || d.code === 'F841';
|
|
85
|
+
return {
|
|
86
|
+
startLineNumber: d.location.row,
|
|
87
|
+
startColumn: d.location.column,
|
|
88
|
+
endLineNumber: d.end_location.row,
|
|
89
|
+
endColumn: d.end_location.column,
|
|
90
|
+
message: d.code != null ? "".concat(d.code, ": ").concat(d.message) : d.message,
|
|
91
|
+
// SyntaxError has no code
|
|
92
|
+
severity: isUnnecessary ? monaco.MarkerSeverity.Warning : monaco.MarkerSeverity.Error,
|
|
93
|
+
tags: isUnnecessary ? [monaco.MarkerTag.Unnecessary] : []
|
|
94
|
+
};
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
|
|
15
98
|
/**
|
|
16
99
|
* Converts LSP CompletionItemKind to Monaco CompletionItemKind
|
|
17
100
|
* Defaults to Variable if no LSP kind was provided
|
|
@@ -114,6 +197,129 @@ class MonacoProviders extends PureComponent {
|
|
|
114
197
|
character: position.column - 1
|
|
115
198
|
};
|
|
116
199
|
}
|
|
200
|
+
static handlePythonCodeActionRequest(model, range) {
|
|
201
|
+
if (!MonacoProviders.ruffWorkspace) {
|
|
202
|
+
return {
|
|
203
|
+
actions: [],
|
|
204
|
+
dispose: () => {
|
|
205
|
+
/* no-op */
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
var diagnostics = MonacoProviders.getDiagnostics(model).filter(d => {
|
|
210
|
+
var diagnosticRange = new monaco.Range(d.location.row, d.location.column, d.end_location.row, d.end_location.column);
|
|
211
|
+
return diagnosticRange.intersectRanges(range);
|
|
212
|
+
});
|
|
213
|
+
var fixActions = diagnostics.filter(_ref => {
|
|
214
|
+
var {
|
|
215
|
+
fix
|
|
216
|
+
} = _ref;
|
|
217
|
+
return fix != null;
|
|
218
|
+
}).map(d => {
|
|
219
|
+
var title = 'Fix';
|
|
220
|
+
if (d.fix != null) {
|
|
221
|
+
if (d.fix.message != null && d.fix.message !== '') {
|
|
222
|
+
title = "".concat(d.code, ": ").concat(d.fix.message);
|
|
223
|
+
} else {
|
|
224
|
+
title = "Fix ".concat(d.code);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
title,
|
|
229
|
+
id: "fix-".concat(d.code),
|
|
230
|
+
kind: 'quickfix',
|
|
231
|
+
edit: d.fix ? {
|
|
232
|
+
edits: d.fix.edits.map(edit => {
|
|
233
|
+
var _edit$content;
|
|
234
|
+
return {
|
|
235
|
+
resource: model.uri,
|
|
236
|
+
versionId: model.getVersionId(),
|
|
237
|
+
textEdit: {
|
|
238
|
+
range: {
|
|
239
|
+
startLineNumber: edit.location.row,
|
|
240
|
+
startColumn: edit.location.column,
|
|
241
|
+
endLineNumber: edit.end_location.row,
|
|
242
|
+
endColumn: edit.end_location.column
|
|
243
|
+
},
|
|
244
|
+
text: (_edit$content = edit.content) !== null && _edit$content !== void 0 ? _edit$content : ''
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
})
|
|
248
|
+
} : undefined
|
|
249
|
+
};
|
|
250
|
+
});
|
|
251
|
+
var disableActions = diagnostics.map(d => {
|
|
252
|
+
var line = model.getLineContent(d.location.row);
|
|
253
|
+
var lastToken = monaco.editor.tokenize(line, model.getLanguageId())[0].at(-1);
|
|
254
|
+
var lineEdit = {
|
|
255
|
+
range: {
|
|
256
|
+
startLineNumber: d.location.row,
|
|
257
|
+
startColumn: line.length + 1,
|
|
258
|
+
endLineNumber: d.location.row,
|
|
259
|
+
endColumn: line.length + 1
|
|
260
|
+
},
|
|
261
|
+
text: " # noqa: ".concat(d.code)
|
|
262
|
+
};
|
|
263
|
+
if (lastToken != null && lastToken.type.startsWith('comment')) {
|
|
264
|
+
// Already a comment at the end of the line
|
|
265
|
+
lineEdit.text = "# noqa: ".concat(d.code, " ");
|
|
266
|
+
if (line.startsWith('# noqa:', lastToken.offset)) {
|
|
267
|
+
// Already another suppressed rule on the line
|
|
268
|
+
lineEdit.range.startColumn = lastToken.offset + 1;
|
|
269
|
+
lineEdit.range.endColumn = lastToken.offset + 9; // "# noqa: " length + 1 to offset
|
|
270
|
+
} else {
|
|
271
|
+
lineEdit.range.startColumn = lastToken.offset + 1;
|
|
272
|
+
lineEdit.range.endColumn = line.startsWith('# ', lastToken.offset) ? lastToken.offset + 3 // "# " + 1 to offset
|
|
273
|
+
: lastToken.offset + 2; // "#" + 1 to offset
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
return [{
|
|
278
|
+
title: "Disable ".concat(d.code, " for this line"),
|
|
279
|
+
kind: 'quickfix',
|
|
280
|
+
edit: {
|
|
281
|
+
edits: [{
|
|
282
|
+
resource: model.uri,
|
|
283
|
+
versionId: model.getVersionId(),
|
|
284
|
+
textEdit: lineEdit
|
|
285
|
+
}]
|
|
286
|
+
}
|
|
287
|
+
}, {
|
|
288
|
+
title: "Disable ".concat(d.code, " for this file"),
|
|
289
|
+
kind: 'quickfix',
|
|
290
|
+
edit: {
|
|
291
|
+
edits: [{
|
|
292
|
+
resource: model.uri,
|
|
293
|
+
versionId: model.getVersionId(),
|
|
294
|
+
textEdit: {
|
|
295
|
+
range: {
|
|
296
|
+
startLineNumber: 1,
|
|
297
|
+
startColumn: 1,
|
|
298
|
+
endLineNumber: 1,
|
|
299
|
+
endColumn: 1
|
|
300
|
+
},
|
|
301
|
+
text: "# ruff: noqa: ".concat(d.code, "\n")
|
|
302
|
+
}
|
|
303
|
+
}]
|
|
304
|
+
}
|
|
305
|
+
}];
|
|
306
|
+
}).flat();
|
|
307
|
+
return {
|
|
308
|
+
actions: [...fixActions, ...disableActions],
|
|
309
|
+
dispose: () => {
|
|
310
|
+
/* no-op */
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
static handlePythonFormatRequest(model, options, token) {
|
|
315
|
+
if (!MonacoProviders.ruffWorkspace) {
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
return [{
|
|
319
|
+
range: model.getFullModelRange(),
|
|
320
|
+
text: MonacoProviders.ruffWorkspace.format(model.getValue())
|
|
321
|
+
}];
|
|
322
|
+
}
|
|
117
323
|
constructor(props) {
|
|
118
324
|
super(props);
|
|
119
325
|
_defineProperty(this, "registeredCompletionProvider", void 0);
|
|
@@ -126,7 +332,8 @@ class MonacoProviders extends PureComponent {
|
|
|
126
332
|
componentDidMount() {
|
|
127
333
|
var {
|
|
128
334
|
language,
|
|
129
|
-
session
|
|
335
|
+
session,
|
|
336
|
+
model
|
|
130
337
|
} = this.props;
|
|
131
338
|
this.registeredCompletionProvider = monaco.languages.registerCompletionItemProvider(language, {
|
|
132
339
|
provideCompletionItems: this.handleCompletionRequest,
|
|
@@ -143,6 +350,17 @@ class MonacoProviders extends PureComponent {
|
|
|
143
350
|
provideHover: this.handleHoverRequest
|
|
144
351
|
});
|
|
145
352
|
}
|
|
353
|
+
if (language === 'python') {
|
|
354
|
+
if (MonacoProviders.ruffWorkspace == null) {
|
|
355
|
+
MonacoProviders.initRuff(); // This will also lint all open editors
|
|
356
|
+
} else {
|
|
357
|
+
MonacoProviders.lintPython(model);
|
|
358
|
+
}
|
|
359
|
+
var throttledLint = throttle(m => MonacoProviders.lintPython(m), 250);
|
|
360
|
+
model.onDidChangeContent(() => {
|
|
361
|
+
throttledLint(model);
|
|
362
|
+
});
|
|
363
|
+
}
|
|
146
364
|
}
|
|
147
365
|
componentWillUnmount() {
|
|
148
366
|
var _this$registeredCompl, _this$registeredSigna, _this$registeredHover;
|
|
@@ -310,5 +528,9 @@ class MonacoProviders extends PureComponent {
|
|
|
310
528
|
return null;
|
|
311
529
|
}
|
|
312
530
|
}
|
|
531
|
+
_defineProperty(MonacoProviders, "ruffWorkspace", void 0);
|
|
532
|
+
_defineProperty(MonacoProviders, "initRuffPromise", void 0);
|
|
533
|
+
_defineProperty(MonacoProviders, "isRuffEnabled", true);
|
|
534
|
+
_defineProperty(MonacoProviders, "ruffSettings", RUFF_DEFAULT_SETTINGS);
|
|
313
535
|
export default MonacoProviders;
|
|
314
536
|
//# sourceMappingURL=MonacoProviders.js.map
|