Sublime Forum

Dev Build 3171

#1

Dev Build 3171 is out now at https://www.sublimetext.com/3dev

6 Likes

#2

nice, it shows how many symbols were indexed and the size of the index. Not convinced the timing is accurate though, it took at least 5 seconds on a single core VM:

indexing [job 1]: spawning 1 workers to process 2086 / 2086 files
indexing [job 1]: indexed 2086 files
index “keithindextest” collated in 0.01s from 2086 files
index “keithindextest” is using 258104 bytes for 3695 symbols across 10191 locations

0 Likes

#3

The timing numbers are accurate, but they’re not timing everything from woe to go, just the time to build the inverted index (refered to as collation here). The entire indexing process is:

  1. Scan all folders on disk. When this is in progress, you’ll see spinner icons in the side bar folder list for any in-progress folders. Typically this step would be fast enough that you wouldn’t notice it. This step happens irrespective of if indexing is enabled or not, as the list of files is also needed for things like Goto Anything.
  2. Wait until there hasn’t been any file system activity in the folders on the side bar. We currently wait for at least 1s of idle time before the next step begins.
  3. Crawl all modified files in the folders. We only crawl files that have been modified since the last crawl (or that need to be re-crawled for other reasons, such as their syntax definition having changed); the number is listed in the Indexing Status window
  4. Build an inverted index from all crawled files. This is the step that’s now being timed in 3171. It’s typically very fast, and is entirely off the main thread in any case.
4 Likes

#4

Ah that makes sense, thanks for the explanation :slight_smile:

0 Likes

#5

I experienced an infinite indexing in previous ST recently (there is a file which cause the indexer to spawn a new process and kill it, spawn, kill, …) and do not know how to find the culprit file. Could we have a way to know who is being indexed?

0 Likes

#6

to be concrete, when the indexing window constantly says:

indexing [job 1]: spawning 1 workers to process 1 / 1 files
indexing [job 1]: indexed 0 files

it would be useful if it would say which file failed to index (and bonus points if it can also say why)

side note: if I understand correctly, sublime.log_indexing(True) offers nothing that the indexing window doesn’t already, right? i.e. it became redundant when the indexing window was added

EDIT: on 3175 on Linux, I just saw this in my console (with no extra logging enabled):

worker 3488 appears stuck while processing file /home/keith/projects/file, killing process

so maybe it’s implemented now

0 Likes

#7

someone has reported display issues on Linux with this build here:

0 Likes

#8

3173 is out now, addressing the rendering regression

4 Likes

#9

Found two issues with phantoms.

  1. Updating phantoms (erase and add) which exceed the width of the current viewport causes the shadow of the minimap to flicker. The issue is caused by the phantom being the only line exceeding the view port. Each time it is removed, the shadow is removed as no horizontal scolling is required. Adding it back some milliseconds later, will cause the shadow to be rendered again. Therefore may not be a bug, but looks a bit odd.

  2. While adding phantoms to the end of lines with text doesn’t effect the cursor position, adding one to the end of an empty line causes the cursor to jump after the inserted phantom, which is extremely distracting.

0 Likes