Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: Add an option to disable deactivating region hilighting whenever you edit something



On Fri, Nov 7, 2014 at 11:15 AM, Oliver Kiddle <okiddle@xxxxxxxxxxx> wrote:
> Mikael Magnusson wrote:
>>
>> While we're on the topic of deactivating the region, I've had this
>> patch lying around forever in my local tree, but never cared enough to
>> send it. It just keeps the region on until the user disables it again, I
>> use this very complicated widget:
>
> I'm concerned that, as is often the case with options, it is a somewhat
> blunt instrument. It isn't just edits that this affects. Most vi
> commands too: I'd want the option set for vi command mode but not for
> vi insert mode. That said, the use case you show is quite nice. The
> region should be more flexible (and I have some stuff coming in this
> area which I probably now need to start unloading).

Yeah, I've never used vi mode and I honestly didn't look into all the
cases this code is called from at all, it just fixed my case and
didn't do anything I didn't want. (This may also have been a reason
for not sending it, git send-mail apparently stripped the fact that
the patch is from 2011, so I forgot exactly what I checked or not).

> Currently, the region is fixed to an emacs region model so
> 'region_active = 0' typically appears in shared code. We need control to
> move up to individual widgets somewhat more.
>
> I can think of a few ways this might be more versatile, setting a
> flag on the zle widget so you might mark self-insert as being region
> preserving might be one option. I've pondered adding this for completion
> suffix removal too. We also have some prefix widgets such as for numeric
> arguments which affect the behaviour of the following widget.
>
> If we do go with the option, I'll have a think about the name.

I'll also admit I'm not that good at naming options :). I would be all
for more versatility as well. If we want to be super consistent and
stuff, we have the auto-suffix-remove and auto-suffix-retain widgets
already. Would that model work for this also? I suppose it would be a
bit inconvenient making a wrapper function for every single widget you
want to define this for, and/or change ones you already have wrappers
for, though. Maybe?

You can get away with just defining one wrapper function for each and
naming the widgets with a suffix that you strip in the function, and
then calling zle .$widgetstripped so it's not that bad maybe.

-- 
Mikael Magnusson



Messages sorted by: Reverse Date, Date, Thread, Author