@deephaven/console 1.7.2-beta.1 → 1.7.2-react-18-alpha.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.
Files changed (97) hide show
  1. package/dist/Console.d.ts +1 -1
  2. package/dist/Console.d.ts.map +1 -1
  3. package/dist/Console.js +6 -8
  4. package/dist/Console.js.map +1 -1
  5. package/dist/ConsoleInput.js +30 -34
  6. package/dist/ConsoleInput.js.map +1 -1
  7. package/dist/ConsoleObjectsMenu.js +2 -3
  8. package/dist/ConsoleObjectsMenu.js.map +1 -1
  9. package/dist/ConsoleShortcuts.js +0 -1
  10. package/dist/ConsoleShortcuts.js.map +1 -1
  11. package/dist/ConsoleStatusBar.js +2 -3
  12. package/dist/ConsoleStatusBar.js.map +1 -1
  13. package/dist/HeapUsage.js +2 -3
  14. package/dist/HeapUsage.js.map +1 -1
  15. package/dist/command-history/CommandHistory.js +2 -3
  16. package/dist/command-history/CommandHistory.js.map +1 -1
  17. package/dist/command-history/CommandHistoryActions.js +1 -2
  18. package/dist/command-history/CommandHistoryActions.js.map +1 -1
  19. package/dist/command-history/CommandHistoryItem.d.ts +1 -6
  20. package/dist/command-history/CommandHistoryItem.d.ts.map +1 -1
  21. package/dist/command-history/CommandHistoryItem.js +5 -10
  22. package/dist/command-history/CommandHistoryItem.js.map +1 -1
  23. package/dist/command-history/CommandHistoryItemTooltip.js +2 -3
  24. package/dist/command-history/CommandHistoryItemTooltip.js.map +1 -1
  25. package/dist/command-history/CommandHistoryStorage.js.map +1 -1
  26. package/dist/command-history/CommandHistoryTypes.js.map +1 -1
  27. package/dist/command-history/CommandHistoryViewportUpdater.js.map +1 -1
  28. package/dist/command-history/index.js.map +1 -1
  29. package/dist/common/Code.js.map +1 -1
  30. package/dist/common/ConsoleConstants.js.map +1 -1
  31. package/dist/common/ConsoleUtils.js.map +1 -1
  32. package/dist/common/ObjectIcon.js.map +1 -1
  33. package/dist/common/index.js.map +1 -1
  34. package/dist/console-history/ConsoleHistory.js.map +1 -1
  35. package/dist/console-history/ConsoleHistoryItem.js +1 -2
  36. package/dist/console-history/ConsoleHistoryItem.js.map +1 -1
  37. package/dist/console-history/ConsoleHistoryItemResult.d.ts +2 -10
  38. package/dist/console-history/ConsoleHistoryItemResult.d.ts.map +1 -1
  39. package/dist/console-history/ConsoleHistoryItemResult.js +1 -6
  40. package/dist/console-history/ConsoleHistoryItemResult.js.map +1 -1
  41. package/dist/console-history/ConsoleHistoryResultErrorMessage.js +1 -3
  42. package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +1 -1
  43. package/dist/console-history/ConsoleHistoryResultInProgress.js +1 -2
  44. package/dist/console-history/ConsoleHistoryResultInProgress.js.map +1 -1
  45. package/dist/console-history/ConsoleHistoryTypes.js.map +1 -1
  46. package/dist/console-history/index.js.map +1 -1
  47. package/dist/csv/CsvFormats.js.map +1 -1
  48. package/dist/csv/CsvInputBar.js +2 -3
  49. package/dist/csv/CsvInputBar.js.map +1 -1
  50. package/dist/csv/CsvOverlay.js +5 -6
  51. package/dist/csv/CsvOverlay.js.map +1 -1
  52. package/dist/csv/CsvParser.js +4 -3
  53. package/dist/csv/CsvParser.js.map +1 -1
  54. package/dist/csv/CsvTypeParser.js.map +1 -1
  55. package/dist/csv/ZipStreamHelper.js.map +1 -1
  56. package/dist/declaration.d.js.map +1 -1
  57. package/dist/index.js.map +1 -1
  58. package/dist/log/LogLevel.js.map +1 -1
  59. package/dist/log/LogLevelMenuItem.js +1 -2
  60. package/dist/log/LogLevelMenuItem.js.map +1 -1
  61. package/dist/log/LogView.js +9 -12
  62. package/dist/log/LogView.js.map +1 -1
  63. package/dist/monaco/MonacoProviders.js +3 -4
  64. package/dist/monaco/MonacoProviders.js.map +1 -1
  65. package/dist/monaco/MonacoThemeProvider.js +1 -2
  66. package/dist/monaco/MonacoThemeProvider.js.map +1 -1
  67. package/dist/monaco/MonacoUtils.js +1 -1
  68. package/dist/monaco/MonacoUtils.js.map +1 -1
  69. package/dist/monaco/RuffDefaultSettings.js +0 -1
  70. package/dist/monaco/RuffDefaultSettings.js.map +1 -1
  71. package/dist/monaco/RuffSettingsModal.js +5 -7
  72. package/dist/monaco/RuffSettingsModal.js.map +1 -1
  73. package/dist/monaco/index.js.map +1 -1
  74. package/dist/monaco/lang/Language.js.map +1 -1
  75. package/dist/monaco/lang/db.js +0 -1
  76. package/dist/monaco/lang/db.js.map +1 -1
  77. package/dist/monaco/lang/groovy.js +0 -1
  78. package/dist/monaco/lang/groovy.js.map +1 -1
  79. package/dist/monaco/lang/log.js.map +1 -1
  80. package/dist/monaco/lang/python.js +0 -1
  81. package/dist/monaco/lang/python.js.map +1 -1
  82. package/dist/monaco/lang/scala.js.map +1 -1
  83. package/dist/monaco/ruffSchema.js.map +1 -1
  84. package/dist/notebook/Editor.js +1 -1
  85. package/dist/notebook/Editor.js.map +1 -1
  86. package/dist/notebook/ScriptEditor.js +1 -3
  87. package/dist/notebook/ScriptEditor.js.map +1 -1
  88. package/dist/notebook/ScriptEditorUtils.js.map +1 -1
  89. package/package.json +14 -15
  90. package/dist/ConsolePropTypes.d.ts +0 -9
  91. package/dist/ConsolePropTypes.d.ts.map +0 -1
  92. package/dist/ConsolePropTypes.js +0 -10
  93. package/dist/ConsolePropTypes.js.map +0 -1
  94. package/dist/StoragePropTypes.d.ts +0 -14
  95. package/dist/StoragePropTypes.d.ts.map +0 -1
  96. package/dist/StoragePropTypes.js +0 -16
  97. package/dist/StoragePropTypes.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MonacoUtils.js","names":["nanoid","throttle","resolveCssVariablesInRecord","assertNotNull","find","linkifyFind","monaco","KeyCodeUtils","Log","MonacoThemeRaw","PyLang","GroovyLang","ScalaLang","DbLang","LogLang","MonacoProviders","log","module","CONSOLE_URI_PREFIX","MonacoUtils","init","getWorker","arguments","length","undefined","debug","registerGetWorker","initTheme","registerLanguages","languages","onLanguage","registerCodeActionProvider","provideCodeActions","handlePythonCodeActionRequest","providedCodeActionKinds","registerDocumentFormattingEditProvider","provideDocumentFormattingEdits","handlePythonFormatRequest","editor","onDidCreateModel","model","getLanguageId","ruffWorkspace","lintPython","throttledLint","m","onDidChangeContent","removeConflictingKeybindings","_MonacoTheme$logErro","_MonacoTheme$logErro2","removeHashtag","MonacoTheme","debug2","dhDarkRules","token","foreground","string","keyword","delimiter","comment","number","storage","identifier","operator","predefined","substring","dhDarkColors","errorForeground","background","focusBorder","defineTheme","base","inherit","rules","colors","setTheme","err","error","window","MonacoEnvironment","_objectSpread","color","_color$substring","languageIds","map","_ref","id","getLanguages","filter","_ref2","includes","forEach","languageParam","language","registerLanguage","register","setLanguageConfiguration","conf","setMonarchTokensProvider","setEOL","_editor$getModel","eolSequence","EndOfLineSequence","LF","getModel","openDocument","session","didOpenDocumentParams","textDocument","uri","concat","languageId","version","getVersionId","text","getValue","dispose","onDidChangeModelContent","changedEvent","changes","versionId","contentChanges","i","change","range","rangeLength","contentChange","start","line","startLineNumber","character","startColumn","end","endLineNumber","endColumn","push","didChangeDocumentParams","changeDocument","closeDocument","didCloseDocumentParams","registerPasteHandler","onDidPaste","pasteEvent","smartQuotes","invalidChars","invalidSpaces","editorModel","pastedText","getValueInRange","test","applyEdits","replace","isMacPlatform","platform","navigator","startsWith","addKeybindingRule","keybinding","KeyMod","CtrlCmd","KeyCode","KeyD","command","KeyH","disableKeyBindings","keybindings","addAction","label","run","getMonacoKeyCodeFromShortcut","shortcut","keyState","keyValue","isMac","metaKey","shiftKey","Shift","altKey","Alt","ctrlKey","WinCtrl","fromString","provideLinks","newTokens","_loop","lineText","getLineContent","originalTokens","tokens","type","value","url","href","Range","getLineCount","links","generateConsoleUri","Uri","parse","isConsoleModel","toString","canFormat","_editor$getAction","getAction","isSupported","formatDocument","_asyncToGenerator","_editor$getAction2"],"sources":["../../src/monaco/MonacoUtils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { nanoid } from 'nanoid';\nimport throttle from 'lodash.throttle';\n/**\n * Exports a function for initializing monaco with the deephaven theme/config\n */\nimport {\n resolveCssVariablesInRecord,\n type Shortcut,\n} from '@deephaven/components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport { find as linkifyFind } from 'linkifyjs';\nimport * as monaco from 'monaco-editor';\nimport type { Environment } from 'monaco-editor';\n// @ts-ignore\nimport { KeyCodeUtils } from 'monaco-editor/esm/vs/base/common/keyCodes.js';\nimport Log from '@deephaven/log';\nimport MonacoThemeRaw from './MonacoTheme.module.scss';\nimport PyLang from './lang/python';\nimport GroovyLang from './lang/groovy';\nimport ScalaLang from './lang/scala';\nimport DbLang from './lang/db';\nimport LogLang from './lang/log';\nimport { type Language } from './lang/Language';\nimport MonacoProviders from './MonacoProviders';\n\nconst log = Log.module('MonacoUtils');\n\nconst CONSOLE_URI_PREFIX = 'inmemory://dh-console/';\n\ndeclare global {\n interface Window {\n MonacoEnvironment?: Environment;\n }\n}\n\nclass MonacoUtils {\n /**\n * Initializes Monaco for the environment\n * @param getWorker The getWorker function Monaco should use\n * The workers should be provided by the caller and bundled by their build system (e.g. Vite, Webpack)\n */\n static init({\n getWorker,\n }: { getWorker?: Environment['getWorker'] } = {}): void {\n log.debug('Initializing Monaco...');\n\n if (getWorker !== undefined) {\n MonacoUtils.registerGetWorker(getWorker);\n }\n\n const { initTheme, registerLanguages } = MonacoUtils;\n\n initTheme();\n\n registerLanguages([DbLang, PyLang, GroovyLang, LogLang, ScalaLang]);\n\n monaco.languages.onLanguage('python', () => {\n monaco.languages.registerCodeActionProvider(\n 'python',\n {\n provideCodeActions: MonacoProviders.handlePythonCodeActionRequest,\n },\n { providedCodeActionKinds: ['quickfix'] }\n );\n\n monaco.languages.registerDocumentFormattingEditProvider('python', {\n provideDocumentFormattingEdits:\n MonacoProviders.handlePythonFormatRequest,\n });\n });\n\n monaco.editor.onDidCreateModel(model => {\n // Lint Python models on creation and on change\n if (model.getLanguageId() === 'python') {\n if (MonacoProviders.ruffWorkspace != null) {\n MonacoProviders.lintPython(model);\n }\n\n const throttledLint = throttle(\n (m: monaco.editor.ITextModel) => MonacoProviders.lintPython(m),\n 250\n );\n\n model.onDidChangeContent(() => {\n throttledLint(model);\n });\n }\n });\n\n MonacoUtils.removeConflictingKeybindings();\n\n log.debug('Monaco initialized.');\n }\n\n /**\n * Initialize current Monaco theme based on the current DH theme.\n */\n static initTheme(): void {\n const { removeHashtag } = MonacoUtils;\n\n const MonacoTheme = resolveCssVariablesInRecord(MonacoThemeRaw);\n log.debug2('Monaco theme:', MonacoThemeRaw);\n log.debug2('Monaco theme derived:', MonacoTheme);\n\n const dhDarkRules = [\n { token: '', foreground: removeHashtag(MonacoTheme.foreground) },\n { token: 'string', foreground: removeHashtag(MonacoTheme.string) },\n {\n token: 'string.delim',\n foreground: removeHashtag(MonacoTheme['string-delim']),\n },\n { token: 'keyword', foreground: removeHashtag(MonacoTheme.keyword) },\n {\n token: 'identifier.js',\n foreground: removeHashtag(MonacoTheme['identifier-js']),\n },\n {\n token: 'delimiter',\n foreground: removeHashtag(MonacoTheme.delimiter),\n },\n { token: 'comment', foreground: removeHashtag(MonacoTheme.comment) },\n { token: 'number', foreground: removeHashtag(MonacoTheme.number) },\n { token: 'storage', foreground: removeHashtag(MonacoTheme.storage) },\n {\n token: 'identifier',\n foreground: removeHashtag(MonacoTheme.identifier),\n },\n {\n token: 'namespace.identifier',\n foreground: removeHashtag(MonacoTheme['namespace-identifier']),\n },\n { token: 'operator', foreground: removeHashtag(MonacoTheme.operator) },\n {\n token: 'predefined',\n foreground: removeHashtag(MonacoTheme.predefined),\n },\n {\n token: 'error.log',\n foreground: MonacoTheme['log-error']?.substring(1) ?? '',\n },\n {\n token: 'warn.log',\n foreground: removeHashtag(MonacoTheme['log-warn']),\n },\n {\n token: 'info.log',\n foreground: removeHashtag(MonacoTheme['log-info']),\n },\n {\n token: 'stdout.log',\n foreground: removeHashtag(MonacoTheme['log-stdout']),\n },\n {\n token: 'trace.log',\n foreground: removeHashtag(MonacoTheme['log-trace']),\n },\n {\n token: 'debug.log',\n foreground: removeHashtag(MonacoTheme['log-debug']),\n },\n {\n token: 'date.log',\n foreground: removeHashtag(MonacoTheme['log-date']),\n },\n ];\n\n const dhDarkColors = {\n foreground: MonacoTheme.foreground,\n errorForeground: MonacoTheme['error-foreground'],\n 'inputOption.activeBorder': MonacoTheme['input-option-active-border'],\n 'editor.background': MonacoTheme.background,\n 'editor.foreground': MonacoTheme.foreground,\n 'editor.lineHighlightBackground':\n MonacoTheme['editor-line-highlight-background'],\n 'editorLineNumber.foreground':\n MonacoTheme['editor-line-number-foreground'],\n 'editorLineNumber.activeForeground':\n MonacoTheme['editor-line-number-active-foreground'],\n 'editor.selectionBackground': MonacoTheme['editor-selection-background'],\n 'editor.inactiveSelectionBackground':\n MonacoTheme['editor-inactive-selection-background'],\n 'editor.selectionHighlightBackground':\n MonacoTheme['editor-selection-highlight-background'],\n 'editor.wordHighlightBackground':\n MonacoTheme['editor-word-highlight-background'],\n 'editor.findMatchBackground': MonacoTheme['editor-find-match-background'],\n 'editor.findMatchHighlightBackground':\n MonacoTheme['editor-find-match-highlight-background'],\n 'editorSuggestWidget.background':\n MonacoTheme['editor-suggest-widget-background'],\n 'editorSuggestWidget.border': MonacoTheme['editor-suggest-widget-border'],\n 'editorSuggestWidget.foreground':\n MonacoTheme['editor-suggest-widget-foreground'],\n 'editorSuggestWidget.selectedBackground':\n MonacoTheme['editor-suggest-widget-selected-background'],\n 'list.activeSelectionBackground':\n MonacoTheme['editor-suggest-widget-selected-background'],\n 'editorSuggestWidget.selectedForeground':\n MonacoTheme['editor-suggest-widget-selected-foreground'],\n 'list.activeSelectionForeground':\n MonacoTheme['editor-suggest-widget-selected-foreground'],\n 'editorSuggestWidget.highlightForeground':\n MonacoTheme['editor-suggest-widget-highlightForeground'],\n 'editorSuggestWidget.focusHighlightForeground':\n MonacoTheme['editor-suggest-widget-focus-highlight-foreground'],\n 'list.hoverBackground': MonacoTheme['list-hover-background'],\n 'dropdown.background': MonacoTheme['context-menu-background'],\n 'dropdown.foreground': MonacoTheme['context-menu-foreground'],\n 'menu.selectionBackground': MonacoTheme['menu-selection-background'],\n 'menu.selectionForeground': MonacoTheme['menu-selection-foreground'],\n 'keybindingLabel.foreground': MonacoTheme['menu-selection-foreground'],\n 'list.focusBackground': MonacoTheme['menu-selection-background'],\n 'editorWidget.background': MonacoTheme['editor-widget-background'],\n 'inputOption.activeBackground':\n MonacoTheme['input-option-active-background'],\n 'inputOption.activeForeground':\n MonacoTheme['input-option-active-foreground'],\n focusBorder: MonacoTheme['focus-border'],\n 'input.background': MonacoTheme['input-background'],\n 'input.foreground': MonacoTheme['input-foreground'],\n 'input.border': MonacoTheme['input-border'],\n 'textLink.foreground': MonacoTheme['text-link-foreground'],\n 'textLink.activeForeground': MonacoTheme['text-link-active-foreground'],\n 'editorLink.activeForeground':\n MonacoTheme['editor-link-active-foreground'],\n 'editorBracketHighlight.foreground1':\n MonacoTheme['editor-bracket-foreground1'],\n 'editorBracketHighlight.foreground2':\n MonacoTheme['editor-bracket-foreground2'],\n 'editorBracketHighlight.foreground3':\n MonacoTheme['editor-bracket-foreground3'],\n 'editorBracketHighlight.foreground4':\n MonacoTheme['editor-bracket-foreground4'],\n 'editorBracketHighlight.foreground5':\n MonacoTheme['editor-bracket-foreground5'],\n 'editorBracketHighlight.foreground6':\n MonacoTheme['editor-bracket-foreground6'],\n 'editorBracketHighlight.unexpectedBracket.foreground':\n MonacoTheme['editor-unexpected-bracket-foreground'],\n };\n\n monaco.editor.defineTheme('dh-dark', {\n base: 'vs-dark',\n inherit: true,\n rules: dhDarkRules,\n colors: dhDarkColors,\n });\n\n try {\n monaco.editor.setTheme('dh-dark');\n } catch (err) {\n log.error(\n `Failed to set 'dh-dark' Monaco theme, falling back to vs-dark`,\n err\n );\n monaco.editor.setTheme('vs-dark');\n }\n }\n\n /**\n * Register the getWorker function for Monaco\n * @param getWorker The getWorker function for Monaco\n */\n static registerGetWorker(getWorker: Environment['getWorker']): void {\n window.MonacoEnvironment = {\n ...window.MonacoEnvironment,\n getWorker,\n };\n }\n\n /**\n * Remove the hashtag prefix from a CSS color string.\n * Monaco expects colors to be the value only, no hashtag.\n * @param color The hex color string to remove the hashtag from, eg. '#ffffff'\n */\n static removeHashtag(color?: string): string {\n return color?.substring(1) ?? '';\n }\n\n static registerLanguages(languages: Language[]): void {\n // First override the default loader for any language we have a custom definition for\n // https://github.com/Microsoft/monaco-editor/issues/252#issuecomment-482786867\n const languageIds = languages.map(({ id }) => id);\n monaco.languages\n .getLanguages()\n .filter(({ id }) => languageIds.includes(id))\n .forEach(languageParam => {\n const language = languageParam;\n log.debug2('Overriding default language loader:', language.id);\n });\n\n // Then register our language definitions\n languages.forEach(language => {\n MonacoUtils.registerLanguage(language);\n });\n }\n\n static registerLanguage(language: Language): void {\n log.debug2('Registering language: ', language.id);\n monaco.languages.register(language);\n\n monaco.languages.onLanguage(language.id, () => {\n monaco.languages.setLanguageConfiguration(language.id, language.conf);\n monaco.languages.setMonarchTokensProvider(language.id, language.language);\n });\n }\n\n /**\n * Set EOL preference for the editor\n * @param editor The editor to set the EOL for\n * @param eolSequence EOL sequence\n */\n static setEOL(\n editor: monaco.editor.IStandaloneCodeEditor,\n eolSequence = monaco.editor.EndOfLineSequence.LF\n ): void {\n editor.getModel()?.setEOL(eolSequence);\n }\n\n /**\n * Links an editor with a provided session to provide completion items.\n * @param session The IdeSession to link\n * @param editor The editor to link the session to\n * @returns A cleanup function for disposing of the created listeners\n */\n static openDocument(\n editor: monaco.editor.IStandaloneCodeEditor,\n session: dh.IdeSession\n ): monaco.IDisposable {\n const model = editor.getModel();\n assertNotNull(model);\n const didOpenDocumentParams = {\n textDocument: {\n uri: `${model.uri}`,\n languageId: model.getLanguageId(),\n version: model.getVersionId(),\n text: model.getValue(),\n },\n };\n log.debug2('didOpenDocumentParams: ', didOpenDocumentParams);\n\n session.openDocument(didOpenDocumentParams);\n\n const dispose = editor.onDidChangeModelContent(changedEvent => {\n const { changes, versionId } = changedEvent;\n\n const contentChanges = [];\n for (let i = 0; i < changes.length; i += 1) {\n const change = changes[i];\n const { range, rangeLength, text } = change;\n const contentChange = {\n range: {\n start: {\n line: range.startLineNumber - 1,\n character: range.startColumn - 1,\n },\n end: {\n line: range.endLineNumber - 1,\n character: range.endColumn - 1,\n },\n },\n rangeLength,\n text,\n };\n\n contentChanges.push(contentChange);\n }\n\n if (contentChanges.length > 0) {\n const didChangeDocumentParams = {\n textDocument: {\n version: versionId,\n uri: `${model.uri}`,\n },\n contentChanges,\n };\n log.debug2('didChangeDocumentParams', didChangeDocumentParams);\n session.changeDocument(didChangeDocumentParams);\n }\n });\n\n return dispose;\n }\n\n static closeDocument(\n editor: monaco.editor.IStandaloneCodeEditor,\n session: dh.IdeSession\n ): void {\n const model = editor.getModel();\n assertNotNull(model);\n const didCloseDocumentParams = {\n textDocument: {\n uri: `${model.uri}`,\n },\n };\n session.closeDocument(didCloseDocumentParams);\n }\n\n /**\n * Register a paste handle to clean up any garbage code pasted.\n * Most of this comes from copying from Slack, which has a bad habit of injecting their own characters in your code snippets.\n * I've emailed Slack about the issue and they're working on it. I can't reference a ticket number because their ticket system is entirely internally facing.\n * @param editor The editor the register the paste handler for\n */\n static registerPasteHandler(\n editor: monaco.editor.IStandaloneCodeEditor\n ): void {\n editor.onDidPaste(pasteEvent => {\n const smartQuotes = /“|”/g;\n const invalidChars = /\\u200b/g; // zero width space\n const invalidSpaces = /\\u00A0/g; // non-breaking space\n const editorModel = editor.getModel();\n assertNotNull(editorModel);\n const pastedText = editorModel.getValueInRange(pasteEvent.range);\n if (\n smartQuotes.test(pastedText) ||\n invalidChars.test(pastedText) ||\n invalidSpaces.test(pastedText)\n ) {\n editorModel.applyEdits([\n {\n range: pasteEvent.range,\n text: pastedText\n .replace(smartQuotes, '\"')\n .replace(invalidChars, '')\n .replace(invalidSpaces, ' '),\n },\n ]);\n }\n });\n }\n\n static isMacPlatform(): boolean {\n const { platform } = window.navigator;\n return platform.startsWith('Mac');\n }\n\n /**\n * Remove any keybindings which are used for our own shortcuts.\n * This allows the key events to bubble up so a component higher up can capture\n * them. Note that this is a global configuration, so all editor instances will\n * be impacted.\n */\n static removeConflictingKeybindings(): void {\n // All editor instances share a global keybinding registry which is where\n // default keybindings are set. There doesn't appear to be a way to remove\n // default bindings, but we can add new ones that will override the existing\n // ones and set `command` to null. This will treat the key events as unhandled\n // and allow them to bubble up.\n monaco.editor.addKeybindingRule(\n // Restart console in Enterprise (see Shortcuts.ts)\n {\n /* eslint-disable-next-line no-bitwise */\n keybinding: monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyD,\n command: null,\n }\n );\n\n // Ctrl+H is used to focus Community console history in Windows + Linux.\n // An alternate shortcut is used for Mac, so no need to override it\n // (See ConsoleShortcuts.ts)\n if (!MonacoUtils.isMacPlatform()) {\n monaco.editor.addKeybindingRule({\n /* eslint-disable-next-line no-bitwise */\n keybinding: monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyH,\n command: null,\n });\n }\n }\n\n /**\n * Creates actions with a `noop` run function to disable specified keybindings.\n * Note that this will swallow the events. To disable default keybindings in a\n * way that allows events to propagate upward, see `removeConflictingKeybindings`\n * @param editor Editor to disable keybindings for\n * @param keybindings List of monaco keybindings to disable. Often a bitwise\n * combination like `monaco.KeyMod.Alt | monaco.KeyMod.KeyJ`\n */\n static disableKeyBindings(\n editor: monaco.editor.IStandaloneCodeEditor,\n keybindings: number[]\n ): void {\n editor.addAction({\n // This shouldn't be referenced by anything so using an arbitrary unique id\n id: `disable-keybindings-${nanoid()}`,\n label: '', // This action won't be shown in the UI so no need for a label\n keybindings,\n run: () => undefined,\n });\n }\n\n static getMonacoKeyCodeFromShortcut(shortcut: Shortcut): number {\n const { keyState } = shortcut;\n const { keyValue } = keyState;\n if (keyValue === null) {\n return 0;\n }\n\n const isMac = MonacoUtils.isMacPlatform();\n\n if (isMac) {\n return (\n // eslint-disable-next-line no-bitwise\n (keyState.metaKey ? monaco.KeyMod.CtrlCmd : 0) |\n (keyState.shiftKey ? monaco.KeyMod.Shift : 0) |\n (keyState.altKey ? monaco.KeyMod.Alt : 0) |\n (keyState.ctrlKey ? monaco.KeyMod.WinCtrl : 0) |\n KeyCodeUtils.fromString(keyValue)\n );\n }\n\n return (\n // eslint-disable-next-line no-bitwise\n (keyState.ctrlKey ? monaco.KeyMod.CtrlCmd : 0) |\n (keyState.shiftKey ? monaco.KeyMod.Shift : 0) |\n (keyState.altKey ? monaco.KeyMod.Alt : 0) |\n (keyState.metaKey ? monaco.KeyMod.WinCtrl : 0) |\n KeyCodeUtils.fromString(keyValue)\n );\n }\n\n static provideLinks(model: monaco.editor.ITextModel): {\n links: monaco.languages.ILink[];\n } {\n const newTokens: monaco.languages.ILink[] = [];\n\n for (let i = 1; i <= model.getLineCount(); i += 1) {\n const lineText = model.getLineContent(i);\n const originalTokens = linkifyFind(lineText);\n\n const tokens = originalTokens.filter(token => {\n if (token.type === 'url') {\n return /^https?:\\/\\//.test(token.value);\n }\n return true;\n });\n // map the tokens to the ranges - you know the line number now, use the token start/end as the startColumn/endColumn\n tokens.forEach(token => {\n newTokens.push({\n url: token.href,\n range: new monaco.Range(i, token.start + 1, i, token.end + 1),\n });\n });\n }\n\n return {\n links: newTokens,\n };\n }\n\n /**\n * Generates a console URI for use with monaco.\n * @returns A new console URI\n */\n static generateConsoleUri(): monaco.Uri {\n return monaco.Uri.parse(`${CONSOLE_URI_PREFIX}${nanoid()}`);\n }\n\n /**\n * Checks if a model is a console model based on its URI.\n * @param model The monaco model to check\n * @returns If the model is a console model\n */\n static isConsoleModel(model: monaco.editor.ITextModel): boolean {\n return model.uri.toString().startsWith(CONSOLE_URI_PREFIX);\n }\n\n /**\n * Checks if the editor has the formatDocument action registered.\n * @param editor The monaco editor to check\n * @returns If the editor has a document formatter registered\n */\n static canFormat(editor: monaco.editor.IStandaloneCodeEditor): boolean {\n return (\n editor.getAction('editor.action.formatDocument')?.isSupported() === true\n );\n }\n\n /**\n * Runs the formatDocument action on the editor.\n * @param editor The editor to format\n */\n static async formatDocument(\n editor: monaco.editor.IStandaloneCodeEditor\n ): Promise<void> {\n await editor.getAction('editor.action.formatDocument')?.run();\n }\n}\n\nexport default MonacoUtils;\n"],"mappings":"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"}
