Record mode for :repeat-command before executing
This commit is contained in:
parent
cafe7181c7
commit
13cbdbb8bd
@ -275,6 +275,10 @@ class CommandRunner(QObject):
|
|||||||
count: The count to pass to the command.
|
count: The count to pass to the command.
|
||||||
"""
|
"""
|
||||||
for result in self.parse_all(text):
|
for result in self.parse_all(text):
|
||||||
|
mode_manager = objreg.get('mode-manager', scope='window',
|
||||||
|
window=self._win_id)
|
||||||
|
cur_mode = mode_manager.mode
|
||||||
|
|
||||||
args = replace_variables(self._win_id, result.args)
|
args = replace_variables(self._win_id, result.args)
|
||||||
if count is not None:
|
if count is not None:
|
||||||
if result.count is not None:
|
if result.count is not None:
|
||||||
@ -286,11 +290,8 @@ class CommandRunner(QObject):
|
|||||||
else:
|
else:
|
||||||
result.cmd.run(self._win_id, args)
|
result.cmd.run(self._win_id, args)
|
||||||
|
|
||||||
mode_manager = objreg.get('mode-manager', scope='window',
|
if result.cmdline[0] != 'repeat-command':
|
||||||
window=self._win_id)
|
last_command[cur_mode] = (
|
||||||
if result.cmdline[0] not in ['leave-mode', 'command-accept',
|
|
||||||
'repeat-command']:
|
|
||||||
last_command[mode_manager.mode] = (
|
|
||||||
self._parse_count(text)[1],
|
self._parse_count(text)[1],
|
||||||
count if count is not None else result.count)
|
count if count is not None else result.count)
|
||||||
|
|
||||||
|
@ -490,3 +490,15 @@ Feature: Various utility commands.
|
|||||||
And I run :repeat-command with count 2
|
And I run :repeat-command with count 2
|
||||||
Then the page should not be scrolled
|
Then the page should not be scrolled
|
||||||
And the error "prompt-accept: This command is only allowed in prompt/yesno mode." should be shown
|
And the error "prompt-accept: This command is only allowed in prompt/yesno mode." should be shown
|
||||||
|
|
||||||
|
Scenario: :repeat-command with mode-switching command
|
||||||
|
Given I open data/hints/link_blank.html
|
||||||
|
And I run :tab-only
|
||||||
|
When I run :hint
|
||||||
|
And I run :leave-mode
|
||||||
|
And I run :repeat-command
|
||||||
|
And I run :follow-hint a
|
||||||
|
And I wait until data/hello.txt is loaded
|
||||||
|
Then the following tabs should be open:
|
||||||
|
- data/hints/link_blank.html
|
||||||
|
- data/hello.txt (active)
|
||||||
|
Loading…
Reference in New Issue
Block a user