feat: ignorecase

improvements
This commit is contained in:
csh 2025-06-17 10:05:53 +08:00
parent 55be8c9e61
commit 7e9cf6d152
5 changed files with 104 additions and 102 deletions

View File

@ -54,8 +54,9 @@ a ? b : c;
a ? b : c ? d : e; a ? b : c ? d : e;
// select // select
select ["test"] from table end; Select ["test"] from table end;
vselect ["test"] from table end; vselect ["test"] from table end;
select distinct ["test"] from table where ['a'] = 1 end;
// array // array
a := array(1, 2); a := array(1, 2);

View File

@ -2,6 +2,11 @@
Notable changes to the `TSL` extension will be documented in this file. Notable changes to the `TSL` extension will be documented in this file.
## [1.3.0]: 2025-06-17
- 支持关键字大小写不敏感
- 调整和新增某些关键字的所属类型
## [1.2.0]: 2025-06-16 ## [1.2.0]: 2025-06-16
- 大量高亮调整 - 大量高亮调整

View File

@ -1,7 +1,7 @@
{ {
"name": "tsl-devkit", "name": "tsl-devkit",
"displayName": "TSL", "displayName": "TSL",
"version": "1.2.0", "version": "1.3.0",
"description": "TSL syntax highlighter support for VSCode.", "description": "TSL syntax highlighter support for VSCode.",
"publisher": "csh", "publisher": "csh",
"homepage": "https://git.mytsl.cn/csh/tsl-devkit", "homepage": "https://git.mytsl.cn/csh/tsl-devkit",

View File

@ -389,120 +389,116 @@
"keywords": { "keywords": {
"patterns": [ "patterns": [
{ {
"name": "keyword.control.header.tsl", "name": "keyword.control.program-structure.tsl",
"match": "\\b(program|function|procedure)\\b" "match": "(?i)\\b(program|function|procedure|unit|uses|implementation|interface|initalization|finalization)\\b"
},
{
"name": "variable.language.builtin.tsl",
"match": "\\b(paramcount|realparamcount|params|system|thisfunction|tslassigning|likeeps|likeepsrate)\\b"
},
{
"name": "keyword.control.conditional.tsl",
"match": "\\b(else|if)\\b"
},
{
"name": "keyword.control.statement.tsl",
"match": "\\b(begin|end|then|this|with|exit|weakref|autoref|namespace)\\b"
}, },
{ {
"name": "keyword.control.interface.tsl", "name": "keyword.control.interface.tsl",
"match": "\\b(unit|uses|implementation|interface|initalization|finalization)\\b" "match": "(?i)\\b(unit|uses|implementation|interface|initalization|finalization)\\b"
}, },
{ {
"name": "keyword.control.repeat.tsl", "name": "storage.type.primitive.tsl",
"match": "\\b(for|while|do|downto|step|until|repeat|to)\\b" "match": "(?i)\\b(string|integer|boolean|int64|real|array)\\b"
},
{
"name": "keyword.control.branch.tsl",
"match": "\\b(break|continue)\\b"
},
{
"name": "keyword.control.return.tsl",
"match": "\\b(return|debugreturn|debugrunenv|debugrunenvdo)\\b"
},
{
"name": "keyword.control.label.tsl",
"match": "\\b(case|of|goto|label)\\b"
},
{
"name": "keyword.operator.io.tsl",
"match": "\\b(write|read)\\b"
},
{
"name": "keyword.operator.set.tsl",
"match": "\\b(union|minus|union2)\\b"
},
{
"name": "keyword.operator.shift.tsl",
"match": "\\b(ror|rol|shr|shl)\\b"
},
{
"name": "keyword.operator.logical.tsl",
"match": "\\b(and|in|is|not|or)\\b"
},
{
"name": "keyword.operator.arithmetic.tsl",
"match": "\\b(div|mod)\\b"
},
{
"name": "keyword.control.exception.tsl",
"match": "\\b(except|raise|try|finally|exceptobject)\\b"
},
{
"name": "constant.language.boolean.tsl",
"match": "\\b(false|true)\\b"
},
{
"name": "constant.language.null.tsl",
"match": "\\bnil\\b"
},
{
"name": "storage.type.tsl",
"match": "\\b(string|integer|boolean|int64|real|array)\\b"
},
{
"name": "support.function.builtin.tsl",
"match": "\\b(echo|mtic|mtoc|this|inf|nan)\\b"
},
{
"name": "storage.modifier.tsl",
"match": "\\b(external|const|out|var)\\b"
},
{
"name": "keyword.other.sql.tsl",
"match": "\\b(select|vselect|sselect|update|delete|mselect|set)\\b"
},
{
"name": "keyword.operator.sql.tsl",
"match": "\\b(sqlin|from|where|group|by|like|order)\\b"
},
{
"name": "keyword.other.system.tsl",
"match": "\\b(setuid|sudo)\\b"
},
{
"name": "keyword.other.calling-convention.tsl",
"match": "\\b(cdecl|pascal|stdcall|safecall|fastcall|register)\\b"
},
{
"name": "storage.modifier.scope.tsl",
"match": "\\b(global|static)\\b"
}, },
{ {
"name": "storage.type.class.tsl", "name": "storage.type.class.tsl",
"match": "\\b(type|class|fakeclass|new)\\b" "match": "(?i)\\b(type|class|fakeclass|new)\\b"
}, },
{ {
"name": "storage.modifier.class.tsl", "name": "storage.modifier.class.tsl",
"match": "\\b(override|overload|virtual|property|self|inherited)\\b" "match": "(?i)\\b(override|overload|virtual|property|self|inherited)\\b"
},
{
"name": "keyword.other.constructor.tsl",
"match": "\\b(create|destroy|operator)\\b"
}, },
{ {
"name": "storage.modifier.access.tsl", "name": "storage.modifier.access.tsl",
"match": "\\b(public|protected|private|published)\\b" "match": "(?i)\\b(public|protected|private|published)\\b"
},
{
"name": "keyword.other.constructor.tsl",
"match": "(?i)\\b(create|destroy|operator)\\b"
},
{
"name": "storage.modifier.variable.tsl",
"match": "(?i)\\b(external|const|out|var|global|static)\\b"
},
{
"name": "keyword.control.conditional.tsl",
"match": "(?i)\\b(if|else|then|case|of)\\b"
},
{
"name": "keyword.control.loop.tsl",
"match": "(?i)\\b(for|while|do|downto|step|until|repeat|to)\\b"
},
{
"name": "keyword.control.branch.tsl",
"match": "(?i)\\b(break|continue|goto|label|exit)\\b"
},
{
"name": "keyword.control.return.tsl",
"match": "(?i)\\b(return|debugreturn|debugrunenv|debugrunenvdo)\\b"
},
{
"name": "keyword.control.block.tsl",
"match": "(?i)\\b(begin|end|this|with|weakref|autoref|namespace)\\b"
},
{
"name": "keyword.control.exception.tsl",
"match": "(?i)\\b(except|raise|try|finally|exceptobject)\\b"
},
{
"name": "keyword.operator.logical.tsl",
"match": "(?i)\\b(and|in|is|not|or)\\b"
},
{
"name": "keyword.operator.arithmetic.tsl",
"match": "(?i)\\b(div|mod)\\b"
},
{
"name": "keyword.operator.bitwise.tsl",
"match": "(?i)\\b(ror|rol|shr|shl)\\b"
},
{
"name": "keyword.operator.set.tsl",
"match": "(?i)\\b(union|minus|union2)\\b"
},
{
"name": "keyword.operator.io.tsl",
"match": "(?i)\\b(write|read)\\b"
},
{
"name": "keyword.control.sql.tsl",
"match": "(?i)\\b(select|vselect|sselect|update|delete|mselect)\\b"
},
{
"name": "keyword.operator.sql.tsl",
"match": "(?i)\\b(on|like|in)\\b"
},
{
"name": "keyword.other.sql.tsl",
"match": "(?i)\\b(sqlin|from|where|group|by|order|distinct|join)\\b"
},
{
"name": "keyword.other.calling-convention.tsl",
"match": "(?i)\\b(cdecl|pascal|stdcall|safecall|fastcall|register)\\b"
},
{
"name": "keyword.other.system.tsl",
"match": "(?i)\\b(setuid|sudo)\\b"
},
{
"name": "variable.language.builtin.tsl",
"match": "(?i)\\b(paramcount|realparamcount|params|system|thisfunction|tslassigning|likeeps|likeepsrate)\\b"
},
{
"name": "support.function.builtin.tsl",
"match": "(?i)\\b(echo|mtic|mtoc|this|inf|nan)\\b"
},
{
"name": "constant.language.boolean.tsl",
"match": "(?i)\\b(false|true)\\b"
},
{
"name": "constant.language.null.tsl",
"match": "(?i)\\bnil\\b"
} }
] ]
}, },