1
+ {"version":3,"file":"MonacoUtils.js","names":["nanoid","throttle","resolveCssVariablesInRecord","assertNotNull","find","linkifyFind","monaco","KeyCodeUtils","Log","MonacoThemeRaw","PyLang","GroovyLang","ScalaLang","DbLang","LogLang","MonacoProviders","log","module","CONSOLE_URI_PREFIX","MonacoUtils","init","getWorker","arguments","length","undefined","debug","registerGetWorker","initTheme","registerLanguages","languages","onLanguage","registerCodeActionProvider","provideCodeActions","handlePythonCodeActionRequest","providedCodeActionKinds","registerDocumentFormattingEditProvider","provideDocumentFormattingEdits","handlePythonFormatRequest","editor","onDidCreateModel","model","getLanguageId","ruffWorkspace","lintPython","throttledLint","m","onDidChangeContent","removeConflictingKeybindings","_MonacoTheme$logErro","_MonacoTheme$logErro2","removeHashtag","MonacoTheme","debug2","dhDarkRules","token","foreground","string","keyword","delimiter","comment","number","storage","identifier","operator","predefined","substring","dhDarkColors","errorForeground","background","focusBorder","defineTheme","base","inherit","rules","colors","setTheme","err","error","window","MonacoEnvironment","_objectSpread","color","_color$substring","languageIds","map","_ref","id","getLanguages","filter","_ref2","includes","forEach","languageParam","language","registerLanguage","register","setLanguageConfiguration","conf","setMonarchTokensProvider","setEOL","_editor$getModel","eolSequence","EndOfLineSequence","LF","getModel","openDocument","session","didOpenDocumentParams","textDocument","uri","concat","languageId","version","getVersionId","text","getValue","dispose","onDidChangeModelContent","changedEvent","changes","versionId","contentChanges","i","change","range","rangeLength","contentChange","start","line","startLineNumber","character","startColumn","end","endLineNumber","endColumn","push","didChangeDocumentParams","changeDocument","closeDocument","didCloseDocumentParams","registerPasteHandler","onDidPaste","pasteEvent","smartQuotes","invalidChars","invalidSpaces","editorModel","pastedText","getValueInRange","test","applyEdits","replace","isMacPlatform","platform","navigator","startsWith","addKeybindingRule","keybinding","KeyMod","CtrlCmd","KeyCode","KeyD","command","KeyH","disableKeyBindings","keybindings","addAction","label","run","getMonacoKeyCodeFromShortcut","shortcut","keyState","keyValue","isMac","metaKey","shiftKey","Shift","altKey","Alt","ctrlKey","WinCtrl","fromString","provideLinks","newTokens","_loop","lineText","getLineContent","originalTokens","tokens","type","value","url","href","Range","getLineCount","links","generateConsoleUri","Uri","parse","isConsoleModel","toString","canFormat","_editor$getAction","getAction","isSupported","formatDocument","_asyncToGenerator","_editor$getAction2"],"sources":["../../src/monaco/MonacoUtils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { nanoid } from 'nanoid';\nimport throttle from 'lodash.throttle';\n/**\n * Exports a function for initializing monaco with the deephaven theme/config\n */\nimport {\n resolveCssVariablesInRecord,\n type Shortcut,\n} from '@deephaven/components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport { find as linkifyFind } from 'linkifyjs';\nimport * as monaco from 'monaco-editor';\nimport type { Environment } from 'monaco-editor';\n// @ts-ignore\nimport { KeyCodeUtils } from 'monaco-editor/esm/vs/base/common/keyCodes.js';\nimport Log from '@deephaven/log';\nimport MonacoThemeRaw from './MonacoTheme.module.scss';\nimport PyLang from './lang/python';\nimport GroovyLang from './lang/groovy';\nimport ScalaLang from './lang/scala';\nimport DbLang from './lang/db';\nimport LogLang from './lang/log';\nimport { type Language } from './lang/Language';\nimport MonacoProviders from './MonacoProviders';\n\nconst log = Log.module('MonacoUtils');\n\nconst CONSOLE_URI_PREFIX = 'inmemory://dh-console/';\n\ndeclare global {\n interface Window {\n MonacoEnvironment?: Environment;\n }\n}\n\nclass MonacoUtils {\n /**\n * Initializes Monaco for the environment\n * @param getWorker The getWorker function Monaco should use\n * The workers should be provided by the caller and bundled by their build system (e.g. Vite, Webpack)\n */\n static init({\n getWorker,\n }: { getWorker?: Environment['getWorker'] } = {}): void {\n log.debug('Initializing Monaco...');\n\n if (getWorker !== undefined) {\n MonacoUtils.registerGetWorker(getWorker);\n }\n\n const { initTheme, registerLanguages } = MonacoUtils;\n\n initTheme();\n\n registerLanguages([DbLang, PyLang, GroovyLang, LogLang, ScalaLang]);\n\n monaco.languages.onLanguage('python', () => {\n monaco.languages.registerCodeActionProvider(\n 'python',\n {\n provideCodeActions: MonacoProviders.handlePythonCodeActionRequest,\n },\n { providedCodeActionKinds: ['quickfix'] }\n );\n\n monaco.languages.registerDocumentFormattingEditProvider('python', {\n provideDocumentFormattingEdits:\n MonacoProviders.handlePythonFormatRequest,\n });\n });\n\n monaco.editor.onDidCreateModel(model => {\n // Lint Python models on creation and on change\n if (model.getLanguageId() === 'python') {\n if (MonacoProviders.ruffWorkspace != null) {\n MonacoProviders.lintPython(model);\n }\n\n const throttledLint = throttle(\n (m: monaco.editor.ITextModel) => MonacoProviders.lintPython(m),\n 250\n );\n\n model.onDidChangeContent(() => {\n throttledLint(model);\n });\n }\n });\n\n MonacoUtils.removeConflictingKeybindings();\n\n log.debug('Monaco initialized.');\n }\n\n /**\n * Initialize current Monaco theme based on the current DH theme.\n */\n static initTheme(): void {\n const { removeHashtag } = MonacoUtils;\n\n const MonacoTheme = resolveCssVariablesInRecord(MonacoThemeRaw);\n log.debug2('Monaco theme:', MonacoThemeRaw);\n log.debug2('Monaco theme derived:', MonacoTheme);\n\n const dhDarkRules = [\n { token: '', foreground: removeHashtag(MonacoTheme.foreground) },\n { token: 'string', foreground: removeHashtag(MonacoTheme.string) },\n {\n token: 'string.delim',\n foreground: removeHashtag(MonacoTheme['string-delim']),\n },\n { token: 'keyword', foreground: removeHashtag(MonacoTheme.keyword) },\n {\n token: 'identifier.js',\n foreground: removeHashtag(MonacoTheme['identifier-js']),\n },\n {\n token: 'delimiter',\n foreground: removeHashtag(MonacoTheme.delimiter),\n },\n { token: 'comment', foreground: removeHashtag(MonacoTheme.comment) },\n { token: 'number', foreground: removeHashtag(MonacoTheme.number) },\n { token: 'storage', foreground: removeHashtag(MonacoTheme.storage) },\n {\n token: 'identifier',\n foreground: removeHashtag(MonacoTheme.identifier),\n },\n {\n token: 'namespace.identifier',\n foreground: removeHashtag(MonacoTheme['namespace-identifier']),\n },\n { token: 'operator', foreground: removeHashtag(MonacoTheme.operator) },\n {\n token: 'predefined',\n foreground: removeHashtag(MonacoTheme.predefined),\n },\n {\n token: 'error.log',\n foreground: MonacoTheme['log-error']?.substring(1) ?? '',\n },\n {\n token: 'warn.log',\n foreground: removeHashtag(MonacoTheme['log-warn']),\n },\n {\n token: 'info.log',\n foreground: removeHashtag(MonacoTheme['log-info']),\n },\n {\n token: 'stdout.log',\n foreground: removeHashtag(MonacoTheme['log-stdout']),\n },\n {\n token: 'trace.log',\n foreground: removeHashtag(MonacoTheme['log-trace']),\n },\n {\n token: 'debug.log',\n foreground: removeHashtag(MonacoTheme['log-debug']),\n },\n {\n token: 'date.log',\n foreground: removeHashtag(MonacoTheme['log-date']),\n },\n ];\n\n const dhDarkColors = {\n foreground: MonacoTheme.foreground,\n errorForeground: MonacoTheme['error-foreground'],\n 'inputOption.activeBorder': MonacoTheme['input-option-active-border'],\n 'editor.background': MonacoTheme.background,\n 'editor.foreground': MonacoTheme.foreground,\n 'editor.lineHighlightBackground':\n MonacoTheme['editor-line-highlight-background'],\n 'editorLineNumber.foreground':\n MonacoTheme['editor-line-number-foreground'],\n 'editorLineNumber.activeForeground':\n MonacoTheme['editor-line-number-active-foreground'],\n 'editor.selectionBackground': MonacoTheme['editor-selection-background'],\n 'editor.inactiveSelectionBackground':\n MonacoTheme['editor-inactive-selection-background'],\n 'editor.selectionHighlightBackground':\n MonacoTheme['editor-selection-highlight-background'],\n 'editor.wordHighlightBackground':\n MonacoTheme['editor-word-highlight-background'],\n 'editor.findMatchBackground': MonacoTheme['editor-find-match-background'],\n 'editor.findMatchHighlightBackground':\n MonacoTheme['editor-find-match-highlight-background'],\n 'editorSuggestWidget.background':\n MonacoTheme['editor-suggest-widget-background'],\n 'editorSuggestWidget.border': MonacoTheme['editor-suggest-widget-border'],\n 'editorSuggestWidget.foreground':\n MonacoTheme['editor-suggest-widget-foreground'],\n 'editorSuggestWidget.selectedBackground':\n MonacoTheme['editor-suggest-widget-selected-background'],\n 'list.activeSelectionBackground':\n MonacoTheme['editor-suggest-widget-selected-background'],\n 'editorSuggestWidget.selectedForeground':\n MonacoTheme['editor-suggest-widget-selected-foreground'],\n 'list.activeSelectionForeground':\n MonacoTheme['editor-suggest-widget-selected-foreground'],\n 'editorSuggestWidget.highlightForeground':\n MonacoTheme['editor-suggest-widget-highlightForeground'],\n 'editorSuggestWidget.focusHighlightForeground':\n MonacoTheme['editor-suggest-widget-focus-highlight-foreground'],\n 'list.hoverBackground': MonacoTheme['list-hover-background'],\n 'dropdown.background': MonacoTheme['context-menu-background'],\n 'dropdown.foreground': MonacoTheme['context-menu-foreground'],\n 'menu.selectionBackground': MonacoTheme['menu-selection-background'],\n 'menu.selectionForeground': MonacoTheme['menu-selection-foreground'],\n 'keybindingLabel.foreground': MonacoTheme['menu-selection-foreground'],\n 'list.focusBackground': MonacoTheme['menu-selection-background'],\n 'editorWidget.background': MonacoTheme['editor-widget-background'],\n 'inputOption.activeBackground':\n MonacoTheme['input-option-active-background'],\n 'inputOption.activeForeground':\n MonacoTheme['input-option-active-foreground'],\n focusBorder: MonacoTheme['focus-border'],\n 'input.background': MonacoTheme['input-background'],\n 'input.foreground': MonacoTheme['input-foreground'],\n 'input.border': MonacoTheme['input-border'],\n 'textLink.foreground': MonacoTheme['text-link-foreground'],\n 'textLink.activeForeground': MonacoTheme['text-link-active-foreground'],\n 'editorLink.activeForeground':\n MonacoTheme['editor-link-active-foreground'],\n 'editorBracketHighlight.foreground1':\n MonacoTheme['editor-bracket-foreground1'],\n 'editorBracketHighlight.foreground2':\n MonacoTheme['editor-bracket-foreground2'],\n 'editorBracketHighlight.foreground3':\n MonacoTheme['editor-bracket-foreground3'],\n 'editorBracketHighlight.foreground4':\n MonacoTheme['editor-bracket-foreground4'],\n 'editorBracketHighlight.foreground5':\n MonacoTheme['editor-bracket-foreground5'],\n 'editorBracketHighlight.foreground6':\n MonacoTheme['editor-bracket-foreground6'],\n 'editorBracketHighlight.unexpectedBracket.foreground':\n MonacoTheme['editor-unexpected-bracket-foreground'],\n };\n\n monaco.editor.defineTheme('dh-dark', {\n base: 'vs-dark',\n inherit: true,\n rules: dhDarkRules,\n colors: dhDarkColors,\n });\n\n try {\n monaco.editor.setTheme('dh-dark');\n } catch (err) {\n log.error(\n `Failed to set 'dh-dark' Monaco theme, falling back to vs-dark`,\n err\n );\n monaco.editor.setTheme('vs-dark');\n }\n }\n\n /**\n * Register the getWorker function for Monaco\n * @param getWorker The getWorker function for Monaco\n */\n static registerGetWorker(getWorker: Environment['getWorker']): void {\n window.MonacoEnvironment = {\n ...window.MonacoEnvironment,\n getWorker,\n };\n }\n\n /**\n * Remove the hashtag prefix from a CSS color string.\n * Monaco expects colors to be the value only, no hashtag.\n * @param color The hex color string to remove the hashtag from, eg. '#ffffff'\n */\n static removeHashtag(color?: string): string {\n return color?.substring(1) ?? '';\n }\n\n static registerLanguages(languages: Language[]): void {\n // First override the default loader for any language we have a custom definition for\n // https://github.com/Microsoft/monaco-editor/issues/252#issuecomment-482786867\n const languageIds = languages.map(({ id }) => id);\n monaco.languages\n .getLanguages()\n .filter(({ id }) => languageIds.includes(id))\n .forEach(languageParam => {\n const language = languageParam;\n log.debug2('Overriding default language loader:', language.id);\n });\n\n // Then register our language definitions\n languages.forEach(language => {\n MonacoUtils.registerLanguage(language);\n });\n }\n\n static registerLanguage(language: Language): void {\n log.debug2('Registering language: ', language.id);\n monaco.languages.register(language);\n\n monaco.languages.onLanguage(language.id, () => {\n monaco.languages.setLanguageConfiguration(language.id, language.conf);\n monaco.languages.setMonarchTokensProvider(language.id, language.language);\n });\n }\n\n /**\n * Set EOL preference for the editor\n * @param editor The editor to set the EOL for\n * @param eolSequence EOL sequence\n */\n static setEOL(\n editor: monaco.editor.IStandaloneCodeEditor,\n eolSequence = monaco.editor.EndOfLineSequence.LF\n ): void {\n editor.getModel()?.setEOL(eolSequence);\n }\n\n /**\n * Links an editor with a provided session to provide completion items.\n * @param session The IdeSession to link\n * @param editor The editor to link the session to\n * @returns A cleanup function for disposing of the created listeners\n */\n static openDocument(\n editor: monaco.editor.IStandaloneCodeEditor,\n session: dh.IdeSession\n ): monaco.IDisposable {\n const model = editor.getModel();\n assertNotNull(model);\n const didOpenDocumentParams = {\n textDocument: {\n uri: `${model.uri}`,\n languageId: model.getLanguageId(),\n version: model.getVersionId(),\n text: model.getValue(),\n },\n };\n log.debug2('didOpenDocumentParams: ', didOpenDocumentParams);\n\n session.openDocument(didOpenDocumentParams);\n\n const dispose = editor.onDidChangeModelContent(changedEvent => {\n const { changes, versionId } = changedEvent;\n\n const contentChanges = [];\n for (let i = 0; i < changes.length; i += 1) {\n const change = changes[i];\n const { range, rangeLength, text } = change;\n const contentChange = {\n range: {\n start: {\n line: range.startLineNumber - 1,\n character: range.startColumn - 1,\n },\n end: {\n line: range.endLineNumber - 1,\n character: range.endColumn - 1,\n },\n },\n rangeLength,\n text,\n };\n\n contentChanges.push(contentChange);\n }\n\n if (contentChanges.length > 0) {\n const didChangeDocumentParams = {\n textDocument: {\n version: versionId,\n uri: `${model.uri}`,\n },\n contentChanges,\n };\n log.debug2('didChangeDocumentParams', didChangeDocumentParams);\n session.changeDocument(didChangeDocumentParams);\n }\n });\n\n return dispose;\n }\n\n static closeDocument(\n editor: monaco.editor.IStandaloneCodeEditor,\n session: dh.IdeSession\n ): void {\n const model = editor.getModel();\n assertNotNull(model);\n const didCloseDocumentParams = {\n textDocument: {\n uri: `${model.uri}`,\n },\n };\n session.closeDocument(didCloseDocumentParams);\n }\n\n /**\n * Register a paste handle to clean up any garbage code pasted.\n * Most of this comes from copying from Slack, which has a bad habit of injecting their own characters in your code snippets.\n * I've emailed Slack about the issue and they're working on it. I can't reference a ticket number because their ticket system is entirely internally facing.\n * @param editor The editor the register the paste handler for\n */\n static registerPasteHandler(\n editor: monaco.editor.IStandaloneCodeEditor\n ): void {\n editor.onDidPaste(pasteEvent => {\n const smartQuotes = /“|”/g;\n const invalidChars = /\\u200b/g; // zero width space\n const invalidSpaces = /\\u00A0/g; // non-breaking space\n const editorModel = editor.getModel();\n assertNotNull(editorModel);\n const pastedText = editorModel.getValueInRange(pasteEvent.range);\n if (\n smartQuotes.test(pastedText) ||\n invalidChars.test(pastedText) ||\n invalidSpaces.test(pastedText)\n ) {\n editorModel.applyEdits([\n {\n range: pasteEvent.range,\n text: pastedText\n .replace(smartQuotes, '\"')\n .replace(invalidChars, '')\n .replace(invalidSpaces, ' '),\n },\n ]);\n }\n });\n }\n\n static isMacPlatform(): boolean {\n const { platform } = window.navigator;\n return platform.startsWith('Mac');\n }\n\n /**\n * Remove any keybindings which are used for our own shortcuts.\n * This allows the key events to bubble up so a component higher up can capture\n * them. Note that this is a global configuration, so all editor instances will\n * be impacted.\n */\n static removeConflictingKeybindings(): void {\n // All editor instances share a global keybinding registry which is where\n // default keybindings are set. There doesn't appear to be a way to remove\n // default bindings, but we can add new ones that will override the existing\n // ones and set `command` to null. This will treat the key events as unhandled\n // and allow them to bubble up.\n monaco.editor.addKeybindingRule(\n // Restart console in Enterprise (see Shortcuts.ts)\n {\n /* eslint-disable-next-line no-bitwise */\n keybinding: monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyD,\n command: null,\n }\n );\n\n // Ctrl+H is used to focus Community console history in Windows + Linux.\n // An alternate shortcut is used for Mac, so no need to override it\n // (See ConsoleShortcuts.ts)\n if (!MonacoUtils.isMacPlatform()) {\n monaco.editor.addKeybindingRule({\n /* eslint-disable-next-line no-bitwise */\n keybinding: monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyH,\n command: null,\n });\n }\n }\n\n /**\n * Creates actions with a `noop` run function to disable specified keybindings.\n * Note that this will swallow the events. To disable default keybindings in a\n * way that allows events to propagate upward, see `removeConflictingKeybindings`\n * @param editor Editor to disable keybindings for\n * @param keybindings List of monaco keybindings to disable. Often a bitwise\n * combination like `monaco.KeyMod.Alt | monaco.KeyMod.KeyJ`\n */\n static disableKeyBindings(\n editor: monaco.editor.IStandaloneCodeEditor,\n keybindings: number[]\n ): void {\n editor.addAction({\n // This shouldn't be referenced by anything so using an arbitrary unique id\n id: `disable-keybindings-${nanoid()}`,\n label: '', // This action won't be shown in the UI so no need for a label\n keybindings,\n run: () => undefined,\n });\n }\n\n static getMonacoKeyCodeFromShortcut(shortcut: Shortcut): number {\n const { keyState } = shortcut;\n const { keyValue } = keyState;\n if (keyValue === null) {\n return 0;\n }\n\n const isMac = MonacoUtils.isMacPlatform();\n\n if (isMac) {\n return (\n // eslint-disable-next-line no-bitwise\n (keyState.metaKey ? monaco.KeyMod.CtrlCmd : 0) |\n (keyState.shiftKey ? monaco.KeyMod.Shift : 0) |\n (keyState.altKey ? monaco.KeyMod.Alt : 0) |\n (keyState.ctrlKey ? monaco.KeyMod.WinCtrl : 0) |\n KeyCodeUtils.fromString(keyValue)\n );\n }\n\n return (\n // eslint-disable-next-line no-bitwise\n (keyState.ctrlKey ? monaco.KeyMod.CtrlCmd : 0) |\n (keyState.shiftKey ? monaco.KeyMod.Shift : 0) |\n (keyState.altKey ? monaco.KeyMod.Alt : 0) |\n (keyState.metaKey ? monaco.KeyMod.WinCtrl : 0) |\n KeyCodeUtils.fromString(keyValue)\n );\n }\n\n static provideLinks(model: monaco.editor.ITextModel): {\n links: monaco.languages.ILink[];\n } {\n const newTokens: monaco.languages.ILink[] = [];\n\n for (let i = 1; i <= model.getLineCount(); i += 1) {\n const lineText = model.getLineContent(i);\n const originalTokens = linkifyFind(lineText);\n\n const tokens = originalTokens.filter(token => {\n if (token.type === 'url') {\n return /^https?:\\/\\//.test(token.value);\n }\n return true;\n });\n // map the tokens to the ranges - you know the line number now, use the token start/end as the startColumn/endColumn\n tokens.forEach(token => {\n newTokens.push({\n url: token.href,\n range: new monaco.Range(i, token.start + 1, i, token.end + 1),\n });\n });\n }\n\n return {\n links: newTokens,\n };\n }\n\n /**\n * Generates a console URI for use with monaco.\n * @returns A new console URI\n */\n static generateConsoleUri(): monaco.Uri {\n return monaco.Uri.parse(`${CONSOLE_URI_PREFIX}${nanoid()}`);\n }\n\n /**\n * Checks if a model is a console model based on its URI.\n * @param model The monaco model to check\n * @returns If the model is a console model\n */\n static isConsoleModel(model: monaco.editor.ITextModel): boolean {\n return model.uri.toString().startsWith(CONSOLE_URI_PREFIX);\n }\n\n /**\n * Checks if the editor has the formatDocument action registered.\n * @param editor The monaco editor to check\n * @returns If the editor has a document formatter registered\n */\n static canFormat(editor: monaco.editor.IStandaloneCodeEditor): boolean {\n return (\n editor.getAction('editor.action.formatDocument')?.isSupported() === true\n );\n }\n\n /**\n * Runs the formatDocument action on the editor.\n * @param editor The editor to format\n */\n static async formatDocument(\n editor: monaco.editor.IStandaloneCodeEditor\n ): Promise<void> {\n await editor.getAction('editor.action.formatDocument')?.run();\n }\n}\n\nexport default MonacoUtils;\n"],"mappings":"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","ignoreList":[]}
@@ -68,6 +68,5 @@ var RUFF_DEFAULT_SETTINGS = {
68
68
  ]
