]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/editor.scm
*** empty log message ***
[lilypond.git] / scm / editor.scm
index 047d9af7a2f46a8dd2c87d7ecf3b12b64cf21b10..1d17b61d4bee555d64b3035b44f9735e99e8756f 100644 (file)
@@ -6,22 +6,37 @@
 
 (define-module (scm editor))
 
+;; Also for standalone use, so cannot include any lily modules.
 (use-modules
- (ice-9 regex))
+ (ice-9 regex)
+  (srfi srfi-13)
+  (srfi srfi-14))
 
-(define editor-command-template-alist
-  '(("emacs" .  "emacsclient --no-wait +%(line)s:%(column)s %(file)s")
-    ("gvim" . "gvim --remote +:%(line)s:norm%(column)s %(file)s")
-    ("nedit" . "nc -noask +%(line)s %(file)s")
-    ("gedit" . "gedit +%(line)s %(file)s")
-    ("jedit" . "jedit %(file)s +line:%(line)s")
-    ("lilypad" . "lilypad +%(line)s:%(column)s %(file)s")))
+(define PLATFORM
+  (string->symbol
+   (string-downcase
+    (car (string-tokenize (vector-ref (uname) 0) char-set:letter)))))
 
 (define (get-editor)
   (or (getenv "LYEDITOR")
       (getenv "XEDITOR")
       (getenv "EDITOR")
-      "emacs"))
+
+      ;; FIXME: how are default/preferred editors specified on
+      ;; different platforms?
+      (case PLATFORM
+       ((windows) "lilypad")
+       (else
+        "emacs"))))
+
+(define editor-command-template-alist
+  '(("emacs" .  "emacsclient --no-wait +%(line)s:%(column)s %(file)s || (emacs +%(line)s:%(column)s %(file)s&)")
+    ("gvim" . "gvim --remote +:%(line)s:norm%(column)s %(file)s")
+    ("uedit32" . "uedit32 %(file)s -l%(line)s -c%(column)s")
+    ("nedit" . "nc -noask +%(line)s %(file)s")
+    ("gedit" . "gedit +%(line)s %(file)s")
+    ("jedit" . "jedit -reuseview %(file)s +line:%(line)s")
+    ("lilypad" . "lilypad +%(line)s:%(column)s %(file)s")))
 
 (define (get-command-template alist editor)
   (define (get-command-template-helper)