summaryrefslogtreecommitdiff
path: root/src/options.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/options.go')
-rw-r--r--src/options.go25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/options.go b/src/options.go
index 76081ca6..dc6ac050 100644
--- a/src/options.go
+++ b/src/options.go
@@ -590,6 +590,7 @@ type Options struct {
Separator *string
JumpLabels string
Prompt string
+ Gutter *string
Pointer *string
Marker *string
MarkerMulti *[3]string
@@ -710,6 +711,7 @@ func defaultOptions() *Options {
Separator: nil,
JumpLabels: defaultJumpLabels,
Prompt: "> ",
+ Gutter: nil,
Pointer: nil,
Marker: nil,
MarkerMulti: nil,
@@ -2857,6 +2859,13 @@ func parseOptions(index *int, opts *Options, allArgs []string) error {
if err != nil {
return err
}
+ case "--gutter":
+ str, err := nextString("gutter character required")
+ if err != nil {
+ return err
+ }
+ str = firstLine(str)
+ opts.Gutter = &str
case "--pointer":
str, err := nextString("pointer sign required")
if err != nil {
@@ -3355,22 +3364,28 @@ func applyPreset(opts *Options, preset string) error {
return nil
}
-func validateSign(sign string, signOptName string) error {
- if uniseg.StringWidth(sign) > 2 {
- return fmt.Errorf("%v display width should be up to 2", signOptName)
+func validateSign(sign string, signOptName string, maxWidth int) error {
+ if uniseg.StringWidth(sign) > maxWidth {
+ return fmt.Errorf("%v display width should be up to %d", signOptName, maxWidth)
}
return nil
}
func validateOptions(opts *Options) error {
if opts.Pointer != nil {
- if err := validateSign(*opts.Pointer, "pointer"); err != nil {
+ if err := validateSign(*opts.Pointer, "pointer", 2); err != nil {
return err
}
}
if opts.Marker != nil {
- if err := validateSign(*opts.Marker, "marker"); err != nil {
+ if err := validateSign(*opts.Marker, "marker", 2); err != nil {
+ return err
+ }
+ }
+
+ if opts.Gutter != nil {
+ if err := validateSign(*opts.Gutter, "gutter", 1); err != nil {
return err
}
}