69
69
  }
70
70
  };
71
-
72
71
  export default RUFF_DEFAULT_SETTINGS;
73
72
  //# sourceMappingURL=RuffDefaultSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RuffDefaultSettings.js","names":["RUFF_DEFAULT_SETTINGS","preview","format","lint","ignore","select"],"sources":["../../src/monaco/RuffDefaultSettings.ts"],"sourcesContent":["const RUFF_DEFAULT_SETTINGS = {\n preview: true,\n 'target-version': 'py38',\n 'line-length': 88,\n 'indent-width': 4,\n format: {\n 'indent-style': 'space',\n 'quote-style': 'double',\n },\n lint: {\n 'flake8-implicit-str-concat': {\n 'allow-multiline': false,\n },\n // More info on rules at https://docs.astral.sh/ruff/rules/\n ignore: ['ISC003'], // Ignoring this rule permits explicit string concatenation\n select: [\n 'F', // Pyflakes\n 'E1', // Pycodestyle indentation errors\n 'E9', // Pycodestyle syntax errors\n 'E711', // Pycodestyle comparison to None\n 'W291', // Pycodestyle trailing whitespace\n 'W293', // Pycodestyle blank line contains whitespace\n 'W605', // Pycodestyle invalid escape sequence\n 'B', // flake8-bugbear\n 'A', // flake8-builtins\n 'COM818', // flake8-commas trailing comma on bare tuple\n 'ISC', // flake8-implicit-str-concat\n 'PLE', // pylint errors\n 'RUF001', // ambiguous-unicode-character-string\n 'RUF021', // parenthesize-chained-operators\n 'RUF027', // missing-f-string-syntax\n 'PLR1704', // Redefined argument from local\n 'LOG', // flake8-logging\n 'ASYNC', // flake8-async\n 'RET501', // unnecessary-return-none\n 'RET502', // implicit-return-value\n 'RET503', // implicit-return\n 'PLC2401', // non-ascii-name\n 'PLC2403', // non-ascii-import-name\n 'NPY', // NumPy-specific rules\n 'PERF', // Perflint\n 'C4', // flake8-comprehensions\n ],\n },\n};\n\nexport default RUFF_DEFAULT_SETTINGS;\n"],"mappings":"AAAA,IAAMA,qBAAqB,GAAG;EAC5BC,OAAO,EAAE,IAAI;EACb,gBAAgB,EAAE,MAAM;EACxB,aAAa,EAAE,EAAE;EACjB,cAAc,EAAE,CAAC;EACjBC,MAAM,EAAE;IACN,cAAc,EAAE,OAAO;IACvB,aAAa,EAAE;EACjB,CAAC;EACDC,IAAI,EAAE;IACJ,4BAA4B,EAAE;MAC5B,iBAAiB,EAAE;IACrB,CAAC;IACD;IACAC,MAAM,EAAE,CAAC,QAAQ,CAAC;IAAE;IACpBC,MAAM,EAAE,CACN,GAAG;IAAE;IACL,IAAI;IAAE;IACN,IAAI;IAAE;IACN,MAAM;IAAE;IACR,MAAM;IAAE;IACR,MAAM;IAAE;IACR,MAAM;IAAE;IACR,GAAG;IAAE;IACL,GAAG;IAAE;IACL,QAAQ;IAAE;IACV,KAAK;IAAE;IACP,KAAK;IAAE;IACP,QAAQ;IAAE;IACV,QAAQ;IAAE;IACV,QAAQ;IAAE;IACV,SAAS;IAAE;IACX,KAAK;IAAE;IACP,OAAO;IAAE;IACT,QAAQ;IAAE;IACV,QAAQ;IAAE;IACV,QAAQ;IAAE;IACV,SAAS;IAAE;IACX,SAAS;IAAE;IACX,KAAK;IAAE;IACP,MAAM;IAAE;IACR,IAAI,CAAE;IAAA;EAEV;AACF,CAAC;;AAED,eAAeL,qBAAqB"}
