我正在尝试在vscode中创建版本控制扩展.我试着在vscode中查看Git实现.令人困惑的部分是文件差异.在git扩展源代码中,用于查看文件更改vscode.diff.要获取uri原始文件,uri可以通过更改scheme修改后的文件来生成新文件uri.这是怎么回事?
例如,在https://github.com/Microsoft/vscode/blob/master/extensions/git/src/commands.ts中,使用文件的uri调用getRightResource方法toGitUri.toGitUri实施如下,
export function toGitUri(uri: Uri, ref: string, replaceFileExtension = false): Uri {
return uri.with({
scheme: 'git',
path: replaceFileExtension ? `${uri.path}.git` : uri.path,
query: JSON.stringify({
path: uri.fsPath,
ref
})
});
}
Run Code Online (Sandbox Code Playgroud)
在这里,toGitUri只是改变文件的方案,从file到git与查询.这uri随后被提供给vscode.diff与原沿uri文件,以显示git的差异.怎么在toGitUri这里工作?
我正在创建一个扩展,其中需要从用户那里获取一个字符串并将其存储,以便将来我可以通过quickdropbox给出建议。现在,哪种存储用户输入数据的真正方法是?我看到了项目经理扩展源。在那里,用户输入的项目名称存储在%APPDATA%\ Code \ User文件夹中的project.json中。这是正确的存储方式吗?对不起,我的英语不好。