Subject: bug#20351: isearch-lax-whitespace should be customizable variable

From: Juri Linkov <[email-masked]>
Date: Thu, 02 Jul 2015 01:30:47 +0300

>>>> (defcustom isearch-keep-mode-variables nil
>>>>   "A set of search variables to keep between different searches.
>>>> When a search variable is customized to exist in this set, then
>>>> starting a new search doesn't reset the corresponding isearch variable
>>>> to its default value, thus keeping the value from the previous search
>>>> \(changed using toggling commands)."
>>>>   :type '(set (const :tag "Case folding" isearch-case-fold-search)
>>>>               (const :tag "Character folding" character-fold-search)
>>>>               (const :tag "Invisible text" isearch-invisible)
>>>>               (const :tag "Filters" isearch-filter-predicate)
>>>>               (const :tag "Lax whitespace" isearch-lax-whitespace)
>>>>               (const :tag "Regexp lax whitespace" isearch-regexp-lax-whitespace))
>>>>   :group 'isearch)
>>>
>>> Though this is not strictly in conflict with turning the individual
>>> variables into defcustoms, I think it's a bit in ideological conflict, and
>>> we should probably pick one of the two.
>>
>> Would it be better to pollute the namespace with N*M more customizable variables
>> like ‘isearch-keep-case-fold-search’, ‘isearch-keep-lax-whitespace’,
>> ‘isearch-initial-case-fold-search’, ‘isearch-initial-lax-whitespace’, I'm not sure.
>
> No. I like the idea of this variable, and I much prefer this defcustom
> over N different `isearch-keep-...' defcustoms.
> What I said is that if we have *this* defcustom, we don't need to turn
> `isearch-lax-whitespace' into a defcustom too (the actual variable,
> not the `keep...' variable).

It seems we can't avoid turning `isearch-lax-whitespace' into a defcustom
because users need to be able to disable these features initially, and
there is no convenient way to customize initial values with a single
defcustom such as ‘isearch-initial-variables’.

‘case-fold-search’ is a customizable variable - and rightfully so
‘char-fold-search’ has to be customizable as well.