# Common variables
{{`{{.File.Name}}`}}:                                                                           {{.File.Name}}
{{`{{.File.Name | upper}}`}}:                                                                   {{.File.Name | upper}}
{{`{{.File.Package | base | replace "." "-"}}`}}                                                {{.File.Package | base | replace "." "-"}}
{{- /*{{`{{$file := .File}}{{$file}}`}}                                                               {{$file := .File}}{{$file}}*/}}
{{`{{$packageDir := .File.Name | dir}}{{$packageDir}}`}}                                        {{$packageDir := .File.Name | dir}}{{$packageDir}}
{{`{{$packageName := .File.Name | base | replace ".proto" ""}}{{$packageName}}`}}               {{$packageName := .File.Name | base | replace ".proto" ""}}{{$packageName}}
{{`{{$packageImport := .File.Package | replace "." "_"}}{{$packageImport}}`}}                   {{$packageImport := .File.Package | replace "." "_"}}{{$packageImport}}
{{`{{$namespacedPackage := .File.Package}}{{$namespacedPackage}}`}}                             {{$namespacedPackage := .File.Package}}{{$namespacedPackage}}
{{`{{$currentFile := .File.Name | getProtoFile}}{{$currentFile}}`}}                             {{$currentFile := .File.Name | getProtoFile}}{{$currentFile}}
{{`{{- /*{{- $currentPackageName := $currentFile.GoPkg.Name}}{{$currentPackageName}}*/}}`}}     {{- /*{{- $currentPackageName := $currentFile.GoPkg.Name}}{{$currentPackageName}}*/}}
# TODO: more variables

# Sprig: strings
{{`{{trim "   hello    "}}`}}:                                                            {{trim "   hello    "}}
{{`{{trimAll "$" "$5.00"}}`}}:                                                            {{trimAll "$" "$5.00"}}
{{`{{trimSuffix "-" "hello-"}}`}}:                                                        {{trimSuffix "-" "hello-"}}
{{`{{upper "hello"}}`}}:                                                                  {{upper "hello"}}
{{`{{lower "HELLO"}}`}}:                                                                  {{lower "HELLO"}}
{{`{{title "hello world"}}`}}:                                                            {{title "hello world"}}
{{`{{untitle "Hello World"}}`}}:                                                          {{untitle "Hello World"}}
{{`{{repeat 3 "hello"}}`}}:                                                               {{repeat 3 "hello"}}
{{`{{substr 0 5 "hello world"}}`}}:                                                       {{substr 0 5 "hello world"}}
{{`{{nospace "hello w o r l d"}}`}}:                                                      {{nospace "hello w o r l d"}}
{{`{{trunc 5 "hello world"}}`}}:                                                          {{trunc 5 "hello world"}}
{{`{{abbrev 5 "hello world"}}`}}:                                                         {{abbrev 5 "hello world"}}
{{`{{abbrevboth 5 10 "1234 5678 9123"}}`}}:                                               {{abbrevboth 5 10 "1234 5678 9123"}}
{{`{{initials "First Try"}}`}}:                                                           {{initials "First Try"}}
{{`{{randNumeric 3}}`}}:                                                                  {{randNumeric 3}}
{{`{{- /*{{wrap 80 $someText}}*/}}`}}:                                                    {{- /*{{wrap 80 $someText}}*/}}
{{`{{wrapWith 5 "\t" "Hello World"}}`}}:                                                  {{wrapWith 5 "\t" "Hello World"}}
{{`{{contains "cat" "catch"}}`}}:                                                         {{contains "cat" "catch"}}
{{`{{hasPrefix "cat" "catch"}}`}}:                                                        {{hasPrefix "cat" "catch"}}
{{`{{cat "hello" "beautiful" "world"}}`}}:                                                {{cat "hello" "beautiful" "world"}}
{{`{{- /*{{indent 4 $lots_of_text}}*/}}`}}:                                               {{- /*{{indent 4 $lots_of_text}}*/}}
{{`{{- /*{{indent 4 $lots_of_text}}*/}}`}}:                                               {{- /*{{indent 4 $lots_of_text}}*/}}
{{`{{"I Am Henry VIII" | replace " " "-"}}`}}:                                            {{"I Am Henry VIII" | replace " " "-"}}
{{`{{len .Service.Method | plural "one anchovy" "many anchovies"}}`}}:                    {{len .Service.Method | plural "one anchovy" "many anchovies"}}
{{`{{snakecase "FirstName"}}`}}:                                                          {{snakecase "FirstName"}}
{{`{{camelcase "http_server"}}`}}:                                                        {{camelcase "http_server"}}
{{`{{shuffle "hello"}}`}}:                                                                {{shuffle "hello"}}
{{`{{regexMatch "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}" "test@acme.com"}}`}}:   {{regexMatch "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}" "test@acme.com"}}
{{`{{- /*{{regexFindAll "[2,4,6,8]" "123456789"}}*/}}`}}:                                 {{- /*{{regexFindAll "[2,4,6,8]" "123456789"}}*/}}
{{`{{regexFind "[a-zA-Z][1-9]" "abcd1234"}}`}}:                                           {{regexFind "[a-zA-Z][1-9]" "abcd1234"}}
{{`{{regexReplaceAll "a(x*)b" "-ab-axxb-" "${1}W"}}`}}:                                   {{regexReplaceAll "a(x*)b" "-ab-axxb-" "${1}W"}}
{{`{{regexReplaceAllLiteral "a(x*)b" "-ab-axxb-" "${1}"}}`}}:                             {{regexReplaceAllLiteral "a(x*)b" "-ab-axxb-" "${1}"}}
{{`{{regexSplit "z+" "pizza" -1}}`}}:                                                     {{regexSplit "z+" "pizza" -1}}

# Get one specific method on array method using index
{{`{{ index .Service.Method 1 }}`}}:                                                      {{ index .Service.Method 1 }}

# Sprig: advanced
{{`{{if contains "cat" "catch"}}yes{{else}}no{{end}}`}}:   {{if contains "cat" "catch"}}yes{{else}}no{{end}}
{{`{{1 | plural "one anchovy" "many anchovies"}}`}}:       {{1 | plural "one anchovy" "many anchovies"}}
{{`{{2 | plural "one anchovy" "many anchovies"}}`}}:       {{2 | plural "one anchovy" "many anchovies"}}
{{`{{3 | plural "one anchovy" "many anchovies"}}`}}:       {{3 | plural "one anchovy" "many anchovies"}}

# TODO: more sprig examples
# TODO: all built-in examples