You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在VS Code中使用哪种语言模式为key=value格式事件实现语法高亮?

合适的VS Code语言模式推荐

你提供的日志格式是典型的类实例toString()输出(类似Scala case class或Java对象的打印结果),用JSON模式不合适,试试下面几种方案:

1. Scala语言模式

这种嵌套括号+键值对的结构和Scala case class的输出完全匹配,VS Code自带Scala语法支持(如果没有,安装官方Scala插件即可)。将文件切换为Scala语言模式后,类名(如SperreAusweisCommand、SperrungInput)、字符串值、关键字(null、None)、数值都会被自动高亮。

2. Java语言模式

如果没有Scala插件,Java语言模式也能凑合用。它能识别大部分标识符、字符串、数值和null关键字,虽然对Scala特有的None、List()支持稍弱,但基础高亮效果足够提升可读性。

3. 自定义简易语法规则(进阶)

如果自带模式的高亮不够精准,可以在VS Code的settings.json里添加自定义TextMate规则,针对你的日志格式做针对性高亮:

"editor.tokenColorCustomizations": {
    "textMateRules": [
        {
            "scope": "custom.class-name",
            "settings": {
                "foreground": "#569CD6"
            }
        },
        {
            "scope": "custom.key-name",
            "settings": {
                "foreground": "#9CDCFE"
            }
        },
        {
            "scope": "custom.literal-value",
            "settings": {
                "foreground": "#CE9178"
            }
        }
    ]
},
"files.associations": {
    "*.ausweis-log": "plaintext"
}

再配合简单的语法片段匹配(可通过VS Code的自定义语法扩展工具生成),就能实现更贴合的高亮效果。

示例日志(切换为Scala模式后的高亮效果)

SperreAusweisCommand(ausweisId=S55007200672, sperrungInput=SperrungInput(lockReason=LK_DELAY_CARD_PRODUCTION_ADDRESS, sperrungsDatum=null, externeReferenz=null), requestContext=RequestContext(auftraggeber=Quelle(typ=BENUTZERID, id=chagai.friedlander@sbb.ch, info=null, kanal=null), ausloesendeAusweisId=None, ausloesendeFotoId=None, novaContext=NovaContext(clientId=NovaClientId(kanalCode=909, leistungsvermittler=11, verkaufsstelle=Didok5(wert=19106), vertriebspunkt=Didok5(wert=19106), verkaufsgeraeteId=236, bearbeiter=None), correlation=NovaCorrelation(correlationId=a006a0bd-a6ce-4009-b05d-00f10b874099, geschaeftsprozessId=Some(b9f9e003-8a14-4656-84d0-5d9baf9979a2))))) returned Ok(Karte(ausweis=Ausweis(ausweisPk=AusweisPk(wert=2782866), ausweisId=S55007200672, status=GESPERRT, ausstellungsDatum=2023-01-23T17:58:04, kundenInfo=KundenInfo(customerId=CustomerId(tkId=TkId(wert=52e80379-f285-44dd-b9aa-509586ed0950), ckm13=247-739-818-4)), aktivierung=Aktivierung(aktivierer=Quelle(typ=SYSTEMID, id=DIGI Wizard, info=null, kanal=null), aktivierungsDatum=2023-01-23T17:58:04.056, activationReason=AC_SALE), deaktivierung=null, sperrStack=SperrStack(sperrungen=List(Sperrung(sperrer=Quelle(typ=SYSTEMID, id=DIGI Wizard, info=null, kanal=null), sperrungsDatum=2023-01-23T17:58:07.227, lockReason=LK_SUSPICION_OF_FALSIFICATION, externeReferenz=null), Sperrung(sperrer=Quelle(typ=BENUTZERID, id=chagai.friedlander@sbb.ch, info=null, kanal=null), sperrungsDatum=2023-01-24T22:39:27.795, lockReason=LK_PHOTO_TOO_OLD, externeReferenz=null), Sperrung(sperrer=Quelle(typ=BENUTZERID, id=chagai.friedlander@sbb.ch, info=null, kanal=null), sperrungsDatum=2023-01-27T09:24:46.806, lockReason=LK_DELAY_CARD_PRODUCTION_ADDRESS, externeReferenz=null), Sperrung(sperrer=Quelle(typ=BENUTZERID, id=chagai.friedlander@sbb.ch, info=null, kanal=null), sperrungsDatum=2023-01-27T09:21:28.424, lockReason=LK_LOSS, externeReferenz=null)), entsperrungen=List()), externeReferenz=ExterneReferenz(prefix=SBB, id=3719236)), kartenSequenzNr=KartenSequenzNr(value=1), fotoId=FotoId(wert=498017), erneuerungsDatum=2026-02-28T00:00, produzent=MOCK, kartenGeneration=2.0, kartenQualitaet=KartenQualitaet(qualityReason=QA_OK, aenderungsDatum=2023-01-23T17:58:04.056), techInfo=KarteTechInfo(mediumId=KarteMediumId(bfed2993fd4b4b39b22128da65c25cc6), transponder=Transponder(transponderUid14443=A044E9E8, transponderUid15693=0517A1072758C352), produktionsId=2023-01-23, produktionsDatum=2023-01-23, publicKey2fa=PublicKey2FA(wert=LfmyeRHZ97OPZK7gS4Y8fF9pqf78HCbyVfSAsCfd0dRHaVUvUTyN0fsdZmmGr0tBhPq6HbZDrzVjzUjf7LasfW567FdgVzpvHv45aDKyBZr2gekrS8cUjNmZy0SwWSBH6tmlnB1IwPHMfTWcADgdg0UouXCyG3mlJbxUQEn7caYwyp75SuWHLzUpuJW23WFlQEhyXZ0xncJHoTVBAhwxjZ8iIhbHpisQA3Xzr5azDYs1TaIBWbABstf0aByh4sN, zertifikatAblaufdatum=2026-01-23), druckInformationen=DruckInformationen(schriftgroesse=9.0), legicId=LegicId(wert=97600608072256), appletVersionen=AppletVersionen(oevVersion=7.0, ppseVersion=2.0, legicVersion=7.7, emvVersion=9.1, fidoVersion=1.9), emvParameter=EmvParameter(ablaufDatum=ExpiryDate(value=2026-02-28))), inUse=true), Vector())

内容的提问来源于stack exchange,提问作者Chagai Friedlander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:15:40