Ejemplo n.º 1
0
    def on_done(self, cmd_line):
        if ViColonInput.interactive_call:
            update_command_line_history('cmdline', cmd_line)

        try:
            # Use new parser for some commands.
            parsed_new = parse_command_line(cmd_line[1:])

            if not parsed_new.command:
                parsed_new.command = TokenCommandGoto()

            self.window.run_command(parsed_new.command.target_command, {'command_line': cmd_line[1:]})
            return
        except VimError as ve:
            # only new code emits VimErrors, so handle it.
            show_error(ve)
            return
        except Exception as e:
            message = str(e) +  ' ' + "(%s)" % cmd_line
            show_not_implemented(message)
            return
Ejemplo n.º 2
0
 def test_CanParseLongSequence(self):
     # Vim allows this.
     parsed = parse_command_line('1,2,3,4')
     self.assertEqual(parsed.line_range.start, [TokenDigits('3')])
     self.assertEqual(parsed.line_range.end, [TokenDigits('4')])
Ejemplo n.º 3
0
 def test_CanParseNumberRightHandSide(self):
     parsed = parse_command_line(',10')
     self.assertEqual(parsed.line_range.start, [])
     self.assertEqual(parsed.line_range.end, [TokenDigits('10')])
Ejemplo n.º 4
0
 def test_CanParseNumber(self):
     parsed = parse_command_line('10')
     self.assertEqual(parsed.line_range.start, [TokenDigits('10')])
Ejemplo n.º 5
0
 def test_CanParseSemicolonOffset(self):
     parsed = parse_command_line('+10;+10')
     self.assertEqual(parsed.line_range.start, [TokenOffset([10])])
     self.assertEqual(parsed.line_range.end, [TokenOffset([10])])
     self.assertEqual(parsed.line_range.separator, TokenSemicolon())
Ejemplo n.º 6
0
 def test_CanParseOffsetCommaOffset(self):
     parsed = parse_command_line('+10,+10')
     self.assertEqual(parsed.line_range.separator, TokenComma())
     self.assertEqual(parsed.line_range.start, [TokenOffset([10])])
     self.assertEqual(parsed.line_range.end, [TokenOffset([10])])
Ejemplo n.º 7
0
 def test_CanParseSemicolonOffset(self):
     parsed = parse_command_line(';+10')
     self.assertEqual(parsed.line_range.separator, TokenComma())
     self.assertEqual(parsed.line_range.start, [])
     self.assertEqual(parsed.line_range.end, [])
     self.assertEqual(parsed.line_range.end_offset, [10])
Ejemplo n.º 8
0
 def test_CanParseSearchBacwardWithOffset(self):
     parsed = parse_command_line('?foo?+10')
     self.assertEqual(parsed.line_range.start,
                      [TokenSearchBackward('foo'),
                       TokenOffset([10])])
     self.assertEqual(parsed.line_range.end, [])
Ejemplo n.º 9
0
 def test_CanParseSmicolonDot(self):
     parsed = parse_command_line(';.')
     self.assertEqual(parsed.line_range.start, [])
     self.assertEqual(parsed.line_range.end, [TokenDot()])
     self.assertEqual(parsed.line_range.separator, TokenSemicolon())
Ejemplo n.º 10
0
 def test_CanParseLoneSmicolon(self):
     parsed = parse_command_line(';')
     self.assertEqual(parsed.line_range.separator, TokenSemicolon())
Ejemplo n.º 11
0
 def test_CanParseCommaDot(self):
     parsed = parse_command_line(',.')
     self.assertEqual(parsed.line_range.separator, TokenComma())
     self.assertEqual(parsed.line_range.start, [])
     self.assertEqual(parsed.line_range.end, [TokenDot()])
Ejemplo n.º 12
0
 def test_CanParseLoneComma(self):
     parsed = parse_command_line(',')
     self.assertEqual(parsed.line_range.separator, TokenComma())
Ejemplo n.º 13
0
 def test_CanParseDollarWithCompany(self):
     parsed = parse_command_line('0,$')
     self.assertEqual(parsed.line_range.start, [TokenDigits('0')])
     self.assertEqual(parsed.line_range.end, [TokenDollar()])
Ejemplo n.º 14
0
 def test_CanParseDollarOnItsOwn(self):
     parsed = parse_command_line('$')
     self.assertEqual(parsed.line_range.start, [TokenDollar()])
Ejemplo n.º 15
0
 def test_CanParseItOnItsOwn(self):
     parsed = parse_command_line('substitute')
     self.assertEqual(parsed.command.content, 'substitute')
Ejemplo n.º 16
0
 def test_CanParseAlias(self):
     parsed = parse_command_line('s')
     self.assertEqual(parsed.command.content, 'substitute')
Ejemplo n.º 17
0
 def test_CanParseEmpty(self):
     parsed = parse_command_line('')
     self.assertEqual(parsed.line_range, None)
     self.assertEqual(parsed.command, None)