File tree Expand file tree Collapse file tree 3 files changed +60
-0
lines changed Expand file tree Collapse file tree 3 files changed +60
-0
lines changed Original file line number Diff line number Diff line change 314
314
"dark" : " images/dark/search-regular.svg"
315
315
}
316
316
},
317
+ {
318
+ "command" : " mdb.copyDocumentIdFromTree" ,
319
+ "title" : " Copy Document ID"
320
+ },
321
+ {
322
+ "command" : " mdb.copyDocumentFromTree" ,
323
+ "title" : " Copy Document"
324
+ },
317
325
{
318
326
"command" : " mdb.openPlaygroundFromTreeItem" ,
319
327
"title" : " Open Playground"
559
567
"when" : " view == mongoDBConnectionExplorer && viewItem == documentListTreeItem" ,
560
568
"group" : " 2@1"
561
569
},
570
+ {
571
+ "command" : " mdb.copyDocumentIdFromTree" ,
572
+ "when" : " view == mongoDBConnectionExplorer && viewItem == documentTreeItem" ,
573
+ "group" : " 1@1"
574
+ },
575
+ {
576
+ "command" : " mdb.copyDocumentFromTree" ,
577
+ "when" : " view == mongoDBConnectionExplorer && viewItem == documentTreeItem" ,
578
+ "group" : " 1@2"
579
+ },
562
580
{
563
581
"command" : " mdb.refreshSchema" ,
564
582
"when" : " view == mongoDBConnectionExplorer && viewItem == schemaTreeItem"
625
643
"command" : " mdb.searchForDocuments" ,
626
644
"when" : " false"
627
645
},
646
+ {
647
+ "command" : " mdb.copyDocumentIdFromTree" ,
648
+ "when" : " false"
649
+ },
650
+ {
651
+ "command" : " mdb.copyDocumentFromTree" ,
652
+ "when" : " false"
653
+ },
628
654
{
629
655
"command" : " mdb.addConnection" ,
630
656
"when" : " false"
Original file line number Diff line number Diff line change @@ -45,6 +45,8 @@ enum EXTENSION_COMMANDS {
45
45
MDB_RENAME_CONNECTION = 'mdb.renameConnection' ,
46
46
MDB_ADD_DATABASE = 'mdb.addDatabase' ,
47
47
MDB_SEARCH_FOR_DOCUMENTS = 'mdb.searchForDocuments' ,
48
+ MDB_COPY_DOCUMENT_ID_FROM_TREE = 'mdb.copyDocumentIdFromTree' ,
49
+ MDB_COPY_DOCUMENT_FROM_TREE = 'mdb.copyDocumentFromTree' ,
48
50
MDB_COPY_DATABASE_NAME = 'mdb.copyDatabaseName' ,
49
51
MDB_DROP_DATABASE = 'mdb.dropDatabase' ,
50
52
MDB_REFRESH_DATABASE = 'mdb.refreshDatabase' ,
Original file line number Diff line number Diff line change @@ -487,6 +487,38 @@ export default class MDBExtensionController implements vscode.Disposable {
487
487
return Promise . resolve ( true ) ;
488
488
}
489
489
) ;
490
+ this . registerCommand (
491
+ EXTENSION_COMMANDS . MDB_COPY_DOCUMENT_ID_FROM_TREE ,
492
+ async ( element : DocumentTreeItem ) : Promise < boolean > => {
493
+ const { documentId } = element ;
494
+
495
+ if ( ! documentId ) {
496
+ void vscode . window . showWarningMessage ( 'Can\'t copy ID from document that has no ID.' ) ;
497
+ return false ;
498
+ }
499
+
500
+ let body = JSON . stringify ( documentId ) ;
501
+
502
+ if ( body . startsWith ( '"' ) ) {
503
+ body = body . slice ( 1 , body . length - 1 ) ;
504
+ }
505
+
506
+ await vscode . env . clipboard . writeText ( body ) ;
507
+ return true ;
508
+ }
509
+ ) ;
510
+ this . registerCommand (
511
+ EXTENSION_COMMANDS . MDB_COPY_DOCUMENT_FROM_TREE ,
512
+ async ( element : DocumentTreeItem ) : Promise < boolean > => {
513
+ const { document } = element ;
514
+ const tabSize = vscode . workspace
515
+ . getConfiguration ( 'editor' )
516
+ . get ( 'tabSize' , 2 ) ;
517
+ const body = JSON . stringify ( document , undefined , tabSize ) ;
518
+ await vscode . env . clipboard . writeText ( body ) ;
519
+ return true ;
520
+ }
521
+ ) ;
490
522
this . registerCommand (
491
523
EXTENSION_COMMANDS . MDB_REFRESH_SCHEMA ,
492
524
( schemaTreeItem : SchemaTreeItem ) : Promise < boolean > => {
You can’t perform that action at this time.
0 commit comments