"*Extra indentation applied to DO blocks."
:type 'integer
:group 'f90-indent)
+(put 'f90-do-indent 'safe-local-variable 'integerp)
(defcustom f90-if-indent 3
"*Extra indentation applied to IF, SELECT CASE, WHERE and FORALL blocks."
:type 'integer
:group 'f90-indent)
+(put 'f90-if-indent 'safe-local-variable 'integerp)
(defcustom f90-type-indent 3
"*Extra indentation applied to TYPE, INTERFACE and BLOCK DATA blocks."
:type 'integer
:group 'f90-indent)
+(put 'f90-type-indent 'safe-local-variable 'integerp)
(defcustom f90-program-indent 2
"*Extra indentation applied to PROGRAM, MODULE, SUBROUTINE, FUNCTION blocks."
:type 'integer
:group 'f90-indent)
+(put 'f90-program-indent 'safe-local-variable 'integerp)
(defcustom f90-continuation-indent 5
"*Extra indentation applied to continuation lines."
:type 'integer
:group 'f90-indent)
+(put 'f90-continuation-indent 'safe-local-variable 'integerp)
(defcustom f90-comment-region "!!$"
"*String inserted by \\[f90-comment-region] at start of each line in region."
:type 'string
:group 'f90-indent)
+(put 'f90-comment-region 'safe-local-variable 'stringp)
(defcustom f90-indented-comment-re "!"
"*Regexp matching comments to indent as code."
:type 'regexp
:group 'f90-indent)
+;; FIXME are arbitrary regexps safe? Only used in looking-at.
(defcustom f90-directive-comment-re "!hpf\\$"
"*Regexp of comment-like directive like \"!HPF\\\\$\", not to be indented."
:type 'regexp
:group 'f90-indent)
+;; FIXME are arbitrary regexps safe? Only used in looking-at.
(defcustom f90-beginning-ampersand t
"*Non-nil gives automatic insertion of \& at start of continuation line."
:type 'boolean
:group 'f90)
+(put 'f90-beginning-ampersand 'safe-local-variable 'booleanp)
(defcustom f90-smart-end 'blink
"*Qualification of END statements according to the matching block start.
additionally blinks the cursor to the start of the block."
:type '(choice (const blink) (const no-blink) (const nil))
:group 'f90)
+(put 'f90-smart-end 'safe-local-variable
+ (lambda (value) (memq value '(blink no-blink nil))))
(defcustom f90-break-delimiters "[-+\\*/><=,% \t]"
"*Regexp matching delimiter characters at which lines may be broken.
specified by the constant `f90-no-break-re'."
:type 'regexp
:group 'f90)
+;; FIXME are arbitrary regexps safe? Used in re-search-backward.
(defcustom f90-break-before-delimiters t
"*Non-nil causes `f90-do-auto-fill' to break lines before delimiters."
:type 'boolean
:group 'f90)
+(put 'f90-break-before-delimiters 'safe-local-variable 'booleanp)
(defcustom f90-auto-keyword-case nil
"*Automatic case conversion of keywords.
:type '(choice (const downcase-word) (const upcase-word)
(const capitalize-word) (const nil))
:group 'f90)
+(put 'f90-auto-keyword-case 'safe-local-variable
+ (lambda (value) (memq value '(downcase-word
+ capitalize-word upcase-word nil))))
(defcustom f90-leave-line-no nil
"*If non-nil, line numbers are not left justified."
:type 'boolean
:group 'f90)
+(put 'f90-leave-line-no 'safe-local-variable 'booleanp)
(defcustom f90-mode-hook nil
"Hook run when entering F90 mode."
:type 'hook
:options '(f90-add-imenu-menu)
:group 'f90)
+(put 'f90-mode-hook 'safe-local-variable
+ (lambda (value) (member value '((f90-add-imenu-menu) nil))))
;; User options end here.
'("\\<\\(exit\\|cycle\\)[ \t]*\\(\\sw+\\)?\\>"
(1 font-lock-keyword-face) (2 font-lock-constant-face nil t))
'("\\<\\(case\\)[ \t]*\\(default\\|(\\)" . 1)
- '("\\<\\(do\\|go *to\\)\\>[ \t]*\\([0-9]+\\)"
+ '("\\<\\(do\\|go[ \t]*to\\)\\>[ \t]*\\([0-9]+\\)"
(1 font-lock-keyword-face) (2 font-lock-constant-face))
;; Line numbers (lines whose first character after number is letter).
'("^[ \t]*\\([0-9]+\\)[ \t]*[a-z]+" (1 font-lock-constant-face t))))
Return (TYPE NAME), or nil if not found."
(interactive)
(let ((case-fold-search t)
- (count 1)
+ (count 1)
matching-end)
(end-of-line)
(while (and (> count 0)