]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/editor.scm
* scm/editor.scm: add char argument.
[lilypond.git] / scm / editor.scm
index 047d9af7a2f46a8dd2c87d7ecf3b12b64cf21b10..82923aa7b46a0cd2ede715dc1fe006bb988afd35 100644 (file)
@@ -6,22 +6,38 @@
 
 (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")
+    ("syn" . "syn -line %(line)s -col %(column)s %(file)s")
+    ("lilypad" . "lilypad +%(line)s:%(column)s %(file)s")))
 
 (define (get-command-template alist editor)
   (define (get-command-template-helper)
@@ -44,7 +60,7 @@
      x
      (re-sub "\\\\" "/" x)))
 
-(define-public (get-editor-command file-name line column)
+(define-public (get-editor-command file-name line char column)
   (let* ((editor (get-editor))
         (template (get-command-template editor-command-template-alist editor))
         (command