Skip to content

Commit 16646fe

Browse files
authored
Merge pull request #85 from kuuote/buffer-unmap
👍Add buffer local unmap support
2 parents cb60ca8 + 4619604 commit 16646fe

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

denops_std/mapping/mod.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export async function map(
4242
}
4343

4444
export type UnmapOptions = {
45+
buffer?: boolean;
4546
mode?: Mode | Mode[];
4647
};
4748

@@ -53,10 +54,11 @@ export async function unmap(
5354
lhs: string,
5455
options: UnmapOptions = {},
5556
): Promise<void> {
57+
const buffer = options.buffer ? "<buffer>" : "";
5658
const modes = forceArray(options.mode ?? "");
5759
await batch.batch(denops, async (denops) => {
5860
for (const mode of modes) {
59-
await denops.cmd(`${mode}unmap ${lhs}`);
61+
await denops.cmd(`${mode}unmap ${buffer} ${lhs}`);
6062
}
6163
});
6264
}

denops_std/mapping/mod_test.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,37 @@ test({
311311
prelude: ["let g:denops#enable_workaround_vim_before_8_2_3081 = 1"],
312312
});
313313

314+
for (const mode of modes) {
315+
test({
316+
mode: "all",
317+
name: `unmap() removes buffer local mapping (${mode}unmap)`,
318+
fn: async (denops) => {
319+
await mapping.map(denops, "<Plug>(test-denops-std)", "Hello", {
320+
mode,
321+
});
322+
await mapping.map(denops, "<Plug>(test-denops-std)", "Hello", {
323+
buffer: true,
324+
mode,
325+
});
326+
assertEquals(
327+
(await mapping.read(denops, "<Plug>(test-denops-std)", { mode }))
328+
.buffer,
329+
true,
330+
);
331+
await mapping.unmap(denops, "<Plug>(test-denops-std)", {
332+
buffer: true,
333+
mode,
334+
});
335+
assertEquals(
336+
(await mapping.read(denops, "<Plug>(test-denops-std)", { mode }))
337+
.buffer,
338+
false,
339+
);
340+
},
341+
prelude: ["let g:denops#enable_workaround_vim_before_8_2_3081 = 1"],
342+
});
343+
}
344+
314345
for (const mode of modes) {
315346
test({
316347
mode: "all",

0 commit comments

Comments
 (0)