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 314314 "dark" : " images/dark/search-regular.svg"
315315 }
316316 },
317+ {
318+ "command" : " mdb.copyDocumentIdFromTree" ,
319+ "title" : " Copy Document ID"
320+ },
321+ {
322+ "command" : " mdb.copyDocumentFromTree" ,
323+ "title" : " Copy Document"
324+ },
317325 {
318326 "command" : " mdb.openPlaygroundFromTreeItem" ,
319327 "title" : " Open Playground"
559567 "when" : " view == mongoDBConnectionExplorer && viewItem == documentListTreeItem" ,
560568 "group" : " 2@1"
561569 },
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+ },
562580 {
563581 "command" : " mdb.refreshSchema" ,
564582 "when" : " view == mongoDBConnectionExplorer && viewItem == schemaTreeItem"
625643 "command" : " mdb.searchForDocuments" ,
626644 "when" : " false"
627645 },
646+ {
647+ "command" : " mdb.copyDocumentIdFromTree" ,
648+ "when" : " false"
649+ },
650+ {
651+ "command" : " mdb.copyDocumentFromTree" ,
652+ "when" : " false"
653+ },
628654 {
629655 "command" : " mdb.addConnection" ,
630656 "when" : " false"
Original file line number Diff line number Diff line change @@ -45,6 +45,8 @@ enum EXTENSION_COMMANDS {
4545 MDB_RENAME_CONNECTION = 'mdb.renameConnection' ,
4646 MDB_ADD_DATABASE = 'mdb.addDatabase' ,
4747 MDB_SEARCH_FOR_DOCUMENTS = 'mdb.searchForDocuments' ,
48+ MDB_COPY_DOCUMENT_ID_FROM_TREE = 'mdb.copyDocumentIdFromTree' ,
49+ MDB_COPY_DOCUMENT_FROM_TREE = 'mdb.copyDocumentFromTree' ,
4850 MDB_COPY_DATABASE_NAME = 'mdb.copyDatabaseName' ,
4951 MDB_DROP_DATABASE = 'mdb.dropDatabase' ,
5052 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 {
487487 return Promise . resolve ( true ) ;
488488 }
489489 ) ;
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+ ) ;
490522 this . registerCommand (
491523 EXTENSION_COMMANDS . MDB_REFRESH_SCHEMA ,
492524 ( schemaTreeItem : SchemaTreeItem ) : Promise < boolean > => {
You can’t perform that action at this time.
0 commit comments