[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Patch] Add project.el command to replace symbol at point throughout
From: |
Jon Eskin |
Subject: |
Re: [Patch] Add project.el command to replace symbol at point throughout project |
Date: |
Sat, 15 Jan 2022 13:41:00 -0500 |
Apologies- in the event that this patch is satisfactory, the following includes
`xref-find-references-and-replace`. I didn’t realize it would be a simple
replacement.
0001-Use-symbol-at-point-as-default-for-query-replace-rea.patch
Description: Binary data
> On Jan 15, 2022, at 4:55 AM, Jon Eskin <eskinjp@gmail.com> wrote:
>
>
>
>> On Jan 14, 2022, at 3:28 PM, Dmitry Gutov <dgutov@yandex.ru> wrote:
>>
>> On 14.01.2022 12:26, Jon Eskin wrote:
>>>> So Jon, if you fancy writing a patch in this area, you can try
>>>> implementing what Juri suggested:
>>>>
>>>> let-bind read-regexp-defaults-function around the call
>>>> of query-replace-read-args, and use a symbol at point as the default.
>>>>
>>>> That can apply to both project-query-replace-regexp and
>>>> xref-find-references-and-replace.
>>> On it! I might take a little while but I'll check in if I get stuck.
>>
>> Yeah, don't hesitate to ask questions if/when you have any.
>
>
> Hey all,
>
> I took a stab at the implementation Juri described for
> `project-query-replace-regexp` and I was able to get the correct behavior,
> but I wanted to check in and see if it needs improvements before looking at
> `xref-find-references-and-replace.`
>
> When I first let-bound `read-regexp-defaults-function` around the call to
> `query-replace-read-args`, it didn't work- it looks like `read-regexp` needs
> to be passed a symbol for its `DEFAULTS` parameter or it ignores
> `read-regexp-default-function`. I passed in the symbol at point to `DEFAULTS`
> which works- if I understand correctly the value of any I pass in doesn't end
> up making a difference as long as it's a symbol. I wasn't sure what the
> reason was for that behavior, but I didn't want to mess with stuff I didn't
> understand.
>
> Another issue is that hardcoded logic in `read-regexp`:
>
> 'If PROMPT ends in \":\" (followed by
> optional whitespace), use it as-is. Otherwise, add \": \" to the end,
> possibly preceded by the default result (see below).'
>
> The PROMPT passed into read-regexp does end in a ":" due to it being
> formatted by a call to `format-prompt` in `query-replace-read-from`. As a
> result, when the symbol is at point, `read-regexp` display the prompt with
> the last replacement from history. To address this, I added a cond case where
> the formatting takes place and omit the formatting step when there is a
> symbol at point so that `read-regex` will correctly format the prompt with
> the symbol at point.
>
> The result is that a call to `project-query-replace-regexp` will take the
> symbol at point as the default when available, otherwise it will use its
> previous behavior of defaulting to the last replacement available in history.
>
> Let me know what you think.
>
> <0001-Use-symbol-at-point-as-default-for-query-replace-rea.patch>
- Re: [Patch] Add project.el command to replace symbol at point throughout project, (continued)
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Jon Eskin, 2022/01/15
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Juri Linkov, 2022/01/15
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Dmitry Gutov, 2022/01/15
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Juri Linkov, 2022/01/16
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Dmitry Gutov, 2022/01/16
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Dmitry Gutov, 2022/01/16
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Juri Linkov, 2022/01/17
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Dmitry Gutov, 2022/01/20
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Juri Linkov, 2022/01/31
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Dmitry Gutov, 2022/01/31
- Re: [Patch] Add project.el command to replace symbol at point throughout project,
Jon Eskin <=
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Juri Linkov, 2022/01/16
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Dmitry Gutov, 2022/01/16
- Re: [Patch] Add project.el command to replace symbol at point throughout project, Jon Eskin, 2022/01/17
Re: [Patch] Add project.el command to replace symbol at point throughout project, Dmitry Gutov, 2022/01/11