##// END OF EJS Templates
paths: add an argument to format the suboption display...
marmoute -
r51585:9d4a2ea3 stable
parent child Browse files
Show More
@@ -5219,7 +5219,9 b' def paths(ui, repo, search=None, **opts)'
5219 value = b'yes'
5219 value = b'yes'
5220 else:
5220 else:
5221 value = b'no'
5221 value = b'no'
5222 fm.condwrite(showsubopts, subopt, b'%s\n', pycompat.bytestr(value))
5222 display = urlutil.path_suboptions_display[subopt]
5223 value = display(value)
5224 fm.condwrite(showsubopts, subopt, b'%s\n', value)
5223
5225
5224 fm.end()
5226 fm.end()
5225
5227
@@ -658,9 +658,11 b' class paths(dict):'
658
658
659
659
660 _pathsuboptions = {}
660 _pathsuboptions = {}
661 # a dictionnary of methods that can be used to format a sub-option value
662 path_suboptions_display = {}
661
663
662
664
663 def pathsuboption(option, attr):
665 def pathsuboption(option, attr, display=pycompat.bytestr):
664 """Decorator used to declare a path sub-option.
666 """Decorator used to declare a path sub-option.
665
667
666 Arguments are the sub-option name and the attribute it should set on
668 Arguments are the sub-option name and the attribute it should set on
@@ -671,12 +673,16 b' def pathsuboption(option, attr):'
671 The function should return the value that will be set on the ``path``
673 The function should return the value that will be set on the ``path``
672 instance.
674 instance.
673
675
676 The optional `display` argument is a function that can be used to format
677 the value when displayed to the user (like in `hg paths` for example).
678
674 This decorator can be used to perform additional verification of
679 This decorator can be used to perform additional verification of
675 sub-options and to change the type of sub-options.
680 sub-options and to change the type of sub-options.
676 """
681 """
677
682
678 def register(func):
683 def register(func):
679 _pathsuboptions[option] = (attr, func)
684 _pathsuboptions[option] = (attr, func)
685 path_suboptions_display[option] = display
680 return func
686 return func
681
687
682 return register
688 return register
General Comments 0
You need to be logged in to leave comments. Login now