diff options
| author | Alon Levy <alon@pobox.com> | 2014-12-29 14:57:00 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2015-01-05 13:23:57 +0200 |
| commit | a4adf9cdf1b3f3aa2d85c188c1eb44ab13e0a660 (patch) | |
| tree | 36b91a35981bceaca99675420214118a4e74797a /src/client/textanalysis.js | |
| parent | 304ff56ede5803daf7820a9aafba77932e79412a (diff) | |
wip names bus drop, more bacon, fix completer remove names, fix json loading
Diffstat (limited to 'src/client/textanalysis.js')
| -rw-r--r-- | src/client/textanalysis.js | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/src/client/textanalysis.js b/src/client/textanalysis.js index d5a050eb..5e78f416 100644 --- a/src/client/textanalysis.js +++ b/src/client/textanalysis.js @@ -59,8 +59,8 @@ function new_tokenize(text, node_token, quote) return tokens; } -define(['rz_core', 'model/core', 'model/util', 'model/diff', 'rz_bus', 'consts'], -function(rz_core, model_core, model_util, model_diff, rz_bus, consts) { +define(['rz_core', 'model/core', 'model/util', 'model/diff', 'consts'], +function(rz_core, model_core, model_util, model_diff, consts) { var typeindex = 0; var nodetypes = consts.nodetypes; @@ -87,6 +87,12 @@ function autoSuggestAddName(name) suggestions_options.push(sugg); } +function autoSuggestRemoveName(name) +{ + delete sugg[name]; + suggestions_options.push(sugg); +} + /* up_to_two_renames: * * allow one letter or 'new node' to anything changes */ @@ -525,23 +531,26 @@ var textAnalyser = function (newtext, finalize) { function init(graph) { - function onNodeAdded(diff) { - if (!diff || !diff.nodes || !diff.nodes.added) { - return; - } - for (var k in diff.nodes.added) { - var node = diff.nodes[k]; - autoSuggestAddName(node.name.toLowerCase()); - } - } - function toLowerCase(n) { - return n.toLowerCase(); - } - function onSuggestedNameAdd(names) { - names.map(toLowerCase).forEach(autoSuggestAddName); - } - graph.diffBus.onValue(onNodeAdded); - rz_bus.names.onValue(onSuggestedNameAdd); + // deal with new nodes + graph.diffBus.filter(function (diff) { + return diff.nodes && diff.nodes.added; + }).map(function (diff) { + return diff.nodes.added.toLowerCase(); + }).onValue(autoSuggestAddName); + + // deal with renamed links + graph.diffBus.filter(function (diff) { + return diff && diff.changed && diff.changed.links; + }).map(function (diff) { + return diff.changed.links; + }).flatMap(Bacon.fromArray) + .onValue(function (diff) { + console.log('renamed link ' + diff.removed + ' -> ' + diff.added); + autoSuggestRemoveName(diff.removed.toLowerCase()); + autoSuggestAddName(diff.added.toLowerCase()); + }); + + // TODO renamed nodes, plus reuse part of the pipeline. } return { |
