From e215e2daf3ae0f68e45482958c7d348652b86688 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Tue, 13 Aug 2024 18:51:02 +0900 Subject: Allow comments in $FZF_DEFAULT_OPTS and $FZF_DEFAULT_OPTS_FILE Close #3961 --- src/options.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/options.go b/src/options.go index 1593d6f8..0f903df6 100644 --- a/src/options.go +++ b/src/options.go @@ -12,7 +12,7 @@ import ( "github.com/junegunn/fzf/src/algo" "github.com/junegunn/fzf/src/tui" - "github.com/mattn/go-shellwords" + "github.com/junegunn/go-shellwords" "github.com/rivo/uniseg" ) @@ -2915,6 +2915,12 @@ func postProcessOptions(opts *Options) error { return processScheme(opts) } +func parseShellWords(str string) ([]string, error) { + parser := shellwords.NewParser() + parser.ParseComment = true + return parser.Parse(str) +} + // ParseOptions parses command-line options func ParseOptions(useDefaults bool, args []string) (*Options, error) { opts := defaultOptions() @@ -2928,7 +2934,7 @@ func ParseOptions(useDefaults bool, args []string) (*Options, error) { return nil, errors.New("$FZF_DEFAULT_OPTS_FILE: " + err.Error()) } - words, parseErr := shellwords.Parse(string(bytes)) + words, parseErr := parseShellWords(string(bytes)) if parseErr != nil { return nil, errors.New(path + ": " + parseErr.Error()) } @@ -2940,7 +2946,7 @@ func ParseOptions(useDefaults bool, args []string) (*Options, error) { } // 2. Options from $FZF_DEFAULT_OPTS string - words, parseErr := shellwords.Parse(os.Getenv("FZF_DEFAULT_OPTS")) + words, parseErr := parseShellWords(os.Getenv("FZF_DEFAULT_OPTS")) if parseErr != nil { return nil, errors.New("$FZF_DEFAULT_OPTS: " + parseErr.Error()) } -- cgit v1.2.3