如何让VS Code识别特定命名格式的日志文件为自定义语言?
解决VS Code自定义语言扩展匹配特定格式日志文件的问题
你当前的配置直接将所有.txt文件关联到自定义语言,要实现仅匹配something.log.timestamp.txt格式的文件,需要调整以下两处配置:
1. 替换文件匹配规则
原配置用extensions匹配所有.txt,改为使用filenamePatterns通过正则匹配特定文件名格式,同时移除extensions避免冲突。
2. 修正语法作用域名称
grammars里的scopeName不能设为.txt,需指定合法的作用域名称(比如source.mylang),这是语法文件的标准标识。
修改后的完整配置片段:
"contributes": { "languages": [{ "id": "mylang", "aliases": ["MyLang", "mylang"], "filenamePatterns": [".*\\.log\\.\\d{8}_\\d{6}\\.txt"], "configuration": "./language-configuration.json" }], "grammars": [{ "language": "mylang", "scopeName": "source.mylang", "path": "./syntaxes/mylang.tmLanguage.json" }] },
正则说明
.*\\.log\\.\\d{8}_\\d{6}\\.txt的含义:
.*:匹配任意长度的文件名前缀\\.log\\.:匹配.log.固定字符串(JSON中需用双反斜杠转义)\\d{8}:匹配8位数字的日期(如20230509)_:匹配日期和时间之间的下划线分隔符\\d{6}:匹配6位数字的时间(如131031)\\.txt:匹配结尾的.txt后缀
内容的提问来源于stack exchange,提问作者Panda Developments
相关产品推荐
相关产品推荐

