Я столкнулся с той же проблемой. Оказывается, FileSystemProvider
- это интерфейс, который должен реализовывать поставщик.
На GitHub есть отличный пример от Microsoft .
Суть этого такова:
Сначала они создают новый класс с именем MemFS
, который реализует vscode.FileSystemProvider
.
Затем они регистрируют это так:
const memFs = new MemFS();
context.subscriptions.push(
vscode.workspace.registerFileSystemProvider('memfs', memFs, {
isCaseSensitive: true
}));
Первый параметр registerFileSystemProvider
- это схема, которая означает, что поставщик файловой системы будет использоваться всякий раз, когда вы используете URI, начинающийся с memfs://
.
Таким образом, вы используете fs
как обычно, и схема определяет FileSystemProvider
, который будет фактически использоваться. Это здорово, потому что это действительно делает вас прозрачным независимо от того, находится ли файл на диске, на каком-либо сервере на другом конце света или динамически генерируется поставщиком.