diff --git a/mercurial/configitems.py b/mercurial/configitems.py index 090e5f3900b7f3181cb5ec88e860f4df770a7df0_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5..682f73fa924a569baacf9ce487c9c37d645cf652_bWVyY3VyaWFsL2NvbmZpZ2l0ZW1zLnB5 100644 --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -616,9 +616,6 @@ coreconfigitem('experimental', 'sshserver.support-v2', default=False, ) -coreconfigitem('experimental', 'spacemovesdown', - default=False, -) coreconfigitem('experimental', 'sparse-read', default=False, ) diff --git a/mercurial/crecord.py b/mercurial/crecord.py index 090e5f3900b7f3181cb5ec88e860f4df770a7df0_bWVyY3VyaWFsL2NyZWNvcmQucHk=..682f73fa924a569baacf9ce487c9c37d645cf652_bWVyY3VyaWFsL2NyZWNvcmQucHk= 100644 --- a/mercurial/crecord.py +++ b/mercurial/crecord.py @@ -713,6 +713,24 @@ self.currentselecteditem = nextitem self.recenterdisplayedarea() + def nextsametype(self): + currentitem = self.currentselecteditem + sametype = lambda item: isinstance(item, type(currentitem)) + nextitem = currentitem.nextitem() + + while nextitem is not None and not sametype(nextitem): + nextitem = nextitem.nextitem() + + if nextitem is None: + nextitem = currentitem + else: + parent = nextitem.parentitem() + if parent.folded: + self.togglefolded(parent) + + self.currentselecteditem = nextitem + self.recenterdisplayedarea() + def rightarrowevent(self): """ select (if possible) the first of this item's child-items. @@ -1027,8 +1045,8 @@ def _getstatuslinesegments(self): """-> [str]. return segments""" selected = self.currentselecteditem.applied - spaceselect = _('space: select') - spacedeselect = _('space: deselect') + spaceselect = _('space/enter: select') + spacedeselect = _('space/enter: deselect') # Format the selected label into a place as long as the longer of the # two possible labels. This may vary by language. spacelen = max(len(spaceselect), len(spacedeselect)) @@ -1433,6 +1451,7 @@ the following are valid keystrokes: [space] : (un-)select item ([~]/[x] = partly/fully applied) + [enter] : (un-)select item and go to next item of same type A : (un-)select all items up/down-arrow [k/j] : go to previous/next unfolded item pgup/pgdn [K/J] : go to previous/next item of same type @@ -1686,8 +1705,9 @@ return True elif keypressed in [' '] or (test and keypressed in ["TOGGLE"]): self.toggleapply() - if self.ui.configbool('experimental', 'spacemovesdown'): - self.downarrowevent() + elif keypressed in ['\n', 'KEY_ENTER']: + self.toggleapply() + self.nextsametype() elif keypressed in ['A']: self.toggleall() elif keypressed in ['e']: diff --git a/tests/test-commit-interactive-curses.t b/tests/test-commit-interactive-curses.t index 090e5f3900b7f3181cb5ec88e860f4df770a7df0_dGVzdHMvdGVzdC1jb21taXQtaW50ZXJhY3RpdmUtY3Vyc2VzLnQ=..682f73fa924a569baacf9ce487c9c37d645cf652_dGVzdHMvdGVzdC1jb21taXQtaW50ZXJhY3RpdmUtY3Vyc2VzLnQ= 100644 --- a/tests/test-commit-interactive-curses.t +++ b/tests/test-commit-interactive-curses.t @@ -327,24 +327,6 @@ hello world lower -Check spacemovesdown - - $ cat <<EOF >> $HGRCPATH - > [experimental] - > spacemovesdown = true - > EOF - $ cat <<EOF >testModeCommands - > TOGGLE - > TOGGLE - > X - > EOF - $ hg status -q - M b - M x - $ hg commit -i -m "nothing to commit?" -d "0 0" - no changes to record - [1] - Check ui.interface logic for the chunkselector The default interface is text