* Make defadvice mode local
@ 2013-11-03 13:14 Frederik
0 siblings, 0 replies; 3+ messages in thread
From: Frederik @ 2013-11-03 13:14 UTC (permalink / raw)
To: help-gnu-emacs
Hello lisp hackers,
I found the following snippet on the web which changes the filling of
paragraphs in LaTeX documents such that each sentence begins on a new line:
---------------8<------------------------------------------------------
;; Start each sentence on a new line when editing LaTex source files
;;
http://pleasefindattached.blogspot.de/2011/12/emacsauctex-sentence-fill-greatly.html
(defadvice LaTeX-fill-region-as-paragraph (around LaTeX-sentence-filling)
"Start each sentence on a new line."
(let ((from (ad-get-arg 0))
(to-marker (set-marker (make-marker) (ad-get-arg 1)))
tmp-end)
(while (< from (marker-position to-marker))
(forward-sentence)
;; might have gone beyond to-marker --- use whichever is smaller:
(ad-set-arg 1 (setq tmp-end (min (point) (marker-position
to-marker))))
ad-do-it
(ad-set-arg 0 (setq from (point)))
(unless (or
(bolp)
(looking-at "\\s *$"))
(LaTeX-newline)))
(set-marker to-marker nil)))
(ad-activate 'LaTeX-fill-region-as-paragraph) ; to activate
;;(ad-deactivate 'LaTeX-fill-region-as-paragraph) ; to deactivate
---------------8<------------------------------------------------------
However, I want that this behaviour only gets activated in documents
which are under version control. So I seek a way to only activate the
advice in buffers with vc-mode enabled...
I don't know where to start as I practically don't know any lisp; but I
fear that this defadvice only can be enabled globally to all LaTeX
buffers...
Any pointers?
Regards,
Fred
--
Frederik
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Make defadvice mode local
[not found] <mailman.5171.1383484500.10748.help-gnu-emacs@gnu.org>
@ 2013-11-03 14:37 ` Stefan Monnier
2013-11-03 19:54 ` Frederik
0 siblings, 1 reply; 3+ messages in thread
From: Stefan Monnier @ 2013-11-03 14:37 UTC (permalink / raw)
To: help-gnu-emacs
> which are under version control. So I seek a way to only activate the
> advice in buffers with vc-mode enabled...
Pieces of advice are always activated globally. So what you want to do
is to make this advice do nothing (which in this case means, do just
"ad-to-it") when the buffer is not under version-control.
E.g. use (if (not (and buffer-file-name (vc-backend buffer-file-name)))
ad-do-it
<do-the-special-thing>)
-- Stefan
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Make defadvice mode local
2013-11-03 14:37 ` Make defadvice mode local Stefan Monnier
@ 2013-11-03 19:54 ` Frederik
0 siblings, 0 replies; 3+ messages in thread
From: Frederik @ 2013-11-03 19:54 UTC (permalink / raw)
To: help-gnu-emacs
> Pieces of advice are always activated globally. So what you want to do
> is to make this advice do nothing (which in this case means, do just
> "ad-to-it") when the buffer is not under version-control.
>
> E.g. use (if (not (and buffer-file-name (vc-backend buffer-file-name)))
> ad-do-it
> <do-the-special-thing>)
This works like a charm! Thanks!
Regards
--
Frederik
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-11-03 19:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <mailman.5171.1383484500.10748.help-gnu-emacs@gnu.org>
2013-11-03 14:37 ` Make defadvice mode local Stefan Monnier
2013-11-03 19:54 ` Frederik
2013-11-03 13:14 Frederik
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).