sj wrote:
> I'm writing my first major mode to run Nyquist in a buffer. Nyquist is an
> extension of XLISP for audio synthesis and composition.  Nyquist-mode is a
> derivative of inferior-lisp mode, its working pretty well except for one
> annoying side effect. Whenever I issue (nyquist-mode) to start a new
> Nyquist process, whatever buffer I'm currently in gets switched to
> fundamental-mode. I have isolated the problem to the
> kill-all-local-variables statement.  Is there some other way I should be
> doing this?
>
>
>
> (defun nyquist-mode ()
>   (interactive)
>   (if (nyquist-has-process-p)
>       ;; If we are already live just switch to the nyquist buffer
>       (switch-to-buffer nyquist-buffer)
>     ;; Else start a new Nyquist process.

a progn isn't necessary here but doesn't hurt anything
>     (progn

>       ;; Clean up any old nyquist process buffers
>       (if (get-buffer nyquist-buffer)
>    (kill-buffer nyquist-buffer))

Simply delete this line.  It's purpose is to allow a buffer's
mode to be changed without lingering artifacts from the old mode.
Since you are creating a derived mode, the mode from which
nyquist-mode derives is already doing the kill appropriately.

>       (kill-all-local-variables)

_______________________________________________
Help-gnu-emacs mailing list
Help-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-emacs

Reply via email to