Mercurial > emacs
changeset 40901:f2a856e8a39c
(ps-mode-font-lock-keywords-1): Merge two regular expressions into one.
(ps-mode): Make local bindings for `comment-start' and `comment-start-skip'.
(ps-mode-looking-at-nested): Simplify an if-else construct;
use `set-match-data' to set the result.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 10 Nov 2001 19:36:51 +0000 |
parents | 733a4e58f062 |
children | 95bf86aa6120 |
files | lisp/progmodes/ps-mode.el |
diffstat | 1 files changed, 16 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/ps-mode.el Sat Nov 10 19:36:24 2001 +0000 +++ b/lisp/progmodes/ps-mode.el Sat Nov 10 19:36:51 2001 +0000 @@ -5,7 +5,7 @@ ;; Author: Peter Kleiweg <kleiweg@let.rug.nl> ;; Maintainer: Peter Kleiweg <kleiweg@let.rug.nl> ;; Created: 20 Aug 1997 -;; Version: 1.1f, 25 Oct 2001 +;; Version: 1.1g, 9 Nov 2001 ;; Keywords: PostScript, languages ;; This file is part of GNU Emacs. @@ -30,7 +30,7 @@ ;;; Code: -(defconst ps-mode-version "1.1f, 25 Oct 2001") +(defconst ps-mode-version "1.1g, 9 Nov 2001") (defconst ps-mode-maintainer-address "Peter Kleiweg <kleiweg@let.rug.nl>") (require 'easymenu) @@ -256,9 +256,12 @@ ps-mode-font-lock-keywords-1 (list '("//\\w+" . font-lock-type-face) - '("^\\(/\\w+\\)\\>[[ \t]*\\(%.*\\)?\r?$" - . (1 font-lock-function-name-face)) - '("^\\(/\\w+\\)\\>\\([ \t]*{\\|[ \t]*<<\\|.*\\<def\\>\\|[ \t]+[0-9]+[ \t]+dict\\>\\)" + `(,(concat + "^\\(/\\w+\\)\\>" + "\\([[ \t]*\\(%.*\\)?\r?$" ; Nothing but `[' or comment after the name. + "\\|[ \t]*\\({\\|<<\\)" ; `{' or `<<' following the name. + "\\|[ \t]+[0-9]+[ \t]+dict\\>" ; `[0-9]+ dict' following the name. + "\\|.*\\<def\\>\\)") ; `def' somewhere on the same line. . (1 font-lock-function-name-face)) '("/\\w+" . font-lock-variable-name-face) (cons ps-mode-operators 'font-lock-keyword-face))) @@ -523,7 +526,10 @@ ps-mode-font-lock-keywords-1 ps-mode-font-lock-keywords-2 ps-mode-font-lock-keywords-3) - t))) + t)) + (set (make-local-variable 'comment-start) "%") + ;; NOTE: `\' has a special meaning in strings only + (set (make-local-variable 'comment-start-skip) "%+[ \t]*")) (defun ps-mode-show-version () "Show current version of PostScript mode." @@ -573,15 +579,13 @@ ;; Search next bracket, stepping over escaped brackets. (if (not (looking-at "\\([^()\\\n]\\|\\\\.\\)*\\([()]\\)")) (setq level -1) - (if (string= "(" (match-string 2)) - (setq level (1+ level)) - (setq level (1- level))) - (goto-char (setq pos (match-end 0))))) + (setq level (+ level (if (string= "(" (match-string 2)) 1 -1))) + (goto-char (setq pos (match-end 0))))) (if (not (= level 0)) nil ;; Found string with nested brackets, now set match data nr 2. - (goto-char first) - (re-search-forward "\\(%\\)\\|\\((.*\\)" pos)))) + (set-match-data (list first pos nil nil first pos)) + pos))) ;; This function should search for a string or comment ;; If comment, return as match data nr 1