##// END OF EJS Templates
fileset: roughly adjust weights of functions...
Yuya Nishihara -
r38866:bfd5def3 default
parent child Browse files
Show More
@@ -88,7 +88,7 b' symbols = filesetlang.symbols'
88 88
89 89 predicate = registrar.filesetpredicate()
90 90
91 @predicate('modified()', callstatus=True)
91 @predicate('modified()', callstatus=True, weight=10)
92 92 def modified(mctx, x):
93 93 """File that is modified according to :hg:`status`.
94 94 """
@@ -97,7 +97,7 b' def modified(mctx, x):'
97 97 s = set(mctx.status().modified)
98 98 return mctx.predicate(s.__contains__, predrepr='modified')
99 99
100 @predicate('added()', callstatus=True)
100 @predicate('added()', callstatus=True, weight=10)
101 101 def added(mctx, x):
102 102 """File that is added according to :hg:`status`.
103 103 """
@@ -106,7 +106,7 b' def added(mctx, x):'
106 106 s = set(mctx.status().added)
107 107 return mctx.predicate(s.__contains__, predrepr='added')
108 108
109 @predicate('removed()', callstatus=True)
109 @predicate('removed()', callstatus=True, weight=10)
110 110 def removed(mctx, x):
111 111 """File that is removed according to :hg:`status`.
112 112 """
@@ -115,7 +115,7 b' def removed(mctx, x):'
115 115 s = set(mctx.status().removed)
116 116 return mctx.predicate(s.__contains__, predrepr='removed')
117 117
118 @predicate('deleted()', callstatus=True)
118 @predicate('deleted()', callstatus=True, weight=10)
119 119 def deleted(mctx, x):
120 120 """Alias for ``missing()``.
121 121 """
@@ -124,7 +124,7 b' def deleted(mctx, x):'
124 124 s = set(mctx.status().deleted)
125 125 return mctx.predicate(s.__contains__, predrepr='deleted')
126 126
127 @predicate('missing()', callstatus=True)
127 @predicate('missing()', callstatus=True, weight=10)
128 128 def missing(mctx, x):
129 129 """File that is missing according to :hg:`status`.
130 130 """
@@ -133,7 +133,7 b' def missing(mctx, x):'
133 133 s = set(mctx.status().deleted)
134 134 return mctx.predicate(s.__contains__, predrepr='deleted')
135 135
136 @predicate('unknown()', callstatus=True)
136 @predicate('unknown()', callstatus=True, weight=50)
137 137 def unknown(mctx, x):
138 138 """File that is unknown according to :hg:`status`."""
139 139 # i18n: "unknown" is a keyword
@@ -141,7 +141,7 b' def unknown(mctx, x):'
141 141 s = set(mctx.status().unknown)
142 142 return mctx.predicate(s.__contains__, predrepr='unknown')
143 143
144 @predicate('ignored()', callstatus=True)
144 @predicate('ignored()', callstatus=True, weight=50)
145 145 def ignored(mctx, x):
146 146 """File that is ignored according to :hg:`status`."""
147 147 # i18n: "ignored" is a keyword
@@ -149,7 +149,7 b' def ignored(mctx, x):'
149 149 s = set(mctx.status().ignored)
150 150 return mctx.predicate(s.__contains__, predrepr='ignored')
151 151
152 @predicate('clean()', callstatus=True)
152 @predicate('clean()', callstatus=True, weight=10)
153 153 def clean(mctx, x):
154 154 """File that is clean according to :hg:`status`.
155 155 """
@@ -165,7 +165,7 b' def tracked(mctx, x):'
165 165 getargs(x, 0, 0, _("tracked takes no arguments"))
166 166 return mctx.predicate(mctx.ctx.__contains__, predrepr='tracked')
167 167
168 @predicate('binary()')
168 @predicate('binary()', weight=30)
169 169 def binary(mctx, x):
170 170 """File that appears to be binary (contains NUL bytes).
171 171 """
@@ -192,7 +192,7 b' def symlink(mctx, x):'
192 192 ctx = mctx.ctx
193 193 return mctx.predicate(lambda f: ctx.flags(f) == 'l', predrepr='symlink')
194 194
195 @predicate('resolved()')
195 @predicate('resolved()', weight=10)
196 196 def resolved(mctx, x):
197 197 """File that is marked resolved according to :hg:`resolve -l`.
198 198 """
@@ -204,7 +204,7 b' def resolved(mctx, x):'
204 204 return mctx.predicate(lambda f: f in ms and ms[f] == 'r',
205 205 predrepr='resolved')
206 206
207 @predicate('unresolved()')
207 @predicate('unresolved()', weight=10)
208 208 def unresolved(mctx, x):
209 209 """File that is marked unresolved according to :hg:`resolve -l`.
210 210 """
@@ -216,7 +216,7 b' def unresolved(mctx, x):'
216 216 return mctx.predicate(lambda f: f in ms and ms[f] == 'u',
217 217 predrepr='unresolved')
218 218
219 @predicate('hgignore()')
219 @predicate('hgignore()', weight=10)
220 220 def hgignore(mctx, x):
221 221 """File that matches the active .hgignore pattern.
222 222 """
@@ -224,7 +224,7 b' def hgignore(mctx, x):'
224 224 getargs(x, 0, 0, _("hgignore takes no arguments"))
225 225 return mctx.ctx.repo().dirstate._ignore
226 226
227 @predicate('portable()')
227 @predicate('portable()', weight=0.5)
228 228 def portable(mctx, x):
229 229 """File that has a portable name. (This doesn't include filenames with case
230 230 collisions.)
@@ -234,7 +234,7 b' def portable(mctx, x):'
234 234 return mctx.predicate(lambda f: util.checkwinfilename(f) is None,
235 235 predrepr='portable')
236 236
237 @predicate('grep(regex)')
237 @predicate('grep(regex)', weight=30)
238 238 def grep(mctx, x):
239 239 """File contains the given regular expression.
240 240 """
@@ -288,7 +288,7 b' def sizematcher(expr):'
288 288 b = _sizetomax(expr)
289 289 return lambda x: x >= a and x <= b
290 290
291 @predicate('size(expression)')
291 @predicate('size(expression)', weight=10)
292 292 def size(mctx, x):
293 293 """File size matches the given expression. Examples:
294 294
@@ -303,7 +303,7 b' def size(mctx, x):'
303 303 return mctx.fpredicate(lambda fctx: m(fctx.size()),
304 304 predrepr=('size(%r)', expr), cache=True)
305 305
306 @predicate('encoding(name)')
306 @predicate('encoding(name)', weight=30)
307 307 def encoding(mctx, x):
308 308 """File can be successfully decoded with the given character
309 309 encoding. May not be useful for encodings other than ASCII and
@@ -325,7 +325,7 b' def encoding(mctx, x):'
325 325
326 326 return mctx.fpredicate(encp, predrepr=('encoding(%r)', enc), cache=True)
327 327
328 @predicate('eol(style)')
328 @predicate('eol(style)', weight=30)
329 329 def eol(mctx, x):
330 330 """File contains newlines of the given style (dos, unix, mac). Binary
331 331 files are excluded, files with mixed line endings match multiple
@@ -359,7 +359,7 b' def copied(mctx, x):'
359 359 return p and p[0].path() != fctx.path()
360 360 return mctx.fpredicate(copiedp, predrepr='copied', cache=True)
361 361
362 @predicate('revs(revs, pattern)')
362 @predicate('revs(revs, pattern)', weight=10)
363 363 def revs(mctx, x):
364 364 """Evaluate set in the specified revisions. If the revset match multiple
365 365 revs, this will return file matching pattern in any of the revision.
@@ -381,7 +381,7 b' def revs(mctx, x):'
381 381 return matchers[0]
382 382 return matchmod.unionmatcher(matchers)
383 383
384 @predicate('status(base, rev, pattern)')
384 @predicate('status(base, rev, pattern)', weight=10)
385 385 def status(mctx, x):
386 386 """Evaluate predicate using status change between ``base`` and
387 387 ``rev``. Examples:
@@ -250,6 +250,15 b' class filesetpredicate(_funcregistrarbas'
250 250 Optional argument 'weight' indicates the estimated run-time cost, useful
251 251 for static optimization, default is 1. Higher weight means more expensive.
252 252
253 ====== =============================================================
254 Weight Description and examples
255 ====== =============================================================
256 0.5 basic match patterns (e.g. a symbol)
257 10 computing status (e.g. added()) or accessing a few files
258 30 reading file content for each (e.g. grep())
259 50 scanning working directory (ignored())
260 ====== =============================================================
261
253 262 'filesetpredicate' instance in example above can be used to
254 263 decorate multiple functions.
255 264
General Comments 0
You need to be logged in to leave comments. Login now