From 152703a401938373f05b767312b835f05054b774 Mon Sep 17 00:00:00 2001 From: sebastiaanspeck Date: Mon, 13 Apr 2026 14:52:20 +0200 Subject: [PATCH 01/17] Apply fixes for Magik language --- src/languages/magik.js | 35 +++++++++-------- tests/languages/magik/constant_feature.test | 28 ++++++------- .../languages/magik/declaration_feature.test | 8 ++-- tests/languages/magik/function_feature.test | 2 + .../magik/global-reference_feature.test | 6 +-- .../magik/keyword-variable_feature.test | 11 ++++++ tests/languages/magik/keyword_feature.test | 2 - tests/languages/magik/pragma.test | 39 ------------------- tests/languages/magik/pragma_feature.test | 13 +++++++ tests/languages/magik/slot_feature.test | 5 ++- tests/languages/magik/symbol_feature.test | 2 + tests/languages/magik/unset_feature.test | 4 +- tests/languages/magik/variable_feature.test | 4 +- 13 files changed, 76 insertions(+), 83 deletions(-) create mode 100644 tests/languages/magik/keyword-variable_feature.test delete mode 100644 tests/languages/magik/pragma.test create mode 100644 tests/languages/magik/pragma_feature.test diff --git a/src/languages/magik.js b/src/languages/magik.js index 3e86314a05..2b5e3860e7 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -22,28 +22,18 @@ export default { greedy: true }, - 'declaration': [ - { pattern: /(\b_package\s+).*/i, lookbehind: true }, - { pattern: /(\b_global\s+)(?!_)\w+/i, lookbehind: true }, - { pattern: /(\b_constant\s+)[a-z_]+/i, lookbehind: true } - ], - 'pragma': { pattern: /_pragma.*/, - alias: 'prolog', - inside: { - 'modifier': /classify_level|topic|usage/, - 'pragma-punctuation': { pattern: /[={},]/ } - } + alias: 'prolog' }, - 'number': /\b\d+(?:\.\d+)?(?:[e&][+-]?\d+)?\b|\b(?:[2-9]|[12]\d|3[0-6])r[a-z0-9]+\b/i, - 'symbol': { pattern: /(^|\W):(?:\|[^|]*\||\\.|[\w?!])+/, lookbehind: true }, + 'number': /\b\d+(?:\.\d+)?(?:[e&][+-]?\d+)?\b|\b(?:[2-9]|[12]\d|3[0-6])r[a-z0-9]+\b/i, + 'operator': [ /_(?:and|andif|or|orif|xor)</, />=/, /<=/, / Date: Mon, 13 Apr 2026 15:47:21 +0200 Subject: [PATCH 02/17] Add support for pipe-enclosed variables --- src/languages/magik.js | 3 ++- tests/languages/magik/variable_feature.test | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index 2b5e3860e7..546d3d8816 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -32,7 +32,7 @@ export default { lookbehind: true }, - 'number': /\b\d+(?:\.\d+)?(?:[e&][+-]?\d+)?\b|\b(?:[2-9]|[12]\d|3[0-6])r[a-z0-9]+\b/i, + 'number': /(? Date: Mon, 13 Apr 2026 22:06:51 +0200 Subject: [PATCH 03/17] Split (and fix) the different variable types --- src/languages/magik.js | 46 +++++++++++-------- tests/languages/magik/constant_feature.test | 2 +- .../languages/magik/declaration_feature.test | 2 +- .../magik/dynamic-variable_feature.test | 21 +++++++++ .../magik/global-reference_feature.test | 12 ++--- .../magik/global-variable_feature.test | 13 ++++++ tests/languages/magik/variable_feature.test | 12 ----- 7 files changed, 69 insertions(+), 39 deletions(-) create mode 100644 tests/languages/magik/dynamic-variable_feature.test create mode 100644 tests/languages/magik/global-variable_feature.test diff --git a/src/languages/magik.js b/src/languages/magik.js index 546d3d8816..d367cf5759 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -32,6 +32,32 @@ export default { lookbehind: true }, + 'global-reference': [ + { pattern: /@(?:[a-z_]\w*:)?\|[^|]*\|/i, alias: 'symbol' }, // @|name| or @prefix:|name| + { pattern: /@(?:[a-z_]\w*:)?[a-z_]\w*/i, alias: 'symbol' }, // @name or @prefix:name + ], + + 'dynamic-variable': [ + { pattern: /\|![\w?!]+!\|/, alias: 'variable' }, // variable encased like |!var!| + { pattern: /\|![\w?!]+\|!/, alias: 'variable' }, // variable encased like |!var|! + { pattern: /!\|[\w?!]+\|!/, alias: 'variable' }, // variable encased like !|var!| + { pattern: /!\|\|!/, alias: 'variable' }, // empty variable !||! + { pattern: /[a-z_]+:![a-z][\w?!]*!/, alias: 'variable' }, // variable with a prefix like sw:!var! + { pattern: /![a-z][\w?!]*!/, alias: 'variable' }, // variable encased like !var! + ], + + 'global-variable': [ + { pattern: /\b[a-z_]+:\w+\b/i, alias: 'variable' }, // variable with a prefix like sw:gis_program_manager + { pattern: /[a-z_]+:\|\w+\|/i, alias: 'variable' }, // variable with a prefix like sw:|gis_program_manager| + ], + + 'declaration': [ + { pattern: /(\b_package\s+).*/i, lookbehind: true }, + { pattern: /(\b_global\s+)(?!_)\w+/i, lookbehind: true }, + { pattern: /(\b_constant\s+)(?!_)\w+/i, lookbehind: true }, + { pattern: /(\b_local\s+)(?!_)\w+/i, lookbehind: true } + ], + 'number': /(? Date: Tue, 14 Apr 2026 14:38:36 +0200 Subject: [PATCH 04/17] Add test case for slot --- tests/languages/magik/slot_feature.test | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/languages/magik/slot_feature.test b/tests/languages/magik/slot_feature.test index db26e377a5..ea516b3adc 100644 --- a/tests/languages/magik/slot_feature.test +++ b/tests/languages/magik/slot_feature.test @@ -1,5 +1,6 @@ .slot_name .embedded? +.slot_name.some_method some_class.some_method(.slot_name) some_class.some_method(_optional .slot_name, .another_slot_name) {.slot_name, some_other_variable, .another_slot_name} @@ -10,6 +11,7 @@ _global some_variable; some_variable << .slot_name [ ["slot", ".slot_name"], ["slot", ".embedded?"], + ["slot", ".slot_name"], ".", ["function", "some_method"], ["variable", "some_class"], ".", ["function", "some_method"], ["punctuation", "("], ["slot", ".slot_name"], ["punctuation", ")"], ["variable", "some_class"], ".", ["function", "some_method"], ["punctuation", "("], ["keyword", "_optional"], ["slot", ".slot_name"], ["punctuation", ","], ["slot", ".another_slot_name"], ["punctuation", ")"], ["punctuation", "{"], ["slot", ".slot_name"], ["punctuation", ","], ["variable", "some_other_variable"], ["punctuation", ","], ["slot", ".another_slot_name"], ["punctuation", "}"], From 4efc0ef4fcd957065ad550c1b7543364cb56a7e8 Mon Sep 17 00:00:00 2001 From: sebastiaanspeck Date: Tue, 14 Apr 2026 17:32:36 +0200 Subject: [PATCH 05/17] Fix slot test --- src/languages/magik.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index d367cf5759..2afbef77e6 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -22,6 +22,12 @@ export default { greedy: true }, + 'slot': { + pattern: /(^|[\s({])\.\s*[a-z][\w?!]+/i, + lookbehind: true, + greedy: true + }, + 'pragma': { pattern: /_pragma.*/, alias: 'prolog' @@ -94,11 +100,6 @@ export default { /\b_(?:allresults|gather|optional|scatter)\b/i // parameter options ], - 'slot': { - pattern: /(^|[\s({])\.\s*[a-z][\w?!]+/i, - lookbehind: true - }, - 'builtin': /\b_(?:clone|package|super|thisthread)\b/i, 'boolean': /\b_(?:false|maybe|true)\b/i, From 8a5cfbd6aac3c5e440c33dbb880c7f5c2e1c2113 Mon Sep 17 00:00:00 2001 From: sebastiaanspeck Date: Tue, 14 Apr 2026 17:41:37 +0200 Subject: [PATCH 06/17] Fix import --- src/languages/magik.js | 3 ++- tests/languages/magik/declaration_feature.test | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index 2afbef77e6..d00eefc671 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -61,7 +61,8 @@ export default { { pattern: /(\b_package\s+).*/i, lookbehind: true }, { pattern: /(\b_global\s+)(?!_)\w+/i, lookbehind: true }, { pattern: /(\b_constant\s+)(?!_)\w+/i, lookbehind: true }, - { pattern: /(\b_local\s+)(?!_)\w+/i, lookbehind: true } + { pattern: /(\b_local\s+)(?!_)\w+/i, lookbehind: true }, + { pattern: /(\b_import\s+)(?!_)\w+/i, lookbehind: true } ], 'number': /(? Date: Tue, 14 Apr 2026 18:04:30 +0200 Subject: [PATCH 07/17] Simplify regex --- src/languages/magik.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index d00eefc671..4f47a6f032 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -59,10 +59,7 @@ export default { 'declaration': [ { pattern: /(\b_package\s+).*/i, lookbehind: true }, - { pattern: /(\b_global\s+)(?!_)\w+/i, lookbehind: true }, - { pattern: /(\b_constant\s+)(?!_)\w+/i, lookbehind: true }, - { pattern: /(\b_local\s+)(?!_)\w+/i, lookbehind: true }, - { pattern: /(\b_import\s+)(?!_)\w+/i, lookbehind: true } + { pattern: /(\b_(?:constant|global|import|local)\s+)(?!_)\w+/i, lookbehind: true }, ], 'number': /(? Date: Fri, 17 Apr 2026 20:35:17 +0200 Subject: [PATCH 08/17] Apply some fixes after code review --- src/languages/magik.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index 4f47a6f032..b5fff5764c 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -23,7 +23,7 @@ export default { }, 'slot': { - pattern: /(^|[\s({])\.\s*[a-z][\w?!]+/i, + pattern: /(^|[\s({])\.\s*[a-z][\w?!]*/i, lookbehind: true, greedy: true }, @@ -44,12 +44,12 @@ export default { ], 'dynamic-variable': [ - { pattern: /\|![\w?!]+!\|/, alias: 'variable' }, // variable encased like |!var!| - { pattern: /\|![\w?!]+\|!/, alias: 'variable' }, // variable encased like |!var|! - { pattern: /!\|[\w?!]+\|!/, alias: 'variable' }, // variable encased like !|var!| + { pattern: /\|![\w?!]+!\|/i, alias: 'variable' }, // variable encased like |!var!| + { pattern: /\|![\w?!]+\|!/i, alias: 'variable' }, // variable encased like |!var|! + { pattern: /!\|[\w?!]+\|!/i, alias: 'variable' }, // variable encased like !|var!| { pattern: /!\|\|!/, alias: 'variable' }, // empty variable !||! - { pattern: /[a-z_]+:![a-z][\w?!]*!/, alias: 'variable' }, // variable with a prefix like sw:!var! - { pattern: /![a-z][\w?!]*!/, alias: 'variable' }, // variable encased like !var! + { pattern: /[a-z_]+:![a-z][\w?!]*!/i, alias: 'variable' }, // variable with a prefix like sw:!var! + { pattern: /![a-z][\w?!]*!/i, alias: 'variable' }, // variable encased like !var! ], 'global-variable': [ @@ -58,7 +58,7 @@ export default { ], 'declaration': [ - { pattern: /(\b_package\s+).*/i, lookbehind: true }, + { pattern: /(\b_package\s+)\w+/i, lookbehind: true }, { pattern: /(\b_(?:constant|global|import|local)\s+)(?!_)\w+/i, lookbehind: true }, ], From c3490a02e8da2c2554d3436f32f6d2af43eafabe Mon Sep 17 00:00:00 2001 From: Sebastiaan Speck <12570668+sebastiaanspeck@users.noreply.github.com> Date: Fri, 17 Apr 2026 20:39:24 +0200 Subject: [PATCH 09/17] Fix lint issue --- src/languages/magik.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index b5fff5764c..2050714cc4 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -44,9 +44,9 @@ export default { ], 'dynamic-variable': [ - { pattern: /\|![\w?!]+!\|/i, alias: 'variable' }, // variable encased like |!var!| - { pattern: /\|![\w?!]+\|!/i, alias: 'variable' }, // variable encased like |!var|! - { pattern: /!\|[\w?!]+\|!/i, alias: 'variable' }, // variable encased like !|var!| + { pattern: /\|![\w?!]+!\|/, alias: 'variable' }, // variable encased like |!var!| + { pattern: /\|![\w?!]+\|!/, alias: 'variable' }, // variable encased like |!var|! + { pattern: /!\|[\w?!]+\|!/, alias: 'variable' }, // variable encased like !|var!| { pattern: /!\|\|!/, alias: 'variable' }, // empty variable !||! { pattern: /[a-z_]+:![a-z][\w?!]*!/i, alias: 'variable' }, // variable with a prefix like sw:!var! { pattern: /![a-z][\w?!]*!/i, alias: 'variable' }, // variable encased like !var! From f24130eeabba0870d0a52656f9691ae7304f5a24 Mon Sep 17 00:00:00 2001 From: Sebastiaan Speck <12570668+sebastiaanspeck@users.noreply.github.com> Date: Sun, 19 Apr 2026 02:19:22 +0000 Subject: [PATCH 10/17] Revert change --- src/languages/magik.js | 6 ++++- tests/languages/magik/pragma_feature.test | 30 +++++++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index 2050714cc4..cf28f979aa 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -30,7 +30,11 @@ export default { 'pragma': { pattern: /_pragma.*/, - alias: 'prolog' + alias: 'prolog', + inside: { + 'modifier': /classify_level|topic|usage/, + 'pragma-punctuation': { pattern: /[={},]/ } + } }, 'symbol': { diff --git a/tests/languages/magik/pragma_feature.test b/tests/languages/magik/pragma_feature.test index 685d22e9cc..6d2674ab8f 100644 --- a/tests/languages/magik/pragma_feature.test +++ b/tests/languages/magik/pragma_feature.test @@ -4,8 +4,34 @@ _pragma(classify_level=advanced, usage=unrestricted, topic=different_prism) ---------------------------------------------------- [ - ["pragma", "_pragma(classify_level=basic, usage=restricted, topic=prism)"], - ["pragma", "_pragma(classify_level=advanced, usage=unrestricted, topic=different_prism)"] + ["pragma", [ + "_pragma(", + ["modifier", "classify_level"], + ["pragma-punctuation", "="], + "basic", + ["pragma-punctuation", ","], + ["modifier", "usage"], + ["pragma-punctuation", "="], + "restricted", + ["pragma-punctuation", ","], + ["modifier", "topic"], + ["pragma-punctuation", "="], + "prism)" + ]], + ["pragma", [ + "_pragma(", + ["modifier", "classify_level"], + ["pragma-punctuation", "="], + "advanced", + ["pragma-punctuation", ","], + ["modifier", "usage"], + ["pragma-punctuation", "="], + "unrestricted", + ["pragma-punctuation", ","], + ["modifier", "topic"], + ["pragma-punctuation", "="], + "different_prism)" + ]] ] ---------------------------------------------------- From 1407d3e874e1e1d323b3b0eb7ca4c62411063f2c Mon Sep 17 00:00:00 2001 From: Sebastiaan Speck <12570668+sebastiaanspeck@users.noreply.github.com> Date: Sun, 19 Apr 2026 04:03:09 +0200 Subject: [PATCH 11/17] Apply suggestion from review and fix flags --- src/languages/magik.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index cf28f979aa..108b82acc5 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -57,13 +57,13 @@ export default { ], 'global-variable': [ - { pattern: /\b[a-z_]+:\w+\b/i, alias: 'variable' }, // variable with a prefix like sw:gis_program_manager - { pattern: /[a-z_]+:\|\w+\|/i, alias: 'variable' }, // variable with a prefix like sw:|gis_program_manager| + { pattern: /\b[a-z_]+:[\w?!]+\b/i, alias: 'variable' }, // variable with a prefix like sw:gis_program_manager + { pattern: /[a-z_]+:\|[\w?!]+\|/i, alias: 'variable' }, // variable with a prefix like sw:|gis_program_manager| ], 'declaration': [ - { pattern: /(\b_package\s+)\w+/i, lookbehind: true }, - { pattern: /(\b_(?:constant|global|import|local)\s+)(?!_)\w+/i, lookbehind: true }, + { pattern: /(\b_package\s+)\w+\b/i, lookbehind: true }, + { pattern: /(\b_(?:constant|global|import|local)\s+)(?!_)\w+\b/i, lookbehind: true }, ], 'number': /(? Date: Sun, 19 Apr 2026 04:09:12 +0200 Subject: [PATCH 12/17] Add tests for global variables with `?` and `!` --- tests/languages/magik/global-variable_feature.test | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/languages/magik/global-variable_feature.test b/tests/languages/magik/global-variable_feature.test index 0d301cb19f..10f3cc356e 100644 --- a/tests/languages/magik/global-variable_feature.test +++ b/tests/languages/magik/global-variable_feature.test @@ -1,11 +1,19 @@ sw:gis_program_manager sw:|gis_program_manager| +sw:question? +sw:|question?| +sw:sys!system +sw:|sys!system| ---------------------------------------------------- [ ["global-variable", "sw:gis_program_manager"], - ["global-variable", "sw:|gis_program_manager|"] + ["global-variable", "sw:|gis_program_manager|"], + ["global-variable", "sw:question?"], + ["global-variable", "sw:|question?|"], + ["global-variable", "sw:sys!system"], + ["global-variable", "sw:|sys!system|"] ] ---------------------------------------------------- From 89b96c829df426bcf58c6b85a9edebd1215c325f Mon Sep 17 00:00:00 2001 From: Sebastiaan Speck <12570668+sebastiaanspeck@users.noreply.github.com> Date: Sun, 19 Apr 2026 04:12:02 +0200 Subject: [PATCH 13/17] Remove word boundary Co-authored-by: Sebastiaan Speck <12570668+sebastiaanspeck@users.noreply.github.com> --- src/languages/magik.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index 108b82acc5..129eae6a4a 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -57,7 +57,7 @@ export default { ], 'global-variable': [ - { pattern: /\b[a-z_]+:[\w?!]+\b/i, alias: 'variable' }, // variable with a prefix like sw:gis_program_manager + { pattern: /[a-z_]+:[\w?!]+/i, alias: 'variable' }, // variable with a prefix like sw:gis_program_manager { pattern: /[a-z_]+:\|[\w?!]+\|/i, alias: 'variable' }, // variable with a prefix like sw:|gis_program_manager| ], From 64deafe383782219c98a510e33b3f7845e47fd10 Mon Sep 17 00:00:00 2001 From: Sebastiaan Speck <12570668+sebastiaanspeck@users.noreply.github.com> Date: Tue, 21 Apr 2026 15:28:06 +0200 Subject: [PATCH 14/17] Use keyword as alias for `_unset`/`_constant` --- src/languages/magik.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index 129eae6a4a..6396233c19 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -110,12 +110,12 @@ export default { 'unset': { pattern: /\b_unset\b/i, - alias: 'symbol' + alias: 'keyword' }, 'constant': { pattern: /\b_constant\b/i, - alias: 'symbol' + alias: 'keyword' }, 'self': [ From 1215b98d2e5036a0f1717232bb2610d41b420090 Mon Sep 17 00:00:00 2001 From: Sebastiaan Speck <12570668+sebastiaanspeck@users.noreply.github.com> Date: Tue, 21 Apr 2026 15:47:07 +0200 Subject: [PATCH 15/17] Update src/languages/magik.js Co-authored-by: Dmitry Sharabin --- src/languages/magik.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index 6396233c19..091d793470 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -66,7 +66,7 @@ export default { { pattern: /(\b_(?:constant|global|import|local)\s+)(?!_)\w+\b/i, lookbehind: true }, ], - 'number': /(? Date: Tue, 21 Apr 2026 15:47:46 +0200 Subject: [PATCH 16/17] Update variable_feature.test --- tests/languages/magik/variable_feature.test | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/languages/magik/variable_feature.test b/tests/languages/magik/variable_feature.test index cf53ecf7c2..92f64afc71 100644 --- a/tests/languages/magik/variable_feature.test +++ b/tests/languages/magik/variable_feature.test @@ -5,6 +5,7 @@ some_var |123| |a| |aBc| +|16r0000FFFF| coords3d_rope.new_with(coordinate3d.new(0, 0, 0), coordinate3d.new(10, 10, 10)) ---------------------------------------------------- @@ -17,6 +18,7 @@ coords3d_rope.new_with(coordinate3d.new(0, 0, 0), coordinate3d.new(10, 10, 10)) ["variable", "|123|"], ["variable", "|a|"], ["variable", "|aBc|"], + ["variable", "|16r0000FFFF|"], ["variable", "coords3d_rope"], ".", ["function", "new_with"], ["punctuation", "("], ["variable", "coordinate3d"], ".", ["function", "new"], ["punctuation", "("], ["number", "0"], ["punctuation", ","], ["number", "0"], ["punctuation", ","], ["number", "0"], ["punctuation", ")"], ["punctuation", ","], ["variable", "coordinate3d"], ".", ["function", "new"], ["punctuation", "("], ["number", "10"], ["punctuation", ","], ["number", "10"], ["punctuation", ","], ["number", "10"], ["punctuation", ")"], ["punctuation", ")"] From 0c9ed13d5030e63f5c29b5104748fa36b9767477 Mon Sep 17 00:00:00 2001 From: Sebastiaan Speck <12570668+sebastiaanspeck@users.noreply.github.com> Date: Tue, 21 Apr 2026 18:41:02 +0000 Subject: [PATCH 17/17] Run prettier --- src/languages/magik.js | 59 ++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index 091d793470..c76c5690e5 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -9,23 +9,23 @@ export default { 'char': { pattern: /%(?:[a-z][\w?!]*|.)/i, - greedy: true + greedy: true, }, 'string': { pattern: /"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/, - greedy: true + greedy: true, }, 'regex': { pattern: /\/(?:(?:\\.|[^\\/\r\n])+\/[qisdlmucx]*|\/)/, - greedy: true + greedy: true, }, 'slot': { pattern: /(^|[\s({])\.\s*[a-z][\w?!]*/i, lookbehind: true, - greedy: true + greedy: true, }, 'pragma': { @@ -33,13 +33,13 @@ export default { alias: 'prolog', inside: { 'modifier': /classify_level|topic|usage/, - 'pragma-punctuation': { pattern: /[={},]/ } - } + 'pragma-punctuation': { pattern: /[={},]/ }, + }, }, 'symbol': { pattern: /(^|\W):(?:\|[^|]*\||\\.|[\w?!])+/, - lookbehind: true + lookbehind: true, }, 'global-reference': [ @@ -66,23 +66,35 @@ export default { { pattern: /(\b_(?:constant|global|import|local)\s+)(?!_)\w+\b/i, lookbehind: true }, ], - 'number': /(?/, />=/, /<=/, //, + />=/, + /<=/, + />/, /\b_return\b/i, // return + />>/, + /\b_return\b/i, /\b_primitive\b/i, // primitive /\b_(?:endtry|try|when)\b/i, // try /\b_(?:endprotect|locking|protect|protection)\b/i, // protect /\b_(?:endlock|lock)\b/i, // lock /\b_with\b/i, // standalone since _finally, _handling, _throw, _try, _leave and _continue all can have this - /\b_(?:allresults|gather|optional|scatter)\b/i // parameter options + /\b_(?:allresults|gather|optional|scatter)\b/i, // parameter options ], 'builtin': /\b_(?:clone|package|super|thisthread)\b/i, @@ -110,20 +123,20 @@ export default { 'unset': { pattern: /\b_unset\b/i, - alias: 'keyword' + alias: 'keyword', }, 'constant': { pattern: /\b_constant\b/i, - alias: 'keyword' + alias: 'keyword', }, 'self': [ { pattern: /(\b_method\s+)\S+(?=\.)/, - lookbehind: true + lookbehind: true, }, - /\b_self\b/i + /\b_self\b/i, ], 'function': [ @@ -135,7 +148,7 @@ export default { 'variable': [ /\|[\w?!]+\|/, // variable encased like |var|, |0|, |123| - { pattern: /(^|[^.])\b[a-z]\w*\b/i, lookbehind: true } - ] - } + { pattern: /(^|[^.])\b[a-z]\w*\b/i, lookbehind: true }, + ], + }, };