私はオンラインのpythonエディタを作っています。私はSkulptを使用して、ユーザーがテキサーに入力したコードを実行しています。ここに私のコードは次のとおりです。CodeMirrorをSkulpt Textareaに追加
HTML:
<script src="skulpt.min.js" type="text/javascript"></script>
<script src="skulpt-stdlib.js" type="text/javascript"></script>
<textarea id="textbox" cols="50" rows="10"></textarea>
<br />
<button type="button" onclick="runit()">Run</button>
<pre id="dynamicframe"></pre>
<div id="canvas"></div>
Javascriptを:
function builtinRead(x) {
if (Sk.builtinFiles === undefined || Sk.builtinFiles["files"][x] === undefined)
throw "File not found: '" + x + "'";
return Sk.builtinFiles["files"][x];
}
function runit() {
var prog = document.getElementById("textbox").value;
var mypre = document.getElementById("dynamicframe");
mypre.innerHTML = '';
Sk.pre = "output";
Sk.configure({
output: outf,
read: builtinRead
});
(Sk.TurtleGraphics || (Sk.TurtleGraphics = {})).target = 'canvas';
var myPromise = Sk.misceval.asyncToPromise(function() {
return Sk.importMainWithBody("<stdin>", false, prog, true);
});
myPromise.then(function(mod) {
console.log('success');
},
function(err) {
console.log(err.toString());
});
}
私はCodeMirrorに新しいです、と私はコードカラーリングを追加するために彼らのPythonのバージョンを使用したいです、行番号、テキストのインデントなどがありますが、これらの機能を追加するためにコードを変更する方法についてはちょっと混乱しています。テキストエリアへ。
CodeMirrorを既存のテキストエリアと一緒に使用するにはどうすればよいですか?私がしなければならなかったすべてのthats
var editor = CodeMirror.fromTextArea(document.getElementByid('textbox'), {
mode: 'none',
matchBrackets: true,
dragDrop: false,
styleSelectedText: false,
showCursorWhenSelecting: true,
lineWrapping: true
});
var textAreaContents = editor.getDoc().getValue();
:
を経由して提供されて文書化されていますが試すことができます行番号、インデントなどでCodeMirrorと並行して実行するように、私が提供したコードを変更してください –
ありがとうございます。 –
この質問を助けてください(http://stackoverflow.com/questions/) 39061820/skulpt-runit-button-conflicting-with-codemirror)注意が払われていないため –