VSCode Python 语言扩展

Posted

技术标签:

【中文标题】VSCode Python 语言扩展【英文标题】:VSCode Python Language Extension 【发布时间】:2017-10-13 19:39:06 【问题描述】:

我正在尝试为 Ribosome .py.dna 文件创建 VSCode 扩展

基本上,.py.dna 与 python 相同,除了以. 开头的行应该具有注释语法突出显示。

到目前为止,这就是我的tmLanguage.json


    "name": "RibosomePython",
    "patterns": [
        
            "include": "#dots"
        
    ],
    "repository": 
        "dots": 
            "name": "comment.dna",
            "begin": "\\.",
            "end": "$"
        
    ,
    "scopeName": "source.python.dna"

这行得通,因为以. 开头的行具有python 注释语法突出显示。但是现在我不确定如何告诉 VSCode 让真正的 Python 语法突出显示其他所有内容。我该怎么做?

我的package.json 看起来像:


    "name": "ribosome-dna",
    "displayName": "Ribosome DNA",
    "description": "Ribosome DNA Syntax Highlighting",
    "version": "0.0.1",
    "publisher": "rpgillespie",
    "engines": 
        "vscode": "^1.17.0"
    ,
    "categories": [
        "Languages"
    ],
    "contributes": 
        "languages": [
            "id": "dna",
            "aliases": ["DNA"],
            "extensions": [".py.dna"],
            "configuration": "./language-configuration.json"
        ],
        "grammars": [
            
                "language": "dna",
                "scopeName": "source.python.dna",
                "path": "./syntaxes/dna.tmLanguage.json"
            
        ]
    

请注意,通过复制和修改 python 的语法,我能够让它按照我想要的方式工作,但这似乎有点过头了。

编辑:

对于已发布的好奇、已完成的扩展here。

【问题讨论】:

【参考方案1】:

只需将"include": "source.python" 添加到您的patterns


    "name": "RibosomePython",
    "patterns": [
        
            "include": "#dots"
        ,
        
            "include": "source.python"
        
    ],
    "repository": 
        "dots": 
            "name": "comment.dna",
            "begin": "\\.",
            "end": "$"
        
    ,
    "scopeName": "source.python.dna"

此功能称为injection grammar。 VSCode 响应 #2793 添加了对此的支持。

【讨论】:

正是我想要的。我已经尝试了一些变化,但无济于事。

以上是关于VSCode Python 语言扩展的主要内容,如果未能解决你的问题,请参考以下文章

VSCode中设置Python语言自动格式化的方案

VS Code UI语言不会传播到python扩展命令面板

vscode离线方式安装的插件没有应用的按钮

按文件名模式的 VSCode 语言扩展

利用VSCode编写ArcPy代码

从另一个vscode扩展添加到vscode python jedi的路径