Vorrei cercare espressioni regolari all'interno di un buffer c/C++, ma voglio evitare l'espressione corrispondente ad un'area di commento. C'è un modo di usare la modalità c per sapere se un gruppo di testo si trova all'interno di un'area di commento (o un punto si trova all'interno di un'area di commento)?emacs lisp e c-mode: quando sono in una regione di commento
8
A
risposta
10
Il modo per capirlo è con syntax-ppss
che funziona in C/C++ e maggior parte delle modalità principali. Per esempio. (null (nth 8 (syntax-ppss)))
non sarà nulla se e solo se non si è all'interno di una stringa o commento.
0
(defun re-search-forward-not-in-comment (regexp)
"Search forward first regexp not inside a comment. "
(interactive
(list (read-from-minibuffer "Regexp: ")))
(while (and (re-search-forward regexp nil t 1)
(and (nth 8 (syntax-ppss))(nth 4 (syntax-ppss))))))
Si prega di fornire più di un semplice collegamento. – skolima
Puoi correggere la tua risposta incollando il codice qui. In questo modo la risposta sarà ancora utile dopo che il collegamento è marcito. –
Se ti piace, perché non copiarlo, è gratis. –