(feat) display only available lanaguages

This commit is contained in:
b1ek 2024-02-18 16:54:30 +10:00
parent 888743f4de
commit 22a7dc5fd5
Signed by: blek
GPG Key ID: 14546221E3595D0C
2 changed files with 8 additions and 1 deletions

View File

@ -12,6 +12,8 @@ let proxy = URL.createObjectURL(new Blob([`
require(["vs/editor/editor.main"], function () {
let init_lang = 'python';
/** @type {string[]} */
const supported_langs = get_langs();
let editor = monaco.editor.create(document.getElementById('container'), {
value: '# put code here',
@ -24,6 +26,8 @@ require(["vs/editor/editor.main"], function () {
});
monaco.languages.getLanguages().forEach(x => {
if (supported_langs.indexOf(x.id) === -1) return
let el = document.createElement('option');
el.id = x.id;
el.innerText = x.id;
@ -34,7 +38,8 @@ require(["vs/editor/editor.main"], function () {
})
document.getElementById('lang').onchange = (e) => {
monaco.editor.setModelLanguage(editor.getModel(), e.target.value)
e = e.target;
monaco.editor.setModelLanguage(editor.getModel(), e.options[e.selectedIndex].id)
}
document.getElementById('run').onclick = (e) => {

View File

@ -12,8 +12,10 @@
</head>
<body>
<h1>Sandy</h1>
{% block body %}{% endblock %}
<script>function get_langs() { return '{{ self.state.langs.join(",") }}'.split(',') }</script>
<script src="https://unpkg.com/monaco-editor@0.8.3/min/vs/loader.js"></script>
{% block script %}{% endblock %}
</body>