8000 Adding changes. · vpython/flaskHost@c957a36 · GitHub
[go: up one dir, main page]

Skip to content

Commit c957a36

Browse files
committed
Adding changes.
1 parent b077489 commit c957a36

File tree

2 files changed

+50
-125
lines changed

2 files changed

+50
-125
lines changed

src/ide.js

Lines changed: 43 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -1437,130 +1437,57 @@ $(function () {
14371437
}
14381438
}
14391439
} else {
1440-
var editor = monaco.editor.create(document.getElementById('editorContainer'), {
1441-
value: [progData.source].join('\n'),
1442-
language: 'python'
1440+
var editor = monaco.editor.create(document.getElementById('editorContainer'), {
1441+
language: 'python',
1442+
value: loader()
14431443
});
1444-
window.editor = editor
1445-
1446-
// var editor = ace.edit(page.find(".program-editor").get(0));
1447-
// window.editor = editor
1448-
// customACEMode(lang, progData.source)
1449-
//var mode = ace_require("ace/mode/visualjs").Mode
1450-
//editor.getSession().setMode(new mode())
1451-
// editor.setTheme({ cssClass: "ace-custom" })
1452-
//editor.set(progData.source)
1453-
editor.setReadOnly( !isWritable )
1454-
editor.selection.moveCursorDown() // position cursor at start of line 2, below GlowScript header
1455-
editor.focus()
1456-
if (isWritable) {
1457-
var save = saver( {user:username, folder:folder, program:program},
1458-
function () { return editor.getSession().getValue() },
1459-
function (status) { page.find(".program-status").text(" ("+status+")") }
1460-
)
1461-
// Save immediately when navigating away from this page
1462-
onNavigate.on(function (cb) { save(0, cb) })
1463-
editor.getSession().on('change', function () {
1464-
save(1000) // Save after 1 second of not typing
1465-
})
1466-
}
1467-
}
1468-
1469-
})
1470-
}
1471-
1472-
// // NOTE: We use the "ace_require" function found in ace.js
1473-
1474-
// /*********** Customization of the ACE editor *************/
1475-
// // See https://github.com/ajaxorg/ace/wiki/Creating-or-Extending-an-Edit-Mode
1476-
// // mode-javascript.js is loaded by ide/index.html.
1477-
// // These modules in turn load worker-javascript.js in lib/ace.
1478-
// // See lib/ace/FileSource.txt for where to find updated ACE files, and how they
1479-
// // were modified in minor ways for GlowScript use.
1480-
var customACEMode = function(lang, source) { // lang is "javascript" or some fragment
1481-
1482-
var lib = "identifier.builtin"
1483-
var attr = "attribute.builtin"
1484-
var libraryWords = {
1485-
pos: attr, axis: attr, up: attr, /*color: attr, */ x: attr, y: attr, z: attr, size: attr,
1486-
visible: attr, forward: attr, length: attr, width: attr, radius: attr,
1487-
wait: "keyword.wait"
1488-
}
1489-
1490-
// Adding "var" and "function" to libraryWords for JavaScript should be unnecessary,
1491-
// but without them they aren't colorized red as they were in earlier ACE:
1492-
if (lang == 'javascript') {
1493-
libraryWords.var = "keyword"
1494-
libraryWords.function = "keyword"
1495-
}
1496-
1497-
var globals = []
1498-
if (window.GlowscriptLibraryNames)
1499-
for (var i=0; i<window.GlowscriptLibraryNames.length; i++) {
1500-
var id = window.GlowscriptLibraryNames[i]
1501-
if (libraryWords[id] === undefined)
1502-
libraryWords[id] = lib
1503-
}
1504-
for(var id in libraryWords) { // e.g. {sphere : identifier.builtin}
1505-
if (!libraryWords[id]) delete libraryWords[id];
1506-
if (libraryWords[id] == lib) globals.push(id)
1507-
}
1508-
1509-
// The "//" at the end of lintPrefix comments out the line "GlowScript X.Y", hence ignored by the worker looking at JavaScript syntax
1510-
var lintPrefix = "/*jslint asi:true, undef:true*/ /*global wait " + globals.join(" ") + "*/\n//"
1511-
1512-
define('ace/mode/visualjs_highlight_rules', function (ace_require, exports, module) {
1513-
var oop = ace_require("ace/lib/oop")
1514-
var Rules
1515-
if (lang == 'vpython') Rules = ace_require("ace/mode/python_highlight_rules").PythonHighlightRules
1516-
else Rules = ace_require("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules
1517-
1518-
var VisualHighlightRules = function () {
1519-
this.$rules = (new Rules()).getRules()
1520-
if (lang == 'vpython') this.$rules.start = [{ regex: /GlowScript\s+[\d\.]*[dev]*\s+[A-Za-z]*/, token: "keyword.version_header" } ].concat(this.$rules.start)
1521-
else this.$rules.start = [{ regex: /GlowScript\s+[\d\.]*[dev]*/, token: "keyword.version_header" } ].concat(this.$rules.start)
1522-
for(var id in libraryWords) {
1523-
this.$rules.start = [{ regex: id, token: libraryWords[id] } ].concat(this.$rules.start)
1444+
1445+
1446+
editor.onDidChangeModelContent(() => {
1447+
localStorage.setItem('editorContainer', JSON.stringify(editor.getValue()));
1448+
});
1449+
1450+
function loader(){
1451+
var returnVal;
1452+
if(apiGet != ['Python 3.2'].join('\n')){
1453+
returnVal = apiGet({user:username, folder:folder, program:program}, function (progData) {});
1454+
//returnVal = apiGet({'/api/user/<username>/folder/<foldername>/program/<programname>'}, function (progData) {});
1455+
1456+
// returnVal = JSON.parse(localStorage.getItem('editorContainer')
1457+
}
1458+
else {
1459+
returnVal = ['Python 3.2'].join('\n')
1460+
}
1461+
return returnVal
15241462
}
1463+
if (isWritable) {
1464+
var save = saver( {user:username, folder:folder, program:program},
1465+
function () { return editor.getValue() },
1466+
function (status) { page.find(".program-status").text(" ("+status+")") }
1467+
)
1468+
// Save immediately when navigating away from this page
1469+
onNavigate.on(function (cb) { save(0, cb) })
1470+
editor.onDidChangeModelContent('change', function () {
1471+
save(1000) // Save after 1 second of not typing
1472+
})
1473+
}
1474+
//localStorage.clear()
1475+
// editor.onDidChangeModelContent(() => {
1476+
// localStorage.setItem('editorContainer', JSON.stringify(editor.getValue()));
1477+
// editor.save(editor.getValue())
1478+
// });
15251479
}
1526-
oop.inherits(VisualHighlightRules, Rules)
1527-
exports.VisualHighlightRules = VisualHighlightRules
1528-
})
1529-
1530-
1531-
//------------------------------------------------------------------------------------------------------
1532-
define('ace/mode/visualjs', function (ace_require, exports, module) {
1533-
var oop = ace_require("ace/lib/oop")
1534-
if (lang == 'vpython') var BaseMode = ace_require("ace/mode/python").Mode
1535-
else var BaseMode = ace_require("ace/mode/javascript").Mode
1536-
var Tokenizer = ace_require("ace/tokenizer").Tokenizer
1537-
var VisualHighlightRules = ace_require("ace/mode/visualjs_highlight_rules").VisualHighlightRules
1538-
var WorkerClient = ace_require("ace/worker/worker_client").WorkerClient // *****************************************************
1539-
1540-
var Mode = function () {
1541-
BaseMode.call(this)
1542-
this.$tokenizer = new Tokenizer((new VisualHighlightRules()).getRules());
1543-
}
1544-
oop.inherits(Mode, BaseMode); // nead a semicolon here due to following left parens
1545-
1546-
// There was formerly "worker" machinery here which showed a warning icon at the left of an line with an error, but
1547-
// (1) This tends to confuse students.
1548-
// (2) GlowScript catches lots of errors already with respect to parens, brackets, braces, and quotes.
1549-
// (3) Highlighting is handled separately, so is not affected by eliminating workers.
1550-
// (4) Caused some awkwardness in changing the language on the first line.
1551-
// (5) And the killer issue: workers chew up LOTS of CPU time for little gain.
1552-
1553-
exports.Mode = Mode
1554-
})
1555-
}
1556-
1480+
1481+
}
1482+
)}
1483+
15571484
function iframefix() {
15581485
// When a mouse operation is started outside an iframe, cover all iframes on the page so
15591486
// that mousemove events don't get eaten by them. Supposedly jquery UI 1.9 will have this
15601487
// feature, so maybe this can be removed in the future.
1561-
1488+
15621489
$(document).mousedown(function(ev) {
1563-
$("iframe").not(".iframefix").not(".template iframe").each( function() {
1490+
$("iframe").not(".iframefix").not(".template iframe").each( function() {
15641491
("iframefix", this, this.offsetWidth, this.offsetHeight, this.width)
15651492
$('<div class="iframefix" style="background: #fff;"></div>')
15661493
.css({

src/templates/index.html

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -335,21 +335,19 @@ <h2>V e r s i o n&nbsp;&nbsp; 3.2</h2>
335335
<script type="text/javascript" language="javascript" src="lib/jquery/IDE/jquery.min.js"></script>
336336
<script type="text/javascript" language="javascript" src="lib/jquery/IDE/jquery.textchange.custom.js"></script>
337337
<script type="text/javascript" language="javascript" src="lib/jquery/IDE/jquery-ui.custom.min.js"></script>
338-
<script type="text/javascript" language="javascript" src="lib/ace/ace.js"></script>
338+
<!-- <script type="text/javascript" language="javascript" src="lib/ace/ace.js"></script>
339339
<script type="text/javascript" language="javascript" src="lib/editor.js"></script>
340340
<script type="text/javascript" language="javascript" src="lib/ace/mode-javascript.js"></script>
341-
<script type="text/javascript" language="javascript" src="lib/ace/mode-python.js"></script>
341+
<script type="text/javascript" language="javascript" src="lib/ace/mode-python.js"></script> -->
342342
<script type="text/javascript" language="javascript" src="package/symbols.3.2.min.js"></script>
343343
<script type="text/javascript" language="javascript" src="ide.js"></script>
344344

345+
<script>
346+
var require = { paths: { vs: 'node_modules/monaco-editor/min/vs' } };
347+
</script>
345348
<script type="text/javascript" language="javascript" src="node_modules/monaco-editor/min/vs/loader.js"></script>
346-
<script>
347-
var require = { paths: { vs: 'node_modules/monaco-editor/min/vs' } };
348-
</script>
349-
<script type="text/javascript" language="javascript" src="node_modules/monaco-editor/min/vs/editor/editor.main.nls.js"></script>
350-
<script src="node_modules/monaco-editor/min/vs/editor/editor.main.js"></script>
351-
352-
349+
<script type="text/javascript" language="javascript" src="node_modules/monaco-editor/min/vs/editor/editor.main.nls.js"></script>
350+
<script src="node_modules/monaco-editor/min/vs/editor/editor.main.js"></script>
353351

354352
</body>
355353
</html>

0 commit comments

Comments
 (0)
0