如何检查文档是否为只读 - VSCode扩展API

时间:2018-05-15 13:26:04

标签: typescript visual-studio-code vscode-extensions

有没有办法找出活动文本文档是否为只读文件?

我无法在VSCode namespace API文档中找到它。

2 个答案:

答案 0 :(得分:1)

VSCode运行在NodeJS上运行的Electron上,这意味着您可以访问文件系统并检查文件权限,而无需使用VSCode API。

您可以使用fs本机包检查NodeJS的文件权限:

if ((fs.statSync(document.uri.fsPath).mode & 146) == 0) {
  // document is in read-only mode
}

答案 1 :(得分:0)

您应该使用内置的vscode.workspace.fs API而不是普通的node.js fs软件包。但是,即使这样对于不代表物理文件的TextDocument也没有帮助。

您可以假设如果使用TextDocument.uri.schema === 'file',则可以使用vscode.workspace.fs API测试它是否可写。

否则,可能会应用一个空的良性编辑,例如按照@Michael的建议插入一个空字符串将是一个有用的测试。