Алекс указал мне правильное направление в комментариях, так как я закончил делать это следующим образом:
Внутри моего TreeViewDataProvider
Я добавил следующую строку
contextValue: element.isDirectory ? 'folder' : 'file'
Кдать перспективу, это был мой getTreeItem
public getTreeItem(element: FtpNode): vscode.TreeItem {
console.log(element.resource.path);
return {
resourceUri: element.resource,
collapsibleState: element.isDirectory ? vscode.TreeItemCollapsibleState.Collapsed : void 0,
command: element.isDirectory ? void 0 : {
command: 'live-workspace.openFtpResource',
arguments: [element.resource],
title: 'Open File'
},
contextValue: element.isDirectory ? 'folder' : 'file' //Here I am!
};
}
contextValue
- ожидаемое возвращение для treeItem, предоставляя ему дополнительную информацию для использования в package.json
, теперь я могусделайте мое сравнение следующим образом:
"view/item/context": [
{
"command": "liveworkspace.checkout",
"when": "view == live-workspace-remote && viewItem == file" // or viewItem == folder
}
]