1
+ /**
2
+ * A module to provide helper functions to manage mappings
3
+ *
4
+ * @module
5
+ */
1
6
import type { Denops } from "https://deno.land/x/denops_core@v3.4.1/mod.ts" ;
2
7
import * as fn from "../function/mod.ts" ;
3
8
import * as batch from "../batch/mod.ts" ;
4
9
import { Mapping , Mode } from "./types.ts" ;
5
10
import { parse } from "./parser.ts" ;
6
11
7
- export type MapOptions = {
12
+ export interface MapOptions {
8
13
mode ?: Mode | Mode [ ] ;
9
14
noremap ?: boolean ;
10
15
script ?: boolean ;
@@ -13,10 +18,35 @@ export type MapOptions = {
13
18
nowait ?: boolean ;
14
19
silent ?: boolean ;
15
20
unique ?: boolean ;
16
- } ;
21
+ }
17
22
18
23
/**
19
24
* Register a mapping for `lhs` to `rhs` with given options.
25
+ *
26
+ * ```typescript
27
+ * import { Denops } from "../mod.ts";
28
+ * import * as mapping from "../mapping/mod.ts";
29
+ *
30
+ * export async function main(denops: Denops): Promise<void> {
31
+ * await mapping.map(denops, "<Plug>(test-denops-std)", "Hello");
32
+ * await mapping.map(denops, "<Plug>(test-denops-std)", "Hello", {
33
+ * mode: "i",
34
+ * });
35
+ * }
36
+ * ```
37
+ *
38
+ * Users can specify multiple `mode` value like:
39
+ *
40
+ * ```typescript
41
+ * import { Denops } from "../mod.ts";
42
+ * import * as mapping from "../mapping/mod.ts";
43
+ *
44
+ * export async function main(denops: Denops): Promise<void> {
45
+ * await mapping.map(denops, "<Plug>(test-denops-std)", "Hello", {
46
+ * mode: ["n", "i", "x"],
47
+ * });
48
+ * }
49
+ * ```
20
50
*/
21
51
export async function map (
22
52
denops : Denops ,
@@ -41,13 +71,47 @@ export async function map(
41
71
} ) ;
42
72
}
43
73
44
- export type UnmapOptions = {
74
+ export interface UnmapOptions {
45
75
buffer ?: boolean ;
46
76
mode ?: Mode | Mode [ ] ;
47
- } ;
77
+ }
48
78
49
79
/**
50
80
* Remove a mapping for `lhs`.
81
+ *
82
+ * ```typescript
83
+ * import { Denops } from "../mod.ts";
84
+ * import * as mapping from "../mapping/mod.ts";
85
+ *
86
+ * export async function main(denops: Denops): Promise<void> {
87
+ * await mapping.map(denops, "<Plug>(test-denops-std)", "Hello");
88
+ * await mapping.map(denops, "<Plug>(test-denops-std)", "Hello", {
89
+ * mode: "i",
90
+ * });
91
+ *
92
+ * await mapping.unmap(denops, "<Plug>(test-denops-std)");
93
+ * await mapping.unmap(denops, "<Plug>(test-denops-std)", {
94
+ * mode: "i",
95
+ * });
96
+ * }
97
+ * ```
98
+ *
99
+ * Users can specify multiple `mode` value like:
100
+ *
101
+ * ```typescript
102
+ * import { Denops } from "../mod.ts";
103
+ * import * as mapping from "../mapping/mod.ts";
104
+ *
105
+ * export async function main(denops: Denops): Promise<void> {
106
+ * await mapping.map(denops, "<Plug>(test-denops-std)", "Hello", {
107
+ * mode: ["n", "i", "x"],
108
+ * });
109
+ *
110
+ * await mapping.unmap(denops, "<Plug>(test-denops-std)", {
111
+ * mode: ["n", "i", "x"],
112
+ * });
113
+ * }
114
+ * ```
51
115
*/
52
116
export async function unmap (
53
117
denops : Denops ,
@@ -63,13 +127,30 @@ export async function unmap(
63
127
} ) ;
64
128
}
65
129
66
- export type ReadOptions = {
130
+ export interface ReadOptions {
67
131
mode ?: Mode ;
68
- } ;
132
+ }
69
133
70
134
/**
71
135
* Read a mapping and return a `Mapping` instance.
72
136
*
137
+ * ```typescript
138
+ * import { Denops } from "../mod.ts";
139
+ * import * as mapping from "../mapping/mod.ts";
140
+ *
141
+ * export async function main(denops: Denops): Promise<void> {
142
+ * await denops.cmd(`map <Plug>(test-denops-std) Hello`);
143
+ *
144
+ * console.log(await mapping.read(denops, "<Plug>(test-denops-std)"));
145
+ * // {
146
+ * // mode: "",
147
+ * // lhs: "<Plug>(test-denops-std)",
148
+ * // rhs: "Hello",
149
+ * // // ...
150
+ * // }
151
+ * }
152
+ * ```
153
+ *
73
154
* Note that prior to Vim 8.2.0491 or Neovim 0.5.0, `script` is
74
155
* not detectable by `maparg` function internally used in this
75
156
* function.
@@ -104,12 +185,30 @@ export async function read(
104
185
} ;
105
186
}
106
187
107
- export type ListOptions = {
188
+ export interface ListOptions {
108
189
mode ?: Mode ;
109
- } ;
190
+ }
110
191
111
192
/**
112
193
* List mappings which starts from `lhs`.
194
+ *
195
+ * ```typescript
196
+ * import { Denops } from "../mod.ts";
197
+ * import * as mapping from "../mapping/mod.ts";
198
+ *
199
+ * export async function main(denops: Denops): Promise<void> {
200
+ * const result = await mapping.list(denops, "<Plug>");
201
+ * console.log(result);
202
+ * // [
203
+ * // {
204
+ * // mode: "",
205
+ * // lhs: "<Plug>(...)",
206
+ * // // ...
207
+ * // },
208
+ * // // ...
209
+ * // ]
210
+ * }
211
+ * ```
113
212
*/
114
213
export async function list (
115
214
denops : Denops ,
0 commit comments