On Mon, 2 Dec 2024 at 00:51, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>> # keybinding
>> would be nice to provide default keybinding for smerge-swap: C-c ^ s

Interesting.  I've never found a use for that command, personally.
Could you give some hint for the situations where you found it handy?

Example:
I keep my functions alphabetically ordered.
When I merge two changes which added function in same alphabetical place,
I often need to change their order.

same goes for if/else if sequence


>> # smerge-extend
>> Helpful when user intent to keep both.

Sorry: to keep both what?

Both = lower + upper.

Using above example:
when I intent to keep both functions, end of block (eg: C, Java, Perl, ...) will currently not appear twice,
should be manually added. Same for empty line separating functions.

On my current WIP such functions often shares more than one tailing line
 

>> (defun smerge-extend ()
>>   "Copy the line directly following the conflict into both upper and lower sections.

Hmm... Why just one line and why only from the end?

One line - one can use it multiple times to add more.

And yes, you are right, it should accept numeric argument (negative for preceding line).
Though I still believe common use case will be to extend with following.

 
[ IOW, here as well, I'm curious what is the kind of scenario where you
  use that command.  ]

Scenario described above.

 

>> This is useful when both versions need to share some common code that follows the conflict."

Hmm... my conflicts have usually 3 sections, so "both" isn't right.

[ Unless you specifically chose 2-way conflicts, I recommend you
  investigate how to get 3-way conflicts, because they give a lot more
  information and allow for example `smerge-resolve` to "just work" in
  more cases.  YMMV, but personally whenever I'm faced with a 2-way
  conflict, I'm frustrated.  ]

Different experiences - I for example run mostly into 2-way conflicts
 


        Stefan


Brano