feat: improve tree-sitter syntax highlighting with named nodes

- Add aliases for keywords (VAR_INPUT, BEGIN, IF, etc.) as named nodes
- Add aliases for built-in types (INT, BOOL, STRING, etc.) as type_builtin
- Add aliases for constants (TRUE, FALSE)
- Add aliases for operators (AND, OR, NOT, MOD)
- Add prefix node for # variable prefix highlighting
- Highlight FB instance names in calls
- Highlight FB parameter names as properties
- Update README with detailed syntax highlighting features
- Update .gitignore for *.wasm files
This commit is contained in:
2026-02-20 23:29:26 +01:00
parent dfa4ef3381
commit 553192e7a1
10 changed files with 60598 additions and 55374 deletions
+216 -431
View File
@@ -84,8 +84,12 @@
"fields": {},
"children": {
"multiple": false,
"required": false,
"required": true,
"types": [
{
"type": "constant",
"named": true
},
{
"type": "identifier",
"named": true
@@ -108,6 +112,10 @@
{
"type": "expression",
"named": true
},
{
"type": "operator",
"named": true
}
]
}
@@ -162,6 +170,25 @@
{
"type": "expression",
"named": true
},
{
"type": "keyword",
"named": true
}
]
}
},
{
"type": "continue_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "keyword",
"named": true
}
]
}
@@ -172,8 +199,12 @@
"fields": {},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "keyword",
"named": true
},
{
"type": "statement",
"named": true
@@ -193,6 +224,10 @@
"type": "expression",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "statement",
"named": true
@@ -205,6 +240,21 @@
"named": true,
"fields": {}
},
{
"type": "exit_statement",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "keyword",
"named": true
}
]
}
},
{
"type": "expression",
"named": true,
@@ -264,6 +314,77 @@
]
}
},
{
"type": "fb_call",
"named": true,
"fields": {
"instance": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "prefixed_identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "fb_parameter_list",
"named": true
}
]
}
},
{
"type": "fb_parameter",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "fb_parameter_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "fb_parameter",
"named": true
}
]
}
},
{
"type": "field_access",
"named": true,
@@ -303,6 +424,10 @@
"type": "identifier",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "statement",
"named": true
@@ -327,7 +452,7 @@
},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "attribute_list",
@@ -341,6 +466,10 @@
"type": "identifier",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "number",
"named": true
@@ -397,7 +526,7 @@
},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "attribute_list",
@@ -407,6 +536,10 @@
"type": "identifier",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "number",
"named": true
@@ -484,6 +617,10 @@
"type": "expression",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "statement",
"named": true
@@ -539,7 +676,7 @@
},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "attribute_list",
@@ -549,6 +686,10 @@
"type": "identifier",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "number",
"named": true
@@ -607,12 +748,16 @@
"named": true,
"fields": {},
"children": {
"multiple": false,
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "prefix",
"named": true
}
]
}
@@ -659,6 +804,10 @@
"multiple": true,
"required": true,
"types": [
{
"type": "keyword",
"named": true
},
{
"type": "region_name",
"named": true
@@ -682,6 +831,10 @@
"type": "expression",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "statement",
"named": true
@@ -745,6 +898,10 @@
"type": "exit_statement",
"named": true
},
{
"type": "fb_call",
"named": true
},
{
"type": "for_statement",
"named": true
@@ -803,12 +960,16 @@
"fields": {},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "identifier",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "number",
"named": true
@@ -820,6 +981,10 @@
{
"type": "type",
"named": true
},
{
"type": "type_builtin",
"named": true
}
]
}
@@ -829,12 +994,16 @@
"named": true,
"fields": {},
"children": {
"multiple": false,
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "operator",
"named": true
}
]
}
@@ -845,12 +1014,16 @@
"fields": {},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "block_comment",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "var_item",
"named": true
@@ -864,12 +1037,16 @@
"fields": {},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "block_comment",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "var_item",
"named": true
@@ -923,12 +1100,16 @@
"fields": {},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "block_comment",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "var_item",
"named": true
@@ -942,12 +1123,16 @@
"fields": {},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "block_comment",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "var_item",
"named": true
@@ -961,12 +1146,16 @@
"fields": {},
"children": {
"multiple": true,
"required": false,
"required": true,
"types": [
{
"type": "block_comment",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "var_item",
"named": true
@@ -986,6 +1175,10 @@
"type": "expression",
"named": true
},
{
"type": "keyword",
"named": true
},
{
"type": "statement",
"named": true
@@ -1001,10 +1194,6 @@
"type": "\"\"",
"named": false
},
{
"type": "#",
"named": false
},
{
"type": "'",
"named": false
@@ -1089,346 +1278,6 @@
"type": ">=",
"named": false
},
{
"type": "AND",
"named": false
},
{
"type": "ARRAY",
"named": false
},
{
"type": "BEGIN",
"named": false
},
{
"type": "BOOL",
"named": false
},
{
"type": "BY",
"named": false
},
{
"type": "BYTE",
"named": false
},
{
"type": "Bool",
"named": false
},
{
"type": "Byte",
"named": false
},
{
"type": "CASE",
"named": false
},
{
"type": "CHAR",
"named": false
},
{
"type": "CONSTANT",
"named": false
},
{
"type": "Char",
"named": false
},
{
"type": "DINT",
"named": false
},
{
"type": "DInt",
"named": false
},
{
"type": "DO",
"named": false
},
{
"type": "DT",
"named": false
},
{
"type": "DWORD",
"named": false
},
{
"type": "DWord",
"named": false
},
{
"type": "Dt",
"named": false
},
{
"type": "ELSE",
"named": false
},
{
"type": "ELSIF",
"named": false
},
{
"type": "END_CASE",
"named": false
},
{
"type": "END_FOR",
"named": false
},
{
"type": "END_FUNCTION",
"named": false
},
{
"type": "END_FUNCTION_BLOCK",
"named": false
},
{
"type": "END_IF",
"named": false
},
{
"type": "END_ORGANIZATION_BLOCK",
"named": false
},
{
"type": "END_REGION",
"named": false
},
{
"type": "END_REPEAT",
"named": false
},
{
"type": "END_VAR",
"named": false
},
{
"type": "END_WHILE",
"named": false
},
{
"type": "FALSE",
"named": false
},
{
"type": "FOR",
"named": false
},
{
"type": "FUNCTION",
"named": false
},
{
"type": "FUNCTION_BLOCK",
"named": false
},
{
"type": "IF",
"named": false
},
{
"type": "INT",
"named": false
},
{
"type": "Int",
"named": false
},
{
"type": "LREAL",
"named": false
},
{
"type": "LReal",
"named": false
},
{
"type": "MOD",
"named": false
},
{
"type": "NON_RETAIN",
"named": false
},
{
"type": "NOT",
"named": false
},
{
"type": "OF",
"named": false
},
{
"type": "OR",
"named": false
},
{
"type": "ORGANIZATION_BLOCK",
"named": false
},
{
"type": "REAL",
"named": false
},
{
"type": "REGION",
"named": false
},
{
"type": "REPEAT",
"named": false
},
{
"type": "RETAIN",
"named": false
},
{
"type": "Real",
"named": false
},
{
"type": "SINT",
"named": false
},
{
"type": "SInt",
"named": false
},
{
"type": "STRING",
"named": false
},
{
"type": "String",
"named": false
},
{
"type": "THEN",
"named": false
},
{
"type": "TIME",
"named": false
},
{
"type": "TITLE",
"named": false
},
{
"type": "TO",
"named": false
},
{
"type": "TOD",
"named": false
},
{
"type": "TRUE",
"named": false
},
{
"type": "Time",
"named": false
},
{
"type": "Tod",
"named": false
},
{
"type": "UINT",
"named": false
},
{
"type": "UInt",
"named": false
},
{
"type": "UNTIL",
"named": false
},
{
"type": "USINT",
"named": false
},
{
"type": "USInt",
"named": false
},
{
"type": "VAR",
"named": false
},
{
"type": "VAR_CONSTANT",
"named": false
},
{
"type": "VAR_INPUT",
"named": false
},
{
"type": "VAR_IN_OUT",
"named": false
},
{
"type": "VAR_NON_RETAIN",
"named": false
},
{
"type": "VAR_OUTPUT",
"named": false
},
{
"type": "VAR_RETAIN",
"named": false
},
{
"type": "VAR_TEMP",
"named": false
},
{
"type": "VERSION",
"named": false
},
{
"type": "WCHAR",
"named": false
},
{
"type": "WChar",
"named": false
},
{
"type": "WHILE",
"named": false
},
{
"type": "WORD",
"named": false
},
{
"type": "WSTRING",
"named": false
},
{
"type": "WString",
"named": false
},
{
"type": "Word",
"named": false
},
{
"type": "XOR",
"named": false
},
{
"type": "[",
"named": false
@@ -1442,37 +1291,13 @@
"named": true,
"extra": true
},
{
"type": "byte",
"named": false
},
{
"type": "c_style_comment",
"named": true,
"extra": true
},
{
"type": "char",
"named": false
},
{
"type": "continue_statement",
"named": true
},
{
"type": "dint",
"named": false
},
{
"type": "dt",
"named": false
},
{
"type": "dword",
"named": false
},
{
"type": "exit_statement",
"type": "constant",
"named": true
},
{
@@ -1484,73 +1309,33 @@
"named": true
},
{
"type": "int",
"named": false
"type": "keyword",
"named": true
},
{
"type": "line_comment",
"named": true,
"extra": true
},
{
"type": "lreal",
"named": false
},
{
"type": "number",
"named": true
},
{
"type": "real",
"named": false
"type": "operator",
"named": true
},
{
"type": "sint",
"named": false
},
{
"type": "string",
"named": false
},
{
"type": "time",
"named": false
"type": "prefix",
"named": true
},
{
"type": "time_value",
"named": true
},
{
"type": "tod",
"named": false
},
{
"type": "TOD",
"named": false
},
{
"type": "uint",
"named": false
},
{
"type": "UInt",
"named": false
},
{
"type": "usint",
"named": false
},
{
"type": "wchar",
"named": false
},
{
"type": "word",
"named": false
},
{
"type": "wstring",
"named": false
"type": "type_builtin",
"named": true
},
{
"type": "{",
@@ -1560,4 +1345,4 @@
"type": "}",
"named": false
}
]
]