Exemple #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
 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')])
 def test_CanParseNumberRightHandSide(self):
     parsed = parse_command_line(',10')
     self.assertEqual(parsed.line_range.start, [])
     self.assertEqual(parsed.line_range.end, [TokenDigits('10')])
 def test_CanParseNumber(self):
     parsed = parse_command_line('10')
     self.assertEqual(parsed.line_range.start, [TokenDigits('10')])
 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())
 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])])
 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])
 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, [])
 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())
Exemple #10
0
 def test_CanParseLoneSmicolon(self):
     parsed = parse_command_line(';')
     self.assertEqual(parsed.line_range.separator, TokenSemicolon())
Exemple #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()])
Exemple #12
0
 def test_CanParseLoneComma(self):
     parsed = parse_command_line(',')
     self.assertEqual(parsed.line_range.separator, TokenComma())
Exemple #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()])
Exemple #14
0
 def test_CanParseDollarOnItsOwn(self):
     parsed = parse_command_line('$')
     self.assertEqual(parsed.line_range.start, [TokenDollar()])
Exemple #15
0
 def test_CanParseItOnItsOwn(self):
     parsed = parse_command_line('substitute')
     self.assertEqual(parsed.command.content, 'substitute')
Exemple #16
0
 def test_CanParseAlias(self):
     parsed = parse_command_line('s')
     self.assertEqual(parsed.command.content, 'substitute')
Exemple #17
0
 def test_CanParseEmpty(self):
     parsed = parse_command_line('')
     self.assertEqual(parsed.line_range, None)
     self.assertEqual(parsed.command, None)