From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: ediff refinement issues Date: Tue, 30 Mar 2021 22:56:00 -0400 Message-ID: References: <37A77E4AAFA04D55AE5F755FDFB995F7@us.oracle.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23856"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:/J6hi29iVbxsXcudXO34H3rtj0U= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Mar 31 04:56:35 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lRR22-000661-Tf for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 31 Mar 2021 04:56:34 +0200 Original-Received: from localhost ([::1]:58372 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lRR21-0006xF-V1 for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 30 Mar 2021 22:56:33 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33162) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lRR1f-0006x4-79 for help-gnu-emacs@gnu.org; Tue, 30 Mar 2021 22:56:11 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:50398) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lRR1d-0006gl-JU for help-gnu-emacs@gnu.org; Tue, 30 Mar 2021 22:56:10 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1lRR1b-0005bT-7O for help-gnu-emacs@gnu.org; Wed, 31 Mar 2021 04:56:07 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:128775 Archived-At: >>> However, if the paragraphs are commented (for example, >>> with ;;; in elisp or # in shell), it highlights the ;;; >>> or the #. it also sometimes highlights words as a side >>> effect. FWIW, this is largely unavoidable. Refilling has an effect similar to replacing foo bar ;; baz with foo ;; bar baz So the "fine" diff indicates that semi colons were removed at one place and inserted at the other. In order to "abstract away" semi-colons which are placed at the beginning of all lines, it would take extra work and neither ediff nor smerge does that. I haven't thought about how easy/hard it might be to implement such a thing (but at first glance, I'd say it's probably not trivial). As for why ediff sometimes highlights words and not smerge, I suspect it's mostly an accident (linked to the details of how the fine-diffs are defined in the two cases). E.g. in the above example you could also say that what happened is that "bar" was removed at one place and inserted at another. That's also valid, tho less good. Maybe Ediff gets it "less good" more often than Smerge because it doesn't have the equivalent of `smerge-refine-weight-hack` which marks "move ;;" as less costly than "move bar" in the above example? Stefan