##// END OF EJS Templates
wrapfunction: use sysstr instead of bytes as argument in "bookflow"...
wrapfunction: use sysstr instead of bytes as argument in "bookflow" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.

File last commit:

r49730:6000f5b2 default
r51668:3c8a31be default
Show More
pager.py
82 lines | 2.5 KiB | text/x-python | PythonLexer
David Soria Parra
Use the pager given by the environment to display long output...
r6323 # pager.py - display output using a pager
#
# Copyright 2008 David Soria Parra <dsp@php.net>
#
Martin Geisler
updated license to be explicit about GPL version 2
r8225 # This software may be used and distributed according to the terms of the
Matt Mackall
Update license to GPLv2+
r10263 # GNU General Public License version 2 or any later version.
David Soria Parra
Use the pager given by the environment to display long output...
r6323 #
Brodie Rao
help: refer to user configuration file more consistently...
r12083 # To load the extension, add it to your configuration file:
David Soria Parra
Use the pager given by the environment to display long output...
r6323 #
# [extension]
Martin Geisler
hgext: enable extensions without "hgext." prefix in help texts
r10112 # pager =
David Soria Parra
Use the pager given by the environment to display long output...
r6323 #
timeless
pager: use single quotes in use warning
r29967 # Run 'hg help pager' to get info on configuration.
Christian Ebert
pager: make config info accessible with "hg help pager"
r6462
Augie Fackler
pager: move most help to a new help topic and deprecate extension
r31061 '''browse command output with an external pager (DEPRECATED)
Christian Ebert
pager: make config info accessible with "hg help pager"
r6462
Augie Fackler
pager: move most help to a new help topic and deprecate extension
r31061 Forcibly enable paging for individual commands that don't typically
request pagination with the attend-<command> option. This setting
takes precedence over ignore options and defaults::
Matt Mackall
pager: add attend-<command> option...
r21281
[pager]
attend-cat = false
Christian Ebert
pager: make config info accessible with "hg help pager"
r6462 '''
David Soria Parra
Use the pager given by the environment to display long output...
r6323
Augie Fackler
pager: use absolute_import
r28320 from mercurial import (
cmdutil,
commands,
dispatch,
extensions,
Boris Feld
configitems: register the 'pager.attend' config
r34496 registrar,
Augie Fackler
formatting: blacken the codebase...
r43346 )
David Soria Parra
Use the pager given by the environment to display long output...
r6323
Augie Fackler
extensions: change magic "shipped with hg" string...
r29841 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
Augie Fackler
extensions: document that `testedwith = 'internal'` is special...
r25186 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
# be specifying the version(s) of Mercurial they are tested with, or
# leave the attribute unspecified.
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 testedwith = b'ships-with-hg-core'
Augie Fackler
hgext: mark all first-party extensions as such
r16743
Boris Feld
configitems: register the 'pager.attend' config
r34496 configtable = {}
configitem = registrar.configitem(configtable)
Augie Fackler
formatting: blacken the codebase...
r43346 configitem(
Augie Fackler
formating: upgrade to black 20.8b1...
r46554 b'pager',
b'attend',
default=lambda: attended,
Boris Feld
configitems: register the 'pager.attend' config
r34496 )
Augie Fackler
formatting: blacken the codebase...
r43346
David Soria Parra
Use the pager given by the environment to display long output...
r6323 def uisetup(ui):
Matt Mackall
extensions: use new wrapper functions
r7216 def pagecmd(orig, ui, options, cmd, cmdfunc):
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 auto = options[b'pager'] == b'auto'
Augie Fackler
pager: move more behavior into core...
r30993 if auto and not ui.pageractive:
Matt Mackall
pager: break auto out of command check loop
r21279 usepager = False
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 attend = ui.configlist(b'pager', b'attend')
ignore = ui.configlist(b'pager', b'ignore')
David Soria Parra
pager: honour internal aliases...
r19940 cmds, _ = cmdutil.findcmd(cmd, commands.table)
for cmd in cmds:
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 var = b'attend-%s' % cmd
if ui.config(b'pager', var, None):
usepager = ui.configbool(b'pager', var, True)
Matt Mackall
pager: add attend-<command> option...
r21281 break
Augie Fackler
formatting: blacken the codebase...
r43346 if cmd in attend or (cmd not in ignore and not attend):
Matt Mackall
pager: break pager invocation out of command check loop
r21277 usepager = True
David Soria Parra
pager: honour internal aliases...
r19940 break
Matt Mackall
pager: break pager invocation out of command check loop
r21277
Augie Fackler
pager: move more behavior into core...
r30993 if usepager:
Augie Fackler
ui: add ignore-single-command functionality...
r30995 # Slight hack: the attend list is supposed to override
# the ignore list for the pager extension, but the
# core code doesn't know about attend, so we have to
# lobotomize the ignore list so that the extension's
# behavior is preserved.
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 ui.setconfig(b'pager', b'ignore', b'', b'pager')
ui.pager(b'extension-via-attend-' + cmd)
Martin von Zweigbergk
pager: if old pager extensions is enabled, respect pager.attend...
r31406 else:
ui.disablepager()
Matt Mackall
extensions: use new wrapper functions
r7216 return orig(ui, options, cmd, cmdfunc)
David Soria Parra <dsp <at> php.net>
pager: Add a configuration to enable/disable the pager for certain commands...
r6417
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 extensions.wrapfunction(dispatch, b'_runcommand', pagecmd)
Brodie Rao
pager: provide a default attend list...
r9841
Augie Fackler
formatting: blacken the codebase...
r43346
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 attended = [b'annotate', b'cat', b'diff', b'export', b'glog', b'log', b'qdiff']