From be3b00d5d74c512b2852e8d568a58b79f129549a Mon Sep 17 00:00:00 2001 From: Sebastiaan Speck Date: Sat, 2 May 2026 06:44:07 +0200 Subject: [PATCH 1/2] Fix Magik to allow `!` and `?` in variable names --- src/languages/magik.js | 2 +- tests/languages/magik/variable_feature.test | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/languages/magik.js b/src/languages/magik.js index c76c5690e..1b3ca0cfe 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -148,7 +148,7 @@ export default { 'variable': [ /\|[\w?!]+\|/, // variable encased like |var|, |0|, |123| - { pattern: /(^|[^.])\b[a-z]\w*\b/i, lookbehind: true }, + { pattern: /(^|[^.])[a-z][\w?!]*/i, lookbehind: true }, ], }, }; diff --git a/tests/languages/magik/variable_feature.test b/tests/languages/magik/variable_feature.test index 92f64afc7..aff89352b 100644 --- a/tests/languages/magik/variable_feature.test +++ b/tests/languages/magik/variable_feature.test @@ -1,6 +1,8 @@ a_name anotherName some_var +int!okay +ok? |0| |123| |a| @@ -14,6 +16,8 @@ coords3d_rope.new_with(coordinate3d.new(0, 0, 0), coordinate3d.new(10, 10, 10)) ["variable", "a_name"], ["variable", "anotherName"], ["variable", "some_var"], + ["variable", "int!okay"], + ["variable", "ok?"], ["variable", "|0|"], ["variable", "|123|"], ["variable", "|a|"], From 43ce40131ad8974356ecbf4dc2d3cbe5f84cc2e8 Mon Sep 17 00:00:00 2001 From: Sebastiaan Speck <12570668+sebastiaanspeck@users.noreply.github.com> Date: Tue, 19 May 2026 16:03:04 +0200 Subject: [PATCH 2/2] 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 1b3ca0cfe..3a3ed05c6 100644 --- a/src/languages/magik.js +++ b/src/languages/magik.js @@ -148,7 +148,7 @@ export default { 'variable': [ /\|[\w?!]+\|/, // variable encased like |var|, |0|, |123| - { pattern: /(^|[^.])[a-z][\w?!]*/i, lookbehind: true }, + { pattern: /(^|[^.])\b[a-z][\w?!]*/i, lookbehind: true }, ], }, };