summaryrefslogtreecommitdiff
path: root/src/client/textanalysis.js
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2014-12-29 14:57:00 +0200
committerAlon Levy <alon@pobox.com>2015-01-05 13:23:57 +0200
commita4adf9cdf1b3f3aa2d85c188c1eb44ab13e0a660 (patch)
tree36b91a35981bceaca99675420214118a4e74797a /src/client/textanalysis.js
parent304ff56ede5803daf7820a9aafba77932e79412a (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.js47
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 {