Home | History | Annotate | Download | only in contrib
      1 (defvar cs-font-lock-keywords
      2   (list
      3     '("<\\?cs[^\\?]*\\?>"  0 font-lock-keyword-face t)
      4    '("<\\?cs +\\(call\\|each\\|if\\|alt\\|var\\|include\\)" 1  font-lock-keyword-face t)
      5    '("<\\?cs +\\(/each\\|/if\\|/alt\\|/var\\|/include\\)" 1  font-lock-keyword-face t)
      6 
      7    ; variable names
      8    '("<\\?cs +var:\\([_0-9a-zA-Z\.]+\\)[^\\?]+\\?>" 1  font-lock-variable-name-face t)
      9    '("<\\?cs +alt:\\([_0-9a-zA-Z\.]+\\)[^\\?]+\\?>" 1  font-lock-variable-name-face t)
     10    '("<\\?cs +each:\\([_0-9a-zA-Z\.]+\\)[^\\?]+\\?>" 1  font-lock-variable-name-face t)
     11 
     12    ; string
     13    '("<\\?cs[^\"\\?]+\\(\"[^\"]+\"\\)[^\\?]+\\?>"  1 font-lock-string-face t)
     14 
     15 ))
     16 
     17 (defvar cs-mode-map ())
     18 
     19 (if (not cs-mode-map)
     20     (progn
     21       (setq cs-mode-map (make-sparse-keymap))
     22       (define-key cs-mode-map "\C-c\C-i" 'cs-insert-tag)
     23       ))
     24 
     25 (defun cs-mode nil
     26   "ClearSilver mode"
     27 
     28   (interactive)
     29   (setq major-mode 'cs-mode)
     30   (setq mode-name  "CS")
     31   (use-local-map cs-mode-map)
     32 
     33   (make-local-variable 'font-lock-defaults)
     34   (setq font-lock-defaults
     35        '((cs-font-lock-keywords) t))
     36 
     37   (setq font-lock-keywords cs-font-lock-keywords)
     38 
     39   (font-lock-mode 1)
     40 
     41   (run-hooks 'cs-mode-hook)
     42 
     43 )
     44 
     45 (defun cs-insert-tag ()
     46   (interactive)
     47   (insert "<?cs  ?>")
     48   (backward-char 3)
     49 )
     50 
     51