class Toys::Completion::FileSystem

def call(context)

Returns:
  • (Array) - an array of candidates

Parameters:
  • context (Toys::Completion::Context) -- the current completion
def call(context)
  return [] unless @prefix_constraint === context.fragment_prefix
  substring = context.fragment
  prefix, name =
    if substring.empty? || substring.end_with?("/")
      [substring, ""]
    else
      ::File.split(substring)
    end
  dir = ::File.expand_path(prefix, @cwd)
  return [] unless ::File.directory?(dir)
  prefix = nil if [".", ""].include?(prefix)
  omits = [".", "..", ""]
  children = Compat.glob_in_dir(name, dir).find_all do |child|
    !omits.include?(child)
  end
  children += ::Dir.entries(dir).find_all do |child|
    child.start_with?(name) && !omits.include?(child)
  end
  generate_candidates(children.uniq.sort, prefix, dir)
end