From 1027dcea7c892c6aa076148a373f3ada99f882b4 Mon Sep 17 00:00:00 2001 From: sevin7676 Date: Sun, 19 Apr 2015 11:52:54 -0400 Subject: [PATCH] cache modifier --- lib/ace/mode/sqlserver_highlight_rules.js | 36 +++++++++++++---------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/lib/ace/mode/sqlserver_highlight_rules.js b/lib/ace/mode/sqlserver_highlight_rules.js index 1098764e..6d23f6a3 100644 --- a/lib/ace/mode/sqlserver_highlight_rules.js +++ b/lib/ace/mode/sqlserver_highlight_rules.js @@ -218,26 +218,30 @@ var SqlServerHighlightRules = function() { builtinFunctions = builtinFunctions.split('|'); dataTypes = dataTypes.split('|'); + var modCache = {}; this.completionModifier = function(obj) { var word = obj.name, meta = 'keyword'; - - if (builtInStoredProcedures.indexOf(word) !== -1) meta = "storedProcedure"; - else { - //all others are upper case - word = word.toUpperCase(); - if (builtinFunctions.indexOf(word) !== -1) meta = "function"; - else if (dataTypes.indexOf(word) !== -1) meta = "dataType"; - else if (setStatements.indexOf(word) !== -1) meta = "setStatement"; - else if (logicalOperators.indexOf(word) !== -1) meta = "logicalOperator"; + + if (modCache[word] === undefined) { + if (builtInStoredProcedures.indexOf(word) !== -1) meta = "storedProcedure"; + else { + //all others are upper case + word = word.toUpperCase(); + if (builtinFunctions.indexOf(word) !== -1) meta = "function"; + else if (dataTypes.indexOf(word) !== -1) meta = "dataType"; + else if (setStatements.indexOf(word) !== -1) meta = "setStatement"; + else if (logicalOperators.indexOf(word) !== -1) meta = "logicalOperator"; + } + modCache[word] = { + word: word, + value: word, + meta: meta, + score: 0 + }; } - - return { - name: word, - value: word, - score: 0, - meta: meta - }; + + return modCache[word]; }; };