changeset 17483:5f8a37eaea45

Add defgroup; use defcustom for user vars.
author Richard M. Stallman <rms@gnu.org>
date Tue, 15 Apr 1997 23:38:27 +0000
parents b758fbf989b7
children 3303fa112347
files lisp/progmodes/pascal.el
diffstat 1 files changed, 59 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/pascal.el	Tue Apr 15 23:30:35 1997 +0000
+++ b/lisp/progmodes/pascal.el	Tue Apr 15 23:38:27 1997 +0000
@@ -1,6 +1,6 @@
 ;;; pascal.el --- major mode for editing pascal source in Emacs
 
-;; Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
 
 ;; Author: Espen Skoglund (espensk@stud.cs.uit.no)
 ;; Keywords: languages
@@ -60,6 +60,10 @@
 
 ;;; Code:
 
+(defgroup pascal nil
+  "Major mode for editing Pascal source in Emacs"
+  :group 'languages)
+
 (defvar pascal-mode-abbrev-table nil
   "Abbrev table in use in Pascal-mode buffers.")
 (define-abbrev-table 'pascal-mode-abbrev-table ())
@@ -170,58 +174,85 @@
      (1 font-lock-keyword-face) (2 font-lock-reference-face nil t)))
   "Additional expressions to highlight in Pascal mode.")
 
-(defvar pascal-indent-level 3
-  "*Indentation of Pascal statements with respect to containing block.")
+(defcustom pascal-indent-level 3
+  "*Indentation of Pascal statements with respect to containing block."
+  :type 'integer
+  :group 'pascal)
 
-(defvar pascal-case-indent 2
-  "*Indentation for case statements.")
+(defcustom pascal-case-indent 2
+  "*Indentation for case statements."
+  :type 'integer
+  :group 'pascal)
 
-(defvar pascal-auto-newline nil
-  "*Non-nil means automatically newline after semicolons and the punctuation
-mark after an end.")
+(defcustom pascal-auto-newline nil
+  "*Non-nil means automatically insert newlines in certain cases.
+These include after semicolons and after the punctuation mark after an `end'."
+  :type 'boolean
+  :group 'pascal)
 
-(defvar pascal-tab-always-indent t
-  "*Non-nil means TAB in Pascal mode should always reindent the current line,
-regardless of where in the line point is when the TAB command is used.")
+(defcustom pascal-tab-always-indent t
+  "*Non-nil means TAB in Pascal mode should always reindent the current line.
+If this is nil, TAB inserts a tab if it is at the end of the line
+and follows non-whitespace text."
+  :type 'boolean
+  :group 'pascal)
 
-(defvar pascal-auto-endcomments t
-  "*Non-nil means a comment { ... } is set after the ends which ends cases and
-functions. The name of the function or case will be set between the braces.")
+(defcustom pascal-auto-endcomments t
+  "*Non-nil means automatically insert comments after certain `end's.
+Specifically, this is done after the ends of cases statements and functions.
+The name of the function or case is included between the braces."
+  :type 'boolean
+  :group 'pascal)
 
-(defvar pascal-auto-lineup '(all)
+(defcustom pascal-auto-lineup '(all)
   "*List of contexts where auto lineup of :'s or ='s should be done.
 Elements can be of type: 'paramlist', 'declaration' or 'case', which will
 do auto lineup in parameterlist, declarations or case-statements
 respectively. The word 'all' will do all lineups. '(case paramlist) for
 instance will do lineup in case-statements and parameterlist, while '(all)
-will do all lineups.")
+will do all lineups."
+  :type '(repeat (choice (const all)
+			 (const paramlist)
+			 (const declaration)
+			 (const case)))
+  :group 'pascal)
 
-(defvar pascal-toggle-completions nil
+(defcustom pascal-toggle-completions nil
   "*Non-nil means \\<pascal-mode-map>\\[pascal-complete-word] should try all possible completions one by one.
 Repeated use of \\[pascal-complete-word] will show you all of them.
 Normally, when there is more than one possible completion,
-it displays a list of all possible completions.")
+it displays a list of all possible completions."
+  :type 'boolean
+  :group 'pascal)
 
-(defvar pascal-type-keywords
+(defcustom pascal-type-keywords
   '("array" "file" "packed" "char" "integer" "real" "string" "record")
   "*Keywords for types used when completing a word in a declaration or parmlist.
-\(eg. integer, real, char.)  The types defined within the Pascal program
-will be completed runtime, and should not be added to this list.")
+These include integer, real, char, etc.
+The types defined within the Pascal program
+are handled in another way, and should not be added to this list."
+  :type '(repeat (string :tag "Keyword"))
+  :group 'pascal)
 
-(defvar pascal-start-keywords
+(defcustom pascal-start-keywords
   '("begin" "end" "function" "procedure" "repeat" "until" "while"
     "read" "readln" "reset" "rewrite" "write" "writeln")
   "*Keywords to complete when standing at the first word of a statement.
-\(eg. begin, repeat, until, readln.)
+These are keywords such as begin, repeat, until, readln.
 The procedures and variables defined within the Pascal program
-will be completed runtime and should not be added to this list.")
+are handled in another way,  and should not be added to this list."
+  :type '(repeat (string :tag "Keyword"))
+  :group 'pascal)
 
-(defvar pascal-separator-keywords
+(defcustom pascal-separator-keywords
   '("downto" "else" "mod" "div" "then")
   "*Keywords to complete when NOT standing at the first word of a statement.
-\(eg. downto, else, mod, then.) 
-Variables and function names defined within the
-Pascal program are completed runtime and should not be added to this list.")
+These are keywords such as downto, else, mod, then.
+Variables and function names defined within the Pascal program
+are handled in another way, and should not be added to this list."
+  :type '(repeat (string :tag "Keyword"))
+  :group 'pascal)
+
 
 ;;;
 ;;;  Macros