@@ -15,9 +15,9 @@ export interface DiffWithCommandArgsRevision {
1515}
1616
1717export interface DiffWithCommandArgs {
18- lhs ? : DiffWithCommandArgsRevision ;
19- rhs ? : DiffWithCommandArgsRevision ;
20- repoPath ? : string ;
18+ lhs : DiffWithCommandArgsRevision ;
19+ rhs : DiffWithCommandArgsRevision ;
20+ repoPath : string | undefined ;
2121
2222 line ?: number ;
2323 showOptions ?: TextDocumentShowOptions ;
@@ -26,59 +26,43 @@ export interface DiffWithCommandArgs {
2626@command ( )
2727export class DiffWithCommand extends ActiveEditorCommand {
2828 static getMarkdownCommandArgs ( args : DiffWithCommandArgs ) : string ;
29- static getMarkdownCommandArgs ( commit1 : GitCommit , commit2 : GitCommit ) : string ;
30- static getMarkdownCommandArgs ( argsOrCommit1 : DiffWithCommandArgs | GitCommit , commit2 ?: GitCommit ) : string {
29+ static getMarkdownCommandArgs ( commit : GitCommit , line ?: number ) : string ;
30+ static getMarkdownCommandArgs ( argsOrCommit : DiffWithCommandArgs | GitCommit , line ?: number ) : string {
3131 let args : DiffWithCommandArgs | GitCommit ;
32- if ( argsOrCommit1 instanceof GitCommit ) {
33- const commit1 = argsOrCommit1 ;
34-
35- if ( commit2 === undefined ) {
36- if ( commit1 . isUncommitted ) {
37- args = {
38- repoPath : commit1 . repoPath ,
39- lhs : {
40- sha : 'HEAD' ,
41- uri : commit1 . uri
42- } ,
43- rhs : {
44- sha : '' ,
45- uri : commit1 . uri
46- }
47- } ;
48- }
49- else {
50- args = {
51- repoPath : commit1 . repoPath ,
52- lhs : {
53- sha :
54- commit1 . previousSha !== undefined
55- ? commit1 . previousSha
56- : GitService . deletedOrMissingSha ,
57- uri : commit1 . previousUri !
58- } ,
59- rhs : {
60- sha : commit1 . sha ,
61- uri : commit1 . uri
62- }
63- } ;
64- }
32+ if ( argsOrCommit instanceof GitCommit ) {
33+ const commit = argsOrCommit ;
34+
35+ if ( commit . isUncommitted ) {
36+ args = {
37+ repoPath : commit . repoPath ,
38+ lhs : {
39+ sha : 'HEAD' ,
40+ uri : commit . uri
41+ } ,
42+ rhs : {
43+ sha : '' ,
44+ uri : commit . uri
45+ } ,
46+ line : line
47+ } ;
6548 }
6649 else {
6750 args = {
68- repoPath : commit1 . repoPath ,
51+ repoPath : commit . repoPath ,
6952 lhs : {
70- sha : commit1 . sha ,
71- uri : commit1 . uri
53+ sha : commit . previousSha !== undefined ? commit . previousSha : GitService . deletedOrMissingSha ,
54+ uri : commit . previousUri !
7255 } ,
7356 rhs : {
74- sha : commit2 . sha ,
75- uri : commit2 . uri
76- }
57+ sha : commit . sha ,
58+ uri : commit . uri
59+ } ,
60+ line : line
7761 } ;
7862 }
7963 }
8064 else {
81- args = argsOrCommit1 ;
65+ args = argsOrCommit ;
8266 }
8367
8468 return super . getMarkdownCommandArgsCore < DiffWithCommandArgs > ( Commands . DiffWith , args ) ;
@@ -88,14 +72,17 @@ export class DiffWithCommand extends ActiveEditorCommand {
8872 super ( Commands . DiffWith ) ;
8973 }
9074
91- async execute ( editor ?: TextEditor , uri ?: Uri , args : DiffWithCommandArgs = { } ) : Promise < any > {
75+ async execute ( editor ?: TextEditor , uri ?: Uri , args ?: DiffWithCommandArgs ) : Promise < any > {
76+ if ( args === undefined || args . lhs === undefined || args . rhs === undefined ) return undefined ;
77+
9278 args = {
9379 ...args ,
9480 lhs : { ...( args . lhs as DiffWithCommandArgsRevision ) } ,
9581 rhs : { ...( args . rhs as DiffWithCommandArgsRevision ) } ,
96- showOptions : { ...args . showOptions }
82+ showOptions : args . showOptions === undefined ? undefined : { ...args . showOptions }
9783 } ;
98- if ( args . repoPath === undefined || args . lhs === undefined || args . rhs === undefined ) return undefined ;
84+
85+ if ( args . repoPath === undefined ) return undefined ;
9986
10087 try {
10188 let lhsSha = args . lhs . sha ;
0 commit comments