Performant globbing and background analysis #569
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When the server boots up we analyze all files matching a glob (default to
**/*@(.sh|.inc|.bash|.command)
) from the givenrootPath
. We do this in order to enable features across files (e.g. jump to definition). The current setup works okay for smaller workspaces, but doesn't perform well therootPath
contains too many files. Problems observed:node-glob
) can take a very long time to complete!This should be fixed in this PR that:
fast-glob
which is a lot faster. Quick benchmarks shows the initial glob resolution to be 10X faster and I didn't find any issues compared to last time this was tried out ([WIP] More file extensions than .sh and shebang lookup #113)The usefulness of the background analysis for 500 files might be questionable, but the performance is decent IMO. With Sourcing aware symbols completion and jump to definition this will become more interesting.
Resolves #301
Might solve #317, #316 #277