|
|
@@ -24,6 +24,19 @@ define(function (require, exports, module) {
|
|
|
// regexp must not have capturing parentheses. Use (?:) instead.
|
|
|
// regexps are ordered -> the first match is used
|
|
|
|
|
|
+ var keywords = (
|
|
|
+ "%DECLARE|%DEFAULT|VOID|IMPORT|RETURNS|ARRANGE|DEFINE|LOAD|FILTER|FOREACH|ORDER|CUBE|DISTINCT|COGROUP|CP|CD|DU|JOIN|CROSS|UNION|SPLIT|INTO|IF|OTHERWISE|ALL|AS|BY|USING|INNER|OUTER|ONSCHEMA|PARALLEL|PARTITION|GROUP|AND|ANY|OR|NOT|GENERATE|FLATTEN|ASC|DESC|DESCRIBE|EXPLAIN|IS|STREAM|THROUGH|STORE|MAPREDUCE|SHIP|CACHE|INPUT|OUTPUT|STDERROR|STDIN|STDOUT|LIMIT|SAMPLE|LEFT|RIGHT|FULL|EQ|GT|LT|GTE|LTE|NEQ|MATCHES|TRUE|FALSE|REGISTER|DUMP|EXEC|HELP|ILLUSTRATE|KILL|LS|MKDIR|MV|PIG|PWD|QUIT|RM|RMF|RUN|SET"
|
|
|
+ );
|
|
|
+
|
|
|
+ var builtinFunctions = (
|
|
|
+ "ABS|ACOS|ARITY|ASIN|ATAN|AVG|BAGSIZE|BINSTORAGE|BLOOM|BUILDBLOOM|CBRT|CEIL|CONCAT|COPYFROMLOCAL|COPYTOLOCAL|CAT|COR|COS|COSH|COUNT|COUNT_STAR|COV|CONSTANTSIZE|CUBEDIMENSIONS|DIFF|DISTINCT|DOUBLEABS|DOUBLEAVG|DOUBLEBASE|DOUBLEMAX|DOUBLEMIN|DOUBLEROUND|DOUBLESUM|EXP|FLOOR|FLOATABS|FLOATAVG|FLOATMAX|FLOATMIN|FLOATROUND|FLOATSUM|GENERICINVOKER|INDEXOF|INTABS|INTAVG|INTMAX|INTMIN|INTSUM|INVOKEFORDOUBLE|INVOKEFORFLOAT|INVOKEFORINT|INVOKEFORLONG|INVOKEFORSTRING|INVOKER|ISEMPTY|JSONLOADER|JSONMETADATA|JSONSTORAGE|LAST_INDEX_OF|LCFIRST|LOG|LOG10|LOWER|LONGABS|LONGAVG|LONGMAX|LONGMIN|LONGSUM|MAX|MIN|MAPSIZE|MONITOREDUDF|NONDETERMINISTIC|OUTPUTSCHEMA||PIGSTORAGE|PIGSTREAMING|RANDOM|REGEX_EXTRACT|REGEX_EXTRACT_ALL|REPLACE|ROUND|SIN|SINH|SIZE|SQRT|STRSPLIT|SUBSTRING|SUM|STRINGCONCAT|STRINGMAX|STRINGMIN|STRINGSIZE|TAN|TANH|TOBAG|TOKENIZE|TOMAP|TOP|TOTUPLE|TRIM|TEXTLOADER|TUPLESIZE|UCFIRST|UPPER|UTF8STORAGECONVERTER|EVAL|PIGDUMP|PIGSTORAGE"
|
|
|
+ );
|
|
|
+
|
|
|
+ var keywordMapper = this.createKeywordMapper({
|
|
|
+ "keyword": keywords,
|
|
|
+ "support.function": builtinFunctions
|
|
|
+ }, "identifier", true);
|
|
|
+
|
|
|
this.$rules = {
|
|
|
start: [
|
|
|
{
|
|
|
@@ -238,9 +251,13 @@ define(function (require, exports, module) {
|
|
|
token: "variable.other.alias",
|
|
|
regex: /\b[a-z][a-z0-9_]*\b/,
|
|
|
caseInsensitive: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ token : keywordMapper,
|
|
|
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
|
|
|
}
|
|
|
]
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
this.normalizeRules();
|
|
|
};
|
|
|
@@ -249,8 +266,7 @@ define(function (require, exports, module) {
|
|
|
fileTypes: ["pig"],
|
|
|
name: "Pig Latin",
|
|
|
scopeName: "source.pig_latin"
|
|
|
- }
|
|
|
-
|
|
|
+ };
|
|
|
|
|
|
oop.inherits(PigLatinHighlightRules, TextHighlightRules);
|
|
|
|