Skip to content

Commit 364c86a

Browse files
committed
feat: add method to retrieve open buffer information
1 parent 27994b0 commit 364c86a

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

src/neovim.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
1017
export 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
}

0 commit comments

Comments
 (0)