2017-07-11 48 views
0

我一直在試圖使用一個條件來檢查當前打開的文件擴展名,所以我可以自動使用不同的任務,但沒有成功。使用基於VS代​​碼tasks.json上的#{fileExtname}的任務

這是當前tasks.json:

{ 
    "version": "0.1.0", 
    "isShellCommand": true, 
    "showOutput": "always", 
    "suppressTaskName": true, 
    "echoCommand": true, 

    "tasks": 
    [ 
     { 
      "taskName": "Build c++", 
      "command": "", 
      "isBuildCommand": true, 
      "args": ["g++", "-o", "${fileBasenameNoExtension}", "${fileBasename}"] 
     } 
    ] 
} 

我的目標是做一樣的東西:

{ 
    "version": "0.1.0", 
    "isShellCommand": true, 
    "showOutput": "always", 
    "suppressTaskName": true, 
    "echoCommand": true, 

    if(#{fileExtname} == ".cpp") 
    { 
     "tasks": 
     [ 
      { 
       "taskName": "Build", 
       "command": "", 
       "isBuildCommand": true, 
       "args": ["g++", "-o", "${fileBasenameNoExtension}", "${fileBasename}"] 
      } 
     ] 
    } 

    if(#{fileExtname} == ".java") 
    { 
     "tasks": 
     [ 
      { 
       "taskName": "Build", 
       "command": "", 
       "isBuildCommand": true, 
       "args": ["javac", "${fileBasename}"] 
      } 
     ] 
} 

這可能嗎?

回答

0

不,我不認爲這是可能的。但是,您可以很快通過writing a small extension實現此目標 - 即將發佈的1.14.0版本將包含API for generating tasks。根據window.activeTextEditor.document.languageId生成不同的任務將非常簡單。

+0

這很不幸,但我很高興我們很快就能做到。謝謝您的回答。 – Montzsuma

+0

他們剛剛發佈了1.14.0。 :) – Gama11

+0

我喜歡VS Code的更新速度。感謝您的洞察!現在,我去閱讀文檔... – Montzsuma