summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2015-01-06 21:42:22 +0200
committerAlon Levy <alon@pobox.com>2015-01-06 21:42:22 +0200
commit8a276a3e94f3a6227e766b41e94119e0001ab5bc (patch)
tree6ec97819aeb428ef583f753e8fbabc52265c568e /src
parentbb5bd7f158dc791d16cde816fa25dd0dd7f62ac4 (diff)
client/analyzeSentence: use spec
Diffstat (limited to 'src')
-rw-r--r--src/client/textanalysis.js12
-rw-r--r--src/client/textanalysis.ui.js27
2 files changed, 32 insertions, 7 deletions
diff --git a/src/client/textanalysis.js b/src/client/textanalysis.js
index 67778b81..12e6e0de 100644
--- a/src/client/textanalysis.js
+++ b/src/client/textanalysis.js
@@ -179,8 +179,11 @@ function tokenize(text, node_token, quote)
* marks).
*
*/
-var textAnalyser = function (newtext, finalize) {
- var sentence,
+var textAnalyser = function (spec) {
+ var newtext = spec.sentence,
+ finalize = spec.finalize,
+ cursor = spec.cursor,
+ sentence,
token_set_new_node_names = [], // token set representing new node names
token_set_new_link_names = [], // token set representing new link names
linkindex = 0,
@@ -204,6 +207,11 @@ var textAnalyser = function (newtext, finalize) {
links = [],
ret = model_diff.new_topo_diff();
+ util.assert(spec.sentence !== undefined &&
+ spec.finalize !== undefined &&
+ spec.cursor !== undefined,
+ "bad input");
+
function __addNode(name, type) {
if (type === undefined) {
console.log('bug: textanalyser.addNode of type undefined');
diff --git a/src/client/textanalysis.ui.js b/src/client/textanalysis.ui.js
index 6e9709c0..83da4b6a 100644
--- a/src/client/textanalysis.ui.js
+++ b/src/client/textanalysis.ui.js
@@ -52,9 +52,15 @@ var typeselection = function TypeSelectionDialog() {
var analysisCompleter = completer(element, $('#input-suggestion'), {hideOnTab: false});
-function analyzeSentence(sentence, finalize)
+function analyzeSentence(spec)
{
- var ret = textanalysis.textAnalyser(sentence, finalize);
+ util.assert(spec.sentence !== undefined &&
+ spec.finalize !== undefined &&
+ spec.cursor !== undefined, "bad input");
+
+ var sentence = spec.sentence,
+ finalize = spec.finalize,
+ ret = textanalysis.textAnalyser(spec);
switch (ret.state) {
case textanalysis.ANALYSIS_NODE_START:
@@ -133,7 +139,11 @@ return {
if (!analysisCompleter.handleEnter()) {
submitNewSentence();
} else {
- analyzeSentence(element.val(), false);
+ analyzeSentence({
+ sentence: element.val(),
+ finalize: false,
+ cursor: element_raw.selectionStart,
+ });
}
ret = false;
break;
@@ -155,7 +165,10 @@ return {
function submitNewSentence() {
text = element.val();
element.val("");
- analyzeSentence(text, true);
+ analyzeSentence({
+ sentence: text,
+ finalize: true,
+ cursor: element_raw.selectionStart});
text = "";
}
@@ -175,7 +188,11 @@ return {
if ('oninput' in document.documentElement) {
element.on('input', function(e) {
text = element.val();
- analyzeSentence(text, false);
+ analyzeSentence({
+ sentence: text,
+ finalize: false,
+ cursor: element_raw.selectionStart
+ });
input.push({where: consts.INPUT_WHERE_TEXTANALYSIS, input: text});
});
} else {