1
+ {"version":3,"file":"RuffDefaultSettings.js","names":["RUFF_DEFAULT_SETTINGS","preview","format","lint","ignore","select"],"sources":["../../src/monaco/RuffDefaultSettings.ts"],"sourcesContent":["const RUFF_DEFAULT_SETTINGS = {\n preview: true,\n 'target-version': 'py38',\n 'line-length': 88,\n 'indent-width': 4,\n format: {\n 'indent-style': 'space',\n 'quote-style': 'double',\n },\n lint: {\n 'flake8-implicit-str-concat': {\n 'allow-multiline': false,\n },\n // More info on rules at https://docs.astral.sh/ruff/rules/\n ignore: ['ISC003'], // Ignoring this rule permits explicit string concatenation\n select: [\n 'F', // Pyflakes\n 'E1', // Pycodestyle indentation errors\n 'E9', // Pycodestyle syntax errors\n 'E711', // Pycodestyle comparison to None\n 'W291', // Pycodestyle trailing whitespace\n 'W293', // Pycodestyle blank line contains whitespace\n 'W605', // Pycodestyle invalid escape sequence\n 'B', // flake8-bugbear\n 'A', // flake8-builtins\n 'COM818', // flake8-commas trailing comma on bare tuple\n 'ISC', // flake8-implicit-str-concat\n 'PLE', // pylint errors\n 'RUF001', // ambiguous-unicode-character-string\n 'RUF021', // parenthesize-chained-operators\n 'RUF027', // missing-f-string-syntax\n 'PLR1704', // Redefined argument from local\n 'LOG', // flake8-logging\n 'ASYNC', // flake8-async\n 'RET501', // unnecessary-return-none\n 'RET502', // implicit-return-value\n 'RET503', // implicit-return\n 'PLC2401', // non-ascii-name\n 'PLC2403', // non-ascii-import-name\n 'NPY', // NumPy-specific rules\n 'PERF', // Perflint\n 'C4', // flake8-comprehensions\n ],\n },\n};\n\nexport default RUFF_DEFAULT_SETTINGS;\n"],"mappings":"AAAA,IAAMA,qBAAqB,GAAG;EAC5BC,OAAO,EAAE,IAAI;EACb,gBAAgB,EAAE,MAAM;EACxB,aAAa,EAAE,EAAE;EACjB,cAAc,EAAE,CAAC;EACjBC,MAAM,EAAE;IACN,cAAc,EAAE,OAAO;IACvB,aAAa,EAAE;EACjB,CAAC;EACDC,IAAI,EAAE;IACJ,4BAA4B,EAAE;MAC5B,iBAAiB,EAAE;IACrB,CAAC;IACD;IACAC,MAAM,EAAE,CAAC,QAAQ,CAAC;IAAE;IACpBC,MAAM,EAAE,CACN,GAAG;IAAE;IACL,IAAI;IAAE;IACN,IAAI;IAAE;IACN,MAAM;IAAE;IACR,MAAM;IAAE;IACR,MAAM;IAAE;IACR,MAAM;IAAE;IACR,GAAG;IAAE;IACL,GAAG;IAAE;IACL,QAAQ;IAAE;IACV,KAAK;IAAE;IACP,KAAK;IAAE;IACP,QAAQ;IAAE;IACV,QAAQ;IAAE;IACV,QAAQ;IAAE;IACV,SAAS;IAAE;IACX,KAAK;IAAE;IACP,OAAO;IAAE;IACT,QAAQ;IAAE;IACV,QAAQ;IAAE;IACV,QAAQ;IAAE;IACV,SAAS;IAAE;IACX,SAAS;IAAE;IACX,KAAK;IAAE;IACP,MAAM;IAAE;IACR,IAAI,CAAE;IAAA;EAEV;AACF,CAAC;AAED,eAAeL,qBAAqB","ignoreList":[]}
@@ -13,9 +13,7 @@ import RUFF_DEFAULT_SETTINGS from "./RuffDefaultSettings.js";
13
13
  import ruffSchema from "./ruffSchema.js";
14
14
  import "./RuffSettingsModal.css";
15
15
  import MonacoProviders from "./MonacoProviders.js";
16
- import { jsxs as _jsxs } from "react/jsx-runtime";
17
- import { jsx as _jsx } from "react/jsx-runtime";
18
- import { Fragment as _Fragment } from "react/jsx-runtime";
16
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
19
17
  var RUFF_SETTINGS_URI = monaco.Uri.parse('inmemory://dh-config/ruff-settings.json');
