Mercurial > emacs
view lisp/obsolete/awk-mode.el @ 66573:e65b759c6906
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-630
Merge from gnus--rel--5.10
Patches applied:
* gnus--rel--5.10 (patch 149-151)
- Merge from emacs--cvs-trunk--0
- Update from CVS
2005-10-27 Reiner Steib <Reiner.Steib@gmx.de>
* lisp/gnus/flow-fill.el (fill-flowed-encode-tests): Restore trailing
whitespace removed in revision 7.8. Use concatenated string to
protect trailing whitespace.
2005-10-27 Jouni K Seppanen <jks@iki.fi> (tiny change)
* lisp/gnus/nnimap.el (nnimap-search-uids-not-since-is-evil): Add variable.
(nnimap-request-expire-articles): Use it to avoid sending 'UID
SEARCH UID ... NOT SINCE' queries, for inefficient servers like
Courier IMAP ("some version from 2004"). Mostly based on similar
code in the same function.
2005-10-26 Katsumi Yamaoka <yamaoka@jpl.org>
* lisp/gnus/message.el (message-display-completion-list): New function.
(message-expand-group): Use it; make sure the Completions buffer
is modifiable.
author | Miles Bader <miles@gnu.org> |
---|---|
date | Mon, 31 Oct 2005 07:07:28 +0000 |
parents | 5b1a238fcbb4 |
children | e8a3fb527b77 2d92f5c9d6ae |
line wrap: on
line source
;;; awk-mode.el --- AWK code editing commands for Emacs ;; Copyright (C) 1988, 1994, 1996, 2000, 2002, 2003, 2004, ;; 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: unix, languages ;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; Sets up C-mode with support for awk-style #-comments and a lightly ;; hacked syntax table. ;;; Code: (defvar awk-mode-syntax-table (let ((st (make-syntax-table))) (modify-syntax-entry ?\\ "\\" st) (modify-syntax-entry ?\n "> " st) (modify-syntax-entry ?\f "> " st) (modify-syntax-entry ?\# "< " st) ;; / can delimit regexes or be a division operator. We assume that it is ;; more commonly used for regexes and fix the remaining cases with ;; `font-lock-syntactic-keywords'. (modify-syntax-entry ?/ "\"" st) (modify-syntax-entry ?* "." st) (modify-syntax-entry ?+ "." st) (modify-syntax-entry ?- "." st) (modify-syntax-entry ?= "." st) (modify-syntax-entry ?% "." st) (modify-syntax-entry ?< "." st) (modify-syntax-entry ?> "." st) (modify-syntax-entry ?& "." st) (modify-syntax-entry ?| "." st) (modify-syntax-entry ?_ "_" st) (modify-syntax-entry ?\' "\"" st) st) "Syntax table in use in `awk-mode' buffers.") ;; Regexps written with help from Peter Galbraith <galbraith@mixing.qc.dfo.ca>. (defconst awk-font-lock-keywords (eval-when-compile (list ;; ;; Function names. '("^[ \t]*\\(function\\)\\>[ \t]*\\(\\sw+\\)?" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) ;; ;; Variable names. (cons (regexp-opt '("ARGC" "ARGIND" "ARGV" "CONVFMT" "ENVIRON" "ERRNO" "FIELDWIDTHS" "FILENAME" "FNR" "FS" "IGNORECASE" "NF" "NR" "OFMT" "OFS" "ORS" "RLENGTH" "RS" "RSTART" "SUBSEP") 'words) 'font-lock-variable-name-face) ;; ;; Keywords. (regexp-opt '("BEGIN" "END" "break" "continue" "delete" "exit" "else" "for" "getline" "if" "next" "print" "printf" "return" "while") 'words) ;; ;; Builtins. (list (regexp-opt '("atan2" "close" "cos" "ctime" "exp" "gsub" "index" "int" "length" "log" "match" "rand" "sin" "split" "sprintf" "sqrt" "srand" "sub" "substr" "system" "time" "tolower" "toupper") 'words) 1 'font-lock-builtin-face) ;; ;; Operators. Is this too much? (cons (regexp-opt '("&&" "||" "<=" "<" ">=" ">" "==" "!=" "!~" "~")) 'font-lock-constant-face) )) "Default expressions to highlight in AWK mode.") (require 'syntax) (defconst awk-font-lock-syntactic-keywords ;; `/' is mostly used for /.../ regular expressions, but is also ;; used as a division operator. Distinguishing between the two is ;; a pain in the youknowwhat. ;; '(("\\(^\\|[<=>-+*%/!^,~(?:|&]\\)\\s-*\\(/\\)\\([^/\n\\]\\|\\\\.\\)*\\(/\\)" ;; (2 "\"") (4 "\""))) '(("[^<=>-+*%/!^,~(?:|& \t\n\f]\\s-*\\(/\\)" (1 (unless (nth 3 (syntax-ppss (match-beginning 1))) ".")))) "Syntactic keywords for `awk-mode'.") ;; No longer autoloaded since it might clobber the autoload directive in CC Mode. (define-derived-mode awk-mode c-mode "AWK" "Major mode for editing AWK code. This is much like C mode except for the syntax of comments. Its keymap inherits from C mode's and it has the same variables for customizing indentation. It has its own abbrev table and its own syntax table. Turning on AWK mode runs `awk-mode-hook'." (set (make-local-variable 'paragraph-start) (concat "$\\|" page-delimiter)) (set (make-local-variable 'paragraph-separate) paragraph-start) (set (make-local-variable 'comment-start) "# ") (set (make-local-variable 'comment-end) "") (set (make-local-variable 'comment-start-skip) "#+ *") (setq font-lock-defaults '(awk-font-lock-keywords nil nil ((?_ . "w")) nil (parse-sexp-lookup-properties . t) (font-lock-syntactic-keywords . awk-font-lock-syntactic-keywords)))) (provide 'awk-mode) ;;; arch-tag: 14ebc02a-b3c5-4e76-8034-6ca9ac0af0e6 ;;; awk-mode.el ends here