npm package: @salesforce/sfdx-diff
Description: Salesforce CLI (oclif) plugin for diffing source
Author: Platform Dev Tools
Latest version: 0.0.6

# sfdx-diff

Salesforce CLI (oclif) plugin for diffing source. Enables you to diff your local source file against its version in an org.

[![Version](https://img.shields.io/npm/v/sfdx-diff.svg)](https://npmjs.org/package/sfdx-diff)
[![CircleCI](https://circleci.com/gh/DevTools/sfdx-diff/tree/master.svg?style=shield)](https://circleci.com/gh/DevTools/sfdx-diff/tree/master)
[![Appveyor CI](https://ci.appveyor.com/api/projects/status/github/DevTools/sfdx-diff?branch=master&svg=true)](https://ci.appveyor.com/project/heroku/sfdx-diff/branch/master)
[![Codecov](https://codecov.io/gh/DevTools/sfdx-diff/branch/master/graph/badge.svg)](https://codecov.io/gh/DevTools/sfdx-diff)
[![Known Vulnerabilities](https://snyk.io/test/github/DevTools/sfdx-diff/badge.svg)](https://snyk.io/test/github/DevTools/sfdx-diff)
[![License](https://img.shields.io/npm/l/sfdx-diff.svg)](https://github.com/DevTools/sfdx-diff/blob/master/package.json)

<!-- toc -->

- [Debugging your plugin](#debugging-your-plugin)
- [Developing your plugin](#developing-your-plugin)
  <!-- tocstop -->
  <!-- install -->
  <!-- usage -->

```sh-session
$ npm install -g sfdx-diff
$ sfdx COMMAND
running command...
$ sfdx (-v|--version|version)
sfdx-diff/0.0.2 darwin-x64 node-v10.15.0
$ sfdx --help [COMMAND]
USAGE
  $ sfdx COMMAND
...
```

<!-- usagestop -->
<!-- commands -->

- [`sfdx force:source:diff -p <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal]`](#sfdx-forcesourcediff--p-string--u-string---apiversion-string---json---loglevel-tracedebuginfowarnerrorfatal)

## Usage

Diff a local source file against the version in your org

```
USAGE
  $ sfdx force:source:diff -p <string> [-u <string>] [--apiversion <string>] [--json] [--loglevel
  trace|debug|info|warn|error|fatal]

OPTIONS
  -p, --sourcepath=sourcepath                     (required) the path to the source file to diff
  -u, --targetusername=targetusername             username or alias for the target org; overrides default target org
  --apiversion=apiversion                         override the api version used for api requests made by this command
  --json                                          format output as json
  --loglevel=(trace|debug|info|warn|error|fatal)  [default: warn] logging level for this command invocation
```

_See code: [src/commands/force/source/diff.ts](https://github.com/forcedotcom/sfdx-diff/blob/v0.0.2/src/commands/force/source/diff.ts)_

<!-- commandsstop -->
<!-- debugging-your-plugin -->

# Debugging the plugin

We recommend using the Visual Studio Code (VS Code) IDE for your plugin development. Included in the `.vscode` directory of this plugin is a `launch.json` config file, which allows you to attach a debugger to the node process when running your commands.

To debug the `force:source:diff` command:

1. Start the inspector

If you linked your plugin to the sfdx cli, call your command with the `dev-suspend` switch:

```sh-session
$ sfdx force:source:diff -p file/path/to/metadata --dev-suspend
```

Alternatively, to call your command using the `bin/run` script, set the `NODE_OPTIONS` environment variable to `--inspect-brk` when starting the debugger:

```sh-session
$ NODE_OPTIONS=--inspect-brk bin/run force:source:diff -p file/path/to/metadata
```

2. Set some breakpoints in your command code
3. Click on the Debug icon in the Activity Bar on the side of VS Code to open up the Debug view.
4. In the upper left hand corner of VS Code, verify that the "Attach to Remote" launch configuration has been chosen.
5. Hit the green play button to the left of the "Attach to Remote" launch configuration window. The debugger should now be suspended on the first line of the program.
6. Hit the green play button at the top middle of VS Code (this play button will be to the right of the play button that you clicked in step #5).
   <br><img src=".images/vscodeScreenshot.png" width="480" height="278"><br>
   Congrats, you are debugging!

# Developing your plugin

```sh-session
From your sfdx-diff project...
$ yarn install
$ yarn run prepack
List the plugins currently linked to the cli...
$ sfdx plugins
To add your plugin...
$ sfdx plugins:link
To unlink your plugin...
$ sfdx plugins:unlink sfdx-diff
```