Mercurial > hg
comparison hgext/histedit.py @ 48204:33ece8857efa
chistedit: move renderpatch() and dependencies onto state class
Differential Revision: https://phab.mercurial-scm.org/D11640
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 11 Oct 2021 23:07:54 -0700 |
parents | 8dd2422b0109 |
children | 3fdeb657602f |
comparison
equal
deleted
inserted
replaced
48203:8dd2422b0109 | 48204:33ece8857efa |
---|---|
1562 curses.color_pair(rollcolor), | 1562 curses.color_pair(rollcolor), |
1563 ) | 1563 ) |
1564 | 1564 |
1565 rulesscr.noutrefresh() | 1565 rulesscr.noutrefresh() |
1566 | 1566 |
1567 | 1567 def render_string(self, win, output, diffcolors=False): |
1568 def _chisteditmain(repo, rules, stdscr): | |
1569 try: | |
1570 curses.use_default_colors() | |
1571 except curses.error: | |
1572 pass | |
1573 | |
1574 # initialize color pattern | |
1575 curses.init_pair(COLOR_HELP, curses.COLOR_WHITE, curses.COLOR_BLUE) | |
1576 curses.init_pair(COLOR_SELECTED, curses.COLOR_BLACK, curses.COLOR_WHITE) | |
1577 curses.init_pair(COLOR_WARN, curses.COLOR_BLACK, curses.COLOR_YELLOW) | |
1578 curses.init_pair(COLOR_OK, curses.COLOR_BLACK, curses.COLOR_GREEN) | |
1579 curses.init_pair(COLOR_CURRENT, curses.COLOR_WHITE, curses.COLOR_MAGENTA) | |
1580 curses.init_pair(COLOR_DIFF_ADD_LINE, curses.COLOR_GREEN, -1) | |
1581 curses.init_pair(COLOR_DIFF_DEL_LINE, curses.COLOR_RED, -1) | |
1582 curses.init_pair(COLOR_DIFF_OFFSET, curses.COLOR_MAGENTA, -1) | |
1583 curses.init_pair(COLOR_ROLL, curses.COLOR_RED, -1) | |
1584 curses.init_pair( | |
1585 COLOR_ROLL_CURRENT, curses.COLOR_BLACK, curses.COLOR_MAGENTA | |
1586 ) | |
1587 curses.init_pair(COLOR_ROLL_SELECTED, curses.COLOR_RED, curses.COLOR_WHITE) | |
1588 | |
1589 # don't display the cursor | |
1590 try: | |
1591 curses.curs_set(0) | |
1592 except curses.error: | |
1593 pass | |
1594 | |
1595 def renderstring(win, state, output, diffcolors=False): | |
1596 maxy, maxx = win.getmaxyx() | 1568 maxy, maxx = win.getmaxyx() |
1597 length = min(maxy - 1, len(output)) | 1569 length = min(maxy - 1, len(output)) |
1598 for y in range(0, length): | 1570 for y in range(0, length): |
1599 line = output[y] | 1571 line = output[y] |
1600 if diffcolors: | 1572 if diffcolors: |
1612 win.addstr(y, 0, line) | 1584 win.addstr(y, 0, line) |
1613 else: | 1585 else: |
1614 win.addstr(y, 0, line) | 1586 win.addstr(y, 0, line) |
1615 win.noutrefresh() | 1587 win.noutrefresh() |
1616 | 1588 |
1617 def renderpatch(win, state): | 1589 def render_patch(self, win): |
1618 start = state.modes[MODE_PATCH][b'line_offset'] | 1590 start = self.modes[MODE_PATCH][b'line_offset'] |
1619 content = state.modes[MODE_PATCH][b'patchcontents'] | 1591 content = self.modes[MODE_PATCH][b'patchcontents'] |
1620 renderstring(win, state, content[start:], diffcolors=True) | 1592 self.render_string(win, content[start:], diffcolors=True) |
1593 | |
1594 | |
1595 def _chisteditmain(repo, rules, stdscr): | |
1596 try: | |
1597 curses.use_default_colors() | |
1598 except curses.error: | |
1599 pass | |
1600 | |
1601 # initialize color pattern | |
1602 curses.init_pair(COLOR_HELP, curses.COLOR_WHITE, curses.COLOR_BLUE) | |
1603 curses.init_pair(COLOR_SELECTED, curses.COLOR_BLACK, curses.COLOR_WHITE) | |
1604 curses.init_pair(COLOR_WARN, curses.COLOR_BLACK, curses.COLOR_YELLOW) | |
1605 curses.init_pair(COLOR_OK, curses.COLOR_BLACK, curses.COLOR_GREEN) | |
1606 curses.init_pair(COLOR_CURRENT, curses.COLOR_WHITE, curses.COLOR_MAGENTA) | |
1607 curses.init_pair(COLOR_DIFF_ADD_LINE, curses.COLOR_GREEN, -1) | |
1608 curses.init_pair(COLOR_DIFF_DEL_LINE, curses.COLOR_RED, -1) | |
1609 curses.init_pair(COLOR_DIFF_OFFSET, curses.COLOR_MAGENTA, -1) | |
1610 curses.init_pair(COLOR_ROLL, curses.COLOR_RED, -1) | |
1611 curses.init_pair( | |
1612 COLOR_ROLL_CURRENT, curses.COLOR_BLACK, curses.COLOR_MAGENTA | |
1613 ) | |
1614 curses.init_pair(COLOR_ROLL_SELECTED, curses.COLOR_RED, curses.COLOR_WHITE) | |
1615 | |
1616 # don't display the cursor | |
1617 try: | |
1618 curses.curs_set(0) | |
1619 except curses.error: | |
1620 pass | |
1621 | 1621 |
1622 def drawvertwin(size, y, x): | 1622 def drawvertwin(size, y, x): |
1623 win = curses.newwin(size[0], size[1], y, x) | 1623 win = curses.newwin(size[0], size[1], y, x) |
1624 y += size[0] | 1624 y += size[0] |
1625 return win, y, x | 1625 return win, y, x |
1673 # start rendering | 1673 # start rendering |
1674 commitwin.erase() | 1674 commitwin.erase() |
1675 helpwin.erase() | 1675 helpwin.erase() |
1676 mainwin.erase() | 1676 mainwin.erase() |
1677 if curmode == MODE_PATCH: | 1677 if curmode == MODE_PATCH: |
1678 renderpatch(mainwin, state) | 1678 state.render_patch(mainwin) |
1679 elif curmode == MODE_HELP: | 1679 elif curmode == MODE_HELP: |
1680 renderstring(mainwin, state, __doc__.strip().splitlines()) | 1680 state.render_string(mainwin, __doc__.strip().splitlines()) |
1681 else: | 1681 else: |
1682 state.render_rules(mainwin) | 1682 state.render_rules(mainwin) |
1683 state.render_commit(commitwin) | 1683 state.render_commit(commitwin) |
1684 state.render_help(helpwin) | 1684 state.render_help(helpwin) |
1685 curses.doupdate() | 1685 curses.doupdate() |