{"record":{"id":"e28731a5c09e9c50","repo":"junegunn/fzf","slug":"invalid-border-style-expected-rounded-sharp-bold","errorCode":null,"errorMessage":"invalid border style (expected: rounded|sharp|bold|block|thinblock|double|dashed|horizontal|vertical|top|bottom|left|right|line|inline|none)","messagePattern":"invalid border style \\(expected: rounded\\|sharp\\|bold\\|block\\|thinblock\\|double\\|dashed\\|horizontal\\|vertical\\|top\\|bottom\\|left\\|right\\|line\\|inline\\|none\\)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/options.go","lineNumber":1001,"sourceCode":"\tcase \"horizontal\":\n\t\treturn tui.BorderHorizontal, nil\n\tcase \"vertical\":\n\t\treturn tui.BorderVertical, nil\n\tcase \"top\":\n\t\treturn tui.BorderTop, nil\n\tcase \"bottom\":\n\t\treturn tui.BorderBottom, nil\n\tcase \"left\":\n\t\treturn tui.BorderLeft, nil\n\tcase \"right\":\n\t\treturn tui.BorderRight, nil\n\tcase \"none\":\n\t\treturn tui.BorderNone, nil\n\t}\n\tif optional && str == \"\" {\n\t\treturn defaultBorderShape, nil\n\t}\n\treturn tui.BorderNone, errors.New(\"invalid border style (expected: rounded|sharp|bold|block|thinblock|double|dashed|horizontal|vertical|top|bottom|left|right|line|inline|none)\")\n}\n\nfunc parseKeyChords(str string, message string) (map[tui.Event]string, []tui.Event, error) {\n\tif len(str) == 0 {\n\t\treturn nil, nil, errors.New(message)\n\t}\n\n\tlist := []tui.Event{}\n\tstr = regexp.MustCompile(\"(?i)(alt-),\").ReplaceAllString(str, \"$1\"+string([]rune{escapedComma}))\n\ttokens := strings.Split(str, \",\")\n\tif str == \",\" || strings.HasPrefix(str, \",,\") || strings.HasSuffix(str, \",,\") || strings.Contains(str, \",,,\") {\n\t\ttokens = append(tokens, \",\")\n\t}\n\n\tchords := make(map[tui.Event]string)\n\tfor _, key := range tokens {\n\t\tif len(key) == 0 {\n\t\t\tcontinue // ignore","sourceCodeStart":983,"sourceCodeEnd":1019,"githubUrl":"https://github.com/junegunn/fzf/blob/bd4efa277b49ef34ca4025bff9b1a288e1980eff/src/options.go#L983-L1019","documentation":"parseBorder validates --border / --border-label-*= values against the full tui.BorderShape set (rounded, sharp, bold, block, thinblock, double, dashed, horizontal, vertical, top, bottom, left, right, line, inline, none). An unknown word — or a valid word with different casing/whitespace — yields this error listing all accepted values. An empty string is only tolerated when optional=true (option omitted).","triggerScenarios":"fzf --border curved (old/invalid name), --border=ROUND (case-sensitive match), --border ' rounded' (leading space), or --border=double on an fzf build where the richer shapes were not yet supported.","commonSituations":"Dotfiles written for fzf <0.36 that used 'border-sharp'/'border-rounded' style flags then migrated; typos; borders copied from other TUI tools' vocabularies.","solutions":["Pick one of the enumerated values exactly as listed, lowercase: --border rounded","Use --border (no value) for the default rounded border","Run fzf --help | grep -A2 border to see values your version supports","Upgrade fzf (>=0.48) if you need block/thinblock/dashed/double"],"exampleFix":"# before\nfzf --border=curved\n# after\nfzf --border=rounded","handlingStrategy":"validation","validationCode":"BORDER='rounded'\ncase \"$BORDER\" in rounded|sharp|bold|block|thinblock|double|dashed|horizontal|vertical|top|bottom|left|right|line|inline|none) ;; *) echo \"invalid border: $BORDER\" >&2; exit 1;; esac\nfzf --border=\"$BORDER\"","typeGuard":"isValidFzfBorder() { case \"$1\" in rounded|sharp|bold|block|thinblock|double|dashed|horizontal|vertical|top|bottom|left|right|line|inline|none) return 0;; *) return 1;; esac; }","tryCatchPattern":null,"preventionTips":["Copy border names verbatim from fzf --help of the version you run","Use lowercase values — matching is case-sensitive","Verify new shapes (block, thinblock, double, dashed) exist before using them (fzf >= 0.54)"],"tags":["fzf","options-parsing","tui","border","go"],"backgroundTag":null,"analyzedSha":"bd4efa277b49ef34ca4025bff9b1a288e1980eff","analyzedAt":"2026-08-15T06:11:46.983Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}