File tree Expand file tree Collapse file tree 1 file changed +4
-1
lines changed
lua/blink/cmp/sources/snippets/default Expand file tree Collapse file tree 1 file changed +4
-1
lines changed Original file line number Diff line number Diff line change 129
129
--- @return string
130
130
function registry :expand_vars (snippet )
131
131
local lazy_vars = self .builtin_vars .lazy
132
+ local lazy_vars_cache = {}
132
133
local eager_vars = self .builtin_vars .eager or {}
133
134
134
135
local resolved_snippet = snippet
@@ -150,7 +151,9 @@ function registry:expand_vars(snippet)
150
151
if eager_vars [data .name ] then
151
152
resolved_snippet = resolved_snippet :gsub (' %$[{]?(' .. data .name .. ' )[}]?' , eager_vars [data .name ])
152
153
elseif lazy_vars [data .name ] then
153
- local replacement = lazy_vars [data .name ]({ clipboard_register = self .config .clipboard_register })
154
+ local replacement = lazy_vars_cache [data .name ]
155
+ or lazy_vars [data .name ]({ clipboard_register = self .config .clipboard_register })
156
+ lazy_vars_cache [data .name ] = replacement
154
157
-- gsub otherwise fails with strings like `%20` in the replacement string
155
158
local escaped_for_gsub = replacement :gsub (' %%' , ' %%%%' )
156
159
resolved_snippet = resolved_snippet :gsub (' %$[{]?(' .. data .name .. ' )[}]?' , escaped_for_gsub )
You can’t perform that action at this time.
0 commit comments