{ pkgs }:
pkgs.writeShellApplication {
  name = "viconf";
  runtimeInputs = with pkgs; [ coreutils fd ripgrep fzf ];
  text = ''
    set -- "''${1:-}"
    if [ ! $# -lt 1 ]; then
      results=$(find "$FLAKEPATH" -exec find {} \; | sort | uniq | rg '\.nix$')
      numresults=$(echo "$results" | wc -l)
    else
      results=$(find "$FLAKEPATH" -wholename "*$1*" -exec find {} \; | sort | uniq | rg '\.nix$')
      numresults=$(echo "$results" | wc -l)
    fi


    [ "$numresults" -eq 0 ] && echo "$1 not found in \$FLAKEPATH" && exit 1

    if [ "$numresults" -gt 1 ]; then
      # cut up the paths to give shorter path names to fuzzy finder
      results_prefix=$(echo "$results" | tail -n 1 | cut -d'/' -f-3)
      results=$(echo "$results" | cut -d'/' -f4-)
      if [ -n "$1" ]; then
        results=$(echo "$results" | grep "$1")
      fi

      file=$(echo "$results" | tr ' ' '\n' | fzf)
			if [ -n "$file" ]; then
				file="$results_prefix/$file"
			else
				exit 1
			fi

      # Check if the file contains any non-UTF-8 characters
      if grep --color='auto' -P -q "[^\x00-\x7F]" "$file"; then
        NIXD_FLAGS="--semantic-tokens=false" nvim "$results_prefix"/"$file"
      else
        nvim "$file"
      fi

    else
      # Check if the file contains any non-UTF-8 characters
      if grep --color='auto' -P -q "[^\x00-\x7F]" "$results"; then
        NIXD_FLAGS="--semantic-tokens=false" nvim "$results"
      else
        nvim "$results"
      fi
    fi
  '';
}
