iterative/vscode-dvc

View on GitHub
extension/src/vscode/commands.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import { commands, Uri } from 'vscode'
import { RegisteredCommands } from '../commands/external'
import { InternalCommands } from '../commands/internal'
import { Resource } from '../repository/commands'

const getCommand =
  (name: string): (({ resourceUri }: Resource) => void) =>
  ({ resourceUri }) =>
    commands.executeCommand(name, resourceUri)

const registerResourceCommands = (internalCommands: InternalCommands) => {
  internalCommands.registerExternalCommand<Resource>(
    RegisteredCommands.TRACKED_EXPLORER_OPEN_TO_THE_SIDE,
    getCommand('explorer.openToSide')
  )

  internalCommands.registerExternalCommand<Resource>(
    RegisteredCommands.TRACKED_EXPLORER_SELECT_FOR_COMPARE,
    getCommand('selectForCompare')
  )

  internalCommands.registerExternalCommand<Resource>(
    RegisteredCommands.TRACKED_EXPLORER_COMPARE_SELECTED,
    getCommand('compareFiles')
  )

  internalCommands.registerExternalCommand<Resource>(
    RegisteredCommands.TRACKED_EXPLORER_FIND_IN_FOLDER,
    getCommand('filesExplorer.findInFolder')
  )

  internalCommands.registerExternalCommand<Resource>(
    RegisteredCommands.TRACKED_EXPLORER_COPY_FILE_PATH,
    getCommand('copyFilePath')
  )

  internalCommands.registerExternalCommand<Resource>(
    RegisteredCommands.TRACKED_EXPLORER_COPY_REL_FILE_PATH,
    getCommand('copyRelativeFilePath')
  )
}

export const reRegisterVsCodeCommands = (
  internalCommands: InternalCommands
) => {
  internalCommands.registerExternalCommand<Uri>(
    RegisteredCommands.TRACKED_EXPLORER_OPEN_FILE,
    resource => commands.executeCommand('vscode.open', resource)
  )

  registerResourceCommands(internalCommands)
}