From: Achim Gratz <Stromeko@nexgo.de>
To: emacs-orgmode@gnu.org
Subject: Re: ob-lilypond code cleanup
Date: Mon, 18 Aug 2014 22:01:25 +0200 [thread overview]
Message-ID: <87siktftyi.fsf@Rainer.invalid> (raw)
In-Reply-To: 87wqa5g0u7.fsf@Rainer.invalid
[-- Attachment #1: Type: text/plain, Size: 206 bytes --]
Achim Gratz writes:
> Thanks for the reminder. In any case, these will need to become
> defcustoms as well.
Improved patch now with defcustom. I hope I did get that defcustom
stuff right, please check.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ob-lilypond-Code-cleanup.patch --]
[-- Type: text/x-patch, Size: 40060 bytes --]
From 35c3be896c159fcd9fb727b39273750fc0264592 Mon Sep 17 00:00:00 2001
From: Achim Gratz <Stromeko@Stromeko.DE>
Date: Sun, 17 Aug 2014 10:29:24 +0200
Subject: [PATCH] ob-lilypond: Code cleanup
* lisp/ob-lilypond.el: Change ly- prefix to org-babel-lilypond
throughout.
(ly-OSX-ly-path, ly-OSX-pdf-path, ly-OSX-midi-path, ly-nix-ly-path,
ly-nix-pdf-path, ly-nix-midi-path, ly-w32-ly-path, ly-w32-pdf-path,
ly-w32-midi-path, ly-determine-ly-path, ly-determine-pdf-path,
ly-determine-midi-path): Remove.
(org-babel-lilypond-ly-command, org-babel-lilypond-midi-command,
org-babel-lilypond-pdf-command): Replacement for removed variables
and functions. Adapt all calls to the removed functions to use
these variables instead.
(org-babel-lilypond-commands): New defcustom for setting up
the *-command variables. Keep different defaults for different
systems as the original code did to avoid tripping up unsuspecting
users.
(org-babel-lilypond-execute-tangled-ly,
org-babel-lilypond-check-for-compile-error): Revert conditions to
avoid superfluous forms. Remove unused return values.
* testing/lisp/test-ob-lilypond.el: Change ly- prefix to
org-babel-lilypond throughout. Do not test for removed variables
and replace removed function calls with the appropriate variable
content.
---
lisp/ob-lilypond.el | 284 ++++++++++++++++++-------------------
testing/lisp/test-ob-lilypond.el | 292 ++++++++++++++++-----------------------
2 files changed, 256 insertions(+), 320 deletions(-)
diff --git a/lisp/ob-lilypond.el b/lisp/ob-lilypond.el
index fbfac88..43433a3 100644
--- a/lisp/ob-lilypond.el
+++ b/lisp/ob-lilypond.el
@@ -41,62 +41,82 @@ (defalias 'lilypond-mode 'LilyPond-mode)
(defvar org-babel-default-header-args:lilypond '()
"Default header arguments for lilypond code blocks.
NOTE: The arguments are determined at lilypond compile time.
-See (ly-set-header-args)")
+See (org-babel-lilypond-set-header-args)")
-(defvar ly-compile-post-tangle t
+(defvar org-babel-lilypond-compile-post-tangle t
"Following the org-babel-tangle (C-c C-v t) command,
-ly-compile-post-tangle determines whether ob-lilypond should
+org-babel-lilypond-compile-post-tangle determines whether ob-lilypond should
automatically attempt to compile the resultant tangled file.
If the value is nil, no automated compilation takes place.
Default value is t")
-(defvar ly-display-pdf-post-tangle t
+(defvar org-babel-lilypond-display-pdf-post-tangle t
"Following a successful LilyPond compilation
-ly-display-pdf-post-tangle determines whether to automate the
+org-babel-lilypond-display-pdf-post-tangle determines whether to automate the
drawing / redrawing of the resultant pdf. If the value is nil,
the pdf is not automatically redrawn. Default value is t")
-(defvar ly-play-midi-post-tangle t
+(defvar org-babel-lilypond-play-midi-post-tangle t
"Following a successful LilyPond compilation
-ly-play-midi-post-tangle determines whether to automate the
+org-babel-lilypond-play-midi-post-tangle determines whether to automate the
playing of the resultant midi file. If the value is nil,
the midi file is not automatically played. Default value is t")
-(defvar ly-OSX-ly-path
- "/Applications/lilypond.app/Contents/Resources/bin/lilypond")
-(defvar ly-OSX-pdf-path "open")
-(defvar ly-OSX-midi-path "open")
-
-(defvar ly-nix-ly-path "/usr/bin/lilypond")
-(defvar ly-nix-pdf-path "evince")
-(defvar ly-nix-midi-path "timidity")
-
-(defvar ly-w32-ly-path "lilypond")
-(defvar ly-w32-pdf-path "")
-(defvar ly-w32-midi-path "")
-
-(defvar ly-gen-png nil
+(defconst org-babel-lilypond-ly-command
+ "Command to execute lilypond on your system.")
+(defconst org-babel-lilypond-pdf-command
+ "Command to show a PDF file on your system.")
+(defconst org-babel-lilypond-midi-command
+ "Command to play a MIDI file on your system.")
+(defcustom org-babel-lilypond-commands
+ (cond
+ ((eq system-type 'darwin)
+ '("/Applications/lilypond.app/Contents/Resources/bin/lilypond" "open" "open"))
+ ((eq system-type 'windows-nt)
+ '("lilypond" "" ""))
+ (t
+ '("lilypond" "xdg-open" "xdg-open")))
+ "Commands to run lilypond and view or play the results.
+These should be executables that take a filename as an argument.
+On some system it is possible to specify the filename directly
+and the viewer or player will be determined from the file type;
+you can leave the string empty on this case."
+ :group 'org-babel
+ :type '(list
+ (string :tag "Lilypond ")
+ (string :tag "PDF Viewer ")
+ (string :tag "MIDI Player"))
+ :version "24.3"
+ :package-version '(Org . "8.2.7")
+ :set
+ (lambda (symbol value)
+ (setq
+ org-babel-lilypond-ly-command (nth 0 value)
+ org-babel-lilypond-pdf-command (nth 1 value)
+ org-babel-lilypond-midi-command (nth 2 value))))
+
+(defvar org-babel-lilypond-gen-png nil
"Image generation (png) can be turned on by default by setting
-LY-GEN-PNG to t")
+ORG-BABEL-LILYPOND-GEN-PNG to t")
-(defvar ly-gen-svg nil
+(defvar org-babel-lilypond-gen-svg nil
"Image generation (SVG) can be turned on by default by setting
-LY-GEN-SVG to t")
+ORG-BABEL-LILYPOND-GEN-SVG to t")
-(defvar ly-gen-html nil
+(defvar org-babel-lilypond-gen-html nil
"HTML generation can be turned on by default by setting
-LY-GEN-HTML to t")
+ORG-BABEL-LILYPOND-GEN-HTML to t")
-(defvar ly-gen-pdf nil
+(defvar org-babel-lilypond-gen-pdf nil
"PDF generation can be turned on by default by setting
-LY-GEN-PDF to t")
+ORG-BABEL-LILYPOND-GEN-PDF to t")
-(defvar ly-use-eps nil
+(defvar org-babel-lilypond-use-eps nil
"You can force the compiler to use the EPS backend by setting
-LY-USE-EPS to t")
+ORG-BABEL-LILYPOND-USE-EPS to t")
-(defvar ly-arrange-mode nil
- "Arrange mode is turned on by setting LY-ARRANGE-MODE
+(defvar org-babel-lilypond-arrange-mode nil
+ "Arrange mode is turned on by setting ORG-BABEL-LILYPOND-ARRANGE-MODE
to t. In Arrange mode the following settings are altered
from default...
:tangle yes, :noweb yes
@@ -125,20 +145,20 @@ (defun org-babel-execute:lilypond (body params)
1. Attempt to execute lilypond block according to header settings
(This is the default basic mode)
2. Tangle all lilypond blocks and process the result (arrange mode)"
- (ly-set-header-args ly-arrange-mode)
- (if ly-arrange-mode
- (ly-tangle)
- (ly-process-basic body params)))
+ (org-babel-lilypond-set-header-args org-babel-lilypond-arrange-mode)
+ (if org-babel-lilypond-arrange-mode
+ (org-babel-lilypond-tangle)
+ (org-babel-lilypond-process-basic body params)))
-(defun ly-tangle ()
+(defun org-babel-lilypond-tangle ()
"ob-lilypond specific tangle, attempts to invoke
=ly-execute-tangled-ly= if tangle is successful. Also passes
specific arguments to =org-babel-tangle="
(interactive)
(if (org-babel-tangle nil "yes" "lilypond")
- (ly-execute-tangled-ly) nil))
+ (org-babel-lilypond-execute-tangled-ly) nil))
-(defun ly-process-basic (body params)
+(defun org-babel-lilypond-process-basic (body params)
"Execute a lilypond block in basic mode."
(let* ((result-params (cdr (assoc :result-params params)))
(out-file (cdr (assoc :file params)))
@@ -150,7 +170,7 @@ (defun ly-process-basic (body params)
(insert (org-babel-expand-body:generic body params)))
(org-babel-eval
(concat
- (ly-determine-ly-path)
+ org-babel-lilypond-ly-command
" -dbackend=eps "
"-dno-gs-load-fonts "
"-dinclude-eps-fonts "
@@ -169,45 +189,43 @@ (defun org-babel-prep-session:lilypond (session params)
"Return an error because LilyPond exporter does not support sessions."
(error "Sorry, LilyPond does not currently support sessions!"))
-(defun ly-execute-tangled-ly ()
+(defun org-babel-lilypond-execute-tangled-ly ()
"Compile result of block tangle with lilypond.
If error in compilation, attempt to mark the error in lilypond org file"
- (when ly-compile-post-tangle
- (let ((ly-tangled-file (ly-switch-extension
+ (when org-babel-lilypond-compile-post-tangle
+ (let ((org-babel-lilypond-tangled-file (org-babel-lilypond-switch-extension
(buffer-file-name) ".lilypond"))
- (ly-temp-file (ly-switch-extension
+ (org-babel-lilypond-temp-file (org-babel-lilypond-switch-extension
(buffer-file-name) ".ly")))
- (if (file-exists-p ly-tangled-file)
- (progn
- (when (file-exists-p ly-temp-file)
- (delete-file ly-temp-file))
- (rename-file ly-tangled-file
- ly-temp-file))
- (error "Error: Tangle Failed!") t)
+ (if (not (file-exists-p org-babel-lilypond-tangled-file))
+ (error "Error: Tangle Failed!")
+ (when (file-exists-p org-babel-lilypond-temp-file)
+ (delete-file org-babel-lilypond-temp-file))
+ (rename-file org-babel-lilypond-tangled-file
+ org-babel-lilypond-temp-file))
(switch-to-buffer-other-window "*lilypond*")
(erase-buffer)
- (ly-compile-lilyfile ly-temp-file)
+ (org-babel-lilypond-compile-lilyfile org-babel-lilypond-temp-file)
(goto-char (point-min))
- (if (not (ly-check-for-compile-error ly-temp-file))
- (progn
- (other-window -1)
- (ly-attempt-to-open-pdf ly-temp-file)
- (ly-attempt-to-play-midi ly-temp-file))
- (error "Error in Compilation!")))) nil)
-
-(defun ly-compile-lilyfile (file-name &optional test)
+ (if (org-babel-lilypond-check-for-compile-error org-babel-lilypond-temp-file)
+ (error "Error in Compilation!")
+ (other-window -1)
+ (org-babel-lilypond-attempt-to-open-pdf org-babel-lilypond-temp-file)
+ (org-babel-lilypond-attempt-to-play-midi org-babel-lilypond-temp-file)))))
+
+(defun org-babel-lilypond-compile-lilyfile (file-name &optional test)
"Compile lilypond file and check for compile errors
FILE-NAME is full path to lilypond (.ly) file"
(message "Compiling LilyPond...")
- (let ((arg-1 (ly-determine-ly-path)) ;program
+ (let ((arg-1 org-babel-lilypond-ly-command) ;program
(arg-2 nil) ;infile
(arg-3 "*lilypond*") ;buffer
(arg-4 t) ;display
- (arg-5 (if ly-gen-png "--png" "")) ;&rest...
- (arg-6 (if ly-gen-html "--html" ""))
- (arg-7 (if ly-gen-pdf "--pdf" ""))
- (arg-8 (if ly-use-eps "-dbackend=eps" ""))
- (arg-9 (if ly-gen-svg "-dbackend=svg" ""))
+ (arg-5 (if org-babel-lilypond-gen-png "--png" "")) ;&rest...
+ (arg-6 (if org-babel-lilypond-gen-html "--html" ""))
+ (arg-7 (if org-babel-lilypond-gen-pdf "--pdf" ""))
+ (arg-8 (if org-babel-lilypond-use-eps "-dbackend=eps" ""))
+ (arg-9 (if org-babel-lilypond-gen-svg "-dbackend=svg" ""))
(arg-10 (concat "--output=" (file-name-sans-extension file-name)))
(arg-11 file-name))
(if test
@@ -217,7 +235,7 @@ (defun ly-compile-lilyfile (file-name &optional test)
arg-1 arg-2 arg-3 arg-4 arg-5 arg-6
arg-7 arg-8 arg-9 arg-10 arg-11))))
-(defun ly-check-for-compile-error (file-name &optional test)
+(defun org-babel-lilypond-check-for-compile-error (file-name &optional test)
"Check for compile error.
This is performed by parsing the *lilypond* buffer
containing the output message from the compilation.
@@ -225,27 +243,26 @@ (defun ly-check-for-compile-error (file-name &optional test)
If TEST is t just return nil if no error found, and pass
nil as file-name since it is unused in this context"
(let ((is-error (search-forward "error:" nil t)))
- (if (not test)
- (if (not is-error)
- nil
- (ly-process-compile-error file-name))
- is-error)))
+ (if test
+ is-error
+ (when is-error
+ (org-babel-lilypond-process-compile-error file-name)))))
-(defun ly-process-compile-error (file-name)
+(defun org-babel-lilypond-process-compile-error (file-name)
"Process the compilation error that has occurred.
FILE-NAME is full path to lilypond file"
- (let ((line-num (ly-parse-line-num)))
- (let ((error-lines (ly-parse-error-line file-name line-num)))
- (ly-mark-error-line file-name error-lines)
+ (let ((line-num (org-babel-lilypond-parse-line-num)))
+ (let ((error-lines (org-babel-lilypond-parse-error-line file-name line-num)))
+ (org-babel-lilypond-mark-error-line file-name error-lines)
(error "Error: Compilation Failed!"))))
-(defun ly-mark-error-line (file-name line)
+(defun org-babel-lilypond-mark-error-line (file-name line)
"Mark the erroneous lines in the lilypond org buffer.
FILE-NAME is full path to lilypond file.
LINE is the erroneous line"
(switch-to-buffer-other-window
(concat (file-name-nondirectory
- (ly-switch-extension file-name ".org"))))
+ (org-babel-lilypond-switch-extension file-name ".org"))))
(let ((temp (point)))
(goto-char (point-min))
(setq case-fold-search nil)
@@ -256,7 +273,7 @@ (defun ly-mark-error-line (file-name line)
(goto-char (- (point) (length line))))
(goto-char temp))))
-(defun ly-parse-line-num (&optional buffer)
+(defun org-babel-lilypond-parse-line-num (&optional buffer)
"Extract error line number."
(when buffer
(set-buffer buffer))
@@ -278,12 +295,12 @@ (defun ly-parse-line-num (&optional buffer)
nil)))
nil)))
-(defun ly-parse-error-line (file-name lineNo)
+(defun org-babel-lilypond-parse-error-line (file-name lineNo)
"Extract the erroneous line from the tangled .ly file
FILE-NAME is full path to lilypond file.
LINENO is the number of the erroneous line"
(with-temp-buffer
- (insert-file-contents (ly-switch-extension file-name ".ly")
+ (insert-file-contents (org-babel-lilypond-switch-extension file-name ".ly")
nil nil nil t)
(if (> lineNo 0)
(progn
@@ -292,128 +309,95 @@ (defun ly-parse-error-line (file-name lineNo)
(buffer-substring (point) (point-at-eol)))
nil)))
-(defun ly-attempt-to-open-pdf (file-name &optional test)
+(defun org-babel-lilypond-attempt-to-open-pdf (file-name &optional test)
"Attempt to display the generated pdf file
FILE-NAME is full path to lilypond file
If TEST is non-nil, the shell command is returned and is not run"
- (when ly-display-pdf-post-tangle
- (let ((pdf-file (ly-switch-extension file-name ".pdf")))
+ (when org-babel-lilypond-display-pdf-post-tangle
+ (let ((pdf-file (org-babel-lilypond-switch-extension file-name ".pdf")))
(if (file-exists-p pdf-file)
(let ((cmd-string
- (concat (ly-determine-pdf-path) " " pdf-file)))
+ (concat org-babel-lilypond-pdf-command " " pdf-file)))
(if test
cmd-string
(start-process
"\"Audition pdf\""
"*lilypond*"
- (ly-determine-pdf-path)
+ org-babel-lilypond-pdf-command
pdf-file)))
(message "No pdf file generated so can't display!")))))
-(defun ly-attempt-to-play-midi (file-name &optional test)
+(defun org-babel-lilypond-attempt-to-play-midi (file-name &optional test)
"Attempt to play the generated MIDI file
FILE-NAME is full path to lilypond file
If TEST is non-nil, the shell command is returned and is not run"
- (when ly-play-midi-post-tangle
- (let ((midi-file (ly-switch-extension file-name ".midi")))
+ (when org-babel-lilypond-play-midi-post-tangle
+ (let ((midi-file (org-babel-lilypond-switch-extension file-name ".midi")))
(if (file-exists-p midi-file)
(let ((cmd-string
- (concat (ly-determine-midi-path) " " midi-file)))
+ (concat org-babel-lilypond-midi-command " " midi-file)))
(if test
cmd-string
(start-process
"\"Audition midi\""
"*lilypond*"
- (ly-determine-midi-path)
+ org-babel-lilypond-midi-command
midi-file)))
(message "No midi file generated so can't play!")))))
-(defun ly-determine-ly-path (&optional test)
- "Return correct path to ly binary depending on OS
-If TEST is non-nil, it contains a simulation of the OS for test purposes"
- (let ((sys-type
- (or test system-type)))
- (cond ((string= sys-type "darwin")
- ly-OSX-ly-path)
- ((string= sys-type "windows-nt")
- ly-w32-ly-path)
- (t ly-nix-ly-path))))
-
-(defun ly-determine-pdf-path (&optional test)
- "Return correct path to pdf viewer depending on OS
-If TEST is non-nil, it contains a simulation of the OS for test purposes"
- (let ((sys-type
- (or test system-type)))
- (cond ((string= sys-type "darwin")
- ly-OSX-pdf-path)
- ((string= sys-type "windows-nt")
- ly-w32-pdf-path)
- (t ly-nix-pdf-path))))
-
-(defun ly-determine-midi-path (&optional test)
- "Return correct path to midi player depending on OS
-If TEST is non-nil, it contains a simulation of the OS for test purposes"
- (let ((sys-type
- (or test test system-type)))
- (cond ((string= sys-type "darwin")
- ly-OSX-midi-path)
- ((string= sys-type "windows-nt")
- ly-w32-midi-path)
- (t ly-nix-midi-path))))
-
-(defun ly-toggle-midi-play ()
+(defun org-babel-lilypond-toggle-midi-play ()
"Toggle whether midi will be played following a successful compilation."
(interactive)
- (setq ly-play-midi-post-tangle
- (not ly-play-midi-post-tangle))
+ (setq org-babel-lilypond-play-midi-post-tangle
+ (not org-babel-lilypond-play-midi-post-tangle))
(message (concat "Post-Tangle MIDI play has been "
- (if ly-play-midi-post-tangle
+ (if org-babel-lilypond-play-midi-post-tangle
"ENABLED." "DISABLED."))))
-(defun ly-toggle-pdf-display ()
+(defun org-babel-lilypond-toggle-pdf-display ()
"Toggle whether pdf will be displayed following a successful compilation."
(interactive)
- (setq ly-display-pdf-post-tangle
- (not ly-display-pdf-post-tangle))
+ (setq org-babel-lilypond-display-pdf-post-tangle
+ (not org-babel-lilypond-display-pdf-post-tangle))
(message (concat "Post-Tangle PDF display has been "
- (if ly-display-pdf-post-tangle
+ (if org-babel-lilypond-display-pdf-post-tangle
"ENABLED." "DISABLED."))))
-(defun ly-toggle-png-generation ()
+(defun org-babel-lilypond-toggle-png-generation ()
"Toggle whether png image will be generated by compilation."
(interactive)
- (setq ly-gen-png (not ly-gen-png))
+ (setq org-babel-lilypond-gen-png (not org-babel-lilypond-gen-png))
(message (concat "PNG image generation has been "
- (if ly-gen-png "ENABLED." "DISABLED."))))
+ (if org-babel-lilypond-gen-png "ENABLED." "DISABLED."))))
-(defun ly-toggle-html-generation ()
+(defun org-babel-lilypond-toggle-html-generation ()
"Toggle whether html will be generated by compilation."
(interactive)
- (setq ly-gen-html (not ly-gen-html))
+ (setq org-babel-lilypond-gen-html (not org-babel-lilypond-gen-html))
(message (concat "HTML generation has been "
- (if ly-gen-html "ENABLED." "DISABLED."))))
+ (if org-babel-lilypond-gen-html "ENABLED." "DISABLED."))))
-(defun ly-toggle-pdf-generation ()
+(defun org-babel-lilypond-toggle-pdf-generation ()
"Toggle whether pdf will be generated by compilation."
(interactive)
- (setq ly-gen-pdf (not ly-gen-pdf))
+ (setq org-babel-lilypond-gen-pdf (not org-babel-lilypond-gen-pdf))
(message (concat "PDF generation has been "
- (if ly-gen-pdf "ENABLED." "DISABLED."))))
+ (if org-babel-lilypond-gen-pdf "ENABLED." "DISABLED."))))
-(defun ly-toggle-arrange-mode ()
+(defun org-babel-lilypond-toggle-arrange-mode ()
"Toggle whether in Arrange mode or Basic mode."
(interactive)
- (setq ly-arrange-mode
- (not ly-arrange-mode))
+ (setq org-babel-lilypond-arrange-mode
+ (not org-babel-lilypond-arrange-mode))
(message (concat "Arrange mode has been "
- (if ly-arrange-mode "ENABLED." "DISABLED."))))
+ (if org-babel-lilypond-arrange-mode "ENABLED." "DISABLED."))))
-(defun ly-switch-extension (file-name ext)
+(defun org-babel-lilypond-switch-extension (file-name ext)
"Utility command to swap current FILE-NAME extension with EXT"
(concat (file-name-sans-extension
file-name) ext))
-(defun ly-get-header-args (mode)
+(defun org-babel-lilypond-get-header-args (mode)
"Default arguments to use when evaluating a lilypond
source block. These depend upon whether we are in arrange
mode i.e. ARRANGE-MODE is t"
@@ -427,11 +411,11 @@ (defun ly-get-header-args (mode)
'((:results . "file")
(:exports . "results")))))
-(defun ly-set-header-args (mode)
+(defun org-babel-lilypond-set-header-args (mode)
"Set org-babel-default-header-args:lilypond
-dependent on LY-ARRANGE-MODE"
+dependent on ORG-BABEL-LILYPOND-ARRANGE-MODE"
(setq org-babel-default-header-args:lilypond
- (ly-get-header-args mode)))
+ (org-babel-lilypond-get-header-args mode)))
(provide 'ob-lilypond)
diff --git a/testing/lisp/test-ob-lilypond.el b/testing/lisp/test-ob-lilypond.el
index abf6a48..6409e27 100644
--- a/testing/lisp/test-ob-lilypond.el
+++ b/testing/lisp/test-ob-lilypond.el
@@ -24,7 +24,7 @@
(save-excursion
(set-buffer (get-buffer-create "test-ob-lilypond.el"))
- (setq ly-here
+ (setq org-babel-lilypond-here
(file-name-directory
(or load-file-name (buffer-file-name)))))
@@ -52,81 +52,57 @@
(ert-deftest ob-lilypond/ly-compile-lilyfile ()
(should (equal
- `(,(ly-determine-ly-path) ;program
+ `(,org-babel-lilypond-ly-command ;program
nil ;infile
"*lilypond*" ;buffer
t ;display
- ,(if ly-gen-png "--png" "") ;&rest...
- ,(if ly-gen-html "--html" "")
- ,(if ly-gen-pdf "--pdf" "")
- ,(if ly-use-eps "-dbackend=eps" "")
- ,(if ly-gen-svg "-dbackend=svg" "")
+ ,(if org-babel-lilypond-gen-png "--png" "") ;&rest...
+ ,(if org-babel-lilypond-gen-html "--html" "")
+ ,(if org-babel-lilypond-gen-pdf "--pdf" "")
+ ,(if org-babel-lilypond-use-eps "-dbackend=eps" "")
+ ,(if org-babel-lilypond-gen-svg "-dbackend=svg" "")
"--output=test-file"
"test-file.ly")
- (ly-compile-lilyfile "test-file.ly" t))))
+ (org-babel-lilypond-compile-lilyfile "test-file.ly" t))))
(ert-deftest ob-lilypond/ly-compile-post-tangle ()
- (should (boundp 'ly-compile-post-tangle)))
+ (should (boundp 'org-babel-lilypond-compile-post-tangle)))
(ert-deftest ob-lilypond/ly-display-pdf-post-tangle ()
- (should (boundp 'ly-display-pdf-post-tangle)))
+ (should (boundp 'org-babel-lilypond-display-pdf-post-tangle)))
(ert-deftest ob-lilypond/ly-play-midi-post-tangle ()
- (should (boundp 'ly-play-midi-post-tangle)))
+ (should (boundp 'org-babel-lilypond-play-midi-post-tangle)))
-(ert-deftest ob-lilypond/ly-OSX-ly-path ()
- (should (boundp 'ly-OSX-ly-path))
- (should (stringp ly-OSX-ly-path)))
+(ert-deftest ob-lilypond/ly-ly-command ()
+ (should (boundp 'org-babel-lilypond-ly-command))
+ (should (stringp org-babel-lilypond-ly-command)))
-(ert-deftest ob-lilypond/ly-OSX-pdf-path ()
- (should (boundp 'ly-OSX-pdf-path))
- (should (stringp ly-OSX-pdf-path)))
+(ert-deftest ob-lilypond/ly-pdf-command ()
+ (should (boundp 'org-babel-lilypond-pdf-command))
+ (should (stringp org-babel-lilypond-pdf-command)))
-(ert-deftest ob-lilypond/ly-OSX-midi-path ()
- (should (boundp 'ly-OSX-midi-path))
- (should (stringp ly-OSX-midi-path)))
-
-(ert-deftest ob-lilypond/ly-nix-ly-path ()
- (should (boundp 'ly-nix-ly-path))
- (should (stringp ly-nix-ly-path)))
-
-(ert-deftest ob-lilypond/ly-nix-pdf-path ()
- (should (boundp 'ly-nix-pdf-path))
- (should (stringp ly-nix-pdf-path)))
-
-(ert-deftest ob-lilypond/ly-nix-midi-path ()
- (should (boundp 'ly-nix-midi-path))
- (should (stringp ly-nix-midi-path)))
-
-(ert-deftest ob-lilypond/ly-w32-ly-path ()
- (should (boundp 'ly-w32-ly-path))
- (should (stringp ly-w32-ly-path)))
-
-(ert-deftest ob-lilypond/ly-w32-pdf-path ()
- (should (boundp 'ly-w32-pdf-path))
- (should (stringp ly-w32-pdf-path)))
-
-(ert-deftest ob-lilypond/ly-w32-midi-path ()
- (should (boundp 'ly-w32-midi-path))
- (should (stringp ly-w32-midi-path)))
+(ert-deftest ob-lilypond/ly-midi-command ()
+ (should (boundp 'org-babel-lilypond-midi-command))
+ (should (stringp org-babel-lilypond-midi-command)))
(ert-deftest ob-lilypond/ly-gen-png ()
- (should (boundp 'ly-gen-png)))
+ (should (boundp 'org-babel-lilypond-gen-png)))
(ert-deftest ob-lilypond/ly-gen-svg ()
- (should (boundp 'ly-gen-svg)))
+ (should (boundp 'org-babel-lilypond-gen-svg)))
(ert-deftest ob-lilypond/ly-gen-html ()
- (should (boundp 'ly-gen-html)))
+ (should (boundp 'org-babel-lilypond-gen-html)))
(ert-deftest ob-lilypond/ly-gen-html ()
- (should (boundp 'ly-gen-pdf)))
+ (should (boundp 'org-babel-lilypond-gen-pdf)))
(ert-deftest ob-lilypond/use-eps ()
- (should (boundp 'ly-use-eps)))
+ (should (boundp 'org-babel-lilypond-use-eps)))
(ert-deftest ob-lilypond/ly-arrange-mode ()
- (should (boundp 'ly-arrange-mode)))
+ (should (boundp 'org-babel-lilypond-arrange-mode)))
;; (ert-deftest ob-lilypond/org-babel-default-header-args:lilypond ()
;; (should (equal '((:tangle . "yes")
@@ -140,32 +116,32 @@
(should (equal "This is a test"
(org-babel-expand-body:lilypond "This is a test" ()))))
-;;TODO (ert-deftest ly-test-org-babel-execute:lilypond ())
+;;TODO (ert-deftest org-babel-lilypond-test-org-babel-execute:lilypond ())
(ert-deftest ob-lilypond/ly-check-for-compile-error ()
(set-buffer (get-buffer-create "*lilypond*"))
(erase-buffer)
- (should (not (ly-check-for-compile-error nil t)))
- (insert-file-contents (concat ly-here
+ (should (not (org-babel-lilypond-check-for-compile-error nil t)))
+ (insert-file-contents (concat org-babel-lilypond-here
"../examples/ob-lilypond-test.error")
nil nil nil t)
(goto-char (point-min))
- (should (ly-check-for-compile-error nil t))
+ (should (org-babel-lilypond-check-for-compile-error nil t))
(kill-buffer "*lilypond*"))
(ert-deftest ob-lilypond/ly-process-compile-error ()
(find-file-other-window (concat
- ly-here
+ org-babel-lilypond-here
"../examples/ob-lilypond-broken.org"))
(set-buffer (get-buffer-create "*lilypond*"))
(insert-file-contents (concat
- ly-here
+ org-babel-lilypond-here
"../examples/ob-lilypond-test.error")
nil nil nil t)
(goto-char (point-min))
(search-forward "error:" nil t)
(should-error
- (ly-process-compile-error (concat
- ly-here
+ (org-babel-lilypond-process-compile-error (concat
+ org-babel-lilypond-here
"../examples/ob-lilypond-broken.ly"))
:type 'error)
(set-buffer "ob-lilypond-broken.org")
@@ -177,13 +153,13 @@
(ert-deftest ob-lilypond/ly-mark-error-line ()
(let ((file-name (concat
- ly-here
+ org-babel-lilypond-here
"../examples/ob-lilypond-broken.org"))
(expected-point-min 198)
(expected-point-max 205)
(line "line 20"))
(find-file-other-window file-name)
- (ly-mark-error-line file-name line)
+ (org-babel-lilypond-mark-error-line file-name line)
(should (equal expected-point-min (point)))
(exchange-point-and-mark)
@@ -193,174 +169,150 @@
(ert-deftest ob-lilypond/ly-parse-line-num ()
(with-temp-buffer
(insert-file-contents (concat
- ly-here
+ org-babel-lilypond-here
"../examples/ob-lilypond-test.error")
nil nil nil t)
(goto-char (point-min))
(search-forward "error:")
- (should (equal 25 (ly-parse-line-num (current-buffer))))))
+ (should (equal 25 (org-babel-lilypond-parse-line-num (current-buffer))))))
(ert-deftest ob-lilypond/ly-parse-error-line ()
- (let ((ly-file (concat
- ly-here
+ (let ((org-babel-lilypond-file (concat
+ org-babel-lilypond-here
"../examples/ob-lilypond-broken.ly")))
(should (equal "line 20"
- (ly-parse-error-line ly-file 20)))
- (should (not (ly-parse-error-line ly-file 0)))))
+ (org-babel-lilypond-parse-error-line org-babel-lilypond-file 20)))
+ (should (not (org-babel-lilypond-parse-error-line org-babel-lilypond-file 0)))))
(ert-deftest ob-lilypond/ly-attempt-to-open-pdf ()
- (let ((post-tangle ly-display-pdf-post-tangle)
- (ly-file (concat
- ly-here
+ (let ((post-tangle org-babel-lilypond-display-pdf-post-tangle)
+ (org-babel-lilypond-file (concat
+ org-babel-lilypond-here
"../examples/ob-lilypond-test.ly"))
(pdf-file (concat
- ly-here
+ org-babel-lilypond-here
"../examples/ob-lilypond-test.pdf")))
- (setq ly-display-pdf-post-tangle t)
+ (setq org-babel-lilypond-display-pdf-post-tangle t)
(when (not (file-exists-p pdf-file))
(set-buffer (get-buffer-create (file-name-nondirectory pdf-file)))
(write-file pdf-file))
(should (equal
(concat
- (ly-determine-pdf-path) " " pdf-file)
- (ly-attempt-to-open-pdf ly-file t)))
+ org-babel-lilypond-pdf-command " " pdf-file)
+ (org-babel-lilypond-attempt-to-open-pdf org-babel-lilypond-file t)))
(delete-file pdf-file)
(kill-buffer (file-name-nondirectory pdf-file))
(should (equal
"No pdf file generated so can't display!"
- (ly-attempt-to-open-pdf pdf-file)))
- (setq ly-display-pdf-post-tangle post-tangle)))
+ (org-babel-lilypond-attempt-to-open-pdf pdf-file)))
+ (setq org-babel-lilypond-display-pdf-post-tangle post-tangle)))
(ert-deftest ob-lilypond/ly-attempt-to-play-midi ()
- (let ((post-tangle ly-play-midi-post-tangle)
- (ly-file (concat
- ly-here
+ (let ((post-tangle org-babel-lilypond-play-midi-post-tangle)
+ (org-babel-lilypond-file (concat
+ org-babel-lilypond-here
"../examples/ob-lilypond-test.ly"))
(midi-file (concat
- ly-here
+ org-babel-lilypond-here
"../examples/ob-lilypond-test.midi")))
- (setq ly-play-midi-post-tangle t)
+ (setq org-babel-lilypond-play-midi-post-tangle t)
(when (not (file-exists-p midi-file))
(set-buffer (get-buffer-create (file-name-nondirectory midi-file)))
(write-file midi-file))
(should (equal
(concat
- (ly-determine-midi-path) " " midi-file)
- (ly-attempt-to-play-midi ly-file t)))
+ org-babel-lilypond-midi-command " " midi-file)
+ (org-babel-lilypond-attempt-to-play-midi org-babel-lilypond-file t)))
(delete-file midi-file)
(kill-buffer (file-name-nondirectory midi-file))
(should (equal
"No midi file generated so can't play!"
- (ly-attempt-to-play-midi midi-file)))
- (setq ly-play-midi-post-tangle post-tangle)))
-
-(ert-deftest ob-lilypond/ly-determine-ly-path ()
- (should (equal ly-OSX-ly-path
- (ly-determine-ly-path "darwin")))
- (should (equal ly-w32-ly-path
- (ly-determine-ly-path "windows-nt")))
- (should (equal ly-nix-ly-path
- (ly-determine-ly-path "nix"))))
-
-(ert-deftest ob-lilypond/ly-determine-pdf-path ()
- (should (equal ly-OSX-pdf-path
- (ly-determine-pdf-path "darwin")))
- (should (equal ly-w32-pdf-path
- (ly-determine-pdf-path "windows-nt")))
- (should (equal ly-nix-pdf-path
- (ly-determine-pdf-path "nix"))))
-
-(ert-deftest ob-lilypond/ly-determine-midi-path ()
- (should (equal ly-OSX-midi-path
- (ly-determine-midi-path "darwin")))
- (should (equal ly-w32-midi-path
- (ly-determine-midi-path "windows-nt")))
- (should (equal ly-nix-midi-path
- (ly-determine-midi-path "nix"))))
+ (org-babel-lilypond-attempt-to-play-midi midi-file)))
+ (setq org-babel-lilypond-play-midi-post-tangle post-tangle)))
(ert-deftest ob-lilypond/ly-toggle-midi-play-toggles-flag ()
- (if ly-play-midi-post-tangle
+ (if org-babel-lilypond-play-midi-post-tangle
(progn
- (ly-toggle-midi-play)
- (should (not ly-play-midi-post-tangle))
- (ly-toggle-midi-play)
- (should ly-play-midi-post-tangle))
- (ly-toggle-midi-play)
- (should ly-play-midi-post-tangle)
- (ly-toggle-midi-play)
- (should (not ly-play-midi-post-tangle))))
+ (org-babel-lilypond-toggle-midi-play)
+ (should (not org-babel-lilypond-play-midi-post-tangle))
+ (org-babel-lilypond-toggle-midi-play)
+ (should org-babel-lilypond-play-midi-post-tangle))
+ (org-babel-lilypond-toggle-midi-play)
+ (should org-babel-lilypond-play-midi-post-tangle)
+ (org-babel-lilypond-toggle-midi-play)
+ (should (not org-babel-lilypond-play-midi-post-tangle))))
(ert-deftest ob-lilypond/ly-toggle-pdf-display-toggles-flag ()
- (if ly-display-pdf-post-tangle
+ (if org-babel-lilypond-display-pdf-post-tangle
(progn
- (ly-toggle-pdf-display)
- (should (not ly-display-pdf-post-tangle))
- (ly-toggle-pdf-display)
- (should ly-display-pdf-post-tangle))
- (ly-toggle-pdf-display)
- (should ly-display-pdf-post-tangle)
- (ly-toggle-pdf-display)
- (should (not ly-display-pdf-post-tangle))))
+ (org-babel-lilypond-toggle-pdf-display)
+ (should (not org-babel-lilypond-display-pdf-post-tangle))
+ (org-babel-lilypond-toggle-pdf-display)
+ (should org-babel-lilypond-display-pdf-post-tangle))
+ (org-babel-lilypond-toggle-pdf-display)
+ (should org-babel-lilypond-display-pdf-post-tangle)
+ (org-babel-lilypond-toggle-pdf-display)
+ (should (not org-babel-lilypond-display-pdf-post-tangle))))
(ert-deftest ob-lilypond/ly-toggle-pdf-generation-toggles-flag ()
- (if ly-gen-pdf
+ (if org-babel-lilypond-gen-pdf
(progn
- (ly-toggle-pdf-generation)
- (should (not ly-gen-pdf))
- (ly-toggle-pdf-generation)
- (should ly-gen-pdf))
- (ly-toggle-pdf-generation)
- (should ly-gen-pdf)
- (ly-toggle-pdf-generation)
- (should (not ly-gen-pdf))))
+ (org-babel-lilypond-toggle-pdf-generation)
+ (should (not org-babel-lilypond-gen-pdf))
+ (org-babel-lilypond-toggle-pdf-generation)
+ (should org-babel-lilypond-gen-pdf))
+ (org-babel-lilypond-toggle-pdf-generation)
+ (should org-babel-lilypond-gen-pdf)
+ (org-babel-lilypond-toggle-pdf-generation)
+ (should (not org-babel-lilypond-gen-pdf))))
(ert-deftest ob-lilypond/ly-toggle-arrange-mode ()
- (if ly-arrange-mode
+ (if org-babel-lilypond-arrange-mode
(progn
- (ly-toggle-arrange-mode)
- (should (not ly-arrange-mode))
- (ly-toggle-arrange-mode)
- (should ly-arrange-mode))
- (ly-toggle-arrange-mode)
- (should ly-arrange-mode)
- (ly-toggle-arrange-mode)
- (should (not ly-arrange-mode))))
+ (org-babel-lilypond-toggle-arrange-mode)
+ (should (not org-babel-lilypond-arrange-mode))
+ (org-babel-lilypond-toggle-arrange-mode)
+ (should org-babel-lilypond-arrange-mode))
+ (org-babel-lilypond-toggle-arrange-mode)
+ (should org-babel-lilypond-arrange-mode)
+ (org-babel-lilypond-toggle-arrange-mode)
+ (should (not org-babel-lilypond-arrange-mode))))
(ert-deftest ob-lilypond/ly-toggle-png-generation-toggles-flag ()
- (if ly-gen-png
+ (if org-babel-lilypond-gen-png
(progn
- (ly-toggle-png-generation)
- (should (not ly-gen-png))
- (ly-toggle-png-generation)
- (should ly-gen-png))
- (ly-toggle-png-generation)
- (should ly-gen-png)
- (ly-toggle-png-generation)
- (should (not ly-gen-png))))
+ (org-babel-lilypond-toggle-png-generation)
+ (should (not org-babel-lilypond-gen-png))
+ (org-babel-lilypond-toggle-png-generation)
+ (should org-babel-lilypond-gen-png))
+ (org-babel-lilypond-toggle-png-generation)
+ (should org-babel-lilypond-gen-png)
+ (org-babel-lilypond-toggle-png-generation)
+ (should (not org-babel-lilypond-gen-png))))
(ert-deftest ob-lilypond/ly-toggle-html-generation-toggles-flag ()
- (if ly-gen-html
+ (if org-babel-lilypond-gen-html
(progn
- (ly-toggle-html-generation)
- (should (not ly-gen-html))
- (ly-toggle-html-generation)
- (should ly-gen-html))
- (ly-toggle-html-generation)
- (should ly-gen-html)
- (ly-toggle-html-generation)
- (should (not ly-gen-html))))
+ (org-babel-lilypond-toggle-html-generation)
+ (should (not org-babel-lilypond-gen-html))
+ (org-babel-lilypond-toggle-html-generation)
+ (should org-babel-lilypond-gen-html))
+ (org-babel-lilypond-toggle-html-generation)
+ (should org-babel-lilypond-gen-html)
+ (org-babel-lilypond-toggle-html-generation)
+ (should (not org-babel-lilypond-gen-html))))
(ert-deftest ob-lilypond/ly-switch-extension-with-extensions ()
(should (equal "test-name.xyz"
- (ly-switch-extension "test-name" ".xyz")))
+ (org-babel-lilypond-switch-extension "test-name" ".xyz")))
(should (equal "test-name.xyz"
- (ly-switch-extension "test-name.abc" ".xyz")))
+ (org-babel-lilypond-switch-extension "test-name.abc" ".xyz")))
(should (equal "test-name"
- (ly-switch-extension "test-name.abc" ""))))
+ (org-babel-lilypond-switch-extension "test-name.abc" ""))))
(ert-deftest ob-lilypond/ly-switch-extension-with-paths ()
(should (equal "/some/path/to/test-name.xyz"
- (ly-switch-extension "/some/path/to/test-name" ".xyz"))))
+ (org-babel-lilypond-switch-extension "/some/path/to/test-name" ".xyz"))))
(ert-deftest ob-lilypond/ly-get-header-args ()
(should (equal '((:tangle . "yes")
@@ -368,20 +320,20 @@
(:results . "silent")
(:cache . "yes")
(:comments . "yes"))
- (ly-set-header-args t)))
+ (org-babel-lilypond-set-header-args t)))
(should (equal '((:results . "file")
(:exports . "results"))
- (ly-set-header-args nil))))
+ (org-babel-lilypond-set-header-args nil))))
(ert-deftest ob-lilypond/ly-set-header-args ()
- (ly-set-header-args t)
+ (org-babel-lilypond-set-header-args t)
(should (equal '((:tangle . "yes")
(:noweb . "yes")
(:results . "silent")
(:cache . "yes")
(:comments . "yes"))
org-babel-default-header-args:lilypond))
- (ly-set-header-args nil)
+ (org-babel-lilypond-set-header-args nil)
(should (equal '((:results . "file")
(:exports . "results"))
org-babel-default-header-args:lilypond)))
--
2.0.4
[-- Attachment #3: Type: text/plain, Size: 191 bytes --]
Regards,
Achim.
--
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
Wavetables for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldUserWavetables
next prev parent reply other threads:[~2014-08-18 20:01 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-17 10:10 ob-lilypond code cleanup Achim Gratz
2014-08-18 11:17 ` Nicolas Goaziou
2014-08-18 17:32 ` Achim Gratz
2014-08-18 20:01 ` Achim Gratz [this message]
2014-08-20 20:28 ` Achim Gratz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87siktftyi.fsf@Rainer.invalid \
--to=stromeko@nexgo.de \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
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).