7f01c5547a
Vendors Monaco 0.55.1 min/vs/ (~15 MB) at wwwroot/lib/monaco/vs/. No CDN dependency; works on air-gapped deployments. Loaded lazily on first script-edit via the AMD loader. wwwroot/js/monaco-init.js exposes window.MonacoBlazor with createEditor / setValue / getValue / setMarkers / dispose. Handles loader bootstrap, DotNet round-trip on content change, and marker sets for later diagnostic wiring. Components/Shared/MonacoEditor.razor is a Blazor wrapper with Value / ValueChanged / Language / Height / ReadOnly parameters and IAsyncDisposable teardown. Bidirectional binding tracks _lastSentValue to avoid push/pull loops. Replaces the plain textareas in SharedScriptForm, TemplateEdit's Add-Script form, and ApiMethodForm. Default height 320px ≈ the previous rows=10. Build / tests / dialog flow unaffected. Wave 1 of three. Roslyn-backed completions and SCADA-specific extensions follow in subsequent commits.
2 lines
1.8 KiB
JavaScript
2 lines
1.8 KiB
JavaScript
define("vs/bat-C397hTD6",["exports"],(function(e){"use strict";const o={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=><!~?&|+\-*\/\^;\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)(rem(?:\s.*|))$/,["","comment"]],[/(\@?)(@keywords)(?!\w)/,[{token:"keyword"},{token:"keyword.$2"}]],[/[ \t\r\n]+/,""],[/setlocal(?!\w)/,"keyword.tag-setlocal"],[/endlocal(?!\w)/,"keyword.tag-setlocal"],[/[a-zA-Z_]\w*/,""],[/:\w*/,"metatag"],[/%[^%]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],string:[[/[^\\"'%]+/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/%[\w ]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/$/,"string","@popall"]]}};e.conf=o,e.language=s,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
|