# fish_delta - compare functions and completions to the default

## Synopsis

    fish_delta name ...
    fish_delta [-f | --no-functions] [-c | --no-completions] [-C | --no-config] [-d | --no-diff] [-n | --new] [-V | --vendor=]
    fish_delta [-h | --help]

## Description

The `fish_delta` function tells you, at a glance, which of your functions and completions differ from the set that fish ships.

It does this by going through the relevant variables (`fish_function_path` for functions and `fish_complete_path` for completions) and comparing the files against fish’s default directories.

If any names are given, it will only compare files by those names (plus a “.fish” extension).

By default, it will also use `diff` to display the difference between the files. If `diff` is unavailable, it will skip it, but in that case it also cannot figure out if the files really differ.

The exit status is 1 if there was a difference and 2 for other errors, otherwise 0.

## Options

The following options are available:

-f or --no-functions

  Stops checking functions

-c or --no-completions

  Stops checking completions

-C or --no-config

  Stops checking configuration files like config.fish or snippets in the conf.d directories.

-d or --no-diff

  Removes the diff display (this happens automatically if `diff` can’t be found)

-n or --new

  Also prints new files (i.e. those that can’t be found in fish’s default directories).

-Vvalue or --vendor=value

  Determines how the vendor directories are counted. Valid values are:

  - “default” - counts vendor files as belonging to the defaults. Any changes in other directories will be counted as changes over them. This is the default.

  - “user” - counts vendor files as belonging to the user files. Any changes in them will be counted as new or changed files.

  - “ignore” - ignores vendor directories. Files of the same name will be counted as “new” if no file of the same name in fish’s default directories exists.

-h or --help

  Prints `fish_delta`’s help (this).

## Example

Running just:

    fish_delta

will give you a list of all your changed functions and completions, including diffs (if you have the `diff` command).

It might look like this:

    > fish_delta
    New: /home/alfa/.config/fish/functions/battery.fish
    Changed: /home/alfa/.config/fish/test/completions/cargo.fish
    --- /home/alfa/.config/fish/test/completions/cargo.fish 2022-09-02 12:57:55.579229959 +0200
    +++ /usr/share/fish/completions/cargo.fish      2022-09-25 17:51:53.000000000 +0200
    # the output of `diff` follows

The options are there to select which parts of the output you want. With `--no-completions` you can compare just functions, and with `--no-diff` you can turn off the `diff` display.

To only compare your `fish_git_prompt`, you might use:

    fish_delta --no-completions fish_git_prompt

which will only compare files called “fish_git_prompt.fish”.