diff options
| author | William Boman <william@redwill.se> | 2021-09-17 16:05:20 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-17 16:05:20 +0200 |
| commit | 9551bbc1e207ea9a9d436f1bf02a22afc33f6aa6 (patch) | |
| tree | 58da4fff57cc3aff4380f501b1845310dff4f2e8 /lua/nvim-lsp-installer/fs.lua | |
| parent | texlab: fix ensure_executables (diff) | |
| download | mason-9551bbc1e207ea9a9d436f1bf02a22afc33f6aa6.tar mason-9551bbc1e207ea9a9d436f1bf02a22afc33f6aa6.tar.gz mason-9551bbc1e207ea9a9d436f1bf02a22afc33f6aa6.tar.bz2 mason-9551bbc1e207ea9a9d436f1bf02a22afc33f6aa6.tar.lz mason-9551bbc1e207ea9a9d436f1bf02a22afc33f6aa6.tar.xz mason-9551bbc1e207ea9a9d436f1bf02a22afc33f6aa6.tar.zst mason-9551bbc1e207ea9a9d436f1bf02a22afc33f6aa6.zip | |
optimize io (70%+ startup speedups) (#93)
Diffstat (limited to 'lua/nvim-lsp-installer/fs.lua')
| -rw-r--r-- | lua/nvim-lsp-installer/fs.lua | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/lua/nvim-lsp-installer/fs.lua b/lua/nvim-lsp-installer/fs.lua index b96d0bbf..9afdbe51 100644 --- a/lua/nvim-lsp-installer/fs.lua +++ b/lua/nvim-lsp-installer/fs.lua @@ -1,4 +1,4 @@ -local pathm = require("nvim-lsp-installer.path") +local pathm = require "nvim-lsp-installer.path" local uv = vim.loop local M = {} @@ -46,4 +46,25 @@ function M.fstat(path) return fstat end +function M.readdir(path) + local dir = assert(uv.fs_opendir(path, nil, 25)) + local all_entries = {} + local exhausted = false + + repeat + local entries = uv.fs_readdir(dir) + if entries and #entries > 0 then + for i = 1, #entries do + all_entries[#all_entries + 1] = entries[i] + end + else + exhausted = true + end + until exhausted + + assert(uv.fs_closedir(dir)) + + return all_entries +end + return M |
