home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume11 / templates / part02 / tplvars.el < prev   
Lisp/Scheme  |  1987-10-04  |  11KB  |  361 lines

  1. ;;; tplvars.el -- Variables for template-mode.
  2. ;;; Copyright (C) 1987 Mark A. Ardis.
  3.  
  4. (provide 'tplvars)
  5.  
  6. ;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  7. ;;; User Options
  8.  
  9. (defvar tpl-ask-expansion-depth 1
  10.   "*Depth of recursive placeholder expansions at which to start asking
  11.     whether to expand.  Possible values are:
  12.       -1  delete all placeholders
  13.     0  don't expand or delete placeholders---leave them alone
  14.     1  ask about expansion at level 1
  15.     n  ask about expansion at level n of expanding
  16.       Defaults to 1, which means always ask."
  17. ) ; tpl-ask-expansion-depth
  18.  
  19. (defvar tpl-auto-load-new-templates nil
  20.   "*If non-nil load new templates after creating them with
  21.     'replace-wtih-placeholder.  Otherwise, loading must be done
  22.     by invoking 'load-tpl-file.  Defaults to nil."
  23. ) ; tpl-auto-load-new-templates
  24.  
  25. (defvar tpl-auto-save-new-templates nil
  26.   "*If non-nil save new templates after creating them with
  27.     'replace-wtih-placeholder.  Otherwise, saving must be done
  28.     by invoking 'save-buffer.  Defaults to nil."
  29. ) ; tpl-auto-save-new-templates
  30.  
  31. (defvar tpl-auto-template-alist nil
  32.   "*Global Alist of major modes and their associated template files.
  33.     Initialized by 'tpl-initialize-modes'."
  34. ) ; tpl-auto-template-alist
  35.  
  36. (defvar tpl-begin-placeholder "<"
  37.   "*Regular expression for beginning of placeholder."
  38. ) ; tpl-begin-placeholder
  39.  
  40. (defvar tpl-begin-template-body "^:begin"
  41.   "*Regular expression for beginning of template body."
  42. ) ; tpl-begin-template-body
  43. (make-variable-buffer-local 'tpl-begin-template-body)
  44. (setq-default tpl-begin-template-body "^:begin")
  45.  
  46. (defvar tpl-begin-template-definition "^Template"
  47.   "*Regular expression for beginning of template definition."
  48. ) ; tpl-begin-template-definition
  49. (make-variable-buffer-local 'tpl-begin-template-definition)
  50. (setq-default tpl-begin-template-definition "^Template")
  51.  
  52. (defvar tpl-destination-symbol "POINT"
  53.   "*Special symbol used as placeholder as location for point
  54.     after expanding a template."
  55. ) ; tpl-destination-symbol
  56.  
  57. (defvar tpl-display-begin ">>"
  58.   "*Delimiter marking beginning of a selected placeholder."
  59. ) ; tpl-display-begin
  60.  
  61. (defvar tpl-display-end "<<"
  62.   "*Delimiter marking end of a selected placeholder."
  63. ) ; tpl-display-end
  64.  
  65. (defvar tpl-end-placeholder ">"
  66.   "*Regular expression for end of placeholder."
  67. ) ; tpl-end-placeholder
  68.  
  69. (defvar tpl-end-template-body "^:end"
  70.   "*Regular expression for end of template body."
  71. ) ; tpl-end-template-body
  72. (make-variable-buffer-local 'tpl-end-template-body)
  73. (setq-default tpl-end-template-body "^:end")
  74.  
  75. (defvar tpl-fill-while-unscanning nil
  76.   "*If non-nil, use whatever fill mode is in effect while unscanning
  77.     (inserting) templates.  Defaults to nil, which ensures that template
  78.     formats are not disturbed by context."
  79. ) ; tpl-fill-while-unscanning
  80.  
  81. (defvar tpl-form-placeholder-name-from-context nil
  82.   "*Option to generate placeholder names by looking for the first symbol
  83.     after point.  Defaults to nil, which means use temporary names instead."
  84. ) ; tpl-form-placeholder-name-from-context
  85.  
  86. (defvar tpl-function-type "Function"
  87.   "*Name of function-type template type."
  88. ) ; tpl-function-type
  89.  
  90. (defvar tpl-get-placeholder-name-in-context t
  91.   "*If non-nil allow the user to type in the placeholder name within
  92.     the context of the template definition.  Otherwise, use temporary
  93.     names.  Defaults to t."
  94. ) ; tpl-get-placeholder-name-in-context
  95.  
  96. (defvar tpl-include-prefix-in-groups t
  97.   "*Option to include the prefix string (used to find the beginning of
  98.     a group) in the group."
  99. ) ; tpl-include-prefix-in-groups
  100.  
  101. (defvar tpl-indentation-size 2
  102.   "*Size of indentation units in columns."
  103. ) ; tpl-indentation-size
  104. (make-variable-buffer-local 'tpl-indentation-size)
  105. (setq-default tpl-indentation-size 2)
  106.  
  107. (defvar tpl-keep-optional-placeholders "ask"
  108.   "*Option to determine processing of optional placeholders in template-mode.
  109.     If t, then always keep them.  If nil, then always delete them.  If neither
  110.     t nor nil, then always ask."
  111. ) ; tpl-keep-optional-placeholders
  112.  
  113. (defvar tpl-lexical-type "Lexical"
  114.   "*Name of lexical-type template type."
  115. ) ; tpl-lexical-type
  116.  
  117. (defvar tpl-literal-whitespace nil
  118.   "*If non-nil leave leading whitespace in templates as-is.
  119.     Otherwise, calculate relative indentation units (see
  120.     'tpl-indentation-size' variable).  Defaults to nil."
  121. ) ; tpl-literal-whitespace
  122.  
  123. (defvar tpl-load-path (list nil "/faculty/ardis/Gnu/Template/Templates")
  124.   "*List of directories to search for template files to load.
  125.     Each element is a string (directory name) or nil (try default directory).
  126.     Use 'template-mode-load-hook to change this value."
  127. ) ; tpl-load-path
  128.  
  129. (defvar tpl-new-template-buffer "new.tpl"
  130.   "*Buffer containing new templates."
  131. ) ; tpl-new-template-buffer
  132.  
  133. (defvar tpl-next-placeholder-number 1
  134.   "*Counter used to generate unique temporary placeholder names."
  135. ) ; tpl-next-placeholder-number
  136.  
  137. (defvar tpl-pattern-optional "#"
  138.   "*Regular expression for all optional placeholders."
  139. ) ; tpl-pattern-optional
  140.  
  141. (defvar tpl-pattern-other "."
  142.   "*Regular expression for all other tokens."
  143. ) ; tpl-pattern-other
  144.  
  145. (defvar tpl-pattern-placeholder nil
  146.   "*Regular expression for placeholder."
  147. ) ; tpl-pattern-placeholder
  148.  
  149. (defvar tpl-pattern-punctuation "\\s.+"
  150.   "*Regular expression for at least one punctuation character."
  151. ) ; tpl-pattern-punctuation
  152.  
  153. (defvar tpl-pattern-string ".*"
  154.   "*Regular expression for any string."
  155. ) ; tpl-pattern-string
  156.  
  157. (defvar tpl-pattern-symbol "\\(\\sw\\|\\s_\\)+"
  158.   "*Regular expression for at least one symbol character."
  159. ) ; tpl-pattern-symbol
  160.  
  161. (defvar tpl-pattern-whitespace "[     ]+"
  162.   "*Regular expression for at least one whitespace character."
  163. ) ; tpl-pattern-whitespace
  164.  
  165. (defvar tpl-pattern-word "\\sw+"
  166.   "*Regular expression for at least one word character."
  167. ) ; tpl-pattern-word
  168.  
  169. (defvar tpl-rebuild-all-templates-template nil
  170.   "*If non-nil rebuild the list of all templates after invoking
  171.     template-mode and after loading new templates.  Otherwise, do not
  172.     (improves performance of starting up).  Defaults to nil."
  173. ) ; tpl-rebuild-all-templates-template
  174.  
  175. (defvar tpl-repetition-type "Repetition"
  176.   "*Name of repetition-type template type."
  177. ) ; tpl-repetition-type
  178.  
  179. (defvar tpl-save-identifier-file nil
  180.   "*Option to save identifier table in a separate file.  Defaults
  181.     to nil, which means save only in a buffer."
  182. ) ; tpl-save-identifier-file
  183.  
  184. (defvar tpl-selection-type "Selection"
  185.   "*Name of selection-type template type."
  186. ) ; tpl-selection-type
  187.  
  188. (defvar tpl-sep-placeholder ":"
  189.   "*Regular expression for placeholder body separator."
  190. ) ; tpl-sep-placeholder
  191.  
  192. (defvar tpl-sequence-type "Sequence"
  193.   "*Name of sequence-type template type."
  194. ) ; tpl-sequence-type
  195.  
  196. (defvar tpl-string-type "String"
  197.   "*Name of string-type template type."
  198. ) ; tpl-string-type
  199.  
  200. (defvar tpl-temporary-placeholder-name "TEMP"
  201.   "*Root of temporary placeholder names."
  202. ) ; tpl-temporary-placeholder-name
  203.  
  204. (defvar tpl-verify-end-of-group nil
  205.   "*Option to verify (by positioning point) the end of each group
  206.     of lines in 'query-replace-groups."
  207. ) ; tpl-verify-end-of-group
  208.  
  209. ;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  210. ;;; Global Variables
  211.  
  212. (defvar lex-patterns nil
  213.   "A list of regular expressions to be used in recognizing tokens."
  214. ) ; lex-patterns
  215.  
  216. (defvar string-patterns nil
  217.   "A list of string patterns to be used in recognizing tokens."
  218. ) ; string-patterns
  219.  
  220. (defvar template-mode nil
  221.   "Minor mode symbol."
  222. ) ; template-mode
  223. (make-variable-buffer-local 'template-mode)
  224.  
  225. (defvar template-mode-map nil
  226.   "Keymap for template-mode."
  227. ) ; template-mode-map
  228.  
  229. (defvar tpl-all-templates-file "ALLTEMPLATES"
  230.   "Name of dummy template file for all-templates-template."
  231. ) ; tpl-all-templates-name
  232.  
  233. (defvar tpl-all-templates-name "ALLTEMPLATES"
  234.   "Name of special template that is a selection of all other templates."
  235. ) ; tpl-all-templates-name
  236.  
  237. (defvar tpl-all-templates-template-invalid t
  238.   "Flag to indicate validity of all-templates-template."
  239. ) ; tpl-all-templates-template-invalid
  240.  
  241. (defvar tpl-begin-optional nil
  242.   "Regular expression for beginning of optional placeholder."
  243. ) ; tpl-begin-optional
  244.  
  245. (defvar tpl-buffer
  246.   "Current template buffer."
  247. ) ; tpl-buffer
  248.  
  249. (defvar tpl-comment-level 100
  250.   "Special value indicating alignment on comment column."
  251. ) ; tpl-comment-level
  252.  
  253. (defvar tpl-destination-marker (make-marker)
  254.   "Location (a marker) to leave point after expanding placeholder."
  255. ) ; tpl-destination-marker
  256. (make-variable-buffer-local 'tpl-destination-marker)
  257. (setq-default tpl-destination-marker (make-marker))
  258.  
  259. (defvar tpl-destination-needed nil
  260.   "Boolean flag used to signal whether a destination for point (after
  261.     expanding a placeholder) has been found yet."
  262. ) ; tpl-destination-needed
  263.  
  264. (defvar tpl-destination-placeholder nil
  265.   "Special placeholder used to place point after expanding a template."
  266. ) ; tpl-destination-placeholder
  267.  
  268. (defvar tpl-end-group nil
  269.   "Global variable to hold pattern for end of group."
  270. ) ; tpl-end-group
  271.  
  272. (defvar tpl-expansion-depth 1
  273.   "Current depth of recursive calls to expand placeholders.
  274.     Compared to tpl-ask-expansion-depth."
  275. ) ; tpl-expansion-depth
  276. (make-variable-buffer-local 'tpl-expansion-depth)
  277. (setq-default tpl-expansion-depth 1)
  278.  
  279. (defvar tpl-formed-placeholder-name nil
  280.   "Value formed by searching for next symbol after point."
  281. ) ; tpl-formed-placeholder-name
  282.  
  283. (defvar tpl-global-template-list nil
  284.   "Global Alist of major modes and their associated templates."
  285. ) ; tpl-global-template-list
  286.  
  287. (defvar tpl-indentation-type 'indentation
  288.   "Type of indentation terminals."
  289. ) ; tpl-indentation-type
  290.  
  291. (defvar tpl-local-template-list nil
  292.   "List of all templates and their tree values."
  293. ) ; tpl-local-template-list
  294. (make-variable-buffer-local 'tpl-local-template-list)
  295.  
  296. (defvar tpl-menu-buffer "Menu"
  297.   "Buffer used for making selections of templates."
  298. ) ; tpl-menu-buffer
  299.  
  300. (defvar tpl-newline-token nil
  301.   "Token indicating presence of a newline."
  302. ) ; tpl-newline-token
  303.  
  304. (defvar tpl-newline-type 'newline
  305.   "Type of newline terminals."
  306. ) ; tpl-newline-type
  307.  
  308. (defvar tpl-next-placeholder-name (concat tpl-temporary-placeholder-name
  309.                     tpl-next-placeholder-number)
  310.   "Next unique name for temporary placeholder."
  311. ) ; tpl-next-placeholder-number
  312.  
  313. (defvar tpl-optional-type 'optional
  314.   "Type of optional placeholders."
  315. ) ; tpl-optional-type
  316.  
  317. (defvar tpl-other-type 'other
  318.   "Type of other terminals."
  319. ) ; tpl-other-type
  320.  
  321. (defvar tpl-placeholder-type 'placeholder
  322.   "Type of all placeholders."
  323. ) ; tpl-placeholder-type
  324.  
  325. (defvar tpl-punctuation-type 'punctuation
  326.   "Type of punctuation terminals."
  327. ) ; tpl-punctuation-type
  328.  
  329. (defvar tpl-query-flag t
  330.   "If non-nil query about placeholder names."
  331. ) ; tpl-query-flag
  332.  
  333. (defvar tpl-saved-map nil
  334.   "Local keymap to restore when turning off template-mode."
  335. ) ; tpl-saved-map
  336. (make-variable-buffer-local 'tpl-saved-map)
  337.  
  338. (defvar tpl-terminal-type 'terminal
  339.   "Type of all literal strings."
  340. ) ; tpl-terminal-type
  341.  
  342. (defvar tpl-textlong-buffer "Textlong"
  343.   "Buffer used for creating textlong values."
  344. ) ; tpl-textlong-buffer
  345.  
  346. (defvar tpl-whitespace-type 'whitespace
  347.   "Type of whitespace terminals."
  348. ) ; tpl-whitespace-type
  349.  
  350. (defvar tpl-word-type 'word
  351.   "Type of word terminals."
  352. ) ; tpl-word-type
  353.  
  354. (defvar tpl-work-buffer "Work"
  355.   "Buffer used for constructing temporary objects."
  356. ) ; tpl-work-buffer
  357.  
  358. ;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  359.  
  360. ;;; end of tplvars.el
  361.