Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(_comp_compgen_filedir,_comp_compgen_filedir_xspec): don’t suggest . and .. #1230

Merged
merged 2 commits into from
Nov 13, 2024

Commits on Aug 11, 2024

  1. feat(_comp_compgen_filedir{,_xspec}): do not generate "." and ".."

    Currently, "." and ".." are generated as completions when the current
    path segment starts with a dot.  However, this impedes the completion
    of any dotfiles when the current path segments is "." because the word
    "." already matches the generated ".".  When the user attempts the
    completion after inputting ".", the user is likely to intend to
    complete a dotfile name as ".dotfile" (rather than to complete just a
    slash as "./" because the user could just press "/" in such a case).
    In this patch, we do not generate "." and ".." unless the user has
    explicitly input "..".
    
    The behavioral changes are summarized below.  Other possibilities of
    the detailed behaviors are commented in the "[ Note: ... ]" sections.
    If necessary, they can be reconsidered and adjusted in later commits.
    
    * cmd .[TAB]
    
      When the current directory has no dotfiles (i.e., filenames starting
      with "."), it completed a slash.  Nothing will happen after this
      patch. [ Note: as another option, we might generate "." only when no
      dotfiles are found.  However, that might be annoying when the user
      tries to probe the existence of the dotfiles by pressing TAB, where
      the user does not expect the insertion of a slash. ]
    
      When the current directory has dotfiles, nothing happened.  After
      this patch, this will insert the common prefix of the dotfiles.
      Note that both "." and ".." are ignored in determining the common
      prefix.
    
    * cmd ..[TAB]
    
      When the current directory has no files starting with "..", this
      completes a slash to form "../".  The behavior will not be changed
      by this patch. [ Note: as another option, we might disable ".." at
      all to be consistent with the case of ".".  However, the files
      starting with ".." are unlikely, and the user is less likely to
      probe the existence of the files starting with ".." by pressing TAB
      after "..".  For this reason, we generate ".." even if it would
      prevent completion of the common prefix of the files. ]
    
      When the current directory has files starting with "..", nothing
      happens with this.  The behavior will not be changed by this
      patch. [ Note: as another option, we might generate ".." only when
      there are no files starting with "..", but we here assume that the
      user may want to complete a slash as ".." even when there are files
      starting with "..". ]
    
    References:
    scop#364
    scop#1230
    
    Co-authored-by: Koichi Murase <myoga.murase@gmail.com>
    Maelan and akinomyoga committed Aug 11, 2024
    Configuration menu
    Copy the full SHA
    eaa9bca View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2024

  1. test(_filedir): Test files that start with ".."

    These types of files are used by the go kubernetes atomic writer [0],
    and presumably other types of systems, and we want to make sure they
    will be completed correctly.
    
    [0] https://pkg.go.dev/k8s.io/kubernetes/pkg/volume/util#AtomicWriter.Write
    yedayak committed Nov 2, 2024
    Configuration menu
    Copy the full SHA
    0f03abd View commit details
    Browse the repository at this point in the history