mirror of
https://github.com/neovim/neovim.git
synced 2025-10-04 00:46:30 +00:00
perf(rtp): reduce rtp scans (#24191)
* perf(rtp): reduce rtp scans Problem: Scanning the filesystem is expensive and particularly affects startuptime. Solution: Reduce the amount of redundant directory scans by relying less on glob patterns and handle vim and lua sourcing lower down.
This commit is contained in:
@@ -1717,23 +1717,32 @@ void slang_clear_sug(slang_T *lp)
|
||||
|
||||
// Load one spell file and store the info into a slang_T.
|
||||
// Invoked through do_in_runtimepath().
|
||||
static void spell_load_cb(char *fname, void *cookie)
|
||||
static bool spell_load_cb(int num_fnames, char **fnames, bool all, void *cookie)
|
||||
{
|
||||
spelload_T *slp = (spelload_T *)cookie;
|
||||
slang_T *slang = spell_load_file(fname, slp->sl_lang, NULL, false);
|
||||
if (slang == NULL) {
|
||||
return;
|
||||
for (int i = 0; i < num_fnames; i++) {
|
||||
slang_T *slang = spell_load_file(fnames[i], slp->sl_lang, NULL, false);
|
||||
|
||||
if (slang == NULL) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// When a previously loaded file has NOBREAK also use it for the
|
||||
// ".add" files.
|
||||
if (slp->sl_nobreak && slang->sl_add) {
|
||||
slang->sl_nobreak = true;
|
||||
} else if (slang->sl_nobreak) {
|
||||
slp->sl_nobreak = true;
|
||||
}
|
||||
|
||||
slp->sl_slang = slang;
|
||||
|
||||
if (!all) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// When a previously loaded file has NOBREAK also use it for the
|
||||
// ".add" files.
|
||||
if (slp->sl_nobreak && slang->sl_add) {
|
||||
slang->sl_nobreak = true;
|
||||
} else if (slang->sl_nobreak) {
|
||||
slp->sl_nobreak = true;
|
||||
}
|
||||
|
||||
slp->sl_slang = slang;
|
||||
return num_fnames > 0;
|
||||
}
|
||||
|
||||
/// Add a word to the hashtable of common words.
|
||||
|
Reference in New Issue
Block a user