Skip to content
This repository was archived by the owner on Apr 22, 2020. It is now read-only.

Commit bc58215

Browse files
EricFromCanadamikesamuel
authored andcommitted
update lang-lasso.js (#443)
* update lang-lasso.js - require word break after parameter local - relocate keywords to follow types * support for rest parameters * faster string matching patterns
1 parent 2947694 commit bc58215

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/lang-lasso.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,36 +32,36 @@ PR['registerLangHandler'](
3232
// whitespace
3333
[PR['PR_PLAIN'], /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'],
3434
// single quote strings
35-
[PR['PR_STRING'], /^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/, null, "'"],
35+
[PR['PR_STRING'], /^\'[^\'\\]*(?:\\[\s\S][^\'\\]*)*(?:\'|$)/, null, "'"],
3636
// double quote strings
37-
[PR['PR_STRING'], /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'],
37+
[PR['PR_STRING'], /^\"[^\"\\]*(?:\\[\s\S][^\"\\]*)*(?:\"|$)/, null, '"'],
3838
// ticked strings
3939
[PR['PR_STRING'], /^\`[^\`]*(?:\`|$)/, null, '`'],
4040
// numeral as integer or hexidecimal
4141
[PR['PR_LITERAL'], /^0x[\da-f]+|\d+/i, null, '0123456789'],
4242
// local or thread variables, or hashbang
43-
[PR['PR_ATTRIB_NAME'], /^#\d+|[#$][a-z_][\w.]*|#![ \S]+lasso9\b/i, null, '#$']
43+
[PR['PR_ATTRIB_NAME'], /^[#$][a-z_][\w.]*|#\d+\b|#![ \S]+lasso9\b/i, null, '#$']
4444
],
4545
[
4646
// square or angle bracket delimiters
47-
[PR['PR_TAG'], /^[[\]]|<\?(?:lasso(?:script)?|=)|\?>|noprocess\b|no_square_brackets\b/i],
47+
[PR['PR_TAG'], /^[[\]]|<\?(?:lasso(?:script)?|=)|\?>|(no_square_brackets|noprocess)\b/i],
4848
// single-line or block comments
4949
[PR['PR_COMMENT'], /^\/\/[^\r\n]*|\/\*[\s\S]*?\*\//],
5050
// member variables or keyword parameters
51-
[PR['PR_ATTRIB_NAME'], /^-(?!infinity)[a-z_][\w.]*|\.\s*'[a-z_][\w.]*'/i],
51+
[PR['PR_ATTRIB_NAME'], /^-(?!infinity)[a-z_][\w.]*|\.\s*'[a-z_][\w.]*'|\.{3}/i],
5252
// numeral as decimal or scientific notation
53-
[PR['PR_LITERAL'], /^\d*\.\d+(?:e[-+]?\d+)?|infinity\b|NaN\b/i],
53+
[PR['PR_LITERAL'], /^\d*\.\d+(?:e[-+]?\d+)?|(infinity|NaN)\b/i],
5454
// tag literals
5555
[PR['PR_ATTRIB_VALUE'], /^::\s*[a-z_][\w.]*/i],
5656
// constants
5757
[PR['PR_LITERAL'], /^(?:true|false|none|minimal|full|all|void|and|or|not|bw|nbw|ew|new|cn|ncn|lt|lte|gt|gte|eq|neq|rx|nrx|ft)\b/i],
58-
// container or control keywords
59-
[PR['PR_KEYWORD'], /^(?:error_code|error_msg|error_pop|error_push|error_reset|cache|database_names|database_schemanames|database_tablenames|define_tag|define_type|email_batch|encode_set|html_comment|handle|handle_error|header|if|inline|iterate|ljax_target|link|link_currentaction|link_currentgroup|link_currentrecord|link_detail|link_firstgroup|link_firstrecord|link_lastgroup|link_lastrecord|link_nextgroup|link_nextrecord|link_prevgroup|link_prevrecord|log|loop|namespace_using|output_none|portal|private|protect|records|referer|referrer|repeating|resultset|rows|search_args|search_arguments|select|sort_args|sort_arguments|thread_atomic|value_list|while|abort|case|else|if_empty|if_false|if_null|if_true|loop_abort|loop_continue|loop_count|params|params_up|return|return_value|run_children|soap_definetag|soap_lastrequest|soap_lastresponse|tag_name|ascending|average|by|define|descending|do|equals|frozen|group|handle_failure|import|in|into|join|let|match|max|min|on|order|parent|protected|provide|public|require|returnhome|skip|split_thread|sum|take|thread|to|trait|type|where|with|yield|yieldhome)\b/i],
6058
// standard type or variable declarations
6159
[PR['PR_TYPE'], /^(?:array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray|local|var|variable|global|data|self|inherited|currentcapture|givenblock)\b|^\.\.?/i],
60+
// container or control keywords
61+
[PR['PR_KEYWORD'], /^(?:cache|database_names|database_schemanames|database_tablenames|define_tag|define_type|email_batch|encode_set|html_comment|handle|handle_error|header|if|inline|iterate|ljax_target|link|link_currentaction|link_currentgroup|link_currentrecord|link_detail|link_firstgroup|link_firstrecord|link_lastgroup|link_lastrecord|link_nextgroup|link_nextrecord|link_prevgroup|link_prevrecord|log|loop|namespace_using|output_none|portal|private|protect|records|referer|referrer|repeating|resultset|rows|search_args|search_arguments|select|sort_args|sort_arguments|thread_atomic|value_list|while|abort|case|else|fail_if|fail_ifnot|fail|if_empty|if_false|if_null|if_true|loop_abort|loop_continue|loop_count|params|params_up|return|return_value|run_children|soap_definetag|soap_lastrequest|soap_lastresponse|tag_name|ascending|average|by|define|descending|do|equals|frozen|group|handle_failure|import|in|into|join|let|match|max|min|on|order|parent|protected|provide|public|require|returnhome|skip|split_thread|sum|take|thread|to|trait|type|where|with|yield|yieldhome)\b/i],
6262
// type, method, or parameter names
6363
[PR['PR_PLAIN'], /^[a-z_][\w.]*(?:=\s*(?=\())?/i],
6464
// operators
65-
[PR['PR_PUNCTUATION'], /^:=|[-+*\/%=<>&|!?\\]/]
65+
[PR['PR_PUNCTUATION'], /^:=|[-+*\/%=<>&|!?\\]+/]
6666
]),
6767
['lasso', 'ls', 'lassoscript']);

0 commit comments

Comments
 (0)