equal
deleted
inserted
replaced
93 def __init__(self): |
93 def __init__(self): |
94 self._uicallables = [] |
94 self._uicallables = [] |
95 self._extcallables = [] |
95 self._extcallables = [] |
96 self._repocallables = [] |
96 self._repocallables = [] |
97 self._revsetsymbols = [] |
97 self._revsetsymbols = [] |
|
98 self._templatekws = [] |
98 self._commandwrappers = [] |
99 self._commandwrappers = [] |
99 self._extcommandwrappers = [] |
100 self._extcommandwrappers = [] |
100 self._functionwrappers = [] |
101 self._functionwrappers = [] |
101 self._duckpunchers = [] |
102 self._duckpunchers = [] |
102 |
103 |
138 - Extend revsets |
139 - Extend revsets |
139 """ |
140 """ |
140 knownexts = {} |
141 knownexts = {} |
141 for name, symbol in self._revsetsymbols: |
142 for name, symbol in self._revsetsymbols: |
142 revset.symbols[name] = symbol |
143 revset.symbols[name] = symbol |
|
144 for name, kw in self._templatekws: |
|
145 templatekw.keywords[name] = kw |
143 for ext, command, wrapper in self._extcommandwrappers: |
146 for ext, command, wrapper in self._extcommandwrappers: |
144 if ext not in knownexts: |
147 if ext not in knownexts: |
145 e = extensions.find('rebase') |
148 e = extensions.find('rebase') |
146 if e is None: |
149 if e is None: |
147 raise util.Abort('extension %s not found' %e) |
150 raise util.Abort('extension %s not found' %e) |
212 return [r for r in subset if 'babar' in repo[r].description()] |
215 return [r for r in subset if 'babar' in repo[r].description()] |
213 """ |
216 """ |
214 def dec(symbol): |
217 def dec(symbol): |
215 self._revsetsymbols.append((symbolname, symbol)) |
218 self._revsetsymbols.append((symbolname, symbol)) |
216 return symbol |
219 return symbol |
|
220 return dec |
|
221 |
|
222 |
|
223 def templatekw(self, keywordname): |
|
224 """Decorated function is a revset keyword |
|
225 |
|
226 The name of the keyword must be given as the decorator argument. |
|
227 The symbol is added during `extsetup`. |
|
228 |
|
229 example:: |
|
230 |
|
231 @eh.templatekw('babar') |
|
232 def kwbabar(ctx): |
|
233 return 'babar' |
|
234 """ |
|
235 def dec(keyword): |
|
236 self._templatekws.append((keywordname, keyword)) |
|
237 return keyword |
217 return dec |
238 return dec |
218 |
239 |
219 def wrapcommand(self, command, extension=None): |
240 def wrapcommand(self, command, extension=None): |
220 """Decorated function is a command wrapper |
241 """Decorated function is a command wrapper |
221 |
242 |
485 |
506 |
486 |
507 |
487 ### template keywords |
508 ### template keywords |
488 ##################### |
509 ##################### |
489 |
510 |
|
511 @eh.templatekw('obsolete') |
490 def obsoletekw(repo, ctx, templ, **args): |
512 def obsoletekw(repo, ctx, templ, **args): |
491 """:obsolete: String. The obsolescence level of the node, could be |
513 """:obsolete: String. The obsolescence level of the node, could be |
492 ``stable``, ``unstable``, ``suspended`` or ``extinct``. |
514 ``stable``, ``unstable``, ``suspended`` or ``extinct``. |
493 """ |
515 """ |
494 rev = ctx.rev() |
516 rev = ctx.rev() |
497 if rev in repo._suspendedset: |
519 if rev in repo._suspendedset: |
498 return 'suspended' |
520 return 'suspended' |
499 if rev in repo._unstableset: |
521 if rev in repo._unstableset: |
500 return 'unstable' |
522 return 'unstable' |
501 return 'stable' |
523 return 'stable' |
502 |
|
503 @eh.extsetup |
|
504 def addkeyword(ui): |
|
505 templatekw.keywords['obsolete'] = obsoletekw |
|
506 |
524 |
507 ### Other Extension compat |
525 ### Other Extension compat |
508 ############################ |
526 ############################ |
509 |
527 |
510 |
528 |