Mercurial > emacs
annotate lisp/textmodes/conf-mode.el @ 71710:dbbc0b93cfeb
(Forcing Redisplay, Displaying Messages, Temporary Displays, Font Selection,
Auto Faces, Font Lookup, Fringe Indicators, Display Margins, Image Descriptors,
Showing Images, Image Cache, Button Types, Making Buttons, Manipulating
Buttons, Button Buffer Commands, Display Table Format, Glyphs): Remove
@tindex.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 08 Jul 2006 18:11:49 +0000 |
parents | 067115a6e738 |
children | 88fd4983fe78 |
rev | line source |
---|---|
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
1 ;;; conf-mode.el --- Simple major mode for editing conf/ini/properties files |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
2 |
68648
067115a6e738
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
66524
diff
changeset
|
3 ;; Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. |
64969
3a43d3e9bb74
Fix copyright notice, list author.
Richard M. Stallman <rms@gnu.org>
parents:
64751
diff
changeset
|
4 |
3a43d3e9bb74
Fix copyright notice, list author.
Richard M. Stallman <rms@gnu.org>
parents:
64751
diff
changeset
|
5 ;; Author: Daniel Pfeiffer <occitan@esperanto.org> |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
6 ;; Keywords: conf ini windows java |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
7 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
8 ;; This file is part of GNU Emacs. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
9 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
10 ;; GNU Emacs is free software; you can redistribute it and/or modify |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
11 ;; it under the terms of the GNU General Public License as published by |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
12 ;; the Free Software Foundation; either version 2, or (at your option) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
13 ;; any later version. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
14 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
15 ;; GNU Emacs is distributed in the hope that it will be useful, |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
18 ;; GNU General Public License for more details. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
19 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
20 ;; You should have received a copy of the GNU General Public License |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64084 | 22 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
23 ;; Boston, MA 02110-1301, USA. | |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
24 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
25 ;;; Commentary: |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
26 ;; |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
27 ;; This mode is designed to edit many similar varieties of Conf/Ini files and |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
28 ;; Java properties. It started out from Aurélien Tisné's ini-mode. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
29 ;; `conf-space-keywords' were inspired by Robert Fitzgerald's any-ini-mode. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
30 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
31 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
32 ;;; Code: |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
33 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
34 (require 'newcomment) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
35 |
65261
5e6a52548deb
(outline-heading-end-regexp): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
64969
diff
changeset
|
36 (defvar outline-heading-end-regexp) |
5e6a52548deb
(outline-heading-end-regexp): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
64969
diff
changeset
|
37 |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
38 ;; Variables: |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
39 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
40 (defgroup conf nil |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
41 "Configuration files." |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
42 :group 'data |
59996
aac0a33f5772
Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents:
58694
diff
changeset
|
43 :version "22.1") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
44 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
45 (defcustom conf-assignment-column 24 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
46 "Align assignments to this column by default with \\[conf-align-assignments]. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
47 If this number is negative, the `=' comes before the whitespace. Use 0 to |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
48 not align (only setting space according to `conf-assignment-space')." |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
49 :type 'integer |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
50 :group 'conf) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
51 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
52 (defcustom conf-javaprop-assignment-column 32 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
53 "Value for `conf-assignment-column' in Java properties buffers." |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
54 :type 'integer |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
55 :group 'conf) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
56 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
57 (defcustom conf-colon-assignment-column (- (abs conf-assignment-column)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
58 "Value for `conf-assignment-column' in Java properties buffers." |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
59 :type 'integer |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
60 :group 'conf) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
61 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
62 (defcustom conf-assignment-space t |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
63 "Put at least one space around assignments when aligning." |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
64 :type 'boolean |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
65 :group 'conf) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
66 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
67 (defcustom conf-colon-assignment-space nil |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
68 "Value for `conf-assignment-space' in colon style Conf mode buffers." |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
69 :type 'boolean |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
70 :group 'conf) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
71 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
72 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
73 (defvar conf-mode-map |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
74 (let ((map (make-sparse-keymap))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
75 (define-key map "\C-c\C-u" 'conf-unix-mode) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
76 (define-key map "\C-c\C-w" 'conf-windows-mode) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
77 (define-key map "\C-c\C-j" 'conf-javaprop-mode) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
78 (define-key map "\C-c\C-s" 'conf-space-mode) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
79 (define-key map "\C-c " 'conf-space-mode) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
80 (define-key map "\C-c\C-c" 'conf-colon-mode) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
81 (define-key map "\C-c:" 'conf-colon-mode) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
82 (define-key map "\C-c\C-x" 'conf-xdefaults-mode) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
83 (define-key map "\C-c\C-p" 'conf-ppd-mode) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
84 (define-key map "\C-c\C-q" 'conf-quote-normal) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
85 (define-key map "\C-c\"" 'conf-quote-normal) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
86 (define-key map "\C-c'" 'conf-quote-normal) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
87 (define-key map "\C-c\C-a" 'conf-align-assignments) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
88 map) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
89 "Local keymap for `conf-mode' buffers.") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
90 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
91 (defvar conf-mode-syntax-table |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
92 (let ((table (make-syntax-table))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
93 (modify-syntax-entry ?= "." table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
94 (modify-syntax-entry ?_ "_" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
95 (modify-syntax-entry ?- "_" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
96 (modify-syntax-entry ?. "_" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
97 (modify-syntax-entry ?\' "\"" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
98 (modify-syntax-entry ?\; "<" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
99 (modify-syntax-entry ?\n ">" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
100 (modify-syntax-entry ?\r ">" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
101 table) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
102 "Syntax table in use in Windows style `conf-mode' buffers.") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
103 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
104 (defvar conf-unix-mode-syntax-table |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
105 (let ((table (make-syntax-table conf-mode-syntax-table))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
106 (modify-syntax-entry ?\# "<" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
107 ;; override |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
108 (modify-syntax-entry ?\; "." table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
109 table) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
110 "Syntax table in use in Unix style `conf-mode' buffers.") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
111 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
112 (defvar conf-javaprop-mode-syntax-table |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
113 (let ((table (make-syntax-table conf-unix-mode-syntax-table))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
114 (modify-syntax-entry ?/ ". 124" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
115 (modify-syntax-entry ?* ". 23b" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
116 table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
117 "Syntax table in use in Java prperties buffers.") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
118 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
119 (defvar conf-ppd-mode-syntax-table |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
120 (let ((table (make-syntax-table conf-mode-syntax-table))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
121 (modify-syntax-entry ?* ". 1" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
122 (modify-syntax-entry ?% ". 2" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
123 ;; override |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
124 (modify-syntax-entry ?\' "." table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
125 (modify-syntax-entry ?\; "." table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
126 table) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
127 "Syntax table in use in PPD `conf-mode' buffers.") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
128 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
129 (defvar conf-xdefaults-mode-syntax-table |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
130 (let ((table (make-syntax-table conf-mode-syntax-table))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
131 (modify-syntax-entry ?! "<" table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
132 ;; override |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
133 (modify-syntax-entry ?\; "." table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
134 table) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
135 "Syntax table in use in Xdefaults style `conf-mode' buffers.") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
136 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
137 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
138 (defvar conf-font-lock-keywords |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
139 `(;; [section] (do this first because it may look like a parameter) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
140 ("^[ \t]*\\[\\(.+\\)\\]" 1 'font-lock-type-face) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
141 ;; var=val or var[index]=val |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
142 ("^[ \t]*\\(.+?\\)\\(?:\\[\\(.*?\\)\\]\\)?[ \t]*=" |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
143 (1 'font-lock-variable-name-face) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
144 (2 'font-lock-constant-face nil t)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
145 ;; section { ... } (do this last because some assign ...{...) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
146 ("^[ \t]*\\([^=:\n]+?\\)[ \t\n]*{[^{}]*?$" 1 'font-lock-type-face prepend)) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
147 "Keywords to hilight in Conf mode.") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
148 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
149 (defvar conf-javaprop-font-lock-keywords |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
150 '(;; var=val |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
151 ("^[ \t]*\\(.+?\\)\\(?:\\.\\([0-9]+\\)\\(?:\\.\\(.+?\\)\\(?:\\.\\([0-9]+\\)\\(?:\\.\\(.+?\\)\\(?:\\.\\([0-9]+\\)\\(\\..+?\\)?\\)?\\)?\\)?\\)?\\)?\\([:= \t]\\|$\\)" |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
152 (1 'font-lock-variable-name-face) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
153 (2 'font-lock-constant-face nil t) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
154 (3 'font-lock-variable-name-face nil t) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
155 (4 'font-lock-constant-face nil t) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
156 (5 'font-lock-variable-name-face nil t) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
157 (6 'font-lock-constant-face nil t) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
158 (7 'font-lock-variable-name-face nil t))) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
159 "Keywords to hilight in Conf Java Properties mode.") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
160 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
161 (defvar conf-space-keywords-alist |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
162 '(("\\`/etc/gpm/" . "key\\|name\\|foreground\\|background\\|border\\|head") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
163 ("\\`/etc/magic\\'" . "[^ \t]+[ \t]+\\(?:[bl]?e?\\(?:short\\|long\\)\\|byte\\|string\\)[^ \t]*") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
164 ("/mod\\(?:ules\\|probe\\)\\.conf" . "alias\\|in\\(?:clude\\|stall\\)\\|options\\|remove") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
165 ("/manpath\\.config" . "MAN\\(?:DATORY_MANPATH\\|PATH_MAP\\|DB_MAP\\)") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
166 ("/sensors\\.conf" . "chip\\|bus\\|label\\|compute\\|set\\|ignore") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
167 ("/sane\\(\\.d\\)?/" . "option\\|device\\|port\\|usb\\|sc\\(?:si\\|anner\\)") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
168 ("/resmgr\\.conf" . "class\\|add\\|allow\\|deny") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
169 ("/dictionary\\.lst\\'" . "DICT\\|HYPH\\|THES") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
170 ("/tuxracer/options" . "set")) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
171 "File name based settings for `conf-space-keywords'.") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
172 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
173 (defvar conf-space-keywords nil |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
174 "Regexps for functions that may come before a space assignment. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
175 This allows constructs such as |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
176 keyword var value |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
177 This variable is best set in the file local variables, or through |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
178 `conf-space-keywords-alist'.") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
179 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
180 (defvar conf-space-font-lock-keywords |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
181 `(;; [section] (do this first because it may look like a parameter) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
182 ("^[ \t]*\\[\\(.+\\)\\]" 1 'font-lock-type-face) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
183 ;; section { ... } (do this first because it looks like a parameter) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
184 ("^[ \t]*\\(.+?\\)[ \t\n]*{[^{}]*?$" 1 'font-lock-type-face) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
185 ;; var val |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
186 (eval if conf-space-keywords |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
187 (list (concat "^[ \t]*\\(" conf-space-keywords "\\)[ \t]+\\([^\000- ]+\\)") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
188 '(1 'font-lock-keyword-face) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
189 '(2 'font-lock-variable-name-face)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
190 '("^[ \t]*\\([^\000- ]+\\)" 1 'font-lock-variable-name-face))) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
191 "Keywords to hilight in Conf Space mode.") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
192 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
193 (defvar conf-colon-font-lock-keywords |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
194 `(;; [section] (do this first because it may look like a parameter) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
195 ("^[ \t]*\\[\\(.+\\)\\]" 1 'font-lock-type-face) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
196 ;; var: val |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
197 ("^[ \t]*\\(.+?\\)[ \t]*:" |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
198 (1 'font-lock-variable-name-face)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
199 ;; section { ... } (do this last because some assign ...{...) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
200 ("^[ \t]*\\([^:\n]+\\)[ \t\n]*{[^{}]*?$" 1 'font-lock-type-face prepend)) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
201 "Keywords to hilight in Conf Colon mode.") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
202 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
203 (defvar conf-assignment-sign ?= |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
204 "Sign used for assignments (char or string).") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
205 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
206 (defvar conf-assignment-regexp ".+?\\([ \t]*=[ \t]*\\)" |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
207 "Regexp to recognize assignments. |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
208 It is anchored after the first sexp on a line. There must be a |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
209 grouping for the assignment sign, including leading and trailing |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
210 whitespace.") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
211 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
212 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
213 ;; If anybody can figure out how to get the same effect by configuring |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
214 ;; `align', I'd be glad to hear. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
215 (defun conf-align-assignments (&optional arg) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
216 (interactive "P") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
217 (setq arg (if arg |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
218 (prefix-numeric-value arg) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
219 conf-assignment-column)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
220 (save-excursion |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
221 (goto-char (point-min)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
222 (while (not (eobp)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
223 (let ((cs (comment-beginning))) ; go before comment if within |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
224 (if cs (goto-char cs))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
225 (while (forward-comment 9)) ; max-int? |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
226 (when (and (not (eobp)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
227 (looking-at conf-assignment-regexp)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
228 (goto-char (match-beginning 1)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
229 (delete-region (point) (match-end 1)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
230 (if conf-assignment-sign |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
231 (if (>= arg 0) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
232 (progn |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
233 (indent-to-column arg) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
234 (or (not conf-assignment-space) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
235 (memq (char-before (point)) '(?\s ?\t)) (insert ?\s)) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
236 (insert conf-assignment-sign |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
237 (if (and conf-assignment-space (not (eolp))) ?\s ""))) |
65261
5e6a52548deb
(outline-heading-end-regexp): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
64969
diff
changeset
|
238 (insert (if conf-assignment-space ?\s "") conf-assignment-sign) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
239 (unless (eolp) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
240 (indent-to-column (- arg)) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
241 (or (not conf-assignment-space) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
242 (memq (char-before (point)) '(?\s ?\t)) (insert ?\s)))) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
243 (unless (eolp) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
244 (if (>= (current-column) (abs arg)) |
65261
5e6a52548deb
(outline-heading-end-regexp): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
64969
diff
changeset
|
245 (insert ?\s) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
246 (indent-to-column (abs arg)))))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
247 (forward-line)))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
248 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
249 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
250 (defun conf-quote-normal (arg) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
251 "Set the syntax of ' and \" to punctuation. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
252 With prefix arg, only do it for ' if 1, or only for \" if 2. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
253 This only affects the current buffer. Some conf files use quotes |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
254 to delimit strings, while others allow quotes as simple parts of |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
255 the assigned value. In those files font locking will be wrong, |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
256 and you can correct it with this command. (Some files even do |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
257 both, i.e. quotes delimit strings, except when they are |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
258 unbalanced, but hey...)" |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
259 (interactive "P") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
260 (let ((table (copy-syntax-table (syntax-table)))) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
261 (if (or (not arg) (= (prefix-numeric-value arg) 1)) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
262 (modify-syntax-entry ?\' "." table)) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
263 (if (or (not arg) (= (prefix-numeric-value arg) 2)) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
264 (modify-syntax-entry ?\" "." table)) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
265 (set-syntax-table table) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
266 (and (boundp 'font-lock-mode) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
267 font-lock-mode |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
268 (font-lock-fontify-buffer)))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
269 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
270 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
271 (defun conf-outline-level () |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
272 (let ((depth 0) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
273 (pt (match-end 0))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
274 (condition-case nil |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
275 (while (setq pt (scan-lists pt -1 1) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
276 depth (1+ depth))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
277 (scan-error depth)))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
278 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
279 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
280 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
281 ;;;###autoload |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
282 (defun conf-mode () |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
283 "Mode for Unix and Windows Conf files and Java properties. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
284 Most conf files know only three kinds of constructs: parameter |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
285 assignments optionally grouped into sections and comments. Yet |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
286 there is a great range of variation in the exact syntax of conf |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
287 files. See below for various wrapper commands that set up the |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
288 details for some of the most widespread variants. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
289 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
290 This mode sets up font locking, outline, imenu and it provides |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
291 alignment support through `conf-align-assignments'. If strings |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
292 come out wrong, try `conf-quote-normal'. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
293 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
294 Some files allow continuation lines, either with a backslash at |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
295 the end of line, or by indenting the next line (further). These |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
296 constructs cannot currently be recognized. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
297 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
298 Because of this great variety of nuances, which are often not |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
299 even clearly specified, please don't expect it to get every file |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
300 quite right. Patches that clearly identify some special case, |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
301 without breaking the general ones, are welcome. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
302 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
303 If instead you start this mode with the generic `conf-mode' |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
304 command, it will parse the buffer. It will generally well |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
305 identify the first four cases listed below. If the buffer |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
306 doesn't have enough contents to decide, this is identical to |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
307 `conf-windows-mode' on Windows, elsewhere to `conf-unix-mode'. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
308 See also `conf-space-mode', `conf-colon-mode', `conf-javaprop-mode', |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
309 `conf-ppd-mode' and `conf-xdefaults-mode'. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
310 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
311 \\{conf-mode-map}" |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
312 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
313 (interactive) |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
314 ;; `conf-mode' plays two roles: it's the parent of several sub-modes |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
315 ;; but it's also the function that chooses between those submodes. |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
316 ;; To tell the difference between those two cases where the function |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
317 ;; might be called, we check `delay-mode-hooks'. |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
318 ;; (adopted from tex-mode.el) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
319 (if (not delay-mode-hooks) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
320 ;; try to guess sub-mode of conf-mode based on buffer content |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
321 (let ((unix 0) (win 0) (equal 0) (colon 0) (space 0) (jp 0)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
322 (save-excursion |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
323 (goto-char (point-min)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
324 (while (not (eobp)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
325 (skip-chars-forward " \t\f") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
326 (cond ((eq (char-after) ?\#) (setq unix (1+ unix))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
327 ((eq (char-after) ?\;) (setq win (1+ win))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
328 ((eq (char-after) ?\[)) ; nop |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
329 ((eolp)) ; nop |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
330 ((eq (char-after) ?})) ; nop |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
331 ;; recognize at most double spaces within names |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
332 ((looking-at "[^ \t\n=:]+\\(?: ?[^ \t\n=:]+\\)*[ \t]*[=:]") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
333 (if (eq (char-before (match-end 0)) ?=) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
334 (setq equal (1+ equal)) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
335 (setq colon (1+ colon)))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
336 ((looking-at "/[/*]") (setq jp (1+ jp))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
337 ((looking-at ".*{")) ; nop |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
338 ((setq space (1+ space)))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
339 (forward-line))) |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
340 (cond |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
341 ((> jp (max unix win 3)) (conf-javaprop-mode)) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
342 ((> colon (max equal space)) (conf-colon-mode)) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
343 ((> space (max equal colon)) (conf-space-mode)) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
344 ((or (> win unix) (and (= win unix) (eq system-type 'windows-nt))) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
345 (conf-windows-mode)) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
346 (t (conf-unix-mode)))) |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
347 |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
348 (kill-all-local-variables) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
349 (use-local-map conf-mode-map) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
350 (setq major-mode 'conf-mode |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
351 mode-name "Conf[?]") |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
352 (set (make-local-variable 'font-lock-defaults) |
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
353 '(conf-font-lock-keywords nil t nil nil)) |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
354 ;; Let newcomment.el decide this for itself. |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
355 ;; (set (make-local-variable 'comment-use-syntax) t) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
356 (set (make-local-variable 'parse-sexp-ignore-comments) t) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
357 (set (make-local-variable 'outline-regexp) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
358 "[ \t]*\\(?:\\[\\|.+[ \t\n]*{\\)") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
359 (set (make-local-variable 'outline-heading-end-regexp) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
360 "[\n}]") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
361 (set (make-local-variable 'outline-level) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
362 'conf-outline-level) |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
363 (set-syntax-table conf-mode-syntax-table) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
364 (setq imenu-generic-expression |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
365 '(("Parameters" "^[ \t]*\\(.+?\\)[ \t]*=" 1) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
366 ;; [section] |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
367 (nil "^[ \t]*\\[[ \t]*\\(.+\\)[ \t]*\\]" 1) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
368 ;; section { ... } |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
369 (nil "^[ \t]*\\([^=:{} \t\n][^=:{}\n]+\\)[ \t\n]*{" 1))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
370 (run-mode-hooks 'conf-mode-hook))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
371 |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
372 (defun conf-mode-initialize (comment &optional font-lock) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
373 "Intitializations for sub-modes of conf-mode. |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
374 COMMENT initializes `comment-start' and `comment-start-skip'. |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
375 The optional arg FONT-LOCK is the value for FONT-LOCK-KEYWORDS." |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
376 (set (make-local-variable 'comment-start) comment) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
377 (set (make-local-variable 'comment-start-skip) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
378 (concat (regexp-quote comment-start) "+\\s *")) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
379 (if font-lock |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
380 (set (make-local-variable 'font-lock-defaults) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
381 `(,font-lock nil t nil nil)))) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
382 |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
383 ;;;###autoload |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
384 (define-derived-mode conf-unix-mode conf-mode "Conf[Unix]" |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
385 "Conf Mode starter for Unix style Conf files. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
386 Comments start with `#'. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
387 For details see `conf-mode'. Example: |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
388 |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
389 # Conf mode font-locks this right on Unix and with \\[conf-unix-mode] |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
390 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
391 \[Desktop Entry] |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
392 Encoding=UTF-8 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
393 Name=The GIMP |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
394 Name[ca]=El GIMP |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
395 Name[cs]=GIMP" |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
396 (conf-mode-initialize "#")) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
397 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
398 ;;;###autoload |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
399 (define-derived-mode conf-windows-mode conf-mode "Conf[WinIni]" |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
400 "Conf Mode starter for Windows style Conf files. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
401 Comments start with `;'. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
402 For details see `conf-mode'. Example: |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
403 |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
404 ; Conf mode font-locks this right on Windows and with \\[conf-windows-mode] |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
405 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
406 \[ExtShellFolderViews] |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
407 Default={5984FFE0-28D4-11CF-AE66-08002B2E1262} |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
408 {5984FFE0-28D4-11CF-AE66-08002B2E1262}={5984FFE0-28D4-11CF-AE66-08002B2E1262} |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
409 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
410 \[{5984FFE0-28D4-11CF-AE66-08002B2E1262}] |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
411 PersistMoniker=file://Folder.htt" |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
412 (conf-mode-initialize ";")) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
413 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
414 ;; Here are a few more or less widespread styles. There are others, so |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
415 ;; obscure, they are not covered. E.g. RFC 2614 allows both Unix and Windows |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
416 ;; comments. Or the donkey has (* Pascal comments *) -- roll your own starter |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
417 ;; if you need it. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
418 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
419 ;;;###autoload |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
420 (define-derived-mode conf-javaprop-mode conf-mode "Conf[JavaProp]" |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
421 "Conf Mode starter for Java properties files. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
422 Comments start with `#' but are also recognized with `//' or |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
423 between `/*' and `*/'. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
424 For details see `conf-mode'. Example: |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
425 |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
426 # Conf mode font-locks this right with \\[conf-javaprop-mode] (Java properties) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
427 // another kind of comment |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
428 /* yet another */ |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
429 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
430 name:value |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
431 name=value |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
432 name value |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
433 x.1 = |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
434 x.2.y.1.z.1 = |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
435 x.2.y.1.z.2.zz =" |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
436 (conf-mode-initialize "#" 'conf-javaprop-font-lock-keywords) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
437 (set (make-local-variable 'conf-assignment-column) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
438 conf-javaprop-assignment-column) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
439 (set (make-local-variable 'conf-assignment-regexp) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
440 ".+?\\([ \t]*[=: \t][ \t]*\\|$\\)") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
441 (setq comment-start-skip "\\(?:#+\\|/[/*]+\\)\\s *") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
442 (setq imenu-generic-expression |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
443 '(("Parameters" "^[ \t]*\\(.+?\\)[=: \t]" 1)))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
444 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
445 ;;;###autoload |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
446 (define-derived-mode conf-space-mode conf-unix-mode "Conf[Space]" |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
447 "Conf Mode starter for space separated conf files. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
448 \"Assignments\" are with ` '. Keywords before the parameters are |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
449 recognized according to `conf-space-keywords'. Interactively |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
450 with a prefix ARG of `0' no keywords will be recognized. With |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
451 any other prefix arg you will be prompted for a regexp to match |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
452 the keywords. |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
453 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
454 For details see `conf-mode'. Example: |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
455 |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
456 # Conf mode font-locks this right with \\[conf-space-mode] (space separated) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
457 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
458 image/jpeg jpeg jpg jpe |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
459 image/png png |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
460 image/tiff tiff tif |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
461 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
462 # Or with keywords (from a recognized file name): |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
463 class desktop |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
464 # Standard multimedia devices |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
465 add /dev/audio desktop |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
466 add /dev/mixer desktop" |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
467 (conf-mode-initialize "#" 'conf-space-font-lock-keywords) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
468 (set (make-local-variable 'conf-assignment-sign) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
469 nil) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
470 ;; This doesn't seem right, but the next two depend on conf-space-keywords |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
471 ;; being set, while after-change-major-mode-hook might set up imenu, needing |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
472 ;; the following result: |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
473 (hack-local-variables-prop-line) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
474 (hack-local-variables) |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
475 (cond (current-prefix-arg |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
476 (set (make-local-variable 'conf-space-keywords) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
477 (if (> (prefix-numeric-value current-prefix-arg) 0) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
478 (read-string "Regexp to match keywords: ")))) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
479 (conf-space-keywords) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
480 (buffer-file-name |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
481 (set (make-local-variable 'conf-space-keywords) |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
482 (assoc-default buffer-file-name conf-space-keywords-alist |
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
483 'string-match)))) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
484 (set (make-local-variable 'conf-assignment-regexp) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
485 (if conf-space-keywords |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
486 (concat "\\(?:" conf-space-keywords "\\)[ \t]+.+?\\([ \t]+\\|$\\)") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
487 ".+?\\([ \t]+\\|$\\)")) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
488 (setq imenu-generic-expression |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
489 `(,@(cdr imenu-generic-expression) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
490 ("Parameters" |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
491 ,(if conf-space-keywords |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
492 (concat "^[ \t]*\\(?:" conf-space-keywords |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
493 "\\)[ \t]+\\([^ \t\n]+\\)\\(?:[ \t]\\|$\\)") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
494 "^[ \t]*\\([^ \t\n[]+\\)\\(?:[ \t]\\|$\\)") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
495 1)))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
496 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
497 ;;;###autoload |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
498 (define-derived-mode conf-colon-mode conf-unix-mode "Conf[Colon]" |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
499 "Conf Mode starter for Colon files. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
500 \"Assignments\" are with `:'. |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
501 For details see `conf-mode'. Example: |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
502 |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
503 # Conf mode font-locks this right with \\[conf-colon-mode] (colon) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
504 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
505 <Multi_key> <exclam> <exclam> : \"\\241\" exclamdown |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
506 <Multi_key> <c> <slash> : \"\\242\" cent" |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
507 (conf-mode-initialize "#" 'conf-colon-font-lock-keywords) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
508 (set (make-local-variable 'conf-assignment-space) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
509 conf-colon-assignment-space) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
510 (set (make-local-variable 'conf-assignment-column) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
511 conf-colon-assignment-column) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
512 (set (make-local-variable 'conf-assignment-sign) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
513 ?:) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
514 (set (make-local-variable 'conf-assignment-regexp) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
515 ".+?\\([ \t]*:[ \t]*\\)") |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
516 (setq imenu-generic-expression |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
517 `(("Parameters" "^[ \t]*\\(.+?\\)[ \t]*:" 1) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
518 ,@(cdr imenu-generic-expression)))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
519 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
520 ;;;###autoload |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
521 (define-derived-mode conf-ppd-mode conf-colon-mode "Conf[PPD]" |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
522 "Conf Mode starter for Adobe/CUPS PPD files. |
58692
4867e00488dc
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58691
diff
changeset
|
523 Comments start with `*%' and \"assignments\" are with `:'. |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
524 For details see `conf-mode'. Example: |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
525 |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
526 *% Conf mode font-locks this right with \\[conf-ppd-mode] (PPD) |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
527 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
528 *DefaultTransfer: Null |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
529 *Transfer Null.Inverse: \"{ 1 exch sub }\"" |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
530 (conf-mode-initialize "*%") |
58691
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
531 ;; no sections, they match within PostScript code |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
532 (setq imenu-generic-expression (list (car imenu-generic-expression)))) |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
533 |
e5f1fb888f0b
(conf-ppd-mode-syntax-table): New var.
Daniel Pfeiffer <occitan@esperanto.org>
parents:
58128
diff
changeset
|
534 ;;;###autoload |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
535 (define-derived-mode conf-xdefaults-mode conf-colon-mode "Conf[Xdefaults]" |
58115
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
536 "Conf Mode starter for Xdefaults files. |
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
537 Comments start with `!' and \"assignments\" are with `:'. |
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
538 For details see `conf-mode'. Example: |
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
539 |
66188
fe198c9ace5c
Don't use font-lock-defaults-alist.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65261
diff
changeset
|
540 ! Conf mode font-locks this right with \\[conf-xdefaults-mode] (.Xdefaults) |
58115
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
541 |
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
542 *background: gray99 |
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
543 *foreground: black" |
66524
33e9ace34df4
(conf-mode-initialize): New function.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
66188
diff
changeset
|
544 (conf-mode-initialize "!")) |
58115
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
545 |
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
546 (provide 'conf-mode) |
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
547 |
58116
a026512a201c
Changes from arch/CVS synchronization
Miles Bader <miles@gnu.org>
parents:
58115
diff
changeset
|
548 ;; arch-tag: 0a3805b2-0371-4d3a-8498-8897116b2356 |
58115
740fbca5078f
*** empty log message ***
Daniel Pfeiffer <occitan@esperanto.org>
parents:
diff
changeset
|
549 ;;; conf-mode.el ends here |