diff options
author | Lewis Russell <lewis6991@gmail.com> | 2023-09-16 23:10:30 +0100 |
---|---|---|
committer | Lewis Russell <me@lewisr.dev> | 2023-09-20 13:42:41 +0100 |
commit | 877d04d0fb83b5fc602dbab22b58f26a793ec236 (patch) | |
tree | 2f6ee1af59ae412256116d8abf28a2a6f7b6d848 /runtime/lua/vim/_meta.lua | |
parent | 11865dbe3917a538617b2b7df31bf7375e292bc8 (diff) | |
download | rneovim-877d04d0fb83b5fc602dbab22b58f26a793ec236.tar.gz rneovim-877d04d0fb83b5fc602dbab22b58f26a793ec236.tar.bz2 rneovim-877d04d0fb83b5fc602dbab22b58f26a793ec236.zip |
feat(lua): add vim.func._memoize
Memoizes a function, using a custom function to hash the arguments.
Private for now until:
- There are other places in the codebase that could benefit from this
(e.g. LSP), but might require other changes to accommodate.
- Invalidation of the cache needs to be controllable. Using weak tables
is an acceptable invalidation policy, but it shouldn't be the only
one.
- I don't think the story around `hash_fn` is completely thought out. We
may be able to have a good default hash_fn by hashing each argument,
so basically a better 'concat'.
Diffstat (limited to 'runtime/lua/vim/_meta.lua')
-rw-r--r-- | runtime/lua/vim/_meta.lua | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/runtime/lua/vim/_meta.lua b/runtime/lua/vim/_meta.lua index 5e4f390ca3..ddd0a0eb49 100644 --- a/runtime/lua/vim/_meta.lua +++ b/runtime/lua/vim/_meta.lua @@ -10,6 +10,7 @@ vim._watch = require('vim._watch') vim.diagnostic = require('vim.diagnostic') vim.filetype = require('vim.filetype') vim.fs = require('vim.fs') +vim.func = require('vim.func') vim.health = require('vim.health') vim.highlight = require('vim.highlight') vim.iter = require('vim.iter') |