<commit_before>function fisher_search -d "Search Plugins"
    set -l fields
    set -l query
    set -l index
    set -l join "||"
    set -l quiet 0

    getopts $argv | while read -l 1 2 3
        switch "$1"
            case _
                switch "$2"
                    case \*/\*
                        set -l url (__fisher_plugin_validate $2)

                        if test ! -z "$url"
                            set 2 $url
                        end

                        set query $query "url==\"$2\"" $join

                    case \*
                        set query $query "name==\"$2\"" $join
                end

            case name url info author
                if test -z "$2"
                    set fields $fields $1 ,
                else
                    switch "$2"
                        case ~\*
                            set query $query "$1$3$2" $join

                        case \*
                            if test -z "$3"
                                set 3 =
                            end
                            set query $query "$1$3=\"$2\"" $join
                    end
                end

            case tag{,s}
                if test -z "$2"
                    set fields $fields "tags(0)" ,
                else
                    set query $query "$3 tags(\"$2\")" $join
                end

            case a and
                set join "&&"

            case o or
                set join "||"

            case query
                set query $query $2

            case index
                set index $2

            case q quiet
                set quiet 1

            case h
                printf "usage: fisher search [<plugins>] [--and|--or] [--quiet] [--help]\n\n"

                printf "    *--<field>  Filter by url, name, info, author or tags\n"
                printf "       -o --or  Join query with OR operator\n"
                printf "      -a --and  Join query with AND operator\n"
                printf "    -q --quiet  Enable quiet mode\n"
                printf "     -h --help  Show usage help\n"
                return

            case \*
                printf "fisher: '%s' is not a valid option.\n" $1 >& 2
                fisher_search -h >& 2
                return 1
        end
    end

    if test -z "$index"
        set index $fisher_cache/.index

        set fisher_last_update (math (date +%s) - "0$fisher_last_update")

        if not set -q fisher_update_interval
            set -g fisher_update_interval 10
        end

        if test $fisher_last_update -gt $fisher_update_interval -o ! -f $index
            wait "__fisher_index_update"
        end

        set -U fisher_last_update (date +%s)
    end

    set -e fields[-1]
    set -e query[-1]

    if test -z "$fields[1]"
        set fields '$0'
    end

    awk -F'\n' -v RS='' -v OFS=';' (
        if test "$fields" = '$0'
            printf "%s\nORS=%s" -v '\\n\\n'
        end
        ) "

    function tags(tag, _list) {
        if (!tag) {<commit_msg>Reset completions after a successful index update.<commit_after>function fisher_search -d "Search Plugins"
    set -l fields
    set -l query
    set -l index
    set -l join "||"
    set -l quiet 0

    getopts $argv | while read -l 1 2 3
        switch "$1"
            case _
                switch "$2"
                    case \*/\*
                        set -l url (__fisher_plugin_validate $2)

                        if test ! -z "$url"
                            set 2 $url
                        end

                        set query $query "url==\"$2\"" $join

                    case \*
                        set query $query "name==\"$2\"" $join
                end

            case name url info author
                if test -z "$2"
                    set fields $fields $1 ,
                else
                    switch "$2"
                        case ~\*
                            set query $query "$1$3$2" $join

                        case \*
                            if test -z "$3"
                                set 3 =
                            end
                            set query $query "$1$3=\"$2\"" $join
                    end
                end

            case tag{,s}
                if test -z "$2"
                    set fields $fields "tags(0)" ,
                else
                    set query $query "$3 tags(\"$2\")" $join
                end

            case a and
                set join "&&"

            case o or
                set join "||"

            case query
                set query $query $2

            case index
                set index $2

            case q quiet
                set quiet 1

            case h
                printf "usage: fisher search [<plugins>] [--and|--or] [--quiet] [--help]\n\n"

                printf "    *--<field>  Filter by url, name, info, author or tags\n"
                printf "       -o --or  Join query with OR operator\n"
                printf "      -a --and  Join query with AND operator\n"
                printf "    -q --quiet  Enable quiet mode\n"
                printf "     -h --help  Show usage help\n"
                return

            case \*
                printf "fisher: '%s' is not a valid option.\n" $1 >& 2
                fisher_search -h >& 2
                return 1
        end
    end

    if test -z "$index"
        set index $fisher_cache/.index

        set fisher_last_update (math (date +%s) - "0$fisher_last_update")

        if not set -q fisher_update_interval
            set -g fisher_update_interval 10
        end

        if test $fisher_last_update -gt $fisher_update_interval -o ! -f $index
            if wait "__fisher_index_update"
                __fisher_complete_reset
            end
        end

        set -U fisher_last_update (date +%s)
    end

    set -e fields[-1]
    set -e query[-1]

    if test -z "$fields[1]"
        set fields '$0'
    end

    awk -F'\n' -v RS='' -v OFS=';' (
        if test "$fields" = '$0'
            printf "%s\nORS=%s" -v '\\n\\n'
        end
        ) "

    function tags(tag, _list) {
        if (!tag) {
{'fraction_non_alphanumeric': 0.09954677889284558, 'fraction_numerical': 0.012949174490126255, 'mean_word_length': 0.8832672965559281, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4598208', 'n_tokens_mistral': 1794, 'n_tokens_neox': 1626, 'n_words': 575}