@@ -19,7 +19,7 @@ import {
19
19
} from "../../commands/LookupCommand" ;
20
20
import { clipboard , DendronClientUtilsV2 , VSCodeUtils } from "../../utils" ;
21
21
import { DendronQuickPickerV2 } from "./types" ;
22
- import { PickerUtilsV2 } from "./utils" ;
22
+ import { NotePickerUtils , PickerUtilsV2 } from "./utils" ;
23
23
24
24
export type ButtonType =
25
25
| LookupEffectType
@@ -83,7 +83,6 @@ function isSplitButton(button: DendronBtn) {
83
83
return _ . includes ( [ "horizontal" , "vertical" ] , button . type ) ;
84
84
}
85
85
86
- // TODO: make it into a utils method?
87
86
const selectionToNoteProps = async ( opts : {
88
87
selectionType : string ;
89
88
note : NoteProps ;
@@ -93,7 +92,7 @@ const selectionToNoteProps = async (opts: {
93
92
const { document, range } = resp || { } ;
94
93
const { selectionType, note } = opts ;
95
94
const { selection, text } = VSCodeUtils . getSelection ( ) ;
96
- //TODO: split these up?
95
+
97
96
switch ( selectionType ) {
98
97
case "selectionExtract" : {
99
98
if ( ! _ . isUndefined ( document ) ) {
@@ -209,16 +208,25 @@ export class Selection2LinkBtn extends DendronBtn {
209
208
} ) ;
210
209
} ;
211
210
212
- quickPick . rawValue = quickPick . value ;
211
+ quickPick . prevValue = quickPick . value ;
213
212
const { text } = VSCodeUtils . getSelection ( ) ;
214
213
const slugger = getSlugger ( ) ;
215
- quickPick . value = [ quickPick . value , slugger . slug ( text ! ) ] . join ( "." ) ;
214
+ quickPick . selectionModifierValue = slugger . slug ( text ! ) ;
215
+ if ( quickPick . noteModifierValue || quickPick . prefix ) {
216
+ quickPick . value = NotePickerUtils . getPickerValue ( quickPick ) ;
217
+ } else {
218
+ quickPick . value = [
219
+ quickPick . rawValue ,
220
+ NotePickerUtils . getPickerValue ( quickPick )
221
+ ] . join ( "." ) ;
222
+ }
216
223
return ;
217
224
}
218
225
219
226
async onDisable ( { quickPick } : ButtonHandleOpts ) {
220
227
quickPick . selectionProcessFunc = undefined ;
221
- quickPick . value = quickPick . rawValue ;
228
+ quickPick . selectionModifierValue = undefined ;
229
+ quickPick . value = NotePickerUtils . getPickerValue ( quickPick ) ;
222
230
return ;
223
231
}
224
232
}
@@ -262,18 +270,21 @@ export class JournalBtn extends DendronBtn {
262
270
}
263
271
264
272
async onEnable ( { quickPick } : ButtonHandleOpts ) {
265
- quickPick . modifyPickerValueFunc = ( value : string ) => {
266
- return DendronClientUtilsV2 . genNoteName ( "JOURNAL" , {
267
- overrides : { domain : value } ,
268
- } ) ;
273
+ quickPick . modifyPickerValueFunc = ( ) => {
274
+ return DendronClientUtilsV2 . genNoteName ( "JOURNAL" ) ;
269
275
} ;
270
- quickPick . rawValue = quickPick . value ;
271
- quickPick . value = quickPick . modifyPickerValueFunc ( quickPick . rawValue ) ;
276
+ const { noteName, prefix } = quickPick . modifyPickerValueFunc ( ) ;
277
+ quickPick . noteModifierValue = _ . difference ( noteName . split ( "." ) , prefix . split ( "." ) ) . join ( "." ) ;
278
+ quickPick . prevValue = quickPick . value ;
279
+ quickPick . prefix = prefix ;
280
+ quickPick . value = NotePickerUtils . getPickerValue ( quickPick ) ;
272
281
return ;
273
282
}
274
283
275
284
async onDisable ( { quickPick } : ButtonHandleOpts ) {
276
285
quickPick . modifyPickerValueFunc = undefined ;
286
+ quickPick . noteModifierValue = undefined ;
287
+ quickPick . prevValue = quickPick . value ;
277
288
quickPick . value = quickPick . rawValue ;
278
289
}
279
290
}
@@ -290,31 +301,47 @@ export class ScratchBtn extends DendronBtn {
290
301
}
291
302
292
303
async onEnable ( { quickPick } : ButtonHandleOpts ) {
293
- quickPick . modifyPickerValueFunc = ( value : string ) => {
294
- return DendronClientUtilsV2 . genNoteName ( "SCRATCH" , {
295
- overrides : { domain : value } ,
296
- } ) ;
304
+ quickPick . modifyPickerValueFunc = ( ) => {
305
+ return DendronClientUtilsV2 . genNoteName ( "SCRATCH" ) ;
297
306
} ;
298
- quickPick . rawValue = quickPick . value ;
299
- quickPick . value = quickPick . modifyPickerValueFunc ( quickPick . rawValue ) ;
307
+ quickPick . prevValue = quickPick . value ;
308
+ const { noteName, prefix } = quickPick . modifyPickerValueFunc ( ) ;
309
+ quickPick . noteModifierValue = _ . difference ( noteName . split ( "." ) , prefix . split ( "." ) ) . join ( "." ) ;
310
+ quickPick . prefix = prefix ;
311
+ quickPick . value = NotePickerUtils . getPickerValue ( quickPick ) ;
300
312
return ;
301
313
}
302
314
303
315
async onDisable ( { quickPick } : ButtonHandleOpts ) {
304
316
quickPick . modifyPickerValueFunc = undefined ;
317
+ quickPick . noteModifierValue = undefined ;
318
+ quickPick . prevValue = quickPick . value ;
305
319
quickPick . value = quickPick . rawValue ;
306
320
}
307
321
}
308
- class HorizontalSplitBtn extends DendronBtn {
322
+ export class HorizontalSplitBtn extends DendronBtn {
309
323
static create ( pressed ?: boolean ) {
310
- return new DendronBtn ( {
324
+ return new HorizontalSplitBtn ( {
311
325
title : "Split Horizontal" ,
312
326
iconOff : "split-horizontal" ,
313
327
iconOn : "menu-selection" ,
314
328
type : "horizontal" ,
315
329
pressed,
316
330
} ) ;
317
331
}
332
+
333
+ async onEnable ( { quickPick } : ButtonHandleOpts ) {
334
+ quickPick . showNote = async ( uri ) => vscode . window . showTextDocument (
335
+ uri ,
336
+ { viewColumn : vscode . ViewColumn . Beside }
337
+ ) ;
338
+ return ;
339
+ }
340
+
341
+ async onDisable ( { quickPick } : ButtonHandleOpts ) {
342
+ quickPick . showNote = async ( uri ) => vscode . window . showTextDocument ( uri ) ;
343
+ return ;
344
+ }
318
345
}
319
346
320
347
export class DirectChildFilterBtn extends DendronBtn {
@@ -366,9 +393,9 @@ export class MultiSelectBtn extends DendronBtn {
366
393
}
367
394
}
368
395
369
- export class CopyNoteLinkButton extends DendronBtn {
396
+ export class CopyNoteLinkBtn extends DendronBtn {
370
397
static create ( pressed ?: boolean ) {
371
- return new CopyNoteLinkButton ( {
398
+ return new CopyNoteLinkBtn ( {
372
399
title : "Copy Note Link" ,
373
400
iconOff : "clippy" ,
374
401
iconOn : "menu-selection" ,
@@ -429,7 +456,7 @@ export function createAllButtons(
429
456
) : DendronBtn [ ] {
430
457
const buttons = [
431
458
MultiSelectBtn . create ( ) ,
432
- CopyNoteLinkButton . create ( ) ,
459
+ CopyNoteLinkBtn . create ( ) ,
433
460
DirectChildFilterBtn . create ( ) ,
434
461
SelectionExtractBtn . create ( ) ,
435
462
Selection2LinkBtn . create ( ) ,
0 commit comments