;;;; lilypond-mode.el -- Major mode for editing GNU LilyPond music scores
;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 1999--2010 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; Copyright (C) 1999--2012 Jan Nieuwenhuizen <janneke@gnu.org>
;;;; Changed 2001--2003 Heikki Junes <heikki.junes@hut.fi>
;;;; * Add PS-compilation, PS-viewing and MIDI-play (29th Aug 2001)
;;;; * Keyboard shortcuts (12th Sep 2001)
(defun LilyPond-compile-file (command name)
;; We maybe should know what we run here (Lily, lilypond, tex)
;; and adjust our error-matching regex ?
- (compile-internal
+ (compilation-start
(if (eq LilyPond-command-current 'LilyPond-command-master)
command
;; use temporary directory for Commands on Buffer/Region
;; hm.. the directory is set twice, first to default-dir
- (concat "cd " (LilyPond-temp-directory) "; " command))
- "No more errors" name))
+ (concat "cd " (LilyPond-temp-directory) "; " command))))
-;; do we still need this, now that we're using compile-internal?
+;; do we still need this, now that we're using compilation-start?
(defun LilyPond-save-buffer ()
"Save buffer and set default command for compiling."
(interactive)
`(
("LilyPond" . (,(concat LilyPond-lilypond-command " %s") "%s" "%l" "View"))
("2PS" . (,(concat LilyPond-lilypond-command " -f ps %s") "%s" "%p" "ViewPS"))
- ("2Gnome" . (,(concat LilyPond-lilypond-command " -b gnome %s")))
-
("Book" . ("lilypond-book %x" "%x" "%l" "LaTeX"))
("LaTeX" . ("latex '\\nonstopmode\\input %l'" "%l" "%d" "ViewDVI"))
(LilyPond-command (LilyPond-command-menu "2PS") 'LilyPond-get-master-file)
)
-(defun LilyPond-command-formatgnome ()
- "Format the gnome output of the current document."
- (interactive)
- (LilyPond-command (LilyPond-command-menu "2Gnome") 'LilyPond-get-master-file))
-
(defun LilyPond-command-formatmidi ()
"Format the midi output of the current document."
(interactive)
(l (split-file-name file))
(dir (car l))
(base (cadr l)))
- (LilyPond-command-expand
- (concat (substring string 0 b)
- (shell-quote-argument (concat dir base))
- (let ((entry (assoc (substring string b e)
- LilyPond-expand-alist)))
- (if entry (cdr entry) ""))
- (substring string e))
- file))
+ (concat (substring string 0 b)
+ (shell-quote-argument (concat dir base))
+ (LilyPond-command-expand
+ (concat
+ (let ((entry (assoc (substring string b e)
+ LilyPond-expand-alist)))
+ (if entry (cdr entry) ""))
+ (substring string e))
+ file)))
string)))
(defun LilyPond-shell-process (name buffer command)
(define-key LilyPond-mode-map "\C-c\C-c" 'LilyPond-command-master)
(define-key LilyPond-mode-map "\C-cm" 'LilyPond-command-formatmidi)
(define-key LilyPond-mode-map "\C-c\C-f" 'LilyPond-command-formatps)
- (define-key LilyPond-mode-map "\C-c\C-g" 'LilyPond-command-formatgnome)
(define-key LilyPond-mode-map "\C-c\C-s" 'LilyPond-command-view)
(define-key LilyPond-mode-map "\C-c\C-p" 'LilyPond-command-viewps)
(define-key LilyPond-mode-map [(control c) return] 'LilyPond-command-current-midi)
(defun LilyPond-menu-keywords ()
"Make Insert Tag menu.
-The Insert Tag -menu is splitted into parts if it is long enough."
+The Insert Tag -menu is split into parts if it is long enough."
(let ((li (mapcar 'LilyPond-menu-keywords-item LilyPond-menu-keywords))
(w (round (sqrt (length LilyPond-menu-keywords))))
- (splitted '())
+ (split '())
(imin 0) imax lw rw)
(while (< imin (length LilyPond-menu-keywords))
(setq imax (- (min (+ imin w) (length LilyPond-menu-keywords)) 1))
(setq lw (nth imin LilyPond-menu-keywords))
(setq rw (nth imax LilyPond-menu-keywords))
- (add-to-list 'splitted
+ (add-to-list 'split
(let ((l (list (concat (substring lw 0 (min 7 (length lw)))
" ... "
(substring rw 0 (min 7 (length rw)))))))
(add-to-list 'l (nth imin li))
(setq imin (1+ imin)))
(reverse l))))
- (if (> (length LilyPond-menu-keywords) 12) (reverse splitted) li)))
+ (if (> (length LilyPond-menu-keywords) 12) (reverse split) li)))
;;; LilyPond-mode-menu should not be interactive, via "M-x LilyPond-<Tab>"
(easy-menu-define LilyPond-mode-menu
;; Use Command on Region even for inactive mark (region).
(if (string-match "XEmacs\\|Lucid" emacs-version)
- (setq zmacs-regions nil)
+ (progn
+ (setq zmacs-regions nil)
+ (make-local-hook 'post-command-hook)) ; XEmacs requires
(setq mark-even-if-inactive t))
;; Context dependent syntax tables in LilyPond-mode
- (make-local-hook 'post-command-hook) ; XEmacs requires
(add-hook 'post-command-hook 'LilyPond-mode-context-set-syntax-table nil t)
;; Turn on paren-mode buffer-locally, i.e., in LilyPond-mode