Ejemplo n.º 1
0
def _TestGetCompletionType(buf):
  ev = test_lib.MakeTestEvaluator()
  arena = test_lib.MakeArena('<completion_test.py>')
  parse_ctx = parse_lib.ParseContext(arena, {})
  w_parser, c_parser = parse_ctx.MakeParserForCompletion(buf, arena)
  print('---', buf)
  return completion._GetCompletionType(w_parser, c_parser, ev, debug_f)
Ejemplo n.º 2
0
def InitEvaluator():
    word_ev = test_lib.MakeTestEvaluator()
    state.SetLocalString(word_ev.mem, 'x', '- -- ---')
    state.SetLocalString(word_ev.mem, 'y', 'y yy')
    state.SetLocalString(word_ev.mem, 'empty', '')
    state.SetLocalString(word_ev.mem, 'binding', 'spam=eggs')
    state.SetLocalString(word_ev.mem, 'binding_with_spaces',
                         'x=green eggs and ham')

    word_ev.mem.SetArgv(['x', 'foo', 'spam=eggs'])
    return word_ev
Ejemplo n.º 3
0
def _MakeRootCompleter(comp_state=None):
    comp_state = comp_state or completion.State()
    ev = test_lib.MakeTestEvaluator()

    pool = alloc.Pool()
    arena = pool.NewArena()
    arena.PushSource('<_MakeRootCompleter>')
    trail = parse_lib.Trail()
    parse_ctx = parse_lib.ParseContext(arena, {}, trail=trail)
    if 0:  # enable for details
        debug_f = util.DebugFile(sys.stdout)
    else:
        debug_f = util.NullDebugFile()
    progress_f = ui.TestStatusLine()
    return completion.RootCompleter(ev, comp_state, mem, parse_ctx, progress_f,
                                    debug_f)
Ejemplo n.º 4
0
  def testRootCompleter(self):
    comp_lookup = completion.CompletionLookup()

    comp_lookup.RegisterName('grep', C1)
    comp_lookup.RegisterName('__first', FIRST)

    ev = test_lib.MakeTestEvaluator()

    pool = alloc.Pool()
    arena = pool.NewArena()
    parse_ctx = parse_lib.ParseContext(arena, {})
    var_comp = V1
    r = completion.RootCompleter(ev, comp_lookup, var_comp, parse_ctx,
                                 progress_f, debug_f)

    comp = completion.CompletionApi(line='grep f')
    m = list(r.Matches(comp))
    self.assertEqual(['foo.py', 'foo'], m)

    comp = completion.CompletionApi(line='grep g')
    m = list(r.Matches(comp))
    self.assertEqual([], m)

    m = list(r.Matches(completion.CompletionApi(line='ls $v')))
    self.assertEqual(['$var1', '$var2'], m)

    m = list(r.Matches(completion.CompletionApi(line='g')))
    self.assertEqual(['grep'], m)

    # Empty completer
    m = list(r.Matches(completion.CompletionApi('')))
    self.assertEqual(['grep', 'sed', 'test'], m)

    # Test compound commands. These PARSE
    m = list(r.Matches(completion.CompletionApi('echo hi || grep f')))
    m = list(r.Matches(completion.CompletionApi('echo hi; grep f')))

    # Brace -- does NOT parse
    m = list(r.Matches(completion.CompletionApi('{ echo hi; grep f')))
    # TODO: Test if/for/while/case/etc.

    m = list(r.Matches(completion.CompletionApi('var=$v')))
    m = list(r.Matches(completion.CompletionApi('local var=$v')))
Ejemplo n.º 5
0
def _MakeRootCompleter(parse_ctx=None, comp_lookup=None):
    #comp_state = comp_state or completion.State()
    compopt_state = completion.OptionState()
    comp_ui_state = comp_ui.State()
    comp_lookup = comp_lookup or completion.Lookup()
    ev = test_lib.MakeTestEvaluator()

    if not parse_ctx:
        arena = alloc.Arena()
        arena.PushSource(source.MainFile('<_MakeRootCompleter>'))
        parse_opts = parse_lib.OilParseOptions()
        parse_ctx = parse_lib.ParseContext(arena, parse_opts, {}, None)
        parse_ctx.Init_Trail(parse_lib.Trail())
        parse_ctx.Init_OnePassParse(True)

    if 1:  # enable for details
        debug_f = util.DebugFile(sys.stdout)
    else:
        debug_f = util.NullDebugFile()
    return completion.RootCompleter(ev, mem, comp_lookup, compopt_state,
                                    comp_ui_state, parse_ctx, debug_f)
Ejemplo n.º 6
0
def _MakeRootCompleter(parse_ctx=None, comp_lookup=None):
    #comp_state = comp_state or completion.State()
    compopt_state = completion.OptionState()
    comp_ui_state = comp_ui.State()
    comp_lookup = comp_lookup or completion.Lookup()
    ev = test_lib.MakeTestEvaluator()

    if not parse_ctx:
        pool = alloc.Pool()
        arena = pool.NewArena()
        arena.PushSource('<_MakeRootCompleter>')
        trail = parse_lib.Trail()
        parse_ctx = parse_lib.ParseContext(arena, {},
                                           trail=trail,
                                           one_pass_parse=True)

    if 1:  # enable for details
        debug_f = util.DebugFile(sys.stdout)
    else:
        debug_f = util.NullDebugFile()
    return completion.RootCompleter(ev, mem, comp_lookup, compopt_state,
                                    comp_ui_state, parse_ctx, debug_f)
Ejemplo n.º 7
0
def InitEvaluator():
  word_ev = test_lib.MakeTestEvaluator()
  state.SetLocalString(word_ev.mem, 'x', '- -- ---')
  state.SetLocalString(word_ev.mem, 'y', 'y yy yyy')
  state.SetLocalString(word_ev.mem, 'empty', '')
  return word_ev