aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/lua/executor.c
diff options
context:
space:
mode:
authorMathias Fußenegger <mfussenegger@users.noreply.github.com>2023-11-19 14:25:32 +0100
committerGitHub <noreply@github.com>2023-11-19 14:25:32 +0100
commitde28a0f84c577e264f37cd001b03d640db7d5ef9 (patch)
treead69a1e63266b5e20f05b18d84a6d3a457525f45 /src/nvim/lua/executor.c
parenta84b454ebe661981f292ee8fc73be4f9cd3a5884 (diff)
downloadrneovim-de28a0f84c577e264f37cd001b03d640db7d5ef9.tar.gz
rneovim-de28a0f84c577e264f37cd001b03d640db7d5ef9.tar.bz2
rneovim-de28a0f84c577e264f37cd001b03d640db7d5ef9.zip
perf(lsp): replace file polling on linux with per dir watcher (#26108)
Should help with https://github.com/neovim/neovim/issues/23291 On linux `new_fs_event` doesn't support recursive watching, but we can still use it to watch folders. The downside of this approach is that we may end up sending some false `Deleted` events. For example, if you save a file named `foo` there will be a intermediate `foo~` due to the save mechanism of neovim. The events we get from vim.uv in that case are: - rename: foo~ - rename: foo~ - rename: foo - rename: foo - change: foo - change: foo The mechanism in this PR uses a debounce to reduce this to: - deleted: foo~ - changed: foo `foo~` will be the false positive. I suspect that for the LSP case this is good enough. If not, we may need to follow up on this and keep a table in memory that tracks available files.
Diffstat (limited to 'src/nvim/lua/executor.c')
0 files changed, 0 insertions, 0 deletions