You can enrich highlighting using information from the language server, can't you? I think JetBrains does this