iterative/vscode-dvc

View on GitHub
extension/src/fileSystem/workspace.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import { basename } from 'path'
import { Uri, workspace, WorkspaceEdit } from 'vscode'

export const deleteTarget = (uri: Uri) => {
  const edit = new WorkspaceEdit()
  edit.deleteFile(uri, { ignoreIfNotExists: true, recursive: true })
  return workspace.applyEdit(edit)
}

export const moveTargets = (targets: Uri[], destination: Uri) => {
  const edit = new WorkspaceEdit()
  for (const uri of targets) {
    edit.renameFile(uri, Uri.joinPath(destination, basename(uri.fsPath)))
  }

  return workspace.applyEdit(edit)
}

export const findFiles = async (
  relativeGlob: string,
  exclude?: string
): Promise<string[]> => {
  const files = await workspace.findFiles(relativeGlob, exclude)
  return files.map(uri => uri.fsPath)
}