File tree Expand file tree Collapse file tree 5 files changed +80
-0
lines changed
components/install-package Expand file tree Collapse file tree 5 files changed +80
-0
lines changed Original file line number Diff line number Diff line change 195195 class ="btn btn-default-sm btn-sm ">
196196 Install
197197 </ button >
198+ < button
199+ class ="mt-2 "
200+ type ="button "
201+ (click) ="copy(package.id) "
202+ class ="btn btn-default-sm btn-sm ">
203+ Copy
204+ </ button >
198205 </ td >
199206 </ tr >
200207
Original file line number Diff line number Diff line change @@ -177,6 +177,17 @@ export class InstallPackageComponent implements AfterViewInit {
177177 }
178178 }
179179
180+ copy ( packageName : string ) {
181+ this . loading . startLoading ( ) ;
182+ const selectedVersion = this . packageListVersion [ packageName ] ;
183+ this . commandSrv
184+ . copyPackage ( packageName , selectedVersion )
185+ . subscribe ( res => {
186+ this . commandSrv . syncViews ( 'getData' ) ;
187+ this . loading . stopLoading ( ) ;
188+ } ) ;
189+ }
190+
180191 findPackageStableVersion (
181192 searchPackageResultVersions : SearchPackageResultVersion [ ]
182193 ) : string {
Original file line number Diff line number Diff line change @@ -88,6 +88,23 @@ export class CommandService {
8888 return obs ;
8989 }
9090
91+ copyPackage (
92+ packageName : string ,
93+ selectedVersion : string
94+ ) : Observable < CommandResult < any > > {
95+ var obs = new Observable < CommandResult < any > > ( sub => {
96+ command (
97+ 'nugetpackagemanagergui.copyPackage' ,
98+ {
99+ packageName : packageName ,
100+ selectedVersion : selectedVersion ,
101+ } ,
102+ ( res : CommandResult < any > ) => sub . next ( res )
103+ ) ;
104+ } ) ;
105+ return obs ;
106+ }
107+
91108 updatePackage (
92109 projectId : number ,
93110 packageName : string ,
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ import {
2323} from './services/update.service' ;
2424import { remove , removeAllPackage } from './services/uninstall.service' ;
2525import { install } from './services/install.service' ;
26+ import { copy } from './services/copy.service' ;
2627
2728export function activate ( context : vscode . ExtensionContext ) {
2829 const vscexpress = new VSCExpress ( context , 'front-end' ) ;
@@ -189,6 +190,26 @@ export function activate(context: vscode.ExtensionContext) {
189190 )
190191 ) ;
191192
193+ context . subscriptions . push (
194+ vscode . commands . registerCommand (
195+ 'nugetpackagemanagergui.copyPackage' ,
196+ async ( data : {
197+ packageName : string ;
198+ selectedVersion : string ;
199+ } ) => {
200+ await tryCatch (
201+ async ( ) =>
202+ copy (
203+ data . packageName ,
204+ data . selectedVersion
205+ ) ,
206+ `${ data . packageName } copied to clipboard` ,
207+ false
208+ ) ;
209+ }
210+ )
211+ ) ;
212+
192213 context . subscriptions . push (
193214 vscode . commands . registerCommand (
194215 'nugetpackagemanagergui.updateAllPackage' ,
Original file line number Diff line number Diff line change 1+ import * as vscode from 'vscode' ;
2+ import { ServiceResult } from '../models/common.model' ;
3+
4+ /**
5+ * Copy the package reference to the clipboard
6+ * @param packageName The package name
7+ * @param selectedVersion The target version
8+ * @returns
9+ */
10+ export async function copy (
11+ packageName : string ,
12+ selectedVersion : string
13+ ) : Promise < ServiceResult > {
14+
15+ const packageReference = `#r "nuget:${ packageName } , ${ selectedVersion } "` ;
16+
17+ await vscode . env . clipboard . writeText ( packageReference ) ;
18+
19+ return {
20+ isSuccessful : true ,
21+ message : `The package '${ packageName } ' has been copied to the clipboard.` ,
22+ } ;
23+
24+ }
You can’t perform that action at this time.
0 commit comments