VSCode语法突出显示自定义shebang

时间:2017-02-28 00:12:09

标签: visual-studio-code vscode-settings

在工作中我们在自定义环境下运行python,因此我们使用非标准的shebang。我测试过VSCode识别python文件没有 .py扩展名,如果他们有#!/usr/bin/env python/usr/bin/python或其变体的shebang。

在工作中我使用类似于此的shebang:#!/some/directory/envroot "$ENVROOT/bin/python"但是vs代码并没有认识到这一点,所以我每次都必须手动将语言设置为python。

我是否可以在某处将自定义shebang映射到某种语言,因此每次打开文件时都不必手动设置它?

3 个答案:

答案 0 :(得分:5)

我在VSCode上工作。

shebang映射由扩展语法贡献中的firstLine定义:

    "languages": [{
        "id": "python",
        "extensions": [ ".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi" ],
        "aliases": [ "Python", "py" ],
        "firstLine": "^#!/.*\\bpython[0-9.-]*\\b",
        "configuration": "./language-configuration.json"
    }]

没有设置来控制它,但您可以使用file.associations将这些文件直接映射到python。

您的具体示例对我来说似乎也是一个错误。我们目前只使用第一行模式if the entire line matches,这似乎很奇怪。我已经打开了一个问题来调查此问题:https://github.com/Microsoft/vscode/issues/21533

答案 1 :(得分:1)

补充Matt Bierner's helpful answer

JSON设置Matt引用位于以下位置的<languageId>/package.json文件中:

在GitHub上:

安装后

  • 在VSCode安装文件夹的resources/app/extensions子文件夹中; e.g:

    • Windows(32位版本):

      C:\Program Files (x86)\Microsoft VS Code\resources\app\extensions
      
    • MACOS:

      /Applications/Visual Studio Code.app/Contents/Resources/app/extensions
      
  • 例如,Python:

    • Windows(32位版本):

      C:\Program Files (x86)\Microsoft VS Code\resources\app\extensions\python\package.json
      
    • MACOS:

      /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/python/package.json
      

答案 2 :(得分:0)

并补充mklement0's complement
在Linux上,请参见/usr/share/code/resources/app/extension/
例如Lua:/usr/share/code/resources/app/extensions/lua/package.json