@@ -8,19 +8,22 @@ import { Denops } from "../deps.ts";
8
8
* w - Window local variables
9
9
* t - Tab page local variables
10
10
* v - Vim's variables
11
- * env - Environment variables
12
11
*
13
12
*/
14
- export type VariableGroups = "g" | "b" | "w" | "t" | "v" | "env" ;
13
+ export type VariableGroups = "g" | "b" | "w" | "t" | "v" ;
15
14
16
15
export async function getVar < T = unknown > (
17
16
denops : Denops ,
18
17
group : VariableGroups ,
19
18
prop : string ,
20
- ) : Promise < T > {
21
- const name = group === "env" ? `\$${ prop } ` : `${ group } :${ prop } ` ;
19
+ defaultValue ?: T ,
20
+ ) : Promise < T | null > {
21
+ const result = await denops . eval ( `get(${ group } :, name, value)` , {
22
+ name : prop ,
23
+ value : defaultValue ?? null ,
24
+ } ) ;
22
25
// deno-lint-ignore no-explicit-any
23
- return ( await denops . eval ( name ) ) as any ;
26
+ return result as any ;
24
27
}
25
28
26
29
export async function setVar < T = unknown > (
@@ -29,7 +32,7 @@ export async function setVar<T = unknown>(
29
32
prop : string ,
30
33
value : T ,
31
34
) : Promise < void > {
32
- const name = group === "env" ? `\$ ${ prop } ` : `${ group } :${ prop } ` ;
35
+ const name = `${ group } :${ prop } ` ;
33
36
await denops . cmd ( `let ${ name } = value` , {
34
37
value,
35
38
} ) ;
@@ -40,7 +43,7 @@ export async function removeVar(
40
43
group : VariableGroups ,
41
44
prop : string ,
42
45
) : Promise < void > {
43
- const name = group === "env" ? `\$ ${ prop } ` : `${ group } :${ prop } ` ;
46
+ const name = `${ group } :${ prop } ` ;
44
47
await denops . cmd ( `unlet ${ name } ` ) ;
45
48
}
46
49
@@ -53,8 +56,8 @@ export class VariableHelper {
53
56
this . #group = group ;
54
57
}
55
58
56
- async get < T = unknown > ( prop : string ) : Promise < T > {
57
- return await getVar ( this . #denops, this . #group, prop ) ;
59
+ async get < T = unknown > ( prop : string , defaultValue ?: T ) : Promise < T | null > {
60
+ return await getVar ( this . #denops, this . #group, prop , defaultValue ) ;
58
61
}
59
62
60
63
async set < T = unknown > ( prop : string , value : T ) : Promise < void > {
0 commit comments