@@ -87,24 +87,45 @@ async function ensurePrerequisites(denops: Denops): Promise<string> {
87
87
endfunction
88
88
89
89
function! DenopsStdBufferConcreteRestore_${ suffix } () abort
90
- if !exists('b:denops_std_buffer_concrete_cache_${ suffix } ')
90
+ let cache = get(s:denops_std_buffer_concrete_cache_${ suffix } , bufnr(), v:null)
91
+ if cache is# v:null
91
92
return
92
93
endif
93
94
call DenopsStdBufferReplace_${ suffix } (
94
95
\\ bufnr('%'),
95
- \\ b:denops_std_buffer_concrete_cache_ ${ suffix } .content,
96
+ \\ cache .content,
96
97
\\ v:null,
97
98
\\ v:null,
98
99
\\)
99
- let &filetype = b:denops_std_buffer_concrete_cache_ ${ suffix } .filetype
100
+ let &filetype = cache .filetype
100
101
endfunction
101
102
102
103
function! DenopsStdBufferConcreteStore_${ suffix } () abort
103
- let b :denops_std_buffer_concrete_cache_${ suffix } = {
104
+ let s :denops_std_buffer_concrete_cache_${ suffix } [bufnr()] = {
104
105
\\ 'filetype': &filetype,
105
106
\\ 'content': getline(1, '$'),
106
107
\\}
107
108
endfunction
109
+
110
+ let s:denops_std_buffer_concrete_cache_${ suffix } = {}
111
+
112
+ augroup denops_std_buffer_${ suffix }
113
+ autocmd!
114
+ autocmd User DenopsStopped,DenopsClosed ++once
115
+ \\ silent! unlet! s:denops_std_buffer_concrete_cache_${ suffix }
116
+ autocmd User DenopsStopped,DenopsClosed ++once
117
+ \\ augroup denops_std_buffer_reload_${ suffix } |
118
+ \\ autocmd! |
119
+ \\ augroup END
120
+ autocmd User DenopsStopped,DenopsClosed ++once
121
+ \\ augroup denops_std_buffer_concrete_${ suffix } |
122
+ \\ autocmd! |
123
+ \\ augroup END
124
+ autocmd User DenopsStopped,DenopsClosed ++once
125
+ \\ augroup denops_std_buffer_${ suffix } |
126
+ \\ autocmd! |
127
+ \\ augroup END
128
+ augroup END
108
129
` ;
109
130
await execute ( denops , script ) ;
110
131
return suffix ;
0 commit comments