Subject: bug#11378: 24.1.50; Suggestion: Let M-i in isearch cycle `search-invisible'

From: Juri Linkov <[email-masked]>
Date: Tue, 28 May 2013 01:45:12 +0300

>> Anyway I intend to rewrite the filter `isearch-filter-visible' to just
>> check if the text is visible.  The code that opens overlays should be
>> moved to the main search loop to work independently from the filter.
>
> I believe the following patch implements the correct interaction of
> filter predicates with search-invisible.

I installed this patch.  Now it's possible to implement
two separate features:

1. `isearch-toggle-invisible'.  While testing the initial approach
that toggles the value of `search-invisible', I noticed one problem:
after toggling invisibility in one search, it is unexpectedly
reused later in another search.

This is not like `M-s c' (isearch-toggle-case-fold) works
where toggling the value of `isearch-case-fold-search'
affects only the current search.  But a new search is
always started with the default value of the user option
`case-fold-search'.

I think a new command `isearch-toggle-invisible' (`M-s i')
should not change the default value of the user option
`search-invisible' defined with `defcustom'.
It should be changed only via Customization UI.

I'll submit a new patch soon that adds a new variable
`isearch-search-invisible' (or maybe just `isearch-invisible')
to toggle its value without changing the value of the user option
`search-invisible'.

2. A patch that implements new search filters
`isearch-filter-text', `isearch-filter-nontext',
`isearch-filter-strings', `isearch-filter-comments'
will be posted to a separate feature request.