88 CommitDetailQuickPickOptions ,
99 MaxSubjectCharacters ,
1010 CommitDetailType ,
11+ FillSubjectWithCurrent ,
1112} from './config/commit-detail' ;
1213import GetCommitInputType , { CommitInputType } from './config/commit-input' ;
1314import CommitTemplate from './config/template-type' ;
@@ -105,7 +106,10 @@ export async function activate(context: vscode.ExtensionContext) {
105106 const inputMessageDetail = ( _key : string | number ) => {
106107 const _detailType = CommitDetailType . find ( item => item . key === _key ) ;
107108 CommitInputType . prompt = `${ _detailType ?. description } 👉 ${ _detailType ?. detail } ` ;
108- CommitInputType . value = message_config [ _key ] ? message_config [ _key ] : '' ;
109+ CommitInputType . value = message_config [ _key ] || '' ;
110+ if ( _key === 'subject' && FillSubjectWithCurrent ) {
111+ CommitInputType . value = message_config [ _key ] || '' ;
112+ }
109113 vscode . window . showInputBox ( CommitInputType ) . then ( value => {
110114 const _value = value || '' ;
111115 message_config [ _key ] = _value ;
@@ -125,13 +129,13 @@ export async function activate(context: vscode.ExtensionContext) {
125129 } ) ;
126130 } ;
127131 //是否存在模板 If has template
128- const existTemplete = ( ) => {
132+ const existTemplate = ( ) => {
129133 return Array . isArray ( CommitTemplate ) && CommitTemplate . length > 0 ;
130134 } ;
131135 //完成输入 Complete input message
132136 const completeInputMessage = ( select ?: boolean ) => {
133137 vscode . commands . executeCommand ( 'workbench.view.scm' ) ;
134- if ( existTemplete ( ) && ! select ) {
138+ if ( existTemplate ( ) && ! select ) {
135139 const defaultTemp = CommitTemplate . find ( item => item . default ) ;
136140 if ( defaultTemp !== undefined ) {
137141 message_config . templateName = defaultTemp . templateName ;
@@ -151,8 +155,7 @@ export async function activate(context: vscode.ExtensionContext) {
151155 ) ;
152156 _CommitDetailType . map ( ( item : any ) => {
153157 if ( item . isEdit ) {
154- item . description = `${ item . description } 👍 >> ${
155- message_config [ item . key || '' ]
158+ item . description = `${ item . description } 👍 >> ${ message_config [ item . key || '' ]
156159 } `;
157160 }
158161 return item ;
@@ -222,6 +225,13 @@ export async function activate(context: vscode.ExtensionContext) {
222225 }
223226 } ) ;
224227 } ;
228+ // 设置 detail 信息
229+ const setMessageInput = ( _key : keyof GitMessage , message : string ) => {
230+ const _detailType = CommitDetailType . find ( item => item . key === _key ) ;
231+ if ( ! _detailType || message . length <= 0 ) { return ; }
232+ message_config [ _key ] = message ;
233+ _detailType . isEdit = true ;
234+ } ;
225235 //点击图标触发快捷选项 Click the icon to trigger shortcut options
226236 let disposable = vscode . commands . registerCommand (
227237 'extension.showGitCommit' ,
@@ -233,11 +243,15 @@ export async function activate(context: vscode.ExtensionContext) {
233243 return repo . rootUri . path === uriRoot ?. path ;
234244 } ) ;
235245 }
246+ if ( FillSubjectWithCurrent ) {
247+ const message = repo . inputBox . value ;
248+ setMessageInput ( 'subject' , message ) ;
249+ }
236250 startMessageInput ( ) ;
237251 } ,
238252 ) ;
239253 context . subscriptions . push ( disposable ) ;
240254}
241255
242256// this method is called when your extension is deactivated
243- export function deactivate ( ) { }
257+ export function deactivate ( ) { }
0 commit comments