[darcs-users] Feature idea: Suggest replace operation
Eric Kow
kowey at darcs.net
Mon Sep 14 13:44:18 UTC 2009
Hi Florent,
Any comments, please?
Thanks for the suggestion, Henrik :-)
On Mon, Sep 07, 2009 at 12:25:16 +0200, Henrik Hjelte wrote:
> Hello, maybe this is too obvious and has been discussed before? Anyway
> I came to think of a great feature idea, so I wanted to tell the
> world.
>
> Now, darcs has a replace operation. Which I too seldom use. Thinking
> of how to best record my changes is not on the top of my head while
> coding. Could darcs automatically detect that a series of hunks might
> mean a replace and suggest the use of the replace operation?
>
> This is my recent real-world example:
>
> A search for twitteringNotice and replace with twitterPublishIcon.
> In emacs the hunks looks like this:
> in directory ./src/js/gui/twitter:
> Modified twitter-view.js
> 35
> - var twitteringNoticeHtml = '<div class="twittering-notice"></div>';
> + var twitterPublishIconHtml = '<div class="twittering-notice"></div>';
> 40
> - var $twitterOff, $twitterBirdhead, $twitterMain,
> $twitteringNotice, $twitterMessage, $counter, $account,
> $accountSelector;
> + var $twitterOff, $twitterBirdhead, $twitterMain,
> $twitterPublishIcon, $twitterMessage, $counter, $account,
> $accountSelector;
> 54
> - $twitteringNotice =
> $(twitteringNoticeHtml).hide().appendTo(publishIcon);
> + $twitterPublishIcon =
> $(twitterPublishIconHtml).hide().appendTo(publishIcon);
> 78
> - $twitteringNotice.toggle();
> + $twitterPublishIcon.toggle();
> 86
> - $twitteringNotice.toggle();
> + $twitterPublishIcon.toggle();
>
>
> Look at the difference inside each hunk, it is possible for darcs to
> see that in all cases have we replaced ingNotice with PublishIcon.
>
> Darcs might even improve this by selecting the maximal possible
> "enlargement", which means twitteringNotice with twitterPublishIcon.
>
> Darcs can see that there are no more occurencies of ingNotice in the file.
>
> Now darcs can ask us if we instead of recording 5 hunks meant to
> record a replace operation? We might even be given a choice between
> ingNotice for PublishIcon or twitteringNotice for twitterPublishIcon
> (but I think that the last form is probably what you would want, it
> preserves more semantic meaning I guess).
>
> This question should be possible to turned off using --no-replace-suggestions
>
> Slightly off topic comment:
>
> It seems I don't know enough about the replace command, I needed two
> replace operations to do the same thing, replacing twitteringNotice
> didn't have effect on twitteringNoticeHtml but it did work on
> $twitteringNotice. So it treats a prefix and a postfix differently.
>
> replace ./src/js/gui/twitter/twitter-view.js [A-Za-z_0-9]
> twitteringNotice twitterPublishIcon
> replace ./src/js/gui/twitter/twitter-view.js [A-Za-z_0-9]
> twitteringNoticeHtml twitterPublishIconHtml
>
> Best wishes to all developers, as a darcs-fan it is great to read of
> all the work that is going on.
--
Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
PGP Key ID: 08AC04F9
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20090914/7aecda0c/attachment.pgp>
More information about the darcs-users
mailing list