@@ -21,9 +21,19 @@ import {
21
21
loadPickerSession ,
22
22
savePickerSession ,
23
23
} from "../session.ts" ;
24
+ import type { Detail as SessionDetail } from "../extension/source/session.ts" ;
25
+ import { session as sessionSource } from "../extension/source/session.ts" ;
26
+ import { session as sessionRenderer } from "../extension/renderer/session.ts" ;
27
+ import { session as sessionPreviewer } from "../extension/previewer/session.ts" ;
28
+ import { defaultSessionActions } from "../extension/action/session.ts" ;
24
29
25
30
let zindex = 50 ;
26
31
32
+ const SESSION_EXCLUDE_SOURCES = [
33
+ "@action" ,
34
+ "@session" ,
35
+ ] ;
36
+
27
37
export const main : Entrypoint = ( denops ) => {
28
38
denops . dispatcher = {
29
39
...denops . dispatcher ,
@@ -74,6 +84,30 @@ export const main: Entrypoint = (denops) => {
74
84
} ) ;
75
85
} ,
76
86
) ,
87
+ "picker:session:command" : withHandleError ( denops , async ( ) => {
88
+ await loadUserCustom ( denops ) ;
89
+ const { substring } = await import (
90
+ "jsr:@vim-fall/std@^0.10.0/builtin/matcher/substring"
91
+ ) ;
92
+ const setting = getSetting ( ) ;
93
+ const sessionPickerParams = {
94
+ name : "@session" ,
95
+ source : sessionSource ( ) ,
96
+ matchers : [ substring ( ) ] as const ,
97
+ sorters : [ ] ,
98
+ renderers : [ sessionRenderer ( ) ] ,
99
+ previewers : [ sessionPreviewer ( ) ] ,
100
+ actions : defaultSessionActions ,
101
+ defaultAction : "resume" ,
102
+ ...setting ,
103
+ } as PickerParams < SessionDetail , string > ;
104
+ await startPicker (
105
+ denops ,
106
+ [ ] ,
107
+ sessionPickerParams ,
108
+ { signal : denops . interrupted } ,
109
+ ) ;
110
+ } ) ,
77
111
"picker:resume:command:complete" : withHandleError (
78
112
denops ,
79
113
async ( arglead , cmdline , cursorpos ) => {
@@ -179,8 +213,12 @@ async function startPicker<T extends Detail>(
179
213
zindex -= Picker . ZINDEX_ALLOCATION ;
180
214
} ) ;
181
215
stack . defer ( async ( ) => {
216
+ const name = pickerParams . name ;
217
+ if ( SESSION_EXCLUDE_SOURCES . includes ( name ) ) {
218
+ return ;
219
+ }
182
220
await savePickerSession ( {
183
- name : pickerParams . name ,
221
+ name,
184
222
args,
185
223
context : itemPicker . context ,
186
224
} ) ;
0 commit comments