20
18
  function registerRuffSchema() {
21
19
  var {
@@ -69,8 +67,8 @@ export default function RuffSettingsModal(_ref) {
69
67
  var handleSave = useCallback(() => {
70
68
  if (isOpen) {
71
69
  try {
72
- var _editorRef$current$ge, _editorRef$current, _editorRef$current$ge2;
73
- onSave(JSON.parse((_editorRef$current$ge = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : (_editorRef$current$ge2 = _editorRef$current.getModel()) === null || _editorRef$current$ge2 === void 0 ? void 0 : _editorRef$current$ge2.getValue()) !== null && _editorRef$current$ge !== void 0 ? _editorRef$current$ge : ''));
70
+ var _editorRef$current$ge, _editorRef$current;
71
+ onSave(JSON.parse((_editorRef$current$ge = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.getModel()) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.getValue()) !== null && _editorRef$current$ge !== void 0 ? _editorRef$current$ge : ''));
74
72
  } catch (_unused) {
75
73
  // no-op
76
74
  }
@@ -82,14 +80,14 @@ export default function RuffSettingsModal(_ref) {
82
80
  model.setValue(formattedDefaultSettings);
83
81
  }, [model, formattedDefaultSettings]);
84
82
  var validate = useCallback(val => {
85
- var _editorRef$current2, _editorRef$current2$g;
83
+ var _editorRef$current2;
86
84
  try {
87
85
  JSON.parse(val);
88
86
  setIsValid(true);
89
87
  } catch (_unused2) {
90
88
  setIsValid(false);
91
89
  }
92
- setIsDefault(((_editorRef$current2 = editorRef.current) === null || _editorRef$current2 === void 0 ? void 0 : (_editorRef$current2$g = _editorRef$current2.getModel()) === null || _editorRef$current2$g === void 0 ? void 0 : _editorRef$current2$g.getValue()) === formattedDefaultSettings);
90
+ setIsDefault(((_editorRef$current2 = editorRef.current) === null || _editorRef$current2 === void 0 || (_editorRef$current2 = _editorRef$current2.getModel()) === null || _editorRef$current2 === void 0 ? void 0 : _editorRef$current2.getValue()) === formattedDefaultSettings);
93
91
  }, [formattedDefaultSettings]);
94
92
  var debouncedValidate = useDebouncedCallback(validate, 500, {
95
93
  leading: true
@@ -1 +1 @@
1
- {"version":3,"file":"RuffSettingsModal.js","names":["React","useCallback","useMemo","useRef","useState","monaco","Workspace","FontAwesomeIcon","ActionButton","Button","Icon","Link","Modal","ModalBody","ModalFooter","ModalHeader","Text","vsLinkExternal","vsDiscard","useDebouncedCallback","usePromiseFactory","assertNotNull","EMPTY_FUNCTION","Editor","RUFF_DEFAULT_SETTINGS","ruffSchema","MonacoProviders","jsxs","_jsxs","jsx","_jsx","Fragment","_Fragment","RUFF_SETTINGS_URI","Uri","parse","registerRuffSchema","schemas","languages","json","jsonDefaults","diagnosticsOptions","some","schema","uri","setDiagnosticsOptions","fileMatch","toString","getRuffVersion","_getRuffVersion","apply","arguments","_asyncToGenerator","initRuff","concat","version","RuffSettingsModal","_ref","text","isOpen","onClose","onSave","readOnly","defaultSettings","isValid","setIsValid","isDefault","setIsDefault","editorRef","formattedDefaultSettings","JSON","stringify","data","ruffVersion","model","editor","createModel","handleClose","current","undefined","dispose","handleSave","_editorRef$current$ge","_editorRef$current","_editorRef$current$ge2","getModel","getValue","_unused","handleReset","setValue","validate","val","_editorRef$current2","_editorRef$current2$g","_unused2","debouncedValidate","leading","onEditorInitialized","onDidChangeContent","centered","keyboard","clickOutside","toggle","size","className","children","closeButton","href","target","kind","onClick","icon","isDisabled","onPress","style","height","settings","value","language","folding","padding","bottom","lineNumbers","overviewRulerLanes","tooltip","disabled"],"sources":["../../src/monaco/RuffSettingsModal.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from 'react';\nimport * as monaco from 'monaco-editor';\nimport { Workspace } from '@astral-sh/ruff-wasm-web';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n ActionButton,\n Button,\n Icon,\n Link,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n Text,\n} from '@deephaven/components';\nimport { vsLinkExternal, vsDiscard } from '@deephaven/icons';\nimport {\n useDebouncedCallback,\n usePromiseFactory,\n} from '@deephaven/react-hooks';\nimport { assertNotNull, EMPTY_FUNCTION } from '@deephaven/utils';\nimport Editor from '../notebook/Editor';\nimport RUFF_DEFAULT_SETTINGS from './RuffDefaultSettings';\nimport ruffSchema from './ruffSchema';\nimport './RuffSettingsModal.scss';\nimport MonacoProviders from './MonacoProviders';\n\ninterface RuffSettingsModalProps {\n text: string;\n isOpen: boolean;\n onClose: () => void;\n onSave: (value: Record<string, unknown>) => void;\n readOnly?: boolean;\n defaultSettings?: Record<string, unknown>;\n}\n\nconst RUFF_SETTINGS_URI = monaco.Uri.parse(\n 'inmemory://dh-config/ruff-settings.json'\n);\n\nfunction registerRuffSchema(): void {\n const { schemas = [] } =\n monaco.languages.json.jsonDefaults.diagnosticsOptions;\n\n if (!schemas.some(schema => schema.uri === 'json://ruff-schema')) {\n // Register the ruff schema so users get validation and completion\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n schemas: [\n ...schemas,\n {\n uri: 'json://ruff-schema',\n fileMatch: [RUFF_SETTINGS_URI.toString()],\n schema: ruffSchema,\n },\n ],\n });\n }\n}\n\nasync function getRuffVersion(): Promise<string> {\n await MonacoProviders.initRuff();\n return `v${Workspace.version()}`;\n}\n\nexport default function RuffSettingsModal({\n text,\n isOpen,\n onClose,\n onSave,\n readOnly = false,\n defaultSettings = RUFF_DEFAULT_SETTINGS,\n}: RuffSettingsModalProps): React.ReactElement | null {\n const [isValid, setIsValid] = useState(false);\n const [isDefault, setIsDefault] = useState(false);\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n\n const formattedDefaultSettings = useMemo(\n () => JSON.stringify(defaultSettings, null, 2),\n [defaultSettings]\n );\n\n const { data: ruffVersion } = usePromiseFactory(getRuffVersion);\n\n const [model] = useState(() =>\n monaco.editor.createModel(text, 'json', RUFF_SETTINGS_URI)\n );\n\n const handleClose = useCallback((): void => {\n if (isOpen) {\n onClose();\n editorRef.current = undefined;\n model.dispose();\n }\n }, [isOpen, onClose, model]);\n\n const handleSave = useCallback((): void => {\n if (isOpen) {\n try {\n onSave(JSON.parse(editorRef.current?.getModel()?.getValue() ?? ''));\n } catch {\n // no-op\n }\n handleClose();\n }\n }, [isOpen, handleClose, onSave]);\n\n const handleReset = useCallback((): void => {\n assertNotNull(model);\n model.setValue(formattedDefaultSettings);\n }, [model, formattedDefaultSettings]);\n\n const validate = useCallback(\n val => {\n try {\n JSON.parse(val);\n setIsValid(true);\n } catch {\n setIsValid(false);\n }\n setIsDefault(\n editorRef.current?.getModel()?.getValue() === formattedDefaultSettings\n );\n },\n [formattedDefaultSettings]\n );\n\n const debouncedValidate = useDebouncedCallback(validate, 500, {\n leading: true,\n });\n\n const onEditorInitialized = useCallback(\n (editor: monaco.editor.IStandaloneCodeEditor): void => {\n editorRef.current = editor;\n\n model.onDidChangeContent(() => {\n debouncedValidate(model.getValue());\n });\n\n registerRuffSchema();\n debouncedValidate(model.getValue());\n },\n [debouncedValidate, model]\n );\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <Modal\n isOpen={isOpen}\n centered\n keyboard\n clickOutside={false}\n toggle={handleClose}\n size=\"lg\"\n className=\"ruff-settings-modal\"\n >\n <ModalHeader closeButton={false}>\n <span className=\"settings-modal-title mr-auto\">\n Ruff {ruffVersion} Settings\n </span>\n\n <Link href=\"https://docs.astral.sh/ruff/settings/\" target=\"_blank\">\n <Button kind=\"ghost\" onClick={EMPTY_FUNCTION} icon={vsLinkExternal}>\n Settings Docs\n </Button>\n </Link>\n\n <ActionButton isDisabled={isDefault} onPress={handleReset}>\n <Icon>\n <FontAwesomeIcon icon={vsDiscard} />\n </Icon>\n <Text>Reset to default</Text>\n </ActionButton>\n </ModalHeader>\n <ModalBody style={{ height: '80vh' }}>\n <Editor\n onEditorInitialized={onEditorInitialized}\n settings={{\n readOnly,\n value: text,\n language: 'json',\n folding: true,\n padding: { bottom: 16 },\n lineNumbers: 'on',\n overviewRulerLanes: 0,\n model,\n }}\n />\n </ModalBody>\n <ModalFooter>\n {readOnly ? (\n <Button kind=\"secondary\" data-dismiss=\"modal\" onClick={handleClose}>\n Close\n </Button>\n ) : (\n <>\n <Button kind=\"secondary\" data-dismiss=\"modal\" onClick={handleClose}>\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n data-dismiss=\"modal\"\n tooltip={!isValid ? 'Cannot save invalid JSON' : undefined}\n disabled={!isValid}\n onClick={handleSave}\n >\n Save\n </Button>\n </>\n )}\n </ModalFooter>\n </Modal>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RuffSettingsModal.js","names":["React","useCallback","useMemo","useRef","useState","monaco","Workspace","FontAwesomeIcon","ActionButton","Button","Icon","Link","Modal","ModalBody","ModalFooter","ModalHeader","Text","vsLinkExternal","vsDiscard","useDebouncedCallback","usePromiseFactory","assertNotNull","EMPTY_FUNCTION","Editor","RUFF_DEFAULT_SETTINGS","ruffSchema","MonacoProviders","jsxs","_jsxs","jsx","_jsx","Fragment","_Fragment","RUFF_SETTINGS_URI","Uri","parse","registerRuffSchema","schemas","languages","json","jsonDefaults","diagnosticsOptions","some","schema","uri","setDiagnosticsOptions","fileMatch","toString","getRuffVersion","_getRuffVersion","apply","arguments","_asyncToGenerator","initRuff","concat","version","RuffSettingsModal","_ref","text","isOpen","onClose","onSave","readOnly","defaultSettings","isValid","setIsValid","isDefault","setIsDefault","editorRef","formattedDefaultSettings","JSON","stringify","data","ruffVersion","model","editor","createModel","handleClose","current","undefined","dispose","handleSave","_editorRef$current$ge","_editorRef$current","getModel","getValue","_unused","handleReset","setValue","validate","val","_editorRef$current2","_unused2","debouncedValidate","leading","onEditorInitialized","onDidChangeContent","centered","keyboard","clickOutside","toggle","size","className","children","closeButton","href","target","kind","onClick","icon","isDisabled","onPress","style","height","settings","value","language","folding","padding","bottom","lineNumbers","overviewRulerLanes","tooltip","disabled"],"sources":["../../src/monaco/RuffSettingsModal.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from 'react';\nimport * as monaco from 'monaco-editor';\nimport { Workspace } from '@astral-sh/ruff-wasm-web';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n ActionButton,\n Button,\n Icon,\n Link,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n Text,\n} from '@deephaven/components';\nimport { vsLinkExternal, vsDiscard } from '@deephaven/icons';\nimport {\n useDebouncedCallback,\n usePromiseFactory,\n} from '@deephaven/react-hooks';\nimport { assertNotNull, EMPTY_FUNCTION } from '@deephaven/utils';\nimport Editor from '../notebook/Editor';\nimport RUFF_DEFAULT_SETTINGS from './RuffDefaultSettings';\nimport ruffSchema from './ruffSchema';\nimport './RuffSettingsModal.scss';\nimport MonacoProviders from './MonacoProviders';\n\ninterface RuffSettingsModalProps {\n text: string;\n isOpen: boolean;\n onClose: () => void;\n onSave: (value: Record<string, unknown>) => void;\n readOnly?: boolean;\n defaultSettings?: Record<string, unknown>;\n}\n\nconst RUFF_SETTINGS_URI = monaco.Uri.parse(\n 'inmemory://dh-config/ruff-settings.json'\n);\n\nfunction registerRuffSchema(): void {\n const { schemas = [] } =\n monaco.languages.json.jsonDefaults.diagnosticsOptions;\n\n if (!schemas.some(schema => schema.uri === 'json://ruff-schema')) {\n // Register the ruff schema so users get validation and completion\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n schemas: [\n ...schemas,\n {\n uri: 'json://ruff-schema',\n fileMatch: [RUFF_SETTINGS_URI.toString()],\n schema: ruffSchema,\n },\n ],\n });\n }\n}\n\nasync function getRuffVersion(): Promise<string> {\n await MonacoProviders.initRuff();\n return `v${Workspace.version()}`;\n}\n\nexport default function RuffSettingsModal({\n text,\n isOpen,\n onClose,\n onSave,\n readOnly = false,\n defaultSettings = RUFF_DEFAULT_SETTINGS,\n}: RuffSettingsModalProps): React.ReactElement | null {\n const [isValid, setIsValid] = useState(false);\n const [isDefault, setIsDefault] = useState(false);\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n\n const formattedDefaultSettings = useMemo(\n () => JSON.stringify(defaultSettings, null, 2),\n [defaultSettings]\n );\n\n const { data: ruffVersion } = usePromiseFactory(getRuffVersion);\n\n const [model] = useState(() =>\n monaco.editor.createModel(text, 'json', RUFF_SETTINGS_URI)\n );\n\n const handleClose = useCallback((): void => {\n if (isOpen) {\n onClose();\n editorRef.current = undefined;\n model.dispose();\n }\n }, [isOpen, onClose, model]);\n\n const handleSave = useCallback((): void => {\n if (isOpen) {\n try {\n onSave(JSON.parse(editorRef.current?.getModel()?.getValue() ?? ''));\n } catch {\n // no-op\n }\n handleClose();\n }\n }, [isOpen, handleClose, onSave]);\n\n const handleReset = useCallback((): void => {\n assertNotNull(model);\n model.setValue(formattedDefaultSettings);\n }, [model, formattedDefaultSettings]);\n\n const validate = useCallback(\n (val: string) => {\n try {\n JSON.parse(val);\n setIsValid(true);\n } catch {\n setIsValid(false);\n }\n setIsDefault(\n editorRef.current?.getModel()?.getValue() === formattedDefaultSettings\n );\n },\n [formattedDefaultSettings]\n );\n\n const debouncedValidate = useDebouncedCallback(validate, 500, {\n leading: true,\n });\n\n const onEditorInitialized = useCallback(\n (editor: monaco.editor.IStandaloneCodeEditor): void => {\n editorRef.current = editor;\n\n model.onDidChangeContent(() => {\n debouncedValidate(model.getValue());\n });\n\n registerRuffSchema();\n debouncedValidate(model.getValue());\n },\n [debouncedValidate, model]\n );\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <Modal\n isOpen={isOpen}\n centered\n keyboard\n clickOutside={false}\n toggle={handleClose}\n size=\"lg\"\n className=\"ruff-settings-modal\"\n >\n <ModalHeader closeButton={false}>\n <span className=\"settings-modal-title mr-auto\">\n Ruff {ruffVersion} Settings\n </span>\n\n <Link href=\"https://docs.astral.sh/ruff/settings/\" target=\"_blank\">\n <Button kind=\"ghost\" onClick={EMPTY_FUNCTION} icon={vsLinkExternal}>\n Settings Docs\n </Button>\n </Link>\n\n <ActionButton isDisabled={isDefault} onPress={handleReset}>\n <Icon>\n <FontAwesomeIcon icon={vsDiscard} />\n </Icon>\n <Text>Reset to default</Text>\n </ActionButton>\n </ModalHeader>\n <ModalBody style={{ height: '80vh' }}>\n <Editor\n onEditorInitialized={onEditorInitialized}\n settings={{\n readOnly,\n value: text,\n language: 'json',\n folding: true,\n padding: { bottom: 16 },\n lineNumbers: 'on',\n overviewRulerLanes: 0,\n model,\n }}\n />\n </ModalBody>\n <ModalFooter>\n {readOnly ? (\n <Button kind=\"secondary\" data-dismiss=\"modal\" onClick={handleClose}>\n Close\n </Button>\n ) : (\n <>\n <Button kind=\"secondary\" data-dismiss=\"modal\" onClick={handleClose}>\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n data-dismiss=\"modal\"\n tooltip={!isValid ? 'Cannot save invalid JSON' : undefined}\n disabled={!isValid}\n onClick={handleSave}\n >\n Save\n </Button>\n </>\n )}\n </ModalFooter>\n </Modal>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","MonacoUtils","MonacoProviders","MonacoTheme","RuffSettingsModal","RUFF_DEFAULT_SETTINGS"],"sources":["../../src/monaco/index.ts"],"sourcesContent":["export { default as MonacoUtils } from './MonacoUtils';\nexport { default as MonacoProviders } from './MonacoProviders';\nexport { default as MonacoTheme } from './MonacoTheme.module.scss';\nexport * from './MonacoThemeProvider';\nexport { default as RuffSettingsModal } from './RuffSettingsModal';\nexport { default as RUFF_DEFAULT_SETTINGS } from './RuffDefaultSettings';\n"],"mappings":"SAASA,OAAO,IAAIC,WAAW;AAAA,SACtBD,OAAO,IAAIE,eAAe;AAAA,SAC1BF,OAAO,IAAIG,WAAW;AAAA;AAAA,SAEtBH,OAAO,IAAII,iBAAiB;AAAA,SAC5BJ,OAAO,IAAIK,qBAAqB"}
1
+ {"version":3,"file":"index.js","names":["default","MonacoUtils","MonacoProviders","MonacoTheme","RuffSettingsModal","RUFF_DEFAULT_SETTINGS"],"sources":["../../src/monaco/index.ts"],"sourcesContent":["export { default as MonacoUtils } from './MonacoUtils';\nexport { default as MonacoProviders } from './MonacoProviders';\nexport { default as MonacoTheme } from './MonacoTheme.module.scss';\nexport * from './MonacoThemeProvider';\nexport { default as RuffSettingsModal } from './RuffSettingsModal';\nexport { default as RUFF_DEFAULT_SETTINGS } from './RuffDefaultSettings';\n"],"mappings":"SAASA,OAAO,IAAIC,WAAW;AAAA,SACtBD,OAAO,IAAIE,eAAe;AAAA,SAC1BF,OAAO,IAAIG,WAAW;AAAA;AAAA,SAEtBH,OAAO,IAAII,iBAAiB;AAAA,SAC5BJ,OAAO,IAAIK,qBAAqB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Language.js","names":[],"sources":["../../../src/monaco/lang/Language.ts"],"sourcesContent":["import type * as monaco from 'monaco-editor';\n\nexport type Language = {\n id: string;\n conf: monaco.languages.LanguageConfiguration;\n language:\n | monaco.languages.IMonarchLanguage\n | monaco.Thenable<monaco.languages.IMonarchLanguage>;\n};\n"],"mappings":""}
1
+ {"version":3,"file":"Language.js","names":[],"sources":["../../../src/monaco/lang/Language.ts"],"sourcesContent":["import type * as monaco from 'monaco-editor';\n\nexport type Language = {\n id: string;\n conf: monaco.languages.LanguageConfiguration;\n language:\n | monaco.languages.IMonarchLanguage\n | monaco.Thenable<monaco.languages.IMonarchLanguage>;\n};\n"],"mappings":"","ignoreList":[]}
@@ -46,7 +46,6 @@ var conf = {
46
46
  indentAction: 1
47
47
  } // see monaco.languages.IndentAction.Indent
48
48
  }],
49
-
50
49
  folding: {
51
50
  offSide: true,
52
51
  markers: {
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","names":["id","conf","comments","lineComment","blockComment","brackets","autoClosingPairs","open","close","notIn","surroundingPairs","onEnterRules","beforeText","action","indentAction","folding","offSide","markers","start","end","language","tokenPostfix","keywords","builtins","operators","token","symbols","escapes","exponent","regexpctl","regexpesc","tokenizer","root","cases","$3","include","bracket","next","whitespace","comment","string","regexp","regexrange","lang"],"sources":["../../../src/monaco/lang/db.ts"],"sourcesContent":["import type * as monaco from 'monaco-editor';\nimport { type Language } from './Language';\n\n/* eslint no-useless-escape: \"off\" */\nconst id = 'deephavenDb';\n\nconst conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: '#',\n blockComment: [\"'''\", \"'''\"],\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"', notIn: ['string'] },\n { open: \"'\", close: \"'\", notIn: ['string', 'comment'] },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n onEnterRules: [\n {\n beforeText:\n /^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$/,\n action: { indentAction: 1 }, // see monaco.languages.IndentAction.Indent\n },\n ],\n folding: {\n offSide: true,\n markers: {\n start: /^\\s*#region\\b/,\n end: /^\\s*#endregion\\b/,\n },\n },\n};\n\nconst language: monaco.languages.IMonarchLanguage = {\n tokenPostfix: '.js',\n\n keywords: [\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n ],\n\n builtins: ['define', 'require', 'window', 'document', 'undefined'],\n\n operators: [\n '=',\n '>',\n '<',\n '!',\n '~',\n '?',\n ':',\n '==',\n '<=',\n '>=',\n '!=',\n '&&',\n '||',\n '++',\n '--',\n '+',\n '-',\n '*',\n '/',\n '&',\n '|',\n '^',\n '%',\n '<<',\n '>>',\n '>>>',\n '+=',\n '-=',\n '*=',\n '/=',\n '&=',\n '|=',\n '^=',\n '%=',\n '<<=',\n '>>=',\n '>>>=',\n ],\n\n // define our own brackets as '<' and '>' do not match in javascript\n brackets: [\n { open: '{', close: '}', token: 'delimiter.curly' },\n { open: '[', close: ']', token: 'delimiter.bracket' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n ],\n\n // common regular expressions\n symbols: /[~!@#%\\^&*-+=|\\\\:`<>.?\\/]+/,\n escapes: /\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,\n exponent: /[eE][\\-+]?[0-9]+/,\n\n regexpctl: /[(){}\\[\\]\\$\\^|\\-*+?\\.]/,\n regexpesc:\n /\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,\n\n tokenizer: {\n root: [\n // identifiers and keywords\n [\n /([a-zA-Z_\\$][\\w\\$]*)(\\s*)(:?)/,\n {\n cases: {\n '$1@keywords': ['keyword', 'white', 'delimiter'],\n $3: ['key.identifier', 'white', 'delimiter'], // followed by :\n '$1@builtins': ['predefined.identifier', 'white', 'delimiter'],\n '@default': ['identifier', 'white', 'delimiter'],\n },\n },\n ],\n\n // whitespace\n { include: '@whitespace' },\n\n // regular expression: ensure it is terminated before beginning (otherwise it is an opeator)\n [\n /\\/(?=([^\\\\\\/]|\\\\.)+\\/)/,\n { token: 'regexp.slash', bracket: '@open', next: '@regexp' },\n ],\n\n // delimiters and operators\n [/[{}()\\[\\]]/, '@brackets'],\n [/[;,.]/, 'delimiter'],\n [\n /@symbols/,\n {\n cases: {\n '@operators': 'operator',\n '@default': '',\n },\n },\n ],\n\n // numbers\n [/\\d+\\.\\d*(@exponent)?/, 'number.float'],\n [/\\.\\d+(@exponent)?/, 'number.float'],\n [/\\d+@exponent/, 'number.float'],\n [/0[xX][\\da-fA-F]+/, 'number.hex'],\n [/0[0-7]+/, 'number.octal'],\n [/\\d+/, 'number'],\n\n // strings: recover on non-terminated strings\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/\"/, 'string', '@string.\"'],\n [/'/, 'string', \"@string.'\"],\n ],\n\n whitespace: [\n [/[ \\t\\r\\n]+/, 'white'],\n [/\\/\\*/, 'comment', '@comment'],\n [/\\/\\/.*$/, 'comment'],\n ],\n\n comment: [\n [/[^\\/*]+/, 'comment'],\n // [/\\/\\*/, 'comment', '@push' ], // nested comment not allowed :-(\n [/\\/\\*/, 'comment.invalid'],\n ['\\\\*/', 'comment', '@pop'],\n [/[\\/*]/, 'comment'],\n ],\n\n string: [\n [/[^\\\\\"']+/, 'string'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n [\n /[\"']/,\n {\n cases: {\n '$#==$S2': { token: 'string', next: '@pop' },\n '@default': 'string',\n },\n },\n ],\n ],\n\n // We match regular expression quite precisely\n regexp: [\n [\n /(\\{)(\\d+(?:,\\d*)?)(\\})/,\n [\n '@brackets.regexp.escape.control',\n 'regexp.escape.control',\n '@brackets.regexp.escape.control',\n ],\n ],\n [\n /(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,\n [\n { token: '@brackets.regexp.escape.control' },\n {\n token: 'regexp.escape.control',\n next: '@regexrange',\n },\n ],\n ],\n [\n /(\\()(\\?:|\\?=|\\?!)/,\n ['@brackets.regexp.escape.control', 'regexp.escape.control'],\n ],\n [/[()]/, '@brackets.regexp.escape.control'],\n [/@regexpctl/, 'regexp.escape.control'],\n [/[^\\\\\\/]/, 'regexp'],\n [/@regexpesc/, 'regexp.escape'],\n [/\\\\\\./, 'regexp.invalid'],\n ['/', { token: 'regexp.slash', bracket: '@close' }, '@pop'],\n ],\n\n regexrange: [\n [/-/, 'regexp.escape.control'],\n [/\\^/, 'regexp.invalid'],\n [/@regexpesc/, 'regexp.escape'],\n [/[^\\]]/, 'regexp'],\n [/\\]/, '@brackets.regexp.escape.control', '@pop'],\n ],\n },\n};\n\nconst lang: Language = { id, conf, language };\nexport default lang;\n"],"mappings":"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"}
1
+ {"version":3,"file":"db.js","names":["id","conf","comments","lineComment","blockComment","brackets","autoClosingPairs","open","close","notIn","surroundingPairs","onEnterRules","beforeText","action","indentAction","folding","offSide","markers","start","end","language","tokenPostfix","keywords","builtins","operators","token","symbols","escapes","exponent","regexpctl","regexpesc","tokenizer","root","cases","$3","include","bracket","next","whitespace","comment","string","regexp","regexrange","lang"],"sources":["../../../src/monaco/lang/db.ts"],"sourcesContent":["import type * as monaco from 'monaco-editor';\nimport { type Language } from './Language';\n\n/* eslint no-useless-escape: \"off\" */\nconst id = 'deephavenDb';\n\nconst conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: '#',\n blockComment: [\"'''\", \"'''\"],\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"', notIn: ['string'] },\n { open: \"'\", close: \"'\", notIn: ['string', 'comment'] },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n onEnterRules: [\n {\n beforeText:\n /^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$/,\n action: { indentAction: 1 }, // see monaco.languages.IndentAction.Indent\n },\n ],\n folding: {\n offSide: true,\n markers: {\n start: /^\\s*#region\\b/,\n end: /^\\s*#endregion\\b/,\n },\n },\n};\n\nconst language: monaco.languages.IMonarchLanguage = {\n tokenPostfix: '.js',\n\n keywords: [\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n ],\n\n builtins: ['define', 'require', 'window', 'document', 'undefined'],\n\n operators: [\n '=',\n '>',\n '<',\n '!',\n '~',\n '?',\n ':',\n '==',\n '<=',\n '>=',\n '!=',\n '&&',\n '||',\n '++',\n '--',\n '+',\n '-',\n '*',\n '/',\n '&',\n '|',\n '^',\n '%',\n '<<',\n '>>',\n '>>>',\n '+=',\n '-=',\n '*=',\n '/=',\n '&=',\n '|=',\n '^=',\n '%=',\n '<<=',\n '>>=',\n '>>>=',\n ],\n\n // define our own brackets as '<' and '>' do not match in javascript\n brackets: [\n { open: '{', close: '}', token: 'delimiter.curly' },\n { open: '[', close: ']', token: 'delimiter.bracket' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n ],\n\n // common regular expressions\n symbols: /[~!@#%\\^&*-+=|\\\\:`<>.?\\/]+/,\n escapes: /\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,\n exponent: /[eE][\\-+]?[0-9]+/,\n\n regexpctl: /[(){}\\[\\]\\$\\^|\\-*+?\\.]/,\n regexpesc:\n /\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,\n\n tokenizer: {\n root: [\n // identifiers and keywords\n [\n /([a-zA-Z_\\$][\\w\\$]*)(\\s*)(:?)/,\n {\n cases: {\n '$1@keywords': ['keyword', 'white', 'delimiter'],\n $3: ['key.identifier', 'white', 'delimiter'], // followed by :\n '$1@builtins': ['predefined.identifier', 'white', 'delimiter'],\n '@default': ['identifier', 'white', 'delimiter'],\n },\n },\n ],\n\n // whitespace\n { include: '@whitespace' },\n\n // regular expression: ensure it is terminated before beginning (otherwise it is an opeator)\n [\n /\\/(?=([^\\\\\\/]|\\\\.)+\\/)/,\n { token: 'regexp.slash', bracket: '@open', next: '@regexp' },\n ],\n\n // delimiters and operators\n [/[{}()\\[\\]]/, '@brackets'],\n [/[;,.]/, 'delimiter'],\n [\n /@symbols/,\n {\n cases: {\n '@operators': 'operator',\n '@default': '',\n },\n },\n ],\n\n // numbers\n [/\\d+\\.\\d*(@exponent)?/, 'number.float'],\n [/\\.\\d+(@exponent)?/, 'number.float'],\n [/\\d+@exponent/, 'number.float'],\n [/0[xX][\\da-fA-F]+/, 'number.hex'],\n [/0[0-7]+/, 'number.octal'],\n [/\\d+/, 'number'],\n\n // strings: recover on non-terminated strings\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/\"/, 'string', '@string.\"'],\n [/'/, 'string', \"@string.'\"],\n ],\n\n whitespace: [\n [/[ \\t\\r\\n]+/, 'white'],\n [/\\/\\*/, 'comment', '@comment'],\n [/\\/\\/.*$/, 'comment'],\n ],\n\n comment: [\n [/[^\\/*]+/, 'comment'],\n // [/\\/\\*/, 'comment', '@push' ], // nested comment not allowed :-(\n [/\\/\\*/, 'comment.invalid'],\n ['\\\\*/', 'comment', '@pop'],\n [/[\\/*]/, 'comment'],\n ],\n\n string: [\n [/[^\\\\\"']+/, 'string'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n [\n /[\"']/,\n {\n cases: {\n '$#==$S2': { token: 'string', next: '@pop' },\n '@default': 'string',\n },\n },\n ],\n ],\n\n // We match regular expression quite precisely\n regexp: [\n [\n /(\\{)(\\d+(?:,\\d*)?)(\\})/,\n [\n '@brackets.regexp.escape.control',\n 'regexp.escape.control',\n '@brackets.regexp.escape.control',\n ],\n ],\n [\n /(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/,\n [\n { token: '@brackets.regexp.escape.control' },\n {\n token: 'regexp.escape.control',\n next: '@regexrange',\n },\n ],\n ],\n [\n /(\\()(\\?:|\\?=|\\?!)/,\n ['@brackets.regexp.escape.control', 'regexp.escape.control'],\n ],\n [/[()]/, '@brackets.regexp.escape.control'],\n [/@regexpctl/, 'regexp.escape.control'],\n [/[^\\\\\\/]/, 'regexp'],\n [/@regexpesc/, 'regexp.escape'],\n [/\\\\\\./, 'regexp.invalid'],\n ['/', { token: 'regexp.slash', bracket: '@close' }, '@pop'],\n ],\n\n regexrange: [\n [/-/, 'regexp.escape.control'],\n [/\\^/, 'regexp.invalid'],\n [/@regexpesc/, 'regexp.escape'],\n [/[^\\]]/, 'regexp'],\n [/\\]/, '@brackets.regexp.escape.control', '@pop'],\n ],\n },\n};\n\nconst lang: Language = { id, conf, language };\nexport default lang;\n"],"mappings":"AAGA;AACA,IAAMA,EAAE,GAAG,aAAa;AAExB,IAAMC,IAA4C,GAAG;EACnDC,QAAQ,EAAE;IACRC,WAAW,EAAE,GAAG;IAChBC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK;EAC7B,CAAC;EACDC,QAAQ,EAAE,CACR,CAAC,GAAG,EAAE,GAAG,CAAC,EACV,CAAC,GAAG,EAAE,GAAG,CAAC,EACV,CAAC,GAAG,EAAE,GAAG,CAAC,CACX;EACDC,gBAAgB,EAAE,CAChB;IAAEC,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAI,CAAC,EACzB;IAAED,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAI,CAAC,EACzB;IAAED,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAI,CAAC,EACzB;IAAED,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE,GAAG;IAAEC,KAAK,EAAE,CAAC,QAAQ;EAAE,CAAC,EAC5C;IAAEF,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE,GAAG;IAAEC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS;EAAE,CAAC,CACxD;EACDC,gBAAgB,EAAE,CAChB;IAAEH,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAI,CAAC,EACzB;IAAED,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAI,CAAC,EACzB;IAAED,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAI,CAAC,EACzB;IAAED,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAI,CAAC,EACzB;IAAED,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAI,CAAC,CAC1B;EACDG,YAAY,EAAE,CACZ;IACEC,UAAU,EACR,gFAAgF;IAClFC,MAAM,EAAE;MAAEC,YAAY,EAAE;IAAE,CAAC,CAAE;EAC/B,CAAC,CACF;EACDC,OAAO,EAAE;IACPC,OAAO,EAAE,IAAI;IACbC,OAAO,EAAE;MACPC,KAAK,EAAE,eAAe;MACtBC,GAAG,EAAE;IACP;EACF;AACF,CAAC;AAED,IAAMC,QAA2C,GAAG;EAClDC,YAAY,EAAE,KAAK;EAEnBC,QAAQ,EAAE,CACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,EACV,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,cAAc,EACd,MAAM,EACN,OAAO,EACP,QAAQ,EACR,WAAW,EACX,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,UAAU,EACV,OAAO,EACP,MAAM,CACP;EAEDC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC;EAElEC,SAAS,EAAE,CACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,CACP;EAED;EACAnB,QAAQ,EAAE,CACR;IAAEE,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE,GAAG;IAAEiB,KAAK,EAAE;EAAkB,CAAC,EACnD;IAAElB,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE,GAAG;IAAEiB,KAAK,EAAE;EAAoB,CAAC,EACrD;IAAElB,IAAI,EAAE,GAAG;IAAEC,KAAK,EAAE,GAAG;IAAEiB,KAAK,EAAE;EAAwB,CAAC,CAC1D;EAED;EACAC,OAAO,EAAE,4BAA4B;EACrCC,OAAO,EAAE,6CAA6C;EACtDC,QAAQ,EAAE,kBAAkB;EAE5BC,SAAS,EAAE,wBAAwB;EACnCC,SAAS,EACP,8EAA8E;EAEhFC,SAAS,EAAE;IACTC,IAAI,EAAE;IACJ;IACA,CACE,+BAA+B,EAC/B;MACEC,KAAK,EAAE;QACL,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC;QAChDC,EAAE,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,WAAW,CAAC;QAAE;QAC9C,aAAa,EAAE,CAAC,uBAAuB,EAAE,OAAO,EAAE,WAAW,CAAC;QAC9D,UAAU,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW;MACjD;IACF,CAAC,CACF;IAED;IACA;MAAEC,OAAO,EAAE;IAAc,CAAC;IAE1B;IACA,CACE,wBAAwB,EACxB;MAAEV,KAAK,EAAE,cAAc;MAAEW,OAAO,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAU,CAAC,CAC7D;IAED;IACA,CAAC,YAAY,EAAE,WAAW,CAAC,EAC3B,CAAC,OAAO,EAAE,WAAW,CAAC,EACtB,CACE,UAAU,EACV;MACEJ,KAAK,EAAE;QACL,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE;MACd;IACF,CAAC,CACF;IAED;IACA,CAAC,sBAAsB,EAAE,cAAc,CAAC,EACxC,CAAC,mBAAmB,EAAE,cAAc,CAAC,EACrC,CAAC,cAAc,EAAE,cAAc,CAAC,EAChC,CAAC,kBAAkB,EAAE,YAAY,CAAC,EAClC,CAAC,SAAS,EAAE,cAAc,CAAC,EAC3B,CAAC,KAAK,EAAE,QAAQ,CAAC;IAEjB;IACA,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;IAAE;IACvC,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;IAAE;IACvC,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,EAC5B,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7B;IAEDK,UAAU,EAAE,CACV,CAAC,YAAY,EAAE,OAAO,CAAC,EACvB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,EAC/B,CAAC,SAAS,EAAE,SAAS,CAAC,CACvB;IAEDC,OAAO,EAAE,CACP,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB;IACA,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC3B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAC3B,CAAC,OAAO,EAAE,SAAS,CAAC,CACrB;IAEDC,MAAM,EAAE,CACN,CAAC,UAAU,EAAE,QAAQ,CAAC,EACtB,CAAC,UAAU,EAAE,eAAe,CAAC,EAC7B,CAAC,KAAK,EAAE,uBAAuB,CAAC,EAChC,CACE,MAAM,EACN;MACEP,KAAK,EAAE;QACL,SAAS,EAAE;UAAER,KAAK,EAAE,QAAQ;UAAEY,IAAI,EAAE;QAAO,CAAC;QAC5C,UAAU,EAAE;MACd;IACF,CAAC,CACF,CACF;IAED;IACAI,MAAM,EAAE,CACN,CACE,wBAAwB,EACxB,CACE,iCAAiC,EACjC,uBAAuB,EACvB,iCAAiC,CAClC,CACF,EACD,CACE,iCAAiC,EACjC,CACE;MAAEhB,KAAK,EAAE;IAAkC,CAAC,EAC5C;MACEA,KAAK,EAAE,uBAAuB;MAC9BY,IAAI,EAAE;IACR,CAAC,CACF,CACF,EACD,CACE,mBAAmB,EACnB,CAAC,iCAAiC,EAAE,uBAAuB,CAAC,CAC7D,EACD,CAAC,MAAM,EAAE,iCAAiC,CAAC,EAC3C,CAAC,YAAY,EAAE,uBAAuB,CAAC,EACvC,CAAC,SAAS,EAAE,QAAQ,CAAC,EACrB,CAAC,YAAY,EAAE,eAAe,CAAC,EAC/B,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC1B,CAAC,GAAG,EAAE;MAAEZ,KAAK,EAAE,cAAc;MAAEW,OAAO,EAAE;IAAS,CAAC,EAAE,MAAM,CAAC,CAC5D;IAEDM,UAAU,EAAE,CACV,CAAC,GAAG,EAAE,uBAAuB,CAAC,EAC9B,CAAC,IAAI,EAAE,gBAAgB,CAAC,EACxB,CAAC,YAAY,EAAE,eAAe,CAAC,EAC/B,CAAC,OAAO,EAAE,QAAQ,CAAC,EACnB,CAAC,IAAI,EAAE,iCAAiC,EAAE,MAAM,CAAC;EAErD;AACF,CAAC;AAED,IAAMC,IAAc,GAAG;EAAE3C,EAAE;EAAEC,IAAI;EAAEmB;AAAS,CAAC;AAC7C,eAAeuB,IAAI","ignoreList":[]}
@@ -45,7 +45,6 @@ var conf = {
45
45
  indentAction: 1
46
46
  } // see monaco.languages.IndentAction.Indent
47
47
  }],
48
-
49
48
  folding: {
50
49
  offSide: true,
51
50
  markers: {
@@ -1 +1 @@
1
- {"version":3,"file":"groovy.js","names":["id","conf","comments","lineComment","blockComment","brackets","autoClosingPairs","open","close","notIn","surroundingPairs","onEnterRules","beforeText","action","indentAction","folding","offSide","markers","start","end","language","keywords","operators","token","symbols","delimiters","escapes","rawpre","strpre","tokenizer","root","bracket","next","nextEmbedded","cases","include","mstring","sstring","string","strcontent","mrawstring","rawstring","rawstrcontent","whitespace","comment","doccomment","lang"],"sources":["../../../src/monaco/lang/groovy.ts"],"sourcesContent":["import type * as monaco from 'monaco-editor';\nimport { type Language } from './Language';\n\nconst id = 'groovy';\n\nconst conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: '//',\n blockComment: ['/*', '*/'],\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"', notIn: ['string'] },\n { open: \"'\", close: \"'\", notIn: ['string', 'comment'] },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n onEnterRules: [\n {\n beforeText:\n /^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$/,\n action: { indentAction: 1 }, // see monaco.languages.IndentAction.Indent\n },\n ],\n folding: {\n offSide: true,\n markers: {\n start: /^\\s*#region\\b/,\n end: /^\\s*#endregion\\b/,\n },\n },\n};\n\nconst language: monaco.languages.IMonarchLanguage = {\n // Set defaultToken to invalid to see what you do not tokenize yet\n // defaultToken: 'invalid',\n\n keywords: [\n 'and',\n 'del',\n 'from',\n 'not',\n 'while',\n 'as',\n 'elif',\n 'global',\n 'or',\n 'with',\n 'assert',\n 'else',\n 'if',\n 'pass',\n 'yield',\n 'break',\n 'except',\n 'import',\n 'print',\n 'println',\n 'class',\n 'exec',\n 'in',\n 'raise',\n 'continue',\n 'finally',\n 'is',\n 'return',\n 'def',\n 'for',\n 'lambda',\n 'try',\n ':',\n '=',\n 'isinstance',\n '__debug__',\n ],\n\n operators: [\n '+',\n '-',\n '*',\n '**',\n '/',\n '//',\n '%',\n '<<',\n '>>',\n '&',\n '|',\n '^',\n '~',\n '<',\n '>',\n '<=',\n '>=',\n '==',\n '!=',\n '<>',\n '+=',\n '-=',\n '*=',\n '/',\n '//=',\n '%=',\n '&=',\n '|=',\n '^=',\n '>>=',\n '<<=',\n '**=',\n ],\n\n brackets: [\n { open: '{', close: '}', token: 'delimiter.curly' },\n { open: '[', close: ']', token: 'delimiter.square' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n ],\n\n // operator symbols\n symbols: /[=><!~&|+\\-*/^%]+/,\n delimiters: /[;=.@:,`]/,\n\n // strings\n escapes:\n /\\\\(?:[abfnrtv\\\\\"'\\n\\r]|x[0-9A-Fa-f]{2}|[0-7]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\\{\\w+\\})/,\n rawpre: /(?:[rR]|ur|Ur|uR|UR|br|Br|bR|BR)/,\n strpre: /(?:[buBU])/,\n\n // The main tokenizer for our languages\n tokenizer: {\n root: [\n // strings: need to check first due to the prefix\n [\n /@strpre?(\"\"\"|''')/,\n { token: 'string.delim', bracket: '@open', next: '@mstring.$1' },\n ],\n [/@strpre?\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/@strpre?'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [\n /@strpre?([\"])/,\n {\n token: 'string.delim',\n bracket: '@open',\n next: '@sstring.$1',\n nextEmbedded: 'deephavenDb',\n },\n ],\n [\n /@strpre?([\"'])/,\n { token: 'string.delim', bracket: '@open', next: '@string.$1' },\n ],\n\n [\n /@rawpre(\"\"\"|''')/,\n { token: 'string.delim', bracket: '@open', next: '@mrawstring.$1' },\n ],\n [/@rawpre\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/@rawpre'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [\n /@rawpre([\"'])/,\n { token: 'string.delim', bracket: '@open', next: '@rawstring.$1' },\n ],\n\n // identifiers and keywords\n [/__[\\w$]*/, 'predefined'],\n [\n /[a-z_$][\\w$]*/,\n {\n cases: {\n '@keywords': 'keyword',\n '@default': 'identifier',\n },\n },\n ],\n [\n /[A-Z][\\w]*/,\n {\n cases: {\n '~[A-Z0-9_]+': 'constructor.identifier',\n '@default': 'namespace.identifier',\n },\n },\n ], // to show class names nicely\n\n // whitespace\n { include: '@whitespace' },\n\n // delimiters and operators\n [/[{}()[\\]]/, '@brackets'],\n [\n /@symbols/,\n {\n cases: {\n '@keywords': 'keyword',\n '@operators': 'operator',\n '@default': '',\n },\n },\n ],\n\n // numbers\n [/\\d*\\.\\d+([eE][-+]?\\d+)?/, 'number.float'],\n [/0[xX][0-9a-fA-F]+[lL]?/, 'number.hex'],\n [/0[bB][0-1]+[lL]?/, 'number.binary'],\n [/(0[oO][0-7]+|0[0-7]+)[lL]?/, 'number.octal'],\n [/(0|[1-9]\\d*)[lL]?/, 'number'],\n\n // delimiter: after number because of .\\d floats\n [':', { token: 'keyword', bracket: '@open' }], // bracket for indentation\n [\n /@delimiters/,\n {\n cases: {\n '@keywords': 'keyword',\n '@default': 'delimiter',\n },\n },\n ],\n ],\n\n // Regular strings\n mstring: [\n { include: '@strcontent' },\n [\n /\"\"\"|'''/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/[\"']/, 'string'],\n [/./, 'string.invalid'],\n ],\n\n sstring: [\n { include: '@strcontent' },\n [\n /[\"]/,\n {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n nextEmbedded: '@pop',\n },\n ],\n [/./, 'string.invalid'],\n ],\n\n string: [\n { include: '@strcontent' },\n [/[']/, { token: 'string.delim', bracket: '@close', next: '@pop' }],\n [/./, 'string.invalid'],\n ],\n\n strcontent: [\n [/[^\\\\\"']+/, 'string'],\n [/\\\\$/, 'string.escape'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n ],\n\n // Raw strings: we distinguish them to color escape sequences correctly\n mrawstring: [\n { include: '@rawstrcontent' },\n [\n /\"\"\"|'''/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/[\"']/, 'string'],\n [/./, 'string.invalid'],\n ],\n\n rawstring: [\n { include: '@rawstrcontent' },\n [\n /[\"']/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/./, 'string.invalid'],\n ],\n\n rawstrcontent: [\n [/[^\\\\\"']+/, 'string'],\n [/\\\\[\"']/, 'string'],\n [/\\\\u[0-9A-Fa-f]{4}/, 'string.escape'],\n [/\\\\/, 'string'],\n ],\n\n whitespace: [\n [/[ \\t\\r\\n]+/, ''],\n [/\\/\\*\\*(?!\\/)/, 'comment.doc', '@doccomment'],\n [/\\/\\*/, 'comment', '@comment'],\n [/\\/\\/.*$/, 'comment'],\n ],\n\n comment: [\n [/[^/*]+/, 'comment'],\n [/\\*\\//, 'comment', '@pop'],\n [/[/*]/, 'comment'],\n ],\n\n doccomment: [\n [/[^/*]+/, 'comment.doc'],\n [/\\*\\//, 'comment.doc', '@pop'],\n [/[/*]/, 'comment.doc'],\n ],\n },\n};\n\nconst lang: Language = { id, conf, language };\nexport default lang;\n"],"mappings":"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"}
1
+ {"version":3,"file":"groovy.js","names":["id","conf","comments","lineComment","blockComment","brackets","autoClosingPairs","open","close","notIn","surroundingPairs","onEnterRules","beforeText","action","indentAction","folding","offSide","markers","start","end","language","keywords","operators","token","symbols","delimiters","escapes","rawpre","strpre","tokenizer","root","bracket","next","nextEmbedded","cases","include","mstring","sstring","string","strcontent","mrawstring","rawstring","rawstrcontent","whitespace","comment","doccomment","lang"],"sources":["../../../src/monaco/lang/groovy.ts"],"sourcesContent":["import type * as monaco from 'monaco-editor';\nimport { type Language } from './Language';\n\nconst id = 'groovy';\n\nconst conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: '//',\n blockComment: ['/*', '*/'],\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"', notIn: ['string'] },\n { open: \"'\", close: \"'\", notIn: ['string', 'comment'] },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n onEnterRules: [\n {\n beforeText:\n /^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$/,\n action: { indentAction: 1 }, // see monaco.languages.IndentAction.Indent\n },\n ],\n folding: {\n offSide: true,\n markers: {\n start: /^\\s*#region\\b/,\n end: /^\\s*#endregion\\b/,\n },\n },\n};\n\nconst language: monaco.languages.IMonarchLanguage = {\n // Set defaultToken to invalid to see what you do not tokenize yet\n // defaultToken: 'invalid',\n\n keywords: [\n 'and',\n 'del',\n 'from',\n 'not',\n 'while',\n 'as',\n 'elif',\n 'global',\n 'or',\n 'with',\n 'assert',\n 'else',\n 'if',\n 'pass',\n 'yield',\n 'break',\n 'except',\n 'import',\n 'print',\n 'println',\n 'class',\n 'exec',\n 'in',\n 'raise',\n 'continue',\n 'finally',\n 'is',\n 'return',\n 'def',\n 'for',\n 'lambda',\n 'try',\n ':',\n '=',\n 'isinstance',\n '__debug__',\n ],\n\n operators: [\n '+',\n '-',\n '*',\n '**',\n '/',\n '//',\n '%',\n '<<',\n '>>',\n '&',\n '|',\n '^',\n '~',\n '<',\n '>',\n '<=',\n '>=',\n '==',\n '!=',\n '<>',\n '+=',\n '-=',\n '*=',\n '/',\n '//=',\n '%=',\n '&=',\n '|=',\n '^=',\n '>>=',\n '<<=',\n '**=',\n ],\n\n brackets: [\n { open: '{', close: '}', token: 'delimiter.curly' },\n { open: '[', close: ']', token: 'delimiter.square' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n ],\n\n // operator symbols\n symbols: /[=><!~&|+\\-*/^%]+/,\n delimiters: /[;=.@:,`]/,\n\n // strings\n escapes:\n /\\\\(?:[abfnrtv\\\\\"'\\n\\r]|x[0-9A-Fa-f]{2}|[0-7]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\\{\\w+\\})/,\n rawpre: /(?:[rR]|ur|Ur|uR|UR|br|Br|bR|BR)/,\n strpre: /(?:[buBU])/,\n\n // The main tokenizer for our languages\n tokenizer: {\n root: [\n // strings: need to check first due to the prefix\n [\n /@strpre?(\"\"\"|''')/,\n { token: 'string.delim', bracket: '@open', next: '@mstring.$1' },\n ],\n [/@strpre?\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/@strpre?'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [\n /@strpre?([\"])/,\n {\n token: 'string.delim',\n bracket: '@open',\n next: '@sstring.$1',\n nextEmbedded: 'deephavenDb',\n },\n ],\n [\n /@strpre?([\"'])/,\n { token: 'string.delim', bracket: '@open', next: '@string.$1' },\n ],\n\n [\n /@rawpre(\"\"\"|''')/,\n { token: 'string.delim', bracket: '@open', next: '@mrawstring.$1' },\n ],\n [/@rawpre\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [/@rawpre'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\n [\n /@rawpre([\"'])/,\n { token: 'string.delim', bracket: '@open', next: '@rawstring.$1' },\n ],\n\n // identifiers and keywords\n [/__[\\w$]*/, 'predefined'],\n [\n /[a-z_$][\\w$]*/,\n {\n cases: {\n '@keywords': 'keyword',\n '@default': 'identifier',\n },\n },\n ],\n [\n /[A-Z][\\w]*/,\n {\n cases: {\n '~[A-Z0-9_]+': 'constructor.identifier',\n '@default': 'namespace.identifier',\n },\n },\n ], // to show class names nicely\n\n // whitespace\n { include: '@whitespace' },\n\n // delimiters and operators\n [/[{}()[\\]]/, '@brackets'],\n [\n /@symbols/,\n {\n cases: {\n '@keywords': 'keyword',\n '@operators': 'operator',\n '@default': '',\n },\n },\n ],\n\n // numbers\n [/\\d*\\.\\d+([eE][-+]?\\d+)?/, 'number.float'],\n [/0[xX][0-9a-fA-F]+[lL]?/, 'number.hex'],\n [/0[bB][0-1]+[lL]?/, 'number.binary'],\n [/(0[oO][0-7]+|0[0-7]+)[lL]?/, 'number.octal'],\n [/(0|[1-9]\\d*)[lL]?/, 'number'],\n\n // delimiter: after number because of .\\d floats\n [':', { token: 'keyword', bracket: '@open' }], // bracket for indentation\n [\n /@delimiters/,\n {\n cases: {\n '@keywords': 'keyword',\n '@default': 'delimiter',\n },\n },\n ],\n ],\n\n // Regular strings\n mstring: [\n { include: '@strcontent' },\n [\n /\"\"\"|'''/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/[\"']/, 'string'],\n [/./, 'string.invalid'],\n ],\n\n sstring: [\n { include: '@strcontent' },\n [\n /[\"]/,\n {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n nextEmbedded: '@pop',\n },\n ],\n [/./, 'string.invalid'],\n ],\n\n string: [\n { include: '@strcontent' },\n [/[']/, { token: 'string.delim', bracket: '@close', next: '@pop' }],\n [/./, 'string.invalid'],\n ],\n\n strcontent: [\n [/[^\\\\\"']+/, 'string'],\n [/\\\\$/, 'string.escape'],\n [/@escapes/, 'string.escape'],\n [/\\\\./, 'string.escape.invalid'],\n ],\n\n // Raw strings: we distinguish them to color escape sequences correctly\n mrawstring: [\n { include: '@rawstrcontent' },\n [\n /\"\"\"|'''/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/[\"']/, 'string'],\n [/./, 'string.invalid'],\n ],\n\n rawstring: [\n { include: '@rawstrcontent' },\n [\n /[\"']/,\n {\n cases: {\n '$#==$S2': {\n token: 'string.delim',\n bracket: '@close',\n next: '@pop',\n },\n '@default': { token: 'string' },\n },\n },\n ],\n [/./, 'string.invalid'],\n ],\n\n rawstrcontent: [\n [/[^\\\\\"']+/, 'string'],\n [/\\\\[\"']/, 'string'],\n [/\\\\u[0-9A-Fa-f]{4}/, 'string.escape'],\n [/\\\\/, 'string'],\n ],\n\n whitespace: [\n [/[ \\t\\r\\n]+/, ''],\n [/\\/\\*\\*(?!\\/)/, 'comment.doc', '@doccomment'],\n [/\\/\\*/, 'comment', '@comment'],\n [/\\/\\/.*$/, 'comment'],\n ],\n\n comment: [\n [/[^/*]+/, 'comment'],\n [/\\*\\//, 'comment', '@pop'],\n [/[/*]/, 'comment'],\n ],\n\n doccomment: [\n [/[^/*]+/, 'comment.doc'],\n [/\\*\\//, 'comment.doc', '@pop'],\n [/[/*]/, 'comment.doc'],\n ],\n },\n};\n\nconst lang: Language = { id, conf, language };\nexport default lang;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","names":["id","conf","language","tokenizer","root","token","next","error","include","info","warn","stdout","trace","debug","body","lang"],"sources":["../../../src/monaco/lang/log.ts"],"sourcesContent":["/* eslint no-useless-escape: \"off\" */\nimport type * as monaco from 'monaco-editor';\nimport { type Language } from './Language';\n\nconst id = 'log';\n\nconst conf = {};\n\nconst language: monaco.languages.IMonarchLanguage = {\n tokenizer: {\n root: [\n [/ FATAL[\\s\\S]*/, { token: 'error', next: '@error' }],\n [/ ERROR[\\s\\S]*/, { token: 'error', next: '@error' }],\n [/ STDERR[\\s\\S]*/, { token: 'error', next: '@error' }],\n [/ STDOUT.*/, { token: 'stdout', next: '@stdout' }],\n [/ INFO[\\s\\S]*/, { token: 'info', next: '@info' }],\n [/ WARN.*/, { token: 'warn', next: '@warn' }],\n [/ TRACE[\\s\\S]*/, { token: 'trace', next: '@trace' }],\n [/ DEBUG[.\\s\\S]*/, { token: 'debug', next: '@debug' }],\n [/^\\d{2}:\\d{2}:\\d{2}.\\d{3}/, 'date'],\n ],\n error: [{ include: '@body' }],\n info: [{ include: '@body' }],\n warn: [{ include: '@body' }],\n stdout: [{ include: '@body' }],\n trace: [{ include: '@body' }],\n debug: [{ include: '@body' }],\n body: [\n [/^\\d{2}:\\d{2}:\\d{2}.\\d{3}/, { token: 'date', next: '@pop' }],\n [/[\\s\\S]*/, { token: '$S0' }],\n ],\n },\n};\n\nconst lang: Language = { id, conf, language };\nexport default lang;\n"],"mappings":"AAAA;;AAIA,IAAMA,EAAE,GAAG,KAAK;AAEhB,IAAMC,IAAI,GAAG,CAAC,CAAC;AAEf,IAAMC,QAA2C,GAAG;EAClDC,SAAS,EAAE;IACTC,IAAI,EAAE,CACJ,CAAC,eAAe,EAAE;MAAEC,KAAK,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAS,CAAC,CAAC,EACrD,CAAC,eAAe,EAAE;MAAED,KAAK,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAS,CAAC,CAAC,EACrD,CAAC,gBAAgB,EAAE;MAAED,KAAK,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAS,CAAC,CAAC,EACtD,CAAC,WAAW,EAAE;MAAED,KAAK,EAAE,QAAQ;MAAEC,IAAI,EAAE;IAAU,CAAC,CAAC,EACnD,CAAC,cAAc,EAAE;MAAED,KAAK,EAAE,MAAM;MAAEC,IAAI,EAAE;IAAQ,CAAC,CAAC,EAClD,CAAC,SAAS,EAAE;MAAED,KAAK,EAAE,MAAM;MAAEC,IAAI,EAAE;IAAQ,CAAC,CAAC,EAC7C,CAAC,eAAe,EAAE;MAAED,KAAK,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAS,CAAC,CAAC,EACrD,CAAC,gBAAgB,EAAE;MAAED,KAAK,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAS,CAAC,CAAC,EACtD,CAAC,0BAA0B,EAAE,MAAM,CAAC,CACrC;IACDC,KAAK,EAAE,CAAC;MAAEC,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC7BC,IAAI,EAAE,CAAC;MAAED,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC5BE,IAAI,EAAE,CAAC;MAAEF,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC5BG,MAAM,EAAE,CAAC;MAAEH,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC9BI,KAAK,EAAE,CAAC;MAAEJ,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC7BK,KAAK,EAAE,CAAC;MAAEL,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC7BM,IAAI,EAAE,CACJ,CAAC,0BAA0B,EAAE;MAAET,KAAK,EAAE,MAAM;MAAEC,IAAI,EAAE;IAAO,CAAC,CAAC,EAC7D,CAAC,SAAS,EAAE;MAAED,KAAK,EAAE;IAAM,CAAC,CAAC;EAEjC;AACF,CAAC;AAED,IAAMU,IAAc,GAAG;EAAEf,EAAE;EAAEC,IAAI;EAAEC;AAAS,CAAC;AAC7C,eAAea,IAAI"}
1
+ {"version":3,"file":"log.js","names":["id","conf","language","tokenizer","root","token","next","error","include","info","warn","stdout","trace","debug","body","lang"],"sources":["../../../src/monaco/lang/log.ts"],"sourcesContent":["/* eslint no-useless-escape: \"off\" */\nimport type * as monaco from 'monaco-editor';\nimport { type Language } from './Language';\n\nconst id = 'log';\n\nconst conf = {};\n\nconst language: monaco.languages.IMonarchLanguage = {\n tokenizer: {\n root: [\n [/ FATAL[\\s\\S]*/, { token: 'error', next: '@error' }],\n [/ ERROR[\\s\\S]*/, { token: 'error', next: '@error' }],\n [/ STDERR[\\s\\S]*/, { token: 'error', next: '@error' }],\n [/ STDOUT.*/, { token: 'stdout', next: '@stdout' }],\n [/ INFO[\\s\\S]*/, { token: 'info', next: '@info' }],\n [/ WARN.*/, { token: 'warn', next: '@warn' }],\n [/ TRACE[\\s\\S]*/, { token: 'trace', next: '@trace' }],\n [/ DEBUG[.\\s\\S]*/, { token: 'debug', next: '@debug' }],\n [/^\\d{2}:\\d{2}:\\d{2}.\\d{3}/, 'date'],\n ],\n error: [{ include: '@body' }],\n info: [{ include: '@body' }],\n warn: [{ include: '@body' }],\n stdout: [{ include: '@body' }],\n trace: [{ include: '@body' }],\n debug: [{ include: '@body' }],\n body: [\n [/^\\d{2}:\\d{2}:\\d{2}.\\d{3}/, { token: 'date', next: '@pop' }],\n [/[\\s\\S]*/, { token: '$S0' }],\n ],\n },\n};\n\nconst lang: Language = { id, conf, language };\nexport default lang;\n"],"mappings":"AAAA;;AAIA,IAAMA,EAAE,GAAG,KAAK;AAEhB,IAAMC,IAAI,GAAG,CAAC,CAAC;AAEf,IAAMC,QAA2C,GAAG;EAClDC,SAAS,EAAE;IACTC,IAAI,EAAE,CACJ,CAAC,eAAe,EAAE;MAAEC,KAAK,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAS,CAAC,CAAC,EACrD,CAAC,eAAe,EAAE;MAAED,KAAK,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAS,CAAC,CAAC,EACrD,CAAC,gBAAgB,EAAE;MAAED,KAAK,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAS,CAAC,CAAC,EACtD,CAAC,WAAW,EAAE;MAAED,KAAK,EAAE,QAAQ;MAAEC,IAAI,EAAE;IAAU,CAAC,CAAC,EACnD,CAAC,cAAc,EAAE;MAAED,KAAK,EAAE,MAAM;MAAEC,IAAI,EAAE;IAAQ,CAAC,CAAC,EAClD,CAAC,SAAS,EAAE;MAAED,KAAK,EAAE,MAAM;MAAEC,IAAI,EAAE;IAAQ,CAAC,CAAC,EAC7C,CAAC,eAAe,EAAE;MAAED,KAAK,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAS,CAAC,CAAC,EACrD,CAAC,gBAAgB,EAAE;MAAED,KAAK,EAAE,OAAO;MAAEC,IAAI,EAAE;IAAS,CAAC,CAAC,EACtD,CAAC,0BAA0B,EAAE,MAAM,CAAC,CACrC;IACDC,KAAK,EAAE,CAAC;MAAEC,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC7BC,IAAI,EAAE,CAAC;MAAED,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC5BE,IAAI,EAAE,CAAC;MAAEF,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC5BG,MAAM,EAAE,CAAC;MAAEH,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC9BI,KAAK,EAAE,CAAC;MAAEJ,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC7BK,KAAK,EAAE,CAAC;MAAEL,OAAO,EAAE;IAAQ,CAAC,CAAC;IAC7BM,IAAI,EAAE,CACJ,CAAC,0BAA0B,EAAE;MAAET,KAAK,EAAE,MAAM;MAAEC,IAAI,EAAE;IAAO,CAAC,CAAC,EAC7D,CAAC,SAAS,EAAE;MAAED,KAAK,EAAE;IAAM,CAAC,CAAC;EAEjC;AACF,CAAC;AAED,IAAMU,IAAc,GAAG;EAAEf,EAAE;EAAEC,IAAI;EAAEC;AAAS,CAAC;AAC7C,eAAea,IAAI","ignoreList":[]}
@@ -45,7 +45,6 @@ var conf = {
45
45
  indentAction: 1
46
46
  } // see monaco.languages.IndentAction.Indent
47
47
  }],
48
-
49
48
  folding: {
50
49
  offSide: true,
51
50
  markers: {