@@ -167,3 +167,56 @@ export async function main(denops: Denops): Promise<void> {
167
167
await load (denops , new URL (" https://example.com/foo.vim" ));
168
168
}
169
169
```
170
+
171
+ It does nothing if the ` url ` is already loaded unless ` force ` option is
172
+ specified like:
173
+
174
+ ``` typescript
175
+ import { Denops } from " https://deno.land/x/denops_std/mod.ts" ;
176
+ import { load } from " https://deno.land/x/denops_std/helper/mod.ts" ;
177
+
178
+ export async function main(denops : Denops ): Promise <void > {
179
+ const url = new URL (" ../../foo.vim" , import .meta .url );
180
+
181
+ // Line below loads a script
182
+ await load (denops , url );
183
+
184
+ // Line below does nothing while `url` is already loaded.
185
+ await load (denops , url );
186
+
187
+ // Line below loads the script while `force` option is specified.
188
+ await load (denops , url , { force: true });
189
+ }
190
+ ```
191
+
192
+ It returns ` true ` when the script is loaded. Otherwise, it returns ` false ` like:
193
+
194
+ ``` typescript
195
+ import { Denops } from " https://deno.land/x/denops_std/mod.ts" ;
196
+ import { load } from " https://deno.land/x/denops_std/helper/mod.ts" ;
197
+
198
+ export async function main(denops : Denops ): Promise <void > {
199
+ const url = new URL (" ../../foo.vim" , import .meta .url );
200
+
201
+ console .log (await load (denops , url ));
202
+ // -> true
203
+
204
+ console .log (await load (denops , url ));
205
+ // -> false
206
+
207
+ console .log (await load (denops , url , { force: true }));
208
+ // -> true
209
+ }
210
+ ```
211
+
212
+ Note that denops plugins works on individual threads so developers should add a
213
+ source guard on a Vim script as well like:
214
+
215
+ ``` vim
216
+ if has('g:loaded_xxxxx')
217
+ finish
218
+ endif
219
+ let g:loaded_xxxxx = 1
220
+
221
+ " Define functions or whatever
222
+ ```
0 commit comments