# HG changeset patch # User Matt Mackall <m...@selenic.com> # Date 1471459227 18000 # Wed Aug 17 13:40:27 2016 -0500 # Node ID 1f402560299be8692c767db1469afb6618adee81 # Parent b1809f5d7630a3fff0fa715bbd30dba0f07672a8 templater: add inheritance support to style maps
We can now specify a base map file: __base__ = path/to/map/file That map file will be read and used to populate unset elements of the current map. Unlike using %include, elements in the inherited class will be read relative to that path. This makes it much easier to make custom local tweaks to a style. diff -r b1809f5d7630 -r 1f402560299b mercurial/templater.py --- a/mercurial/templater.py Mon Aug 15 20:39:33 2016 -0700 +++ b/mercurial/templater.py Wed Aug 17 13:40:27 2016 -0500 @@ -1026,6 +1026,16 @@ raise error.ParseError(_('unmatched quotes'), conf.source('', key)) cache[key] = unquotestring(val) + elif key == "__base__": + # treat as a pointer to a base class for this style + path = util.normpath(os.path.join(base, val)) + bcache, btmap = _readmapfile(path) + for k in bcache: + if k not in cache: + cache[k] = bcache[k] + for k in btmap: + if k not in tmap: + tmap[k] = btmap[k] else: val = 'default', val if ':' in val[1]: _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel