diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2018-11-15 11:01:55 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-11-15 11:36:35 +0100 |
commit | 9eb9a57ffd9bec1f7ba2a92d7dcd80c8366fbc33 (patch) | |
tree | 3f59111e96e58df76ebdfc1163b376e11be48742 /tools | |
parent | 6e003eeecb364f26b6f051d9d6e643322a819115 (diff) | |
download | Nim-9eb9a57ffd9bec1f7ba2a92d7dcd80c8366fbc33.tar.gz |
nimfind: improvements
Diffstat (limited to 'tools')
-rw-r--r-- | tools/nimfind.nim | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/tools/nimfind.nim b/tools/nimfind.nim index 097ee599c..c089ea823 100644 --- a/tools/nimfind.nim +++ b/tools/nimfind.nim @@ -77,6 +77,7 @@ proc createDb(db: DbConn) = foreign key (nimid) references syms(nimid) ); """) + db.exec sql"create index if not exists UsagesIx on usages(file, line);" proc toDbFileId*(db: DbConn; conf: ConfigRef; fileIdx: FileIndex): int = if fileIdx == FileIndex(-1): return -1 @@ -166,8 +167,10 @@ proc mainCommand(graph: ModuleGraph) = add(conf.searchPaths, conf.libpath) # do not stop after the first error: conf.errorMax = high(int) - compileProject(graph) - close(FinderRef(graph.backend).db) + try: + compileProject(graph) + finally: + close(FinderRef(graph.backend).db) performSearch(conf, dbfile) proc processCmdLine*(pass: TCmdLinePass, cmd: string; conf: ConfigRef) = @@ -194,7 +197,7 @@ proc processCmdLine*(pass: TCmdLinePass, cmd: string; conf: ConfigRef) = if conf.projectName.len == 0: conf.projectName = info[0] try: conf.m.trackPos = newLineInfo(conf, AbsoluteFile info[0], - parseInt(info[1]), parseInt(info[2])) + parseInt(info[1]), parseInt(info[2])-1) except ValueError: quit "invalid command line" else: |