all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.