File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed
Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -7,6 +7,13 @@ interface NeovimStatus {
77 fileName : string ;
88}
99
10+ interface BufferInfo {
11+ number : number ;
12+ name : string ;
13+ isListed : boolean ;
14+ isLoaded : boolean ;
15+ }
16+
1017export class NeovimManager {
1118 private static instance : NeovimManager ;
1219
@@ -124,4 +131,32 @@ export class NeovimManager {
124131 return 'Error editing lines' ;
125132 }
126133 }
134+
135+ public async getOpenBuffers ( ) : Promise < BufferInfo [ ] > {
136+ try {
137+ const nvim = await this . connect ( ) ;
138+ const buffers = await nvim . buffers ;
139+ const bufferInfos : BufferInfo [ ] = [ ] ;
140+
141+ for ( const buffer of buffers ) {
142+ const [ isLoaded , isListedOption ] = await Promise . all ( [
143+ buffer . loaded ,
144+ buffer . getOption ( 'buflisted' )
145+ ] ) ;
146+ const isListed = Boolean ( isListedOption ) ;
147+
148+ bufferInfos . push ( {
149+ number : buffer . id ,
150+ name : await buffer . name ,
151+ isListed,
152+ isLoaded
153+ } ) ;
154+ }
155+
156+ return bufferInfos ;
157+ } catch ( error ) {
158+ console . error ( 'Error getting open buffers:' , error ) ;
159+ return [ ] ;
160+ }
161+ }
127162}
You can’t perform that action at this time.
0 commit comments