diff --git a/lib/core.js b/lib/core.js index 59c82f5f..a19511a8 100644 --- a/lib/core.js +++ b/lib/core.js @@ -95,6 +95,11 @@ Volcanos("core", { for (var k in obj) { var res = typeof cb == lang.FUNCTION? cb(k, obj[k]): k; res != undefined && list.push(res) } return list }, + ItemKeys: function(obj, cb) { var list = [] + var keys = []; for (var k in obj) { keys.push(k) } keys.sort() + for (var i in keys) { var k = keys[i]; var res = typeof cb == lang.FUNCTION? cb(k, obj[k]): k; res != undefined && list.push(res) } + return list + }, Items: function(obj, cb) { var list = [] for (var k in obj) { list = list.concat(this.List(obj[k], function(v, i) { return typeof cb == lang.FUNCTION && cb(v, i, k, obj) })) } return list diff --git a/plugin/local/code/inner/syntax.js b/plugin/local/code/inner/syntax.js index da89946f..0b554483 100644 --- a/plugin/local/code/inner/syntax.js +++ b/plugin/local/code/inner/syntax.js @@ -359,6 +359,7 @@ Volcanos(chat.ONSYNTAX, { "if": code.KEYWORD, "else": code.KEYWORD, "for": code.KEYWORD, + "in": code.KEYWORD, "while": code.KEYWORD, "break": code.KEYWORD, "continue": code.KEYWORD, diff --git a/plugin/local/code/vimer.js b/plugin/local/code/vimer.js index 1d40c20e..6c6c8bb3 100644 --- a/plugin/local/code/vimer.js +++ b/plugin/local/code/vimer.js @@ -106,7 +106,7 @@ Volcanos(chat.ONFIGURE, { )) }, plugin: function(can, target, zone) { var total = 0 - can.onimport.tree(can, can.core.Item(can.onengine.plugin.meta, function(key) { return total++, {index: key} }), ctx.INDEX, ice.PT, function(event, item) { + can.onimport.tree(can, can.core.ItemKeys(can.onengine.plugin.meta, function(key) { return total++, {index: key} }), ctx.INDEX, ice.PT, function(event, item) { can.onimport.tabview(can, can.Option(nfs.PATH), can.core.Keys("can", item.index), ctx.INDEX) }, target), zone._total(total) },