diff --git a/package.json b/package.json
index 816388ed171ec94f200e58c643a92fc7771bb6dd..22ba951c78d3e5d4c43e52ea70fba646a99cbf1e 100644
--- a/package.json
+++ b/package.json
@@ -1538,6 +1538,18 @@
             {
                 "language": "lua",
                 "scopes": {
+                    "class": [
+                        "support.class.lua"
+                    ],
+                    "class.declaration": [
+                        "support.class.lua"
+                    ],
+                    "comment.documentation": [
+                        "storage.type.annotation.lua"
+                    ],
+                    "event.static": [
+                        "support.class.lua"
+                    ],
                     "function": [
                         "variable.function.lua"
                     ],
@@ -1550,12 +1562,36 @@
                     "function.static": [
                         "entity.name.function.lua"
                     ],
+                    "keyword": [
+                        "keyword.control.lua"
+                    ],
+                    "keyword.async": [
+                        "entity.name.tag.lua"
+                    ],
+                    "keyword.declaration": [
+                        "keyword.local.lua"
+                    ],
+                    "keyword.readonly": [
+                        "constant.language.lua"
+                    ],
+                    "macro": [
+                        "variable.lua"
+                    ],
                     "method": [
                         "entity.name.function.lua"
                     ],
                     "method.declaration": [
                         "entity.name.function.lua"
                     ],
+                    "number": [
+                        "constant.numeric.float.lua"
+                    ],
+                    "number.static": [
+                        "constant.numeric.integer.lua"
+                    ],
+                    "operator": [
+                        "keyword.operator.lua"
+                    ],
                     "parameter.declaration": [
                         "variable.parameter.lua"
                     ],
@@ -1565,6 +1601,30 @@
                     "property.declaration": [
                         "entity.other.property.lua"
                     ],
+                    "string": [
+                        "string.lua"
+                    ],
+                    "string.deprecated": [
+                        "invalid.illegal.character.escape.lua"
+                    ],
+                    "string.modification": [
+                        "constant.character.escape.lua"
+                    ],
+                    "struct": [
+                        "string.tag.lua"
+                    ],
+                    "struct.declaration": [
+                        "string.tag.lua"
+                    ],
+                    "type": [
+                        "support.type.lua"
+                    ],
+                    "type.modification": [
+                        "storage.type.generic.lua"
+                    ],
+                    "typeParameter": [
+                        "string.tag.lua"
+                    ],
                     "variable": [
                         "variable.other.lua"
                     ],
@@ -1577,8 +1637,8 @@
                     "variable.defaultLibrary": [
                         "support.constant.lua"
                     ],
-                    "variable.local": [
-                        "variable.other.lua"
+                    "variable.definition": [
+                        "variable.language.self.lua"
                     ],
                     "variable.readonly": [
                         "variable.other.constant.lua"
diff --git a/package/semanticTokenScope.lua b/package/semanticTokenScope.lua
index 1434e639eb21403de74a9613b5a289efeaa60898..2f40038a78d1217a01f9d866c85e40cc6a0345af 100644
--- a/package/semanticTokenScope.lua
+++ b/package/semanticTokenScope.lua
@@ -34,10 +34,22 @@ return {
     ['keyword'] = {'keyword.control.lua'},
     ['keyword.declaration'] = {'keyword.local.lua'},
     ['keyword.readonly'] = {'constant.language.lua'},
+    ['keyword.async'] = {'entity.name.tag.lua'},
     ['operator'] = {'keyword.operator.lua'},
     ['number'] = {'constant.numeric.float.lua'},
     ['number.static'] = {'constant.numeric.integer.lua'},
     ['string'] = {'string.lua'},
     ['string.modification'] = {'constant.character.escape.lua'},
     ['string.deprecated'] = {'invalid.illegal.character.escape.lua'},
+
+    ["struct"] = {"string.tag.lua"},
+    ["struct.declaration"] = {"string.tag.lua"},
+    ["typeParameter"] = {"string.tag.lua"},
+    ["comment.documentation"] = {"storage.type.annotation.lua"},
+    ["class"] = {"support.class.lua"},
+    ["class.declaration"] = {"support.class.lua"},
+    ["type"] = {"support.type.lua"},
+    ["type.modification"] = {"storage.type.generic.lua"},
+    ["macro"] = {"variable.lua"},
+    ["event.static"] = {"support.class.lua"},
 }