237 else: |
238 else: |
238 return MODE_REVISION, ctx |
239 return MODE_REVISION, ctx |
239 |
240 |
240 revdef = 'reverse(%s)' % query |
241 revdef = 'reverse(%s)' % query |
241 try: |
242 try: |
242 tree = revset.parse(revdef) |
243 tree = revsetlang.parse(revdef) |
243 except error.ParseError: |
244 except error.ParseError: |
244 # can't parse to a revset tree |
245 # can't parse to a revset tree |
245 return MODE_KEYWORD, query |
246 return MODE_KEYWORD, query |
246 |
247 |
247 if revset.depth(tree) <= 2: |
248 if revsetlang.depth(tree) <= 2: |
248 # no revset syntax used |
249 # no revset syntax used |
249 return MODE_KEYWORD, query |
250 return MODE_KEYWORD, query |
250 |
251 |
251 if any((token, (value or '')[:3]) == ('string', 're:') |
252 if any((token, (value or '')[:3]) == ('string', 're:') |
252 for token, value, pos in revset.tokenize(revdef)): |
253 for token, value, pos in revsetlang.tokenize(revdef)): |
253 return MODE_KEYWORD, query |
254 return MODE_KEYWORD, query |
254 |
255 |
255 funcsused = revset.funcsused(tree) |
256 funcsused = revsetlang.funcsused(tree) |
256 if not funcsused.issubset(revset.safesymbols): |
257 if not funcsused.issubset(revset.safesymbols): |
257 return MODE_KEYWORD, query |
258 return MODE_KEYWORD, query |
258 |
259 |
259 mfunc = revset.match(web.repo.ui, revdef) |
260 mfunc = revset.match(web.repo.ui, revdef) |
260 try: |
261 try: |