Mercurial > emacs
comparison lisp/progmodes/fortran.el @ 79175:fd6d746fb7c9
(fortran-tab-mode-default)
(fortran-tab-mode-string, fortran-do-indent, fortran-if-indent)
(fortran-structure-indent, fortran-continuation-indent)
(fortran-comment-indent, fortran-comment-line-extra-indent)
(fortran-comment-line-start)
(fortran-minimum-statement-indent-fixed)
(fortran-minimum-statement-indent-tab)
(fortran-comment-indent-char, fortran-line-number-indent)
(fortran-check-all-num-for-matching-do)
(fortran-blink-matching-if, fortran-continuation-string)
(fortran-comment-region, fortran-electric-line-number)
(fortran-column-ruler-fixed, fortran-column-ruler-tab)
(fortran-analyze-depth, fortran-break-before-delimiters):
Give an appropriate safe-local-variable property.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Tue, 23 Oct 2007 06:52:04 +0000 |
parents | dc61ca9d9d55 |
children | 6804b42c465a |
comparison
equal
deleted
inserted
replaced
79174:cea4cfa4fef8 | 79175:fd6d746fb7c9 |
---|---|
84 A non-nil value specifies tab-digit style of continuation control. | 84 A non-nil value specifies tab-digit style of continuation control. |
85 A value of nil specifies that continuation lines are marked | 85 A value of nil specifies that continuation lines are marked |
86 with a character in column 6." | 86 with a character in column 6." |
87 :type 'boolean | 87 :type 'boolean |
88 :group 'fortran-indent) | 88 :group 'fortran-indent) |
89 (put 'fortran-tab-mode-default 'safe-local-variable 'booleanp) | |
89 | 90 |
90 (defcustom fortran-tab-mode-string "/t" | 91 (defcustom fortran-tab-mode-string "/t" |
91 "*String to appear in mode line in TAB format buffers." | 92 "*String to appear in mode line in TAB format buffers." |
92 :type 'string | 93 :type 'string |
93 :group 'fortran-indent) | 94 :group 'fortran-indent) |
95 (put 'fortran-tab-mode-string 'safe-local-variable 'stringp) | |
94 | 96 |
95 (defcustom fortran-do-indent 3 | 97 (defcustom fortran-do-indent 3 |
96 "*Extra indentation applied to DO blocks." | 98 "*Extra indentation applied to DO blocks." |
97 :type 'integer | 99 :type 'integer |
98 :group 'fortran-indent) | 100 :group 'fortran-indent) |
101 (put 'fortran-do-indent 'safe-local-variable 'integerp) | |
99 | 102 |
100 (defcustom fortran-if-indent 3 | 103 (defcustom fortran-if-indent 3 |
101 "*Extra indentation applied to IF, SELECT CASE and WHERE blocks." | 104 "*Extra indentation applied to IF, SELECT CASE and WHERE blocks." |
102 :type 'integer | 105 :type 'integer |
103 :group 'fortran-indent) | 106 :group 'fortran-indent) |
107 (put 'fortran-if-indent 'safe-local-variable 'integerp) | |
104 | 108 |
105 (defcustom fortran-structure-indent 3 | 109 (defcustom fortran-structure-indent 3 |
106 "*Extra indentation applied to STRUCTURE, UNION, MAP and INTERFACE blocks." | 110 "*Extra indentation applied to STRUCTURE, UNION, MAP and INTERFACE blocks." |
107 :type 'integer | 111 :type 'integer |
108 :group 'fortran-indent) | 112 :group 'fortran-indent) |
113 (put 'fortran-structure-indent 'safe-local-variable 'integerp) | |
109 | 114 |
110 (defcustom fortran-continuation-indent 5 | 115 (defcustom fortran-continuation-indent 5 |
111 "*Extra indentation applied to continuation lines." | 116 "*Extra indentation applied to continuation lines." |
112 :type 'integer | 117 :type 'integer |
113 :group 'fortran-indent) | 118 :group 'fortran-indent) |
119 (put 'fortran-continuation-indent 'safe-local-variable 'integerp) | |
114 | 120 |
115 (defcustom fortran-comment-indent-style 'fixed | 121 (defcustom fortran-comment-indent-style 'fixed |
116 "*How to indent comments. | 122 "*How to indent comments. |
117 nil forces comment lines not to be touched; | 123 nil forces comment lines not to be touched; |
118 `fixed' indents to `fortran-comment-line-extra-indent' columns beyond | 124 `fixed' indents to `fortran-comment-line-extra-indent' columns beyond |
120 `fortran-minimum-statement-indent-tab' (if `indent-tabs-mode' non-nil); | 126 `fortran-minimum-statement-indent-tab' (if `indent-tabs-mode' non-nil); |
121 `relative' indents to current Fortran indentation plus | 127 `relative' indents to current Fortran indentation plus |
122 `fortran-comment-line-extra-indent'." | 128 `fortran-comment-line-extra-indent'." |
123 :type '(radio (const :tag "Untouched" nil) (const fixed) (const relative)) | 129 :type '(radio (const :tag "Untouched" nil) (const fixed) (const relative)) |
124 :group 'fortran-indent) | 130 :group 'fortran-indent) |
131 (put 'fortran-comment-indent 'safe-local-variable | |
132 (lambda (value) (memq value '(nil fixed relative)))) | |
125 | 133 |
126 (defcustom fortran-comment-line-extra-indent 0 | 134 (defcustom fortran-comment-line-extra-indent 0 |
127 "*Amount of extra indentation for text within full-line comments." | 135 "*Amount of extra indentation for text within full-line comments." |
128 :type 'integer | 136 :type 'integer |
129 :group 'fortran-indent | 137 :group 'fortran-indent |
130 :group 'fortran-comment) | 138 :group 'fortran-comment) |
139 (put 'fortran-comment-line-extra-indent 'safe-local-variable 'integerp) | |
131 | 140 |
132 (defcustom fortran-comment-line-start "C" | 141 (defcustom fortran-comment-line-start "C" |
133 "*Delimiter inserted to start new full-line comment. | 142 "*Delimiter inserted to start new full-line comment. |
134 You might want to change this to \"*\", for instance." | 143 You might want to change this to \"*\", for instance." |
135 :version "21.1" | 144 :version "21.1" |
136 :type 'string | 145 :type 'string |
137 :group 'fortran-comment) | 146 :group 'fortran-comment) |
147 (put 'fortran-comment-line-start 'safe-local-variable 'stringp) | |
138 | 148 |
139 ;; This used to match preprocessor lines too, but that messes up | 149 ;; This used to match preprocessor lines too, but that messes up |
140 ;; filling and doesn't seem to be necessary. | 150 ;; filling and doesn't seem to be necessary. |
141 (defcustom fortran-comment-line-start-skip | 151 (defcustom fortran-comment-line-start-skip |
142 "^[CcDd*!]\\(\\([^ \t\n]\\)\\2+\\)?[ \t]*" | 152 "^[CcDd*!]\\(\\([^ \t\n]\\)\\2+\\)?[ \t]*" |
143 "*Regexp to match the start of a full-line comment." | 153 "*Regexp to match the start of a full-line comment." |
144 :version "21.1" | 154 :version "21.1" |
145 :type 'regexp | 155 :type 'regexp |
146 :group 'fortran-comment) | 156 :group 'fortran-comment) |
157 ;; FIXME is an arbitrary regexp safe? | |
147 | 158 |
148 (defcustom fortran-directive-re | 159 (defcustom fortran-directive-re |
149 "^[ \t]*#.*" | 160 "^[ \t]*#.*" |
150 "*Regexp to match a directive line. | 161 "*Regexp to match a directive line. |
151 The matching text will be fontified with `font-lock-keyword-face'. | 162 The matching text will be fontified with `font-lock-keyword-face'. |
152 The matching line will be given zero indentation." | 163 The matching line will be given zero indentation." |
153 :version "22.1" | 164 :version "22.1" |
154 :type 'regexp | 165 :type 'regexp |
155 :group 'fortran-indent) | 166 :group 'fortran-indent) |
167 ;; FIXME is an arbitrary regexp safe? | |
156 | 168 |
157 (defcustom fortran-minimum-statement-indent-fixed 6 | 169 (defcustom fortran-minimum-statement-indent-fixed 6 |
158 "*Minimum statement indentation for fixed format continuation style." | 170 "*Minimum statement indentation for fixed format continuation style." |
159 :type 'integer | 171 :type 'integer |
160 :group 'fortran-indent) | 172 :group 'fortran-indent) |
173 (put 'fortran-minimum-statement-indent-fixed 'safe-local-variable 'integerp) | |
161 | 174 |
162 (defcustom fortran-minimum-statement-indent-tab (max tab-width 6) | 175 (defcustom fortran-minimum-statement-indent-tab (max tab-width 6) |
163 "*Minimum statement indentation for TAB format continuation style." | 176 "*Minimum statement indentation for TAB format continuation style." |
164 :type 'integer | 177 :type 'integer |
165 :group 'fortran-indent) | 178 :group 'fortran-indent) |
179 (put 'fortran-minimum-statement-indent-tab 'safe-local-variable 'integerp) | |
166 | 180 |
167 ;; Note that this is documented in the v18 manuals as being a string | 181 ;; Note that this is documented in the v18 manuals as being a string |
168 ;; of length one rather than a single character. | 182 ;; of length one rather than a single character. |
169 ;; The code in this file accepts either format for compatibility. | 183 ;; The code in this file accepts either format for compatibility. |
170 (defcustom fortran-comment-indent-char " " | 184 (defcustom fortran-comment-indent-char " " |
171 "*Single-character string inserted for Fortran comment indentation. | 185 "*Single-character string inserted for Fortran comment indentation. |
172 Normally a space." | 186 Normally a space." |
173 :type 'string | 187 :type 'string |
174 :group 'fortran-comment) | 188 :group 'fortran-comment) |
189 (put 'fortran-comment-indent-char 'safe-local-variable | |
190 (lambda (value) (or (char-valid-p value) | |
191 (and (stringp value) | |
192 (= (length value) 1))))) | |
175 | 193 |
176 (defcustom fortran-line-number-indent 1 | 194 (defcustom fortran-line-number-indent 1 |
177 "*Maximum indentation for Fortran line numbers. | 195 "*Maximum indentation for Fortran line numbers. |
178 5 means right-justify them within their five-column field." | 196 5 means right-justify them within their five-column field." |
179 :type 'integer | 197 :type 'integer |
180 :group 'fortran-indent) | 198 :group 'fortran-indent) |
199 (put 'fortran-line-number-indent 'safe-local-variable 'integerp) | |
181 | 200 |
182 (defcustom fortran-check-all-num-for-matching-do nil | 201 (defcustom fortran-check-all-num-for-matching-do nil |
183 "*Non-nil causes all numbered lines to be treated as possible DO loop ends." | 202 "*Non-nil causes all numbered lines to be treated as possible DO loop ends." |
184 :type 'boolean | 203 :type 'boolean |
185 :group 'fortran) | 204 :group 'fortran) |
205 (put 'fortran-check-all-num-for-matching-do 'safe-local-variable 'booleanp) | |
186 | 206 |
187 (defcustom fortran-blink-matching-if nil | 207 (defcustom fortran-blink-matching-if nil |
188 "*Non-nil causes \\[fortran-indent-line] on ENDIF to blink on matching IF. | 208 "*Non-nil causes \\[fortran-indent-line] on ENDIF to blink on matching IF. |
189 Also, from an ENDDO statement blink on matching DO [WHILE] statement." | 209 Also, from an ENDDO statement blink on matching DO [WHILE] statement." |
190 :type 'boolean | 210 :type 'boolean |
191 :group 'fortran) | 211 :group 'fortran) |
212 (put 'fortran-blink-matching-if 'safe-local-variable 'booleanp) | |
192 | 213 |
193 (defcustom fortran-continuation-string "$" | 214 (defcustom fortran-continuation-string "$" |
194 "*Single-character string used for Fortran continuation lines. | 215 "*Single-character string used for Fortran continuation lines. |
195 In fixed format continuation style, this character is inserted in | 216 In fixed format continuation style, this character is inserted in |
196 column 6 by \\[fortran-split-line] to begin a continuation line. | 217 column 6 by \\[fortran-split-line] to begin a continuation line. |
197 Also, if \\[fortran-indent-line] finds this at the beginning of a | 218 Also, if \\[fortran-indent-line] finds this at the beginning of a |
198 line, it will convert the line into a continuation line of the | 219 line, it will convert the line into a continuation line of the |
199 appropriate style. Normally $." | 220 appropriate style. Normally $." |
200 :type 'string | 221 :type 'string |
201 :group 'fortran) | 222 :group 'fortran) |
223 (put 'fortran-continuation-string 'safe-local-variable | |
224 (lambda (value) (and (stringp value) | |
225 (= (length value) 1)))) | |
202 | 226 |
203 (defcustom fortran-comment-region "c$$$" | 227 (defcustom fortran-comment-region "c$$$" |
204 "*String inserted by \\[fortran-comment-region] at start of each \ | 228 "*String inserted by \\[fortran-comment-region] at start of each \ |
205 line in region." | 229 line in region." |
206 :type 'string | 230 :type 'string |
207 :group 'fortran-comment) | 231 :group 'fortran-comment) |
232 (put 'fortran-comment-region 'safe-local-variable 'stringp) | |
208 | 233 |
209 (defcustom fortran-electric-line-number t | 234 (defcustom fortran-electric-line-number t |
210 "*Non-nil causes line numbers to be moved to the correct column as typed." | 235 "*Non-nil causes line numbers to be moved to the correct column as typed." |
211 :type 'boolean | 236 :type 'boolean |
212 :group 'fortran) | 237 :group 'fortran) |
238 (put 'fortran-electric-line-number 'safe-local-variable 'booleanp) | |
213 | 239 |
214 (defcustom fortran-column-ruler-fixed | 240 (defcustom fortran-column-ruler-fixed |
215 "0 4 6 10 20 30 40 5\ | 241 "0 4 6 10 20 30 40 5\ |
216 0 60 70\n\ | 242 0 60 70\n\ |
217 \[ ]|{ | | | | | | | | \ | 243 \[ ]|{ | | | | | | | | \ |
219 "String displayed above current line by \\[fortran-column-ruler]. | 245 "String displayed above current line by \\[fortran-column-ruler]. |
220 This variable is used in fixed format mode. | 246 This variable is used in fixed format mode. |
221 See the variable `fortran-column-ruler-tab' for TAB format mode." | 247 See the variable `fortran-column-ruler-tab' for TAB format mode." |
222 :type 'string | 248 :type 'string |
223 :group 'fortran) | 249 :group 'fortran) |
250 (put 'fortran-column-ruler-fixed 'safe-local-variable 'stringp) | |
224 | 251 |
225 (defcustom fortran-column-ruler-tab | 252 (defcustom fortran-column-ruler-tab |
226 "0 810 20 30 40 5\ | 253 "0 810 20 30 40 5\ |
227 0 60 70\n\ | 254 0 60 70\n\ |
228 \[ ]| { | | | | | | | | \ | 255 \[ ]| { | | | | | | | | \ |
230 "String displayed above current line by \\[fortran-column-ruler]. | 257 "String displayed above current line by \\[fortran-column-ruler]. |
231 This variable is used in TAB format mode. | 258 This variable is used in TAB format mode. |
232 See the variable `fortran-column-ruler-fixed' for fixed format mode." | 259 See the variable `fortran-column-ruler-fixed' for fixed format mode." |
233 :type 'string | 260 :type 'string |
234 :group 'fortran) | 261 :group 'fortran) |
262 (put 'fortran-column-ruler-tab 'safe-local-variable 'stringp) | |
235 | 263 |
236 (defcustom fortran-analyze-depth 100 | 264 (defcustom fortran-analyze-depth 100 |
237 "Number of lines to scan to identify fixed or TAB format style." | 265 "Number of lines to scan to identify fixed or TAB format style." |
238 :type 'integer | 266 :type 'integer |
239 :group 'fortran) | 267 :group 'fortran) |
268 (put 'fortran-analyze-depth 'safe-local-variable 'integerp) | |
240 | 269 |
241 (defcustom fortran-break-before-delimiters t | 270 (defcustom fortran-break-before-delimiters t |
242 "*Non-nil causes filling to break lines before delimiters. | 271 "*Non-nil causes filling to break lines before delimiters. |
243 Delimiters are characters matching the regexp `fortran-break-delimiters-re'." | 272 Delimiters are characters matching the regexp `fortran-break-delimiters-re'." |
244 :type 'boolean | 273 :type 'boolean |
245 :group 'fortran) | 274 :group 'fortran) |
275 (put 'fortran-break-before-delimiters 'safe-local-variable 'booleanp) | |
246 | 276 |
247 (defconst fortran-break-delimiters-re "[-+*/><=, \t]" | 277 (defconst fortran-break-delimiters-re "[-+*/><=, \t]" |
248 "Regexp matching delimiter characters at which lines may be broken. | 278 "Regexp matching delimiter characters at which lines may be broken. |
249 There are certain tokens comprised entirely of characters | 279 There are certain tokens comprised entirely of characters |
250 matching this regexp that should not be split, and these are | 280 matching this regexp that should not be split, and these are |