comparison lisp/modes/f90.el @ 134:34a5b81f86ba r20-2b1

Import from CVS: tag r20-2b1
author cvs
date Mon, 13 Aug 2007 09:30:11 +0200
parents ac2d302a0011
children 59463afc5666
comparison
equal deleted inserted replaced
133:b27e67717092 134:34a5b81f86ba
145 145
146 (defconst bug-f90-mode "T.Einarsson@clab.ericsson.se" 146 (defconst bug-f90-mode "T.Einarsson@clab.ericsson.se"
147 "Address of mailing list for F90 mode bugs.") 147 "Address of mailing list for F90 mode bugs.")
148 148
149 ;; User options 149 ;; User options
150 (defvar f90-do-indent 3 150
151 "*Extra indentation applied to DO blocks.") 151 (defgroup f90 nil
152 152 "Fortran-90 mode"
153 (defvar f90-if-indent 3 153 :group 'fortran)
154 "*Extra indentation applied to IF, SELECT CASE, WHERE and FORALL blocks.") 154
155 155 (defgroup f90-indent nil
156 (defvar f90-type-indent 3 156 "Fortran-90 indentation"
157 "*Extra indentation applied to TYPE, INTERFACE and BLOCK DATA blocks.") 157 :prefix "f90-"
158 158 :group 'f90)
159 (defvar f90-program-indent 2 159
160 "*Extra indentation applied to PROGRAM/MODULE/SUBROUTINE/FUNCTION blocks.") 160
161 161 (defcustom f90-do-indent 3
162 (defvar f90-continuation-indent 5 162 "*Extra indentation applied to DO blocks."
163 "*Extra indentation applied to F90 continuation lines.") 163 :type 'integer
164 164 :group 'f90-indent)
165 (defvar f90-comment-region "!!$" 165
166 (defcustom f90-if-indent 3
167 "*Extra indentation applied to IF, SELECT CASE, WHERE and FORALL blocks."
168 :type 'integer
169 :group 'f90-indent)
170
171 (defcustom f90-type-indent 3
172 "*Extra indentation applied to TYPE, INTERFACE and BLOCK DATA blocks."
173 :type 'integer
174 :group 'f90-indent)
175
176 (defcustom f90-program-indent 2
177 "*Extra indentation applied to PROGRAM/MODULE/SUBROUTINE/FUNCTION blocks."
178 :type 'integer
179 :group 'f90-indent)
180
181 (defcustom f90-continuation-indent 5
182 "*Extra indentation applied to F90 continuation lines."
183 :type 'integer
184 :group 'f90-indent)
185
186 (defcustom f90-comment-region "!!$"
166 "*String inserted by \\[f90-comment-region]\ 187 "*String inserted by \\[f90-comment-region]\
167 at start of each line in region.") 188 at start of each line in region."
168 189 :type 'string
169 (defvar f90-indented-comment-re "!" 190 :group 'f90-indent)
170 "*Regexp saying which comments to be indented like code.") 191
171 192 (defcustom f90-indented-comment-re "!"
172 (defvar f90-directive-comment-re "!hpf\\$" 193 "*Regexp saying which comments to be indented like code."
173 "*Regexp of comment-like directive like \"!HPF\\\\$\", not to be indented.") 194 :type 'regexp
174 195 :group 'f90-indent)
175 (defvar f90-beginning-ampersand t 196
176 "*t makes automatic insertion of \& at beginning of continuation line.") 197 (defcustom f90-directive-comment-re "!hpf\\$"
177 198 "*Regexp of comment-like directive like \"!HPF\\\\$\", not to be indented."
178 (defvar f90-smart-end 'blink 199 :type 'regexp
200 :group 'f90-indent)
201
202 (defcustom f90-beginning-ampersand t
203 "*t makes automatic insertion of \& at beginning of continuation line."
204 :type 'boolean
205 :group 'f90)
206
207 (defcustom f90-smart-end 'blink
179 "*From an END statement, check and fill the end using matching block start. 208 "*From an END statement, check and fill the end using matching block start.
180 Allowed values are 'blink, 'no-blink, and nil, which determine 209 Allowed values are 'blink, 'no-blink, and nil, which determine
181 whether to blink the matching beginning.") 210 whether to blink the matching beginning."
182 211 :type '(choice (const blink) (const no-blink) (const nil))
183 (defvar f90-break-delimiters "[-+\\*/><=,% \t]" 212 :group 'f90)
184 "*Regexp holding list of delimiters at which lines may be broken.") 213
185 214 (defcustom f90-break-delimiters "[-+\\*/><=,% \t]"
186 (defvar f90-break-before-delimiters t 215 "*Regexp holding list of delimiters at which lines may be broken."
187 "*Non-nil causes `f90-do-auto-fill' to break lines before delimiters.") 216 :type 'regexp
188 217 :group 'f90)
189 (defvar f90-auto-keyword-case nil 218
219 (defcustom f90-break-before-delimiters t
220 "*Non-nil causes `f90-do-auto-fill' to break lines before delimiters."
221 :type 'regexp
222 :group 'f90)
223
224 (defcustom f90-auto-keyword-case nil
190 "*Automatic case conversion of keywords. 225 "*Automatic case conversion of keywords.
191 The options are 'downcase-word, 'upcase-word, 'capitalize-word and nil") 226 The options are 'downcase-word, 'upcase-word, 'capitalize-word and nil"
192 227 :type '(choice (const downcase-word) (const upcase-word)
193 (defvar f90-leave-line-no nil 228 (const capitalize-word) (const nil))
194 "*If nil, left-justify linenumbers.") 229 :group 'f90)
195 230
196 (defvar f90-startup-message t 231 (defcustom f90-leave-line-no nil
197 "*Non-nil displays a startup message when F90 mode is first called.") 232 "*If nil, left-justify linenumbers."
233 :type 'boolean
234 :group 'f90)
235
236 (defcustom f90-startup-message t
237 "*Non-nil displays a startup message when F90 mode is first called."
238 :type 'boolean
239 :group 'f90)
198 240
199 (defconst f90-keywords-re 241 (defconst f90-keywords-re
200 ;;("allocate" "allocatable" "assign" "assignment" "backspace" "block" 242 ;;("allocate" "allocatable" "assign" "assignment" "backspace" "block"
201 ;;"call" "case" "character" "close" "common" "complex" "contains" 243 ;;"call" "case" "character" "close" "common" "complex" "contains"
202 ;;"continue" "cycle" "data" "deallocate" "dimension" "do" "double" "else" 244 ;;"continue" "cycle" "data" "deallocate" "dimension" "do" "double" "else"