(flag, raw string)
| 310 | } |
| 311 | |
| 312 | func parseDocsTableCellBorder(flag, raw string) (*docs.TableCellBorder, error) { |
| 313 | parts := strings.Split(raw, ",") |
| 314 | if len(parts) > 3 || strings.TrimSpace(parts[0]) == "" { |
| 315 | return nil, usagef("invalid --%s %q (expected WIDTH[,COLOR[,SOLID|DOT|DASH]])", flag, raw) |
| 316 | } |
| 317 | width, _, err := parseDocsDimension(flag, strings.TrimSpace(parts[0]), true) |
| 318 | if err != nil { |
| 319 | return nil, err |
| 320 | } |
| 321 | colorRaw := "#000000" |
| 322 | if len(parts) >= 2 && strings.TrimSpace(parts[1]) != "" { |
| 323 | colorRaw = strings.TrimSpace(parts[1]) |
| 324 | } |
| 325 | color, err := docsFormatColor(colorRaw, "--"+flag) |
| 326 | if err != nil { |
| 327 | return nil, err |
| 328 | } |
| 329 | dash := docsTableBorderDashSolid |
| 330 | if len(parts) == 3 && strings.TrimSpace(parts[2]) != "" { |
| 331 | dash = strings.ToUpper(strings.TrimSpace(parts[2])) |
| 332 | } |
| 333 | switch dash { |
| 334 | case docsTableBorderDashSolid, docsTableBorderDashDot, docsTableBorderDashDash: |
| 335 | default: |
| 336 | return nil, usagef("invalid --%s dash style %q (expected SOLID, DOT, or DASH)", flag, strings.TrimSpace(parts[2])) |
| 337 | } |
| 338 | return &docs.TableCellBorder{Width: width, Color: color, DashStyle: dash}, nil |
| 339 | } |
| 340 | |
| 341 | func (c *DocsCellStyleCmd) buildTextStyleRequest(cell *docs.TableCell, tabID string) (*docs.Request, bool, error) { |
| 342 | style := &docs.TextStyle{} |
no test coverage detected