Skip to content

Commit 8749dd8

Browse files
committed
Version bump v2.0.0-beta.18
+ Improved progress messages while scanning files
1 parent 3abb5d3 commit 8749dd8

File tree

4 files changed

+26
-19
lines changed

4 files changed

+26
-19
lines changed

codeintel/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.0.0-beta.17'
1+
__version__ = '2.0.0-beta.18'

codeintel/codeintel2/citadel.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,7 @@ def scan_error(self):
192192
finally:
193193
self.release_lock()
194194

195-
@property
196-
def blob_from_lang(self):
195+
def get_blob_from_lang(self, reporter=None):
197196
self.acquire_lock()
198197
try:
199198
if self._blob_from_lang_cache is None:
@@ -202,14 +201,18 @@ def blob_from_lang(self):
202201
except NotFoundInDatabase:
203202
self.release_lock()
204203
try:
205-
self.scan()
204+
self.scan(reporter=reporter)
206205
finally:
207206
self.acquire_lock()
208207
self._load_buf_data_once(True)
209208
return self._blob_from_lang_cache
210209
finally:
211210
self.release_lock()
212211

212+
@property
213+
def blob_from_lang(self):
214+
return self.get_blob_from_lang()
215+
213216
@property
214217
def tree(self):
215218
"""The CIX tree for this buffer. Will lazily scan if necessary."""
@@ -239,7 +242,7 @@ def cix(self):
239242
"""The CIX for this buffer. Will lazily scan if necessary."""
240243
return ET.tostring(self.tree)
241244

242-
def scan(self, mtime=None, skip_scan_time_check=False):
245+
def scan(self, mtime=None, skip_scan_time_check=False, reporter=None):
243246
"""Scan the current buffer.
244247
245248
"mtime" is the modification time of the buffer content. If
@@ -257,6 +260,9 @@ def scan(self, mtime=None, skip_scan_time_check=False):
257260
if mtime is None:
258261
mtime = time.time()
259262

263+
if reporter:
264+
reporter("Scanning %s file '%s'" % (self.lang, self.path))
265+
260266
#TODO: Eventually would like the CILEDriver scan methods to have
261267
# a signature more inline with
262268
# blob_from_lang/scan_time/scan_error. I.e. drop
@@ -350,9 +356,9 @@ def scoperef_from_blob_and_line(self, blob, line): # line is 1-based
350356
break
351357
return (blob, lpath)
352358

353-
def scan_if_necessary(self):
359+
def scan_if_necessary(self, reporter=None):
354360
# SIDE-EFFECT: results in `self.scan()` if not in the db.
355-
self.blob_from_lang
361+
self.get_blob_from_lang(reporter=reporter)
356362

357363
def unload(self):
358364
"""Remove this buffer from the database."""
@@ -367,7 +373,7 @@ def __init__(self, lang, mgr, env, path):
367373
self.lang = lang
368374
super(BinaryBuffer, self).__init__(mgr, None, env, path, None)
369375

370-
def scan(self, mtime=None, skip_scan_time_check=False):
376+
def scan(self, mtime=None, skip_scan_time_check=False, reporter=None):
371377
if self.path is None:
372378
raise CodeIntelError("cannot scan %s buffer: 'path' is not set (setting "
373379
"a fake path starting with '<Unsaved>' is okay)"
@@ -377,6 +383,9 @@ def scan(self, mtime=None, skip_scan_time_check=False):
377383
if mtime is None:
378384
mtime = time.time()
379385

386+
if reporter:
387+
reporter("Scanning %s file '%s'" % (self.lang, self.path))
388+
380389
scan_tree = None
381390
try:
382391
scan_tree = cile_driver.scan_binary(self)

codeintel/codeintel2/database/langlibbase.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,12 @@ def ensure_dir_scanned(self, dir, ctlr=None, reporter=None):
9292
return
9393
current += 1
9494
if base not in res_index:
95-
if reporter and hasattr(reporter, "onScanFile"):
96-
try:
97-
reporter.onScanFile("Scanning %s file '%s'" % (self.lang, join(dir, base)),
98-
dir,
99-
current,
100-
total)
101-
except:
102-
pass # eat any errors about reporting progress
95+
def scan_reporter(msg):
96+
if reporter and hasattr(reporter, "onScanFile"):
97+
try:
98+
reporter.onScanFile(msg, dir, current, total)
99+
except:
100+
pass # eat any errors about reporting progress
103101
try:
104102
buf = self.mgr.buf_from_path(join(dir, base),
105103
lang=self.lang)
@@ -110,7 +108,7 @@ def ensure_dir_scanned(self, dir, ctlr=None, reporter=None):
110108
continue
111109
if ctlr is not None:
112110
ctlr.info("load %r", buf)
113-
buf.scan_if_necessary()
111+
buf.scan_if_necessary(reporter=reporter and scan_reporter)
114112

115113
# Remove scanned paths that don't exist anymore.
116114
for base in removed_values:

codeintel/codeintel2/udl.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -492,12 +492,12 @@ def __init__(self, *args, **kwargs):
492492
self.env.add_pref_observer("default%sDecl" % self.m_lang,
493493
self.__on_pref_change)
494494

495-
def scan(self, mtime=None, skip_scan_time_check=False):
495+
def scan(self, mtime=None, skip_scan_time_check=False, reporter=None):
496496
"""Rescan the buffer.
497497
In the XML parsing buffer's case, we should do whatever the normal
498498
thing is, plus force a reparse of the XML.
499499
"""
500-
super(XMLParsingBufferMixin, self).scan(mtime, skip_scan_time_check)
500+
super(XMLParsingBufferMixin, self).scan(mtime, skip_scan_time_check, reporter=reporter)
501501
# Reset xml tree cache, so sections list works correctly - bug 101442.
502502
self._xml_tree_cache = None
503503

0 commit comments

Comments
 (0)