UNPKG

@kusto/monaco-kusto

Version:

CSL, KQL plugin for the Monaco Editor

29 lines (28 loc) 1.08 kB
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'; export function dateStringWrapper(editor) { editor.onDidPaste(function (event) { var range = event.range; if (!range) return; var model = editor.getModel(); var pasted = model.getValueInRange(range); if (!isBareIsoDate(pasted)) return; var wrapped = "datetime(".concat(pasted, ")"); var edit = { range: range, text: wrapped, forceMoveMarkers: true, }; var cursorStateComputer = function () { var startOffset = model.getOffsetAt(range.getStartPosition()); var endPos = model.getPositionAt(startOffset + wrapped.length); return [new monaco.Selection(endPos.lineNumber, endPos.column, endPos.lineNumber, endPos.column)]; }; editor.executeEdits('paste-date', [edit], cursorStateComputer); }); } export function isBareIsoDate(text) { var s = text.trim(); return /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}Z)?$/.test(s); }