On Tuesday, September 20, 2016, Pierre-Yves David < pierre-yves.da...@ens-lyon.org> wrote:
> > > On 09/20/2016 12:23 AM, Nathan Goldbaum wrote: > >> # HG changeset patch >> # User Nathan Goldbaum <ngold...@illinois.edu> >> # Date 1474321033 18000 >> # Mon Sep 19 16:37:13 2016 -0500 >> # Node ID 94afc22065e475ab1a61f68012be44f6dbbd0d64 >> # Parent 285a8c3e53f2183438f0cdbc238e4ab851d0d110 >> crecord: add an event that scrolls the selected line to the top of the >> screen >> >> Using ctrl-l for this purpose seems to be a fairly widely used practice, >> presumably following emacs. This doesn't scroll the selected line all >> the way to the top of the window, instead it leaves a 3 line buffer for >> context. Use curses.unctrl() to resolve keypressed to '^L' to avoid >> hard-coding hexadecimal key codes. >> >> diff -r 285a8c3e53f2 -r 94afc22065e4 mercurial/crecord.py >> --- a/mercurial/crecord.py Tue May 03 13:36:12 2016 +0900 >> +++ b/mercurial/crecord.py Mon Sep 19 16:37:13 2016 -0500 >> @@ -715,6 +715,10 @@ class curseschunkselector(object): >> >> self.currentselecteditem = currentitem >> >> + def topscroll(self): >> + "scroll so the currently selected line is at the top of the >> screen" >> + self.scrolllines(self.selecteditemstartline) >> + >> def updatescroll(self): >> "scroll the screen to fully show the currently-selected" >> selstart = self.selecteditemstartline >> @@ -1338,6 +1342,7 @@ the following are valid keystrokes: >> shift-left-arrow [H] : go to parent header / fold selected header >> f : fold / unfold item, hiding/revealing its >> children >> F : fold / unfold parent item and all of its >> ancestors >> + ctrl-l : scroll the selected line to the top of the >> screen >> m : edit / resume editing the commit message >> e : edit the currently selected hunk >> a : toggle amend mode, only with commit -i >> @@ -1582,6 +1587,8 @@ are you sure you want to review/edit and >> self.helpwindow() >> self.stdscr.clear() >> self.stdscr.refresh() >> + elif curses.unctrl(keypressed) in ["^L"]: >> + self.topscroll() >> > > any reason why we use 'in' instead of "==" here? Following the other branches of the if/elif block in this function. > > Also, I'm not sure if the 'topscroll' method is that useful as it a > one-liner. Should just call that code in the if clause? Sure, I can send a v5 > > Cheers, > > -- > Pierre-Yves David >
_______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel