@@ -27,12 +27,14 @@ type Command = {
2727 parseTargets : ParseTargets ;
2828
2929 makesGitRebaseExitToPause : boolean ;
30+ willDisappearFromCommandsListInNextGitRebaseTodoFile : boolean ;
3031} ;
3132
3233const createCommand = (
3334 nameButNeverAlias : string ,
3435 {
3536 makesGitRebaseExitToPause,
37+ willDisappearFromCommandsListInNextGitRebaseTodoFile,
3638 parseTargets = ( { split } ) => {
3739 assert (
3840 split . length >= 2 ,
@@ -57,6 +59,11 @@ const createCommand = (
5759 */
5860 makesGitRebaseExitToPause : boolean ;
5961
62+ /**
63+ * TODO RENAME
64+ */
65+ willDisappearFromCommandsListInNextGitRebaseTodoFile : boolean ;
66+
6067 // nameOrAlias: EitherRebaseEitherCommandOrAlias, //
6168 parseTargets ?: Command [ "parseTargets" ] ;
6269 maxUseCount ?: number ;
@@ -68,23 +75,33 @@ const createCommand = (
6875 nameButNeverAlias : nameButNeverAlias as EitherRebaseCommand , // TODO: TS
6976 parseTargets,
7077 makesGitRebaseExitToPause,
78+ willDisappearFromCommandsListInNextGitRebaseTodoFile,
7179} ) ;
7280
7381export const regularRebaseCommands = {
74- pick : createCommand ( "pick" , { makesGitRebaseExitToPause : false } ) ,
82+ pick : createCommand ( "pick" , {
83+ makesGitRebaseExitToPause : false ,
84+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false , //
85+ } ) ,
7586 // p: standardCommand,
7687 reword : createCommand ( "reword" , {
7788 makesGitRebaseExitToPause : false /** opens editor & then continues, w/o exiting in between */ ,
89+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false ,
7890 } ) ,
7991 // r: standardCommand,
80- edit : createCommand ( "edit" , { makesGitRebaseExitToPause : true } ) ,
92+ edit : createCommand ( "edit" , {
93+ makesGitRebaseExitToPause : true ,
94+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false , //
95+ } ) ,
8196 // e: standardCommand,
8297 squash : createCommand ( "squash" , {
8398 makesGitRebaseExitToPause : false /** opens editor & then continues, w/o exiting in between */ ,
99+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false ,
84100 } ) ,
85101 // s: standardCommand,
86102 fixup : createCommand ( "fixup" , {
87103 makesGitRebaseExitToPause : false /** opens editor & then continues, w/o exiting in between */ ,
104+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false ,
88105
89106 parseTargets : ( { split } ) => {
90107 /**
@@ -102,20 +119,35 @@ export const regularRebaseCommands = {
102119 // f: standardCommand,
103120 exec : createCommand ( "exec" , {
104121 makesGitRebaseExitToPause : false , //
122+ willDisappearFromCommandsListInNextGitRebaseTodoFile : true ,
105123
106124 parseTargets : ( { rest } ) => [ rest ] ,
107125 } ) ,
108126 // x: standardCommand,
109- break : createCommand ( "break" , { makesGitRebaseExitToPause : true , parseTargets : ( ) => null } ) ,
127+ break : createCommand ( "break" , {
128+ makesGitRebaseExitToPause : true ,
129+ willDisappearFromCommandsListInNextGitRebaseTodoFile : true , //
130+ parseTargets : ( ) => null ,
131+ } ) ,
110132 // b: standardCommand,
111- drop : createCommand ( "drop" , { makesGitRebaseExitToPause : false } ) ,
133+ drop : createCommand ( "drop" , {
134+ makesGitRebaseExitToPause : false ,
135+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false , // TODO
136+ } ) ,
112137 // d: standardCommand,
113- label : createCommand ( "label" , { makesGitRebaseExitToPause : false /** TODO VERIFY */ } ) ,
138+ label : createCommand ( "label" , {
139+ makesGitRebaseExitToPause : false /** TODO VERIFY */ ,
140+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false , // TODO VERIFY
141+ } ) ,
114142 // l: standardCommand,
115- reset : createCommand ( "reset" , { makesGitRebaseExitToPause : false /** TODO VERIFY */ } ) ,
143+ reset : createCommand ( "reset" , {
144+ makesGitRebaseExitToPause : false /** TODO VERIFY */ ,
145+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false , // TODO VERIFY
146+ } ) ,
116147 // t: standardCommand,
117148 merge : createCommand ( "merge" , {
118149 makesGitRebaseExitToPause : false /** TODO VERIFY */ ,
150+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false , // TODO VERIFY
119151
120152 parseTargets : ( { split } ) => {
121153 if ( [ "-C" , "-c" ] . includes ( split [ 1 ] ) ) {
@@ -192,27 +224,31 @@ const branchValidator: Validator = ({ rest, reasonsIfBad: reasonsWhyInvalid }) =
192224export const stackedRebaseCommands = {
193225 "branch-end" : createCommand ( "branch-end" , {
194226 makesGitRebaseExitToPause : false ,
227+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false ,
195228
196229 maxUseCount : Infinity ,
197230 isRestValid : branchValidator ,
198231 parseTargets : ( { rest } ) => [ rest ] ,
199232 } ) ,
200233 "branch-end-new" : createCommand ( "branch-end-new" , {
201234 makesGitRebaseExitToPause : false ,
235+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false ,
202236
203237 maxUseCount : Infinity ,
204238 isRestValid : branchValidator ,
205239 parseTargets : ( { rest } ) => [ rest ] ,
206240 } ) ,
207241 "branch-end-initial" : createCommand ( "branch-end-initial" , {
208242 makesGitRebaseExitToPause : false ,
243+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false ,
209244
210245 maxUseCount : 1 ,
211246 isRestValid : branchValidator ,
212247 parseTargets : ( { rest } ) => [ rest ] ,
213248 } ) ,
214249 "branch-end-last" : createCommand ( "branch-end-last" , {
215250 makesGitRebaseExitToPause : false ,
251+ willDisappearFromCommandsListInNextGitRebaseTodoFile : false ,
216252
217253 maxUseCount : 1 ,
218254 isRestValid : branchValidator ,
@@ -260,11 +296,17 @@ const allEitherRebaseCommandAliases = {
260296export const rebaseCommandsThatMakeRebaseExitToPause : Command [ ] = Object . values ( allEitherRebaseCommands ) . filter (
261297 ( cmd ) => cmd . makesGitRebaseExitToPause
262298) ;
263-
264299export const namesOfRebaseCommandsThatMakeRebaseExitToPause : EitherRebaseCommand [ ] = rebaseCommandsThatMakeRebaseExitToPause . map (
265300 ( cmd ) => cmd . nameButNeverAlias
266301) ;
267302
303+ export const rebaseCommandsThatWillDisappearFromCommandList : Command [ ] = Object . values ( allEitherRebaseCommands ) . filter (
304+ ( cmd ) => cmd . willDisappearFromCommandsListInNextGitRebaseTodoFile
305+ ) ;
306+ export const namesOfRebaseCommandsThatWillDisappearFromCommandList : EitherRebaseCommand [ ] = rebaseCommandsThatWillDisappearFromCommandList . map (
307+ ( cmd ) => cmd . nameButNeverAlias
308+ ) ;
309+
268310type LineNr = {
269311 /**
270312 * indexed from 0.
0 commit comments