[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ignoring comments and/or strings (in source files) by _any_ search funct
From: |
Peter Tury |
Subject: |
ignoring comments and/or strings (in source files) by _any_ search function? |
Date: |
Mon, 25 Jun 2007 11:18:28 -0000 |
User-agent: |
G2/1.0 |
Hi,
I am working on a simple major mode for a specific programming
language. I found that I need a variant of more and more (now: two
:-)) search functions (e.g. re-search-backward, skip-chars-backward)
what ignore comments and/or strings.
Do you know about a general implementation for this problem? Now I
think it can be solved only with macros (nicely with the loop
facility?), and I'll try to create it, but don't want to reinvent the
wheel (especially because I am new to macros ;-).
The idea is to have a function/macro (let's call it `ignore-comm-str')
what:
1. calls any (search) function with proper parameters (received as
&rest arguments) and then:
2. if resulted (found) point is inside a comment/string, then repeat
1...
Ignoring comments or strings should be driven by parameters (e.g.
ignore-comm-p, ...?). It seems to be logical to require
`font-lock-mode' and proper syntax settings for comments and strings:
then `syntax-ppss' can be used.
I think about something like this:
(defun ignore-comm-str fun str &optional ignore-comm ignore-str &rest
r).
Then it could be called e.g. like
(ignore-comm-str #'re-search-backward "a-nice-re" nil t 100 t) or
(ignore-comm-str #'skip-chars-backward "a-string" t).
I could simply implement this as a function if I would know how to
pass
R to FUN? (I know only macro's `,@' -- is there an equivalent for
functions?)
Could this be solved with advices somehow? (I don't want generally
"redefine" those search functions: instead I would like to have a
comment/string-ignoring variant of them: an ancestor in OO terms...)
Thanks,
P
- ignoring comments and/or strings (in source files) by _any_ search function?,
Peter Tury <=