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 195
195
class ="btn btn-default-sm btn-sm ">
196
196
Install
197
197
</ 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 >
198
205
</ td >
199
206
</ tr >
200
207
Original file line number Diff line number Diff line change @@ -177,6 +177,17 @@ export class InstallPackageComponent implements AfterViewInit {
177
177
}
178
178
}
179
179
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
+
180
191
findPackageStableVersion (
181
192
searchPackageResultVersions : SearchPackageResultVersion [ ]
182
193
) : string {
Original file line number Diff line number Diff line change @@ -88,6 +88,23 @@ export class CommandService {
88
88
return obs ;
89
89
}
90
90
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
+
91
108
updatePackage (
92
109
projectId : number ,
93
110
packageName : string ,
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ import {
23
23
} from './services/update.service' ;
24
24
import { remove , removeAllPackage } from './services/uninstall.service' ;
25
25
import { install } from './services/install.service' ;
26
+ import { copy } from './services/copy.service' ;
26
27
27
28
export function activate ( context : vscode . ExtensionContext ) {
28
29
const vscexpress = new VSCExpress ( context , 'front-end' ) ;
@@ -189,6 +190,26 @@ export function activate(context: vscode.ExtensionContext) {
189
190
)
190
191
) ;
191
192
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
+
192
213
context . subscriptions . push (
193
214
vscode . commands . registerCommand (
194
215
'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