summaryrefslogtreecommitdiff
path: root/js/codeq/prolog.js
diff options
context:
space:
mode:
authorTimotej Lazar <timotej.lazar@araneo.org>2015-10-05 10:11:26 +0200
committerTimotej Lazar <timotej.lazar@araneo.org>2015-10-05 10:11:26 +0200
commit194f3449751b90c1f8d7ec3625ab26594bc808c6 (patch)
treeae45810c5448ea45d9b7cf3c6c7c63a03d1de16e /js/codeq/prolog.js
parent5877ffd8aaffdf3e416dbb36e766736b866e5963 (diff)
Move makeActivityHandler to core.js
There were three identical copies for {prolog,python,robot}.js.
Diffstat (limited to 'js/codeq/prolog.js')
-rw-r--r--js/codeq/prolog.js47
1 files changed, 1 insertions, 46 deletions
diff --git a/js/codeq/prolog.js b/js/codeq/prolog.js
index a42bfc3..d9b76d1 100644
--- a/js/codeq/prolog.js
+++ b/js/codeq/prolog.js
@@ -198,51 +198,6 @@
return terminal;
};
- var makeActivityHandler = function (editor, problem_id) {
- var lastActivityMillis = Date.now(),
- deltaActivityMillis = function deltaActivityMillisFunc () {
- var now = Date.now(),
- dt = now - lastActivityMillis;
- lastActivityMillis = now;
- return dt;
- },
- queue = [],
- ts = null,
- timer = function () {
- var promise;
- ts = null;
- if (queue.length === 0) return Q(true);
- promise = codeq.comms.sendActivity(queue, editor.getDoc().getValue(), problem_id);
- queue.length = 0;
- return promise;
- },
- flush = function () {
- clearTimeout(ts);
- return timer();
- };
-
- return {
- 'queueTrace': function (trace) {
- trace['dt'] = deltaActivityMillis();
- queue.push(trace);
- if (ts === null) ts = setTimeout(timer, 10000); // flush every 10 seconds
- return this;
- },
- 'flush': flush,
- 'addAndPurge': function (trace) {
- var accumulatedTrace = queue;
- queue = [];
- trace['dt'] = deltaActivityMillis();
- accumulatedTrace.push(trace);
- if (ts !== null) {
- clearTimeout(ts);
- ts = null;
- }
- return accumulatedTrace;
- }
- };
- };
-
codeq.on('init', function (args) {
codeq.tr.registerDictionary('prolog', codeq.tr.emptyDictionary); // to make the translator happy, when this screen is not active
});
@@ -264,7 +219,7 @@
indentUnit: 4,
value: currentSolution || ''
}),
- activityHandler = makeActivityHandler(editor, problemDef.id),
+ activityHandler = codeq.makeActivityHandler(editor, problemDef.id),
terminal = makePrologTerminalHandler(jqTerminal, editor, problemDef.id, activityHandler),
hinter = codeq.makeHinter(jqHints, jqEditor, editor, 'prolog_hints', problemDef, commonDef),
commError = function (error) {