]> git.donarmstrong.com Git - lilypond.git/blobdiff - elisp/lilypond-font-lock.el
Doc-es: various updates.
[lilypond.git] / elisp / lilypond-font-lock.el
index 9e71ad6f0297264bfc4e6413477909f1ae540dd7..be7b592635b5c9678f85347fafd55a6d2c066ea3 100644 (file)
@@ -1,8 +1,6 @@
 ;;; lilypond-font-lock.el --- syntax coloring for LilyPond mode
 
-;; Copyright (C) 1992,1993,1994  Tim Peters
-
-;; Author: 2001-2003: Heikki Junes
+;; Author: 2001-2006: Heikki Junes
 ;;  * Emacs-mode: new keywords, reserved words, identifiers, notenames, 
 ;;    some dynamics and brackets are font-lock-keywords
 ;;  * context-dependent syntax-tables
 ;; Author: 1995-1996 Barry A. Warsaw
 ;;         1992-1994 Tim Peters
 ;; Created:       Feb 1992
-;; Version:       1.9.9
-;; Last Modified: 23SEP2003
+;; Version:       2.9.29
+;; Last Modified: 11NOV2006
 ;; Keywords: lilypond languages music notation
 
-;; This software is provided as-is, without express or implied
-;; warranty.  Permission to use, copy, modify, distribute or sell this
-;; software, without fee, for any purpose and by any individual or
-;; organization, is hereby granted, provided that the above copyright
-;; notice and this paragraph appear in all copies.
-
 ;; This started out as a cannabalised version of python-mode.el, by hwn
 ;; For changes see the LilyPond ChangeLog
 ;;
@@ -66,8 +58,8 @@
 ;; ... keywords (defined above, see kwregex)
       (cons (concat "\\(\\([_^-]?\\(" kwregex "\\)\\)+\\)\\($\\|[] \t(~{}>\\\\_()^*-]\\)") '(1 font-lock-keyword-face))
 
-;; ... user defined identifiers \[a-zA-Z]+
-      '("\\([_^-]?\\\\\\([a-zA-Z][a-zA-Z]*\\)\\)" 1 font-lock-constant-face)
+;; ... user defined identifiers, roughly  \[a-zA-Z]+ with single - or _ in between.
+      '("\\([_^-]?\\\\\\([a-zA-Z[:nonascii:]]\\(?:[-_]?[a-zA-Z[:nonascii:]]\\)*\\)\\)" 1 font-lock-constant-face)
 
 ;; ... the left side of '=' -mark
       '("\\([_a-zA-Z.0-9-]+\\)[ \t]*=[ \t]*" 1 font-lock-variable-name-face)
   (setq context (parse-partial-sexp (point-min) (point)))
   (cond ((nth 3 context)) ; inside string
        ((nth 4 context)) ; inside a comment
-       ((eq (char-syntax (char-before (point))) ?\\)) ; found escape-char
-       ((and (eq (char-syntax (char-before (- (point) 1))) ?\\)
+       ((eq (char-syntax (or (char-before (point)) 0)) ?\\)) ; found escape-char
+       ((and (eq (char-syntax (or (char-before (- (point) 1)) 0)) ?\\)
              (memq (char-before (point)) '( ?\) ?\] )))) ; found escape-char
        ((memq (char-before (point)) '( ?\) ))
         (LilyPond-mode-set-syntax-table '( ?\( ?\) )))