User:Fumple/vector.js: Difference between revisions
From Inkipedia, the Splatoon wiki
(Testing) |
(Testing) |
||
Line 11: | Line 11: | ||
].join("\n")); | ].join("\n")); | ||
var fplEditorCheck = setInterval(function (){ | var fplEditorCheck = setInterval(function (){ | ||
if($("#wpTextbox1").length != 0){ | if($("#wpTextbox1").length != 0 && typeof monaco != "undefined"){ | ||
clearInterval(fplEditorCheck); | clearInterval(fplEditorCheck); | ||
$("#wpTextbox1").after('<div id="vscodeeditor"></div>'); | $("#wpTextbox1").after('<div id="vscodeeditor"></div>'); |
Revision as of 16:01, 27 March 2021
if(["Scribunto", "javascript", "css"].includes(mw.config.get("wgPageContentModel")) && mw.config.get("wgAction") == "edit"){ //Load editor (https://github.com/microsoft/monaco-editor/tree/main) $("head").append('<link rel="stylesheet" data-name="vs/editor/editor.main" href="https://microsoft.github.io/monaco-editor/node_modules/monaco-editor/min/vs/editor/editor.main.css" />'); $("body").append([ '<script>', ' var require = { paths: { vs: "https://microsoft.github.io/monaco-editor/node_modules/monaco-editor/min/vs" } };', '</script>', '<script src="https://microsoft.github.io/monaco-editor/node_modules/monaco-editor/min/vs/loader.js"></script>', '<script src="https://microsoft.github.io/monaco-editor/node_modules/monaco-editor/min/vs/editor/editor.main.nls.js"></script>', '<script src="https://microsoft.github.io/monaco-editor/node_modules/monaco-editor/min/vs/editor/editor.main.js"></script>' ].join("\n")); var fplEditorCheck = setInterval(function (){ if($("#wpTextbox1").length != 0 && typeof monaco != "undefined"){ clearInterval(fplEditorCheck); $("#wpTextbox1").after('<div id="vscodeeditor"></div>'); $("#wpTextbox1").css("display", "none"); $("#wpTextbox1").attr("readonly",true); $("#vscodeeditor").css("height", "500px"); new mw.Api().get({ "action": "query", "format": "json", "list": "gadgets", "gaprop": "id", "gaenabledonly": 1 }).then(function(data){ window.fplEditor = monaco.editor.create(document.getElementById('vscodeeditor'), { value: $("#wpTextbox1").val(), language: {"Scribunto":"lua", "javascript":"javascript", "css":"css"}[mw.config.get("wgPageContentModel")], theme: data.query.gadgets.map(function(el){return el.id}).includes("darkmode") ? "vs-dark" : "vs" }); }).catch(function(ex){ alert("An error occurred, check the console for more details"); console.error(ex); $("#wpTextbox1").css("display", ""); $("#wpTextbox1").attr("readonly",null); $("#vscodeeditor").remove(); }) } }, 100) }