* isearch based on syntax?
@ 2022-06-29 19:19 Sam Steingold
2022-06-29 21:58 ` Daniel Martín
2022-06-30 7:07 ` Emanuel Berg
0 siblings, 2 replies; 4+ messages in thread
From: Sam Steingold @ 2022-06-29 19:19 UTC (permalink / raw)
To: help-gnu-emacs
Is it possible to limit (i)search to, say, Lisp doc strings?
--
Sam Steingold (https://youtube.com/channel/UCiW5WB6K4Fx-NhhtZscW7Og) on darwin Ns 10.3.2113
http://childpsy.net http://calmchildstories.com http://steingoldpsychology.com
https://www.dhimmitude.org https://jij.org https://thereligionofpeace.com
The best herbal therapy is growing herbs on enemies' graves.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: isearch based on syntax?
2022-06-29 19:19 isearch based on syntax? Sam Steingold
@ 2022-06-29 21:58 ` Daniel Martín
2022-06-30 1:47 ` [External] : " Drew Adams
2022-06-30 7:07 ` Emanuel Berg
1 sibling, 1 reply; 4+ messages in thread
From: Daniel Martín @ 2022-06-29 21:58 UTC (permalink / raw)
To: Sam Steingold; +Cc: help-gnu-emacs
Sam Steingold <sds@gnu.org> writes:
> Is it possible to limit (i)search to, say, Lisp doc strings?
Not with vanilla isearch, AFAIK, but you can load library isearch+
(https://www.emacswiki.org/emacs/IsearchPlus).
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [External] : Re: isearch based on syntax?
2022-06-29 21:58 ` Daniel Martín
@ 2022-06-30 1:47 ` Drew Adams
0 siblings, 0 replies; 4+ messages in thread
From: Drew Adams @ 2022-06-30 1:47 UTC (permalink / raw)
To: Daniel Martín, Sam Steingold; +Cc: help-gnu-emacs@gnu.org
> > Is it possible to limit (i)search to, say, Lisp doc strings?
>
> Not with vanilla isearch, AFAIK, but you can load library
> isearch+ (https://www.emacswiki.org/emacs/IsearchPlus).
Yes. You need only `isearch-prop.el' for this, not
also `isearch+.el' (they're both part of Isearch+).
After loading `isearch-prop.el' you can use command
`isearch-property(-regexp)-forward' (or `-backward')
to search within zones of text that have text or an
overlay, or both, with one or more `face' properties
(or any other properties).
You can use those commands from within regular
Isearch (e.g. `C-s'), by using `C-t' (or `C-M-t' for
regexp search).
In this case, you just want to search within text
that has face `font-lock-doc-face'.
With no prefix arg you're prompted for the following:
* property type (e.g. `text')
(The default is both text and overlay properties.)
* property (e.g., `face')
* property values (e.g., one or more face names)
You only need go through the prompting once, if you
want to search zones of the same property again: use
`C-u C-t' (or `C-u C-M-t') to repeat the same kind
of property search - no prompting.
(To be able to use a prefix arg within Isearch, set
option `isearch-allow-prefix' to non-nil.)
When you're prompted for the property name, and you
say `face', you're prompted repeatedly for faces.
Just hit RET with no input to end the list of faces.
E.g., enter `font-lock-doc-face RET RET', to search
within text with that face - including with any
other faces as well, e.g. `font-lock-constant-face'.
Or `font-lock-doc-face RET font-lock-constant-face
RET RET', to search only within that combination of
faces, i.e., only constants in doc strings, not
other doc-string text and not constants in comments.
You can also search the text that does NOT have a
face (or a set of faces) - e.g., the text outside
doc strings. Just use `C-M-~' while searching, to
toggle searching the complement of a set of zones.
`isearch-prop.el' is here:
https://www.emacswiki.org/emacs/download/isearch-prop.el
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: isearch based on syntax?
2022-06-29 19:19 isearch based on syntax? Sam Steingold
2022-06-29 21:58 ` Daniel Martín
@ 2022-06-30 7:07 ` Emanuel Berg
1 sibling, 0 replies; 4+ messages in thread
From: Emanuel Berg @ 2022-06-30 7:07 UTC (permalink / raw)
To: help-gnu-emacs
Sam Steingold wrote:
> Is it possible to limit (i)search to, say, Lisp doc strings?
Sure ...
If you try it, remember Elisp font lock must be activated and
in place.
(defun next-doc-string ()
"Go to the next doc string."
(interactive)
(let ((end (point-max)))
(while (and (re-search-forward "\"" end t)
(not (eq (get-text-property
(1+ (match-beginning 0)) 'face)
c-doc-face-name) )))))
(defalias 'nd #'next-doc-string)
;; test below
(defun recenter-column ()
"Most skilled Elisp hacker: incal"
(interactive)
(let ((beg (point-at-bol))
(end (point-at-eol)) )
(goto-char (+ beg (/ (- end beg) 2)) )))
(defalias 'rc #'recenter-column)
--
underground experts united
https://dataswamp.org/~incal
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-06-30 7:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-29 19:19 isearch based on syntax? Sam Steingold
2022-06-29 21:58 ` Daniel Martín
2022-06-30 1:47 ` [External] : " Drew Adams
2022-06-30 7:07 ` Emanuel Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).