Subject: bug#60338: [PATCH] Add option to present server changes as diffs

From: Philip Kaludercic <[email-masked]>
Date: Mon, 12 Jun 2023 13:29:21 +0000

Eli Zaretskii <[email-masked]> writes:

>> From: Philip Kaludercic <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Mon, 12 Jun 2023 12:35:09 +0000
>> 
>> Eli Zaretskii <[email-masked]> writes:
>> 
>> > Isn't there a better way of presenting the edits in human-readable
>> > form than apply them and then run Diff?  What format is used by the
>> > server itself to send the edits?
>> 
>> The server sends a JSON message.  Here is an example from a little toy
>> project of mine in C, where I intentionally uncommented a #include
>> directive:
>
> And we cannot generate the Diff format from this?

Certainly we /could/, but I don't think that would be worth the effort
to generate a proper diff manually.

>> > Besides, this assumes the 'diff' command is available, which is not
>> > portable -- one more reason not to go that way, or at leas provide an
>> > alternative.
>> 
>> I am personally fond of this approach, because I get a regular text
>> buffer that I can store or send someone.  The fact that diff is not
>> available everywhere (even though I would guess any system with a
>> language server /should/ have diff installed), is an argument against
>> enabling this behaviour by default, not against providing this interface.
>
> What do we suggest to people who don't have Diff, though?  Nothing?

They still have two different options for
`eglot-confirm-server-initiated-edits', 'confirm (the default) and nil.
This is the current state.

-- 
Philip Kaludercic