Use completion-at-point rather than completion-in-region.
* lisp/wid-edit.el: Use lexical scoping and move towards completion-at-point.
(widget-complete): Use new :completion-function property.
(widget-completions-at-point): New function.
(default): Use :completion-function instead of :complete.
(widget-default-completions): Rename from widget-default-complete, rewrite.
(widget-string-complete, widget-file-complete, widget-color-complete):
Remove functions.
(file, symbol, function, variable, coding-system, color):
* lisp/international/mule-cmds.el (default-input-method, charset)
(language-info-custom-alist):
* lisp/cus-edit.el (face): Use new property :completions.
* lisp/progmodes/pascal.el (pascal-completions-at-point): New function.
(pascal-mode): Use it.
(pascal-mode-map): Use completion-at-point.
(pascal-toggle-completions): Make obsolete.
(pascal-complete-word, pascal-show-completions):
* lisp/progmodes/octave-mod.el (octave-complete-symbol):
Redefine as obsolete alias.
* lisp/progmodes/octave-inf.el (inferior-octave-completion-at-point):
Signal absence of completion info for old Octave,
(inferior-octave-complete): Redefine as obsolete alias.
* lisp/progmodes/meta-mode.el: Use lexical-binding and completion-at-point.
(meta-completions-at-point): Rename from meta-complete-symbol and
adapt it for use on completion-at-point-functions.
(meta-common-mode): Use it.
(meta-looking-at-backward, meta-match-buffer): Remove.
(meta-complete-symbol): Redefine as obsolete alias.
(meta-common-mode-map): Use completion-at-point.
* lisp/progmodes/make-mode.el: Use lexical-binding and completion-at-point.
(makefile-mode-map): Use completion-at-point.
(makefile-completions-at-point): Rename from makefile-complete and
adapt it for use on completion-at-point-functions.
(makefile-mode): Use it.
(makefile-complete): Redefine as obsolete alias.
2011-06-20 12:02:31 -04:00
|
|
|
|
;;; meta-mode.el --- major mode for editing Metafont or MetaPost sources -*- lexical-binding:t -*-
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
2018-01-01 00:21:42 -08:00
|
|
|
|
;; Copyright (C) 1997, 2001-2018 Free Software Foundation, Inc.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
;; Author: Ulrik Vieth <vieth@thphy.uni-duesseldorf.de>
|
|
|
|
|
;; Version: 1.0
|
|
|
|
|
;; Keywords: Metafont, MetaPost, tex, languages
|
|
|
|
|
|
1997-07-23 20:57:49 +00:00
|
|
|
|
;; This file is part of GNU Emacs.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
2008-05-06 07:25:26 +00:00
|
|
|
|
;; GNU Emacs is free software: you can redistribute it and/or modify
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; it under the terms of the GNU General Public License as published by
|
2008-05-06 07:25:26 +00:00
|
|
|
|
;; the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
;; (at your option) any later version.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
1997-07-23 20:57:49 +00:00
|
|
|
|
;; GNU Emacs is distributed in the hope that it will be useful,
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
;; GNU General Public License for more details.
|
|
|
|
|
|
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
2017-09-13 15:52:52 -07:00
|
|
|
|
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
|
|
|
|
|
|
;; Description:
|
|
|
|
|
;;
|
|
|
|
|
;; This Emacs Lisp package provides a major mode for editing Metafont
|
|
|
|
|
;; or MetaPost sources. It includes all the necessary code to set up
|
2011-11-09 17:18:33 +01:00
|
|
|
|
;; a major mode including an appropriate syntax table, keymap, and a
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; mode-specific pull-down menu. It also provides a sophisticated set
|
|
|
|
|
;; of font-lock patterns, a fancy indentation function adapted from
|
2004-08-22 11:03:22 +00:00
|
|
|
|
;; AUCTeX's latex.el, and some basic mode-specific editing functions
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; such as functions to move to the beginning or end of the enclosing
|
|
|
|
|
;; environment, or to mark, re-indent, or comment-out environments.
|
|
|
|
|
;; On the other hand, it doesn't yet provide any functionality for
|
2011-11-09 17:18:33 +01:00
|
|
|
|
;; running Metafont or MetaPost in a shell buffer from within Emacs,
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; but such functionality might be added later, either as part of this
|
|
|
|
|
;; package or as a separate Emacs Lisp package.
|
|
|
|
|
|
|
|
|
|
;; Customization:
|
|
|
|
|
;;
|
|
|
|
|
;; Following the usual Emacs Lisp coding conventions, the major modes
|
|
|
|
|
;; defined in this package provide several hook variables to allow for
|
|
|
|
|
;; local customization when entering the modes. In particular, there
|
|
|
|
|
;; is a `meta-common-mode-hook' which applies to both modes as well as
|
|
|
|
|
;; `metafont-mode-hook' and `metapost-mode-hook' which apply to the
|
|
|
|
|
;; individual modes. In addition, there are several variables and
|
|
|
|
|
;; regexps controlling e.g. the behavior of the indentation function,
|
2018-03-12 21:09:36 -04:00
|
|
|
|
;; which may be customized. Please refer to the docstrings in the code
|
|
|
|
|
;; below for details.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
;; Availability:
|
|
|
|
|
;;
|
|
|
|
|
;; As of this version 1.0, this package will be uploaded to CTAN
|
|
|
|
|
;; archives, where it shall find a permanent home, presumably in
|
|
|
|
|
;; tex-archive/support/emacs-modes. It will also be submitted for
|
|
|
|
|
;; integration into the GNU Emacs distribution at that time.
|
|
|
|
|
;;
|
|
|
|
|
;; History:
|
|
|
|
|
;;
|
|
|
|
|
;; v 0.0 -- 1997/02/01 UV Started writing meta-mode.el.
|
|
|
|
|
;; v 0.1 -- 1997/02/02 UV Added preliminary set of font-lock patterns.
|
|
|
|
|
;; v 0.2 -- 1997/02/03 UV Improved and debugged font-lock patterns.
|
|
|
|
|
;; Added indent-line-function for TAB.
|
|
|
|
|
;; v 0.3 -- 1997/02/17 UV Improved font-lock patterns and syntax table.
|
2011-11-09 17:18:33 +01:00
|
|
|
|
;; Improved and debugged indentation function.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; v 0.4 -- 1997/02/18 UV Added functions to indent regions for M-C-q,
|
|
|
|
|
;; also added a preliminary mode-specific menu.
|
2003-02-04 13:24:35 +00:00
|
|
|
|
;; v 0.5 -- 1997/02/19 UV Added functions to skip to next or previous
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; defun and to re-indent or comment-out defuns.
|
|
|
|
|
;; v 0.6 -- 1997/02/20 UV More debugging, testing and clean-up.
|
|
|
|
|
;; v 0.7 -- 1997/02/22 UV Use easymenu to define mode-specific menu.
|
|
|
|
|
;; v 0.8 -- 1997/02/24 UV Added completion function for M-TAB.
|
|
|
|
|
;; v 0.9 -- 1997/03/08 UV Added fill-paragraph function for comments.
|
|
|
|
|
;; Also fixed a few remaining font-lock problems.
|
|
|
|
|
;; Added meta-mode-load-hook to load meta-buf.el.
|
|
|
|
|
;; v 1.0 -- 1997/04/07 UV Cleanup for official public release.
|
|
|
|
|
;;
|
|
|
|
|
;; Historical Footnote:
|
|
|
|
|
;;
|
|
|
|
|
;; This package was begun on February 1, 1997, exactly 20 years after
|
|
|
|
|
;; the genesis of TeX took place according to Don Knuth's own account
|
2007-09-19 14:32:53 +00:00
|
|
|
|
;; (cf. ``The Errors of TeX'', reprinted in ``Literate Programming'',
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; Chapter 10, p. 249). What better date could there be to choose?
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Code:
|
|
|
|
|
|
|
|
|
|
(require 'easymenu)
|
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defgroup meta-font nil
|
|
|
|
|
"Major mode for editing Metafont or MetaPost sources."
|
2005-11-17 07:40:11 +00:00
|
|
|
|
:link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces)
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:group 'languages)
|
|
|
|
|
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;;; Fontification.
|
|
|
|
|
|
|
|
|
|
(defvar meta-font-lock-keywords
|
|
|
|
|
(let ((input-keywords
|
|
|
|
|
"\\(input\\|generate\\)")
|
|
|
|
|
(begin-keywords
|
|
|
|
|
(concat "\\(begin\\(char\\|fig\\|graph\\|logochar\\)\\|"
|
|
|
|
|
"\\cmchar\\|dcchar\\|ecchar\\)"))
|
|
|
|
|
(end-keywords
|
|
|
|
|
"\\(end\\(char\\|fig\\|graph\\)\\)")
|
|
|
|
|
(macro-keywords-1
|
|
|
|
|
"\\(def\\|let\\|mode_def\\|vardef\\)")
|
|
|
|
|
(macro-keywords-2
|
|
|
|
|
"\\(primarydef\\|secondarydef\\|tertiarydef\\)")
|
|
|
|
|
;(make-regexp
|
|
|
|
|
; '("expr" "suffix" "text" "primary" "secondary" "tertiary") t)
|
|
|
|
|
(args-keywords
|
|
|
|
|
(concat "\\(expr\\|primary\\|s\\(econdary\\|uffix\\)\\|"
|
|
|
|
|
"te\\(rtiary\\|xt\\)\\)"))
|
|
|
|
|
;(make-regexp
|
|
|
|
|
; '("boolean" "color" "numeric" "pair" "path" "pen" "picture"
|
|
|
|
|
; "string" "transform" "newinternal") t)
|
|
|
|
|
(type-keywords
|
|
|
|
|
(concat "\\(boolean\\|color\\|n\\(ewinternal\\|umeric\\)\\|"
|
|
|
|
|
"p\\(a\\(ir\\|th\\)\\|en\\|icture\\)\\|string\\|"
|
|
|
|
|
"transform\\)"))
|
|
|
|
|
;(make-regexp
|
|
|
|
|
; '("for" "forever" "forsuffixes" "endfor"
|
|
|
|
|
; "step" "until" "upto" "downto" "thru" "within"
|
|
|
|
|
; "iff" "if" "elseif" "else" "fi" "exitif" "exitunless"
|
|
|
|
|
; "let" "def" "vardef" "enddef" "mode_def"
|
|
|
|
|
; "true" "false" "known" "unknown" "and" "or" "not"
|
|
|
|
|
; "save" "interim" "inner" "outer" "relax"
|
|
|
|
|
; "begingroup" "endgroup" "expandafter" "scantokens"
|
|
|
|
|
; "generate" "input" "endinput" "end" "bye"
|
|
|
|
|
; "message" "errmessage" "errhelp" "special" "numspecial"
|
|
|
|
|
; "readstring" "readfrom" "write") t)
|
|
|
|
|
(syntactic-keywords
|
|
|
|
|
(concat "\\(and\\|b\\(egingroup\\|ye\\)\\|"
|
|
|
|
|
"d\\(ef\\|ownto\\)\\|e\\(lse\\(\\|if\\)"
|
|
|
|
|
"\\|nd\\(\\|def\\|for\\|group\\|input\\)"
|
|
|
|
|
"\\|rr\\(help\\|message\\)"
|
|
|
|
|
"\\|x\\(it\\(if\\|unless\\)\\|pandafter\\)\\)\\|"
|
|
|
|
|
"f\\(alse\\|i\\|or\\(\\|ever\\|suffixes\\)\\)\\|"
|
|
|
|
|
"generate\\|i\\(ff?\\|n\\(ner\\|put\\|terim\\)\\)\\|"
|
|
|
|
|
"known\\|let\\|m\\(essage\\|ode_def\\)\\|"
|
|
|
|
|
"n\\(ot\\|umspecial\\)\\|o\\(r\\|uter\\)\\|"
|
|
|
|
|
"re\\(ad\\(from\\|string\\)\\|lax\\)\\|"
|
|
|
|
|
"s\\(ave\\|cantokens\\|pecial\\|tep\\)\\|"
|
|
|
|
|
"t\\(hru\\|rue\\)\\|"
|
|
|
|
|
"u\\(n\\(known\\|til\\)\\|pto\\)\\|"
|
|
|
|
|
"vardef\\|w\\(ithin\\|rite\\)\\)"))
|
|
|
|
|
)
|
|
|
|
|
(list
|
|
|
|
|
;; embedded TeX code in btex ... etex
|
|
|
|
|
(cons (concat "\\(btex\\|verbatimtex\\)"
|
2007-09-10 14:21:31 +00:00
|
|
|
|
"[ \t\f]+\\(.*\\)[ \t\f]+"
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"\\(etex\\)")
|
|
|
|
|
'((1 font-lock-keyword-face)
|
|
|
|
|
(2 font-lock-string-face)
|
|
|
|
|
(3 font-lock-keyword-face)))
|
|
|
|
|
;; unary macro definitions: def, vardef, let
|
|
|
|
|
(cons (concat "\\<" macro-keywords-1 "\\>"
|
2007-09-10 14:21:31 +00:00
|
|
|
|
"[ \t\f]+\\(\\sw+\\|\\s_+\\|\\s.+\\)")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'((1 font-lock-keyword-face)
|
|
|
|
|
(2 font-lock-function-name-face)))
|
2011-11-17 01:09:20 -08:00
|
|
|
|
;; binary macro definitions: <leveldef> x operator y
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(cons (concat "\\<" macro-keywords-2 "\\>"
|
2007-09-10 14:21:31 +00:00
|
|
|
|
"[ \t\f]+\\(\\sw+\\)"
|
|
|
|
|
"[ \t\f]*\\(\\sw+\\|\\s.+\\)"
|
|
|
|
|
"[ \t\f]*\\(\\sw+\\)")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'((1 font-lock-keyword-face)
|
|
|
|
|
(2 font-lock-variable-name-face nil t)
|
|
|
|
|
(3 font-lock-function-name-face nil t)
|
|
|
|
|
(4 font-lock-variable-name-face nil t)))
|
|
|
|
|
;; variable declarations: numeric, pair, color, ...
|
|
|
|
|
(cons (concat "\\<" type-keywords "\\>"
|
2007-09-10 14:21:31 +00:00
|
|
|
|
"\\([ \t\f]+\\(\\sw+\\)\\)*")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'((1 font-lock-type-face)
|
|
|
|
|
(font-lock-match-meta-declaration-item-and-skip-to-next
|
|
|
|
|
(goto-char (match-end 1)) nil
|
|
|
|
|
(1 font-lock-variable-name-face nil t))))
|
|
|
|
|
;; argument declarations: expr, suffix, text, ...
|
|
|
|
|
(cons (concat "\\<" args-keywords "\\>"
|
2007-09-10 14:21:31 +00:00
|
|
|
|
"\\([ \t\f]+\\(\\sw+\\|\\s_+\\)\\)*")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'((1 font-lock-type-face)
|
|
|
|
|
(font-lock-match-meta-declaration-item-and-skip-to-next
|
|
|
|
|
(goto-char (match-end 1)) nil
|
|
|
|
|
(1 font-lock-variable-name-face nil t))))
|
|
|
|
|
;; special case of arguments: expr x of y
|
2007-09-10 14:21:31 +00:00
|
|
|
|
(cons (concat "\\(expr\\)[ \t\f]+\\(\\sw+\\)"
|
|
|
|
|
"[ \t\f]+\\(of\\)[ \t\f]+\\(\\sw+\\)")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'((1 font-lock-type-face)
|
|
|
|
|
(2 font-lock-variable-name-face)
|
|
|
|
|
(3 font-lock-keyword-face nil t)
|
|
|
|
|
(4 font-lock-variable-name-face nil t)))
|
|
|
|
|
;; syntactic keywords
|
|
|
|
|
(cons (concat "\\<" syntactic-keywords "\\>")
|
|
|
|
|
'font-lock-keyword-face)
|
|
|
|
|
;; beginchar, beginfig
|
|
|
|
|
(cons (concat "\\<" begin-keywords "\\>")
|
|
|
|
|
'font-lock-keyword-face)
|
|
|
|
|
;; endchar, endfig
|
|
|
|
|
(cons (concat "\\<" end-keywords "\\>")
|
|
|
|
|
'font-lock-keyword-face)
|
|
|
|
|
;; input, generate
|
|
|
|
|
(cons (concat "\\<" input-keywords "\\>"
|
2007-09-10 14:21:31 +00:00
|
|
|
|
"[ \t\f]+\\(\\sw+\\)")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'((1 font-lock-keyword-face)
|
1998-02-20 14:58:27 +00:00
|
|
|
|
(2 font-lock-constant-face)))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; embedded Metafont/MetaPost code in comments
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(cons "|\\([^|]+\\)|"
|
1998-02-20 14:58:27 +00:00
|
|
|
|
'(1 font-lock-constant-face t))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
))
|
|
|
|
|
"Default expressions to highlight in Metafont or MetaPost mode.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun font-lock-match-meta-declaration-item-and-skip-to-next (limit)
|
|
|
|
|
;; Match and move over Metafont/MetaPost declaration item after point.
|
|
|
|
|
;;
|
|
|
|
|
;; The expected syntax of an item is either "word" or "symbol",
|
|
|
|
|
;; possibly ending with optional whitespace. Everything following
|
|
|
|
|
;; the item (but belonging to it) is expected to by skipable by
|
|
|
|
|
;; `forward-sexp'. The list of items is expected to be separated
|
|
|
|
|
;; by commas and terminated by semicolons or equals signs.
|
|
|
|
|
;;
|
2007-09-10 14:21:31 +00:00
|
|
|
|
(if (looking-at "[ \t\f]*\\(\\sw+\\|\\s_+\\)")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(save-match-data
|
|
|
|
|
(condition-case nil
|
|
|
|
|
(save-restriction
|
|
|
|
|
;; Restrict to end of line, currently guaranteed to be LIMIT.
|
|
|
|
|
(narrow-to-region (point-min) limit)
|
|
|
|
|
(goto-char (match-end 1))
|
|
|
|
|
;; Move over any item value, etc., to the next item.
|
2007-09-10 14:21:31 +00:00
|
|
|
|
(while (not (looking-at "[ \t\f]*\\(\\(,\\)\\|;\\|=\\|$\\)"))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(goto-char (or (scan-sexps (point) 1) (point-max))))
|
|
|
|
|
(goto-char (match-end 2)))
|
|
|
|
|
(error t)))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Completion.
|
|
|
|
|
|
|
|
|
|
;; The data used to prepare the following lists of primitives and
|
|
|
|
|
;; standard macros available in Metafont or MetaPost was extracted
|
|
|
|
|
;; from the original sources like this:
|
|
|
|
|
;;
|
|
|
|
|
;; grep '^primitive' texk-7.0/web2c/{mf,mp}.web |\
|
|
|
|
|
;; sed 's/primitive(\("[a-zA-Z]*"\).*/\1/' > {mf,mp}_prim.list
|
|
|
|
|
;;
|
2003-02-04 13:24:35 +00:00
|
|
|
|
;; grep '\(let\|def\|vardef\|primarydef\|secondarydef\|tertiarydef\)'
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; texmf/meta{font,post}/plain.{mf,mp} > {mf,mp}_plain.list
|
|
|
|
|
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(defconst meta-common-primitives-list
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'("ASCII" "addto" "also" "and" "angle" "atleast" "batchmode"
|
|
|
|
|
"begingroup" "boolean" "boundarychar" "char" "charcode" "chardp"
|
|
|
|
|
"charexists" "charext" "charht" "charic" "charlist" "charwd"
|
|
|
|
|
"contour" "controls" "cosd" "curl" "cycle" "day" "decimal" "def"
|
|
|
|
|
"delimiters" "designsize" "directiontime" "doublepath" "dump" "else"
|
|
|
|
|
"elseif" "end" "enddef" "endfor" "endgroup" "endinput" "errhelp"
|
|
|
|
|
"errmessage" "errorstopmode" "everyjob" "exitif" "expandafter"
|
|
|
|
|
"expr" "extensible" "false" "fi" "floor" "fontdimen" "fontmaking"
|
|
|
|
|
"for" "forever" "forsuffixes" "headerbyte" "hex" "if" "inner"
|
|
|
|
|
"input" "interim" "intersectiontimes" "jobname" "kern" "known"
|
|
|
|
|
"length" "let" "ligtable" "makepath" "makepen" "message" "mexp"
|
|
|
|
|
"mlog" "month" "newinternal" "nonstopmode" "normaldeviate" "not"
|
|
|
|
|
"nullpen" "nullpicture" "numeric" "oct" "odd" "of" "or" "outer"
|
|
|
|
|
"pair" "path" "pausing" "pen" "pencircle" "penoffset" "picture"
|
|
|
|
|
"point" "postcontrol" "precontrol" "primary" "primarydef" "quote"
|
|
|
|
|
"randomseed" "readstring" "reverse" "rotated" "save" "scaled"
|
|
|
|
|
"scantokens" "scrollmode" "secondary" "secondarydef" "shifted"
|
|
|
|
|
"shipout" "show" "showdependencies" "showstats" "showstopping"
|
|
|
|
|
"showtoken" "showvariable" "sind" "skipto" "slanted" "special"
|
|
|
|
|
"sqrt" "step" "str" "string" "subpath" "substring" "suffix"
|
|
|
|
|
"tension" "tertiary" "tertiarydef" "text" "time" "to"
|
|
|
|
|
"tracingcapsules" "tracingchoices" "tracingcommands"
|
|
|
|
|
"tracingequations" "tracingmacros" "tracingonline" "tracingoutput"
|
|
|
|
|
"tracingrestores" "tracingspecs" "tracingstats" "tracingtitles"
|
|
|
|
|
"transform" "transformed" "true" "turningnumber" "uniformdeviate"
|
|
|
|
|
"unknown" "until" "vardef" "warningcheck" "withpen" "xpart"
|
|
|
|
|
"xscaled" "xxpart" "xypart" "year" "ypart" "yscaled" "yxpart"
|
2003-02-04 13:24:35 +00:00
|
|
|
|
"yypart" "zscaled")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"List of primitives common to Metafont and MetaPost.")
|
|
|
|
|
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(defconst metafont-primitives-list
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'("at" "autorounding" "chardx" "chardy" "cull" "display"
|
|
|
|
|
"dropping" "fillin" "from" "granularity" "hppp" "inwindow"
|
|
|
|
|
"keeping" "numspecial" "openwindow" "proofing" "smoothing"
|
|
|
|
|
"totalweight" "tracingedges" "tracingpens" "turningcheck" "vppp"
|
|
|
|
|
"withweight" "xoffset" "yoffset")
|
|
|
|
|
"List of primitives only defined in Metafont.")
|
|
|
|
|
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(defconst metapost-primitives-list
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'("arclength" "arctime" "bluepart" "bounded" "btex" "clip"
|
|
|
|
|
"clipped" "color" "dashed" "dashpart" "etex" "filled" "fontpart"
|
|
|
|
|
"fontsize" "greenpart" "infont" "linecap" "linejoin" "llcorner"
|
|
|
|
|
"lrcorner" "miterlimit" "mpxbreak" "pathpart" "penpart"
|
|
|
|
|
"prologues" "readfrom" "redpart" "setbounds" "stroked" "textpart"
|
|
|
|
|
"textual" "tracinglostchars" "truecorners" "ulcorner" "urcorner"
|
|
|
|
|
"verbatimtex" "withcolor" "within" "write")
|
|
|
|
|
"List of primitives only defined in MetaPost.")
|
|
|
|
|
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(defconst meta-common-plain-macros-list
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'( "abs" "bot" "bye" "byte" "ceiling" "clear_pen_memory"
|
|
|
|
|
"clearit" "clearpen" "clearxy" "counterclockwise" "cutdraw" "decr"
|
|
|
|
|
"dir" "direction" "directionpoint" "div" "dotprod" "downto" "draw"
|
|
|
|
|
"drawdot" "erase" "exitunless" "fill" "filldraw" "flex" "gobble"
|
|
|
|
|
"hide" "incr" "interact" "interpath" "intersectionpoint" "inverse"
|
|
|
|
|
"label" "labels" "lft" "loggingall" "magstep" "makelabel" "max"
|
|
|
|
|
"min" "mod" "numtok" "penlabels" "penpos" "penstroke" "pickup"
|
|
|
|
|
"range" "reflectedabout" "relax" "rotatedabout" "rotatedaround"
|
|
|
|
|
"round" "rt" "savepen" "shipit" "softjoin" "solve" "stop"
|
|
|
|
|
"superellipse" "takepower" "tensepath" "thru" "top" "tracingall"
|
|
|
|
|
"tracingnone" "undraw" "undrawdot" "unfill" "unfilldraw"
|
|
|
|
|
"unitvector" "upto" "whatever")
|
|
|
|
|
"List of macros common to plain Metafont and MetaPost.")
|
|
|
|
|
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(defconst metafont-plain-macros-list
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'("beginchar" "change_width" "culldraw" "cullit" "cutoff"
|
|
|
|
|
"define_blacker_pixels" "define_corrected_pixels"
|
|
|
|
|
"define_good_x_pixels" "define_good_y_pixels"
|
|
|
|
|
"define_horizontal_corrected_pixels" "define_pixels"
|
|
|
|
|
"define_whole_blacker_pixels" "define_whole_pixels"
|
|
|
|
|
"define_whole_vertical_blacker_pixels"
|
|
|
|
|
"define_whole_vertical_pixels" "endchar" "fix_units"
|
|
|
|
|
"font_coding_scheme" "font_extra_space" "font_identifier"
|
|
|
|
|
"font_normal_shrink" "font_normal_space" "font_normal_stretch"
|
|
|
|
|
"font_quad" "font_size" "font_slant" "font_x_height" "gfcorners"
|
|
|
|
|
"good.bot" "good.lft" "good.rt" "good.top" "good.x" "good.y"
|
|
|
|
|
"grayfont" "hround" "imagerules" "italcorr" "labelfont"
|
|
|
|
|
"lowres_fix" "makebox" "makegrid" "maketicks" "mode_lowres"
|
|
|
|
|
"mode_proof" "mode_setup" "mode_smoke" "nodisplays" "notransforms"
|
|
|
|
|
"openit" "penrazor" "pensquare" "proofoffset" "proofrule"
|
|
|
|
|
"proofrulethickness" "screenchars" "screenrule" "screenstrokes"
|
2003-02-04 13:24:35 +00:00
|
|
|
|
"showit" "slantfont" "smode" "titlefont" "vround")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"List of macros only defined in plain Metafont.")
|
|
|
|
|
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(defconst metapost-plain-macros-list
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'("arrowhead" "bbox" "beginfig" "buildcycle" "center" "cutafter"
|
|
|
|
|
"cutbefore" "dashpattern" "dotlabel" "dotlabels" "drawarrow"
|
|
|
|
|
"drawdblarrow" "drawoptions" "endfig" "image" "label" "off" "on"
|
2003-02-04 13:24:35 +00:00
|
|
|
|
"thelabel")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"List of macros only defined in plain MetaPost.")
|
|
|
|
|
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(defconst metapost-graph-macros-list
|
|
|
|
|
'("augment" "auto.x" "auto.y" "autogrid" "begingraph" "endgraph"
|
|
|
|
|
"format" "frame" "gdata" "gdotlabel" "gdraw" "gdrawarrow"
|
|
|
|
|
"gdrawdblarrow" "gfill" "glabel" "grid" "itick" "otick" "plot"
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"setcoords" "setrange")
|
|
|
|
|
"List of macros only defined in MetaPost \"graph\" package.")
|
2003-02-04 13:24:35 +00:00
|
|
|
|
|
|
|
|
|
(defconst metapost-boxes-macros-list
|
1997-06-22 20:08:32 +00:00
|
|
|
|
'("boxit" "boxjoin" "bpath" "circleit" "drawboxed" "drawboxes"
|
|
|
|
|
"drawunboxed" "fixpos" "fixsize" "pic" "rboxit")
|
|
|
|
|
"List of macros only defined in MetaPost \"boxes\" package.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defvar metafont-symbol-list
|
|
|
|
|
(append meta-common-primitives-list
|
|
|
|
|
metafont-primitives-list
|
|
|
|
|
meta-common-plain-macros-list
|
|
|
|
|
metafont-plain-macros-list)
|
|
|
|
|
"List of known symbols to complete in Metafont mode.")
|
|
|
|
|
|
|
|
|
|
(defvar metapost-symbol-list
|
|
|
|
|
(append meta-common-primitives-list
|
|
|
|
|
metapost-primitives-list
|
|
|
|
|
meta-common-plain-macros-list
|
|
|
|
|
metapost-plain-macros-list
|
|
|
|
|
metapost-graph-macros-list
|
|
|
|
|
metapost-boxes-macros-list)
|
|
|
|
|
"List of known symbols to complete in MetaPost mode.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defvar meta-symbol-list nil
|
|
|
|
|
"List of known symbols to complete in Metafont or MetaPost mode.")
|
|
|
|
|
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(defvar meta-symbol-changed nil
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"Flag indicating whether `meta-symbol-list' has been initialized.")
|
|
|
|
|
|
|
|
|
|
(defvar meta-complete-list nil
|
|
|
|
|
; (list (list "\\<\\(\\sw+\\)" 1 'meta-symbol-list)
|
|
|
|
|
; (list "" 'ispell-complete-word))
|
|
|
|
|
"List of ways to perform completion in Metafont or MetaPost mode.
|
|
|
|
|
|
|
|
|
|
Each entry is a list with the following elements:
|
|
|
|
|
1. Regexp matching the preceding text.
|
|
|
|
|
2. A number indicating the subgroup in the regexp containing the text.
|
|
|
|
|
3. A function returning an alist of possible completions.
|
2011-12-30 17:27:15 -08:00
|
|
|
|
4. Text to append after a successful completion (if any).
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
Or alternatively:
|
|
|
|
|
1. Regexp matching the preceding text.
|
|
|
|
|
2. Function to do the actual completion.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun meta-add-symbols (&rest entries)
|
|
|
|
|
"Add entries to list of known symbols in Metafont or MetaPost mode."
|
|
|
|
|
(if meta-symbol-changed
|
|
|
|
|
(setq meta-symbol-list (cons entries meta-symbol-list))
|
|
|
|
|
(setq meta-symbol-changed t)
|
|
|
|
|
(setq meta-symbol-list (cons entries meta-symbol-list))))
|
|
|
|
|
|
|
|
|
|
(defun meta-symbol-list ()
|
|
|
|
|
"Return value of list of known symbols in Metafont or MetaPost mode.
|
|
|
|
|
If the list was changed, sort the list and remove duplicates first."
|
|
|
|
|
(if (not meta-symbol-changed)
|
|
|
|
|
()
|
|
|
|
|
(setq meta-symbol-changed nil)
|
|
|
|
|
(message "Preparing completion list...")
|
|
|
|
|
;; sort list of symbols
|
|
|
|
|
(setq meta-symbol-list
|
|
|
|
|
(sort (mapcar 'meta-listify (apply 'append meta-symbol-list))
|
|
|
|
|
'meta-car-string-lessp))
|
|
|
|
|
;; remove duplicates
|
|
|
|
|
(let ((entry meta-symbol-list))
|
|
|
|
|
(while (and entry (cdr entry))
|
|
|
|
|
(let ((this (car entry))
|
|
|
|
|
(next (car (cdr entry))))
|
|
|
|
|
(if (not (string-equal (car this) (car next)))
|
|
|
|
|
(setq entry (cdr entry))
|
|
|
|
|
(if (> (length next) (length this))
|
|
|
|
|
(setcdr this (cdr next)))
|
|
|
|
|
(setcdr entry (cdr (cdr entry)))))))
|
|
|
|
|
(message "Preparing completion list... done"))
|
|
|
|
|
meta-symbol-list)
|
|
|
|
|
|
|
|
|
|
(defun meta-listify (a)
|
|
|
|
|
;; utility function used in `meta-add-symbols'
|
|
|
|
|
(if (listp a) a (list a)))
|
|
|
|
|
|
|
|
|
|
(defun meta-car-string-lessp (a b)
|
|
|
|
|
;; utility function used in `meta-add-symbols'
|
|
|
|
|
(string-lessp (car a) (car b)))
|
|
|
|
|
|
|
|
|
|
|
Use completion-at-point rather than completion-in-region.
* lisp/wid-edit.el: Use lexical scoping and move towards completion-at-point.
(widget-complete): Use new :completion-function property.
(widget-completions-at-point): New function.
(default): Use :completion-function instead of :complete.
(widget-default-completions): Rename from widget-default-complete, rewrite.
(widget-string-complete, widget-file-complete, widget-color-complete):
Remove functions.
(file, symbol, function, variable, coding-system, color):
* lisp/international/mule-cmds.el (default-input-method, charset)
(language-info-custom-alist):
* lisp/cus-edit.el (face): Use new property :completions.
* lisp/progmodes/pascal.el (pascal-completions-at-point): New function.
(pascal-mode): Use it.
(pascal-mode-map): Use completion-at-point.
(pascal-toggle-completions): Make obsolete.
(pascal-complete-word, pascal-show-completions):
* lisp/progmodes/octave-mod.el (octave-complete-symbol):
Redefine as obsolete alias.
* lisp/progmodes/octave-inf.el (inferior-octave-completion-at-point):
Signal absence of completion info for old Octave,
(inferior-octave-complete): Redefine as obsolete alias.
* lisp/progmodes/meta-mode.el: Use lexical-binding and completion-at-point.
(meta-completions-at-point): Rename from meta-complete-symbol and
adapt it for use on completion-at-point-functions.
(meta-common-mode): Use it.
(meta-looking-at-backward, meta-match-buffer): Remove.
(meta-complete-symbol): Redefine as obsolete alias.
(meta-common-mode-map): Use completion-at-point.
* lisp/progmodes/make-mode.el: Use lexical-binding and completion-at-point.
(makefile-mode-map): Use completion-at-point.
(makefile-completions-at-point): Rename from makefile-complete and
adapt it for use on completion-at-point-functions.
(makefile-mode): Use it.
(makefile-complete): Redefine as obsolete alias.
2011-06-20 12:02:31 -04:00
|
|
|
|
(defun meta-completions-at-point ()
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(let ((list meta-complete-list)
|
|
|
|
|
entry)
|
|
|
|
|
(while list
|
|
|
|
|
(setq entry (car list)
|
|
|
|
|
list (cdr list))
|
Use completion-at-point rather than completion-in-region.
* lisp/wid-edit.el: Use lexical scoping and move towards completion-at-point.
(widget-complete): Use new :completion-function property.
(widget-completions-at-point): New function.
(default): Use :completion-function instead of :complete.
(widget-default-completions): Rename from widget-default-complete, rewrite.
(widget-string-complete, widget-file-complete, widget-color-complete):
Remove functions.
(file, symbol, function, variable, coding-system, color):
* lisp/international/mule-cmds.el (default-input-method, charset)
(language-info-custom-alist):
* lisp/cus-edit.el (face): Use new property :completions.
* lisp/progmodes/pascal.el (pascal-completions-at-point): New function.
(pascal-mode): Use it.
(pascal-mode-map): Use completion-at-point.
(pascal-toggle-completions): Make obsolete.
(pascal-complete-word, pascal-show-completions):
* lisp/progmodes/octave-mod.el (octave-complete-symbol):
Redefine as obsolete alias.
* lisp/progmodes/octave-inf.el (inferior-octave-completion-at-point):
Signal absence of completion info for old Octave,
(inferior-octave-complete): Redefine as obsolete alias.
* lisp/progmodes/meta-mode.el: Use lexical-binding and completion-at-point.
(meta-completions-at-point): Rename from meta-complete-symbol and
adapt it for use on completion-at-point-functions.
(meta-common-mode): Use it.
(meta-looking-at-backward, meta-match-buffer): Remove.
(meta-complete-symbol): Redefine as obsolete alias.
(meta-common-mode-map): Use completion-at-point.
* lisp/progmodes/make-mode.el: Use lexical-binding and completion-at-point.
(makefile-mode-map): Use completion-at-point.
(makefile-completions-at-point): Rename from makefile-complete and
adapt it for use on completion-at-point-functions.
(makefile-mode): Use it.
(makefile-complete): Redefine as obsolete alias.
2011-06-20 12:02:31 -04:00
|
|
|
|
(if (looking-back (car entry) (max (point-min) (- (point) 200)))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(setq list nil)))
|
|
|
|
|
(if (numberp (nth 1 entry))
|
|
|
|
|
(let* ((sub (nth 1 entry))
|
|
|
|
|
(close (nth 3 entry))
|
|
|
|
|
(begin (match-beginning sub))
|
|
|
|
|
(end (match-end sub))
|
2009-11-25 06:08:42 +00:00
|
|
|
|
(list (funcall (nth 2 entry))))
|
Use completion-at-point rather than completion-in-region.
* lisp/wid-edit.el: Use lexical scoping and move towards completion-at-point.
(widget-complete): Use new :completion-function property.
(widget-completions-at-point): New function.
(default): Use :completion-function instead of :complete.
(widget-default-completions): Rename from widget-default-complete, rewrite.
(widget-string-complete, widget-file-complete, widget-color-complete):
Remove functions.
(file, symbol, function, variable, coding-system, color):
* lisp/international/mule-cmds.el (default-input-method, charset)
(language-info-custom-alist):
* lisp/cus-edit.el (face): Use new property :completions.
* lisp/progmodes/pascal.el (pascal-completions-at-point): New function.
(pascal-mode): Use it.
(pascal-mode-map): Use completion-at-point.
(pascal-toggle-completions): Make obsolete.
(pascal-complete-word, pascal-show-completions):
* lisp/progmodes/octave-mod.el (octave-complete-symbol):
Redefine as obsolete alias.
* lisp/progmodes/octave-inf.el (inferior-octave-completion-at-point):
Signal absence of completion info for old Octave,
(inferior-octave-complete): Redefine as obsolete alias.
* lisp/progmodes/meta-mode.el: Use lexical-binding and completion-at-point.
(meta-completions-at-point): Rename from meta-complete-symbol and
adapt it for use on completion-at-point-functions.
(meta-common-mode): Use it.
(meta-looking-at-backward, meta-match-buffer): Remove.
(meta-complete-symbol): Redefine as obsolete alias.
(meta-common-mode-map): Use completion-at-point.
* lisp/progmodes/make-mode.el: Use lexical-binding and completion-at-point.
(makefile-mode-map): Use completion-at-point.
(makefile-completions-at-point): Rename from makefile-complete and
adapt it for use on completion-at-point-functions.
(makefile-mode): Use it.
(makefile-complete): Redefine as obsolete alias.
2011-06-20 12:02:31 -04:00
|
|
|
|
(list
|
|
|
|
|
begin end list
|
|
|
|
|
:exit-function
|
|
|
|
|
(unless (zerop (length close))
|
|
|
|
|
(lambda (_s finished)
|
|
|
|
|
(when (memq finished '(sole finished))
|
|
|
|
|
(if (looking-at (regexp-quote close))
|
|
|
|
|
(goto-char (match-end 0))
|
|
|
|
|
(insert close)))))))
|
|
|
|
|
(nth 1 entry))))
|
|
|
|
|
|
|
|
|
|
(define-obsolete-function-alias 'meta-complete-symbol
|
|
|
|
|
'completion-at-point "24.1")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
;;; Indentation.
|
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defcustom meta-indent-level 2
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Indentation of begin-end blocks in Metafont or MetaPost mode."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'integer
|
|
|
|
|
:group 'meta-font)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defcustom meta-left-comment-regexp "%%+"
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Regexp matching comments that should be placed on the left margin."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'regexp
|
|
|
|
|
:group 'meta-font)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defcustom meta-right-comment-regexp nil
|
2011-11-09 17:18:33 +01:00
|
|
|
|
"Regexp matching comments that should be placed on the right margin."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type '(choice regexp
|
|
|
|
|
(const :tag "None" nil))
|
|
|
|
|
:group 'meta-font)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defcustom meta-ignore-comment-regexp "%[^%]"
|
2011-11-09 17:18:33 +01:00
|
|
|
|
"Regexp matching comments whose indentation should not be touched."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'regexp
|
|
|
|
|
:group 'meta-font)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defcustom meta-begin-environment-regexp
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(concat "\\(begin\\(char\\|fig\\|gr\\(aph\\|oup\\)\\|logochar\\)\\|"
|
|
|
|
|
"def\\|for\\(\\|ever\\|suffixes\\)\\|if\\|mode_def\\|"
|
|
|
|
|
"primarydef\\|secondarydef\\|tertiarydef\\|vardef\\)")
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Regexp matching the beginning of environments to be indented."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'regexp
|
|
|
|
|
:group 'meta-font)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defcustom meta-end-environment-regexp
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(concat "\\(end\\(char\\|def\\|f\\(ig\\|or\\)\\|gr\\(aph\\|oup\\)\\)"
|
|
|
|
|
"\\|fi\\)")
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Regexp matching the end of environments to be indented."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'regexp
|
|
|
|
|
:group 'meta-font)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defcustom meta-within-environment-regexp
|
1997-06-22 20:08:32 +00:00
|
|
|
|
; (concat "\\(e\\(lse\\(\\|if\\)\\|xit\\(if\\|unless\\)\\)\\)")
|
|
|
|
|
(concat "\\(else\\(\\|if\\)\\)")
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Regexp matching keywords within environments not to be indented."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'regexp
|
|
|
|
|
:group 'meta-font)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun meta-comment-indent ()
|
|
|
|
|
"Return the indentation for a comment in Metafont or MetaPost mode."
|
|
|
|
|
(if (and meta-left-comment-regexp
|
|
|
|
|
(looking-at meta-left-comment-regexp))
|
|
|
|
|
(current-column)
|
2007-09-10 14:21:31 +00:00
|
|
|
|
(skip-chars-backward "\t\f ")
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(max (if (bolp) 0 (1+ (current-column)))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
comment-column)))
|
|
|
|
|
|
|
|
|
|
(defun meta-indent-line ()
|
|
|
|
|
"Indent the line containing point as Metafont or MetaPost source."
|
|
|
|
|
(interactive)
|
|
|
|
|
(let ((indent (meta-indent-calculate)))
|
2010-11-09 00:00:46 -08:00
|
|
|
|
(if (/= (current-indentation) indent)
|
|
|
|
|
(save-excursion
|
|
|
|
|
(delete-region (line-beginning-position)
|
|
|
|
|
(progn (back-to-indentation) (point)))
|
|
|
|
|
(indent-to indent)))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(if (< (current-column) indent)
|
|
|
|
|
(back-to-indentation))))
|
|
|
|
|
|
|
|
|
|
(defun meta-indent-calculate ()
|
|
|
|
|
"Return the indentation of current line of Metafont or MetaPost source."
|
2007-08-17 22:51:24 +00:00
|
|
|
|
;; Indentation within strings is not considered as Meta* don't allow multi
|
|
|
|
|
;; line strings.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(save-excursion
|
|
|
|
|
(back-to-indentation)
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(cond
|
2007-08-17 22:51:24 +00:00
|
|
|
|
;; Comments to the left margin.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
((and meta-left-comment-regexp
|
|
|
|
|
(looking-at meta-left-comment-regexp))
|
|
|
|
|
0)
|
2007-08-17 22:51:24 +00:00
|
|
|
|
;; Comments to the right margin.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
((and meta-right-comment-regexp
|
|
|
|
|
(looking-at meta-right-comment-regexp))
|
|
|
|
|
comment-column)
|
|
|
|
|
;; Comments best left alone.
|
2003-02-04 13:24:35 +00:00
|
|
|
|
((and meta-ignore-comment-regexp
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(looking-at meta-ignore-comment-regexp))
|
|
|
|
|
(current-indentation))
|
2007-08-17 22:51:24 +00:00
|
|
|
|
;; Beginning of buffer.
|
|
|
|
|
((eq (point-at-bol) (point-min))
|
|
|
|
|
0)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; Backindent at end of environments.
|
2007-08-17 22:51:24 +00:00
|
|
|
|
((meta-indent-looking-at-code
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(concat "\\<" meta-end-environment-regexp "\\>"))
|
2007-08-17 22:51:24 +00:00
|
|
|
|
(- (meta-indent-current-indentation) meta-indent-level))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; Backindent at keywords within environments.
|
2007-08-17 22:51:24 +00:00
|
|
|
|
((meta-indent-looking-at-code
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(concat "\\<" meta-within-environment-regexp "\\>"))
|
2007-08-17 22:51:24 +00:00
|
|
|
|
(- (meta-indent-current-indentation) meta-indent-level))
|
|
|
|
|
(t (meta-indent-current-indentation)))))
|
|
|
|
|
|
|
|
|
|
(defun meta-indent-in-string-p ()
|
|
|
|
|
"Tell if the point is in a string."
|
|
|
|
|
(or (nth 3 (syntax-ppss))
|
|
|
|
|
(eq (get-text-property (point) 'face) font-lock-string-face)))
|
|
|
|
|
|
|
|
|
|
(defun meta-indent-looking-at-code (regexp)
|
|
|
|
|
"Same as `looking-at' but checks that the point is not in a string."
|
|
|
|
|
(unless (meta-indent-in-string-p)
|
|
|
|
|
(looking-at regexp)))
|
|
|
|
|
|
|
|
|
|
(defun meta-indent-previous-line ()
|
|
|
|
|
"Go to the previous line of code, skipping comments."
|
2007-09-10 14:21:31 +00:00
|
|
|
|
(skip-chars-backward "\n\t\f ")
|
2007-08-17 22:51:24 +00:00
|
|
|
|
(move-to-column (current-indentation))
|
|
|
|
|
;; Ignore comments.
|
|
|
|
|
(while (and (looking-at comment-start) (not (bobp)))
|
2007-09-10 14:21:31 +00:00
|
|
|
|
(skip-chars-backward "\n\t\f ")
|
2007-09-10 17:25:58 +00:00
|
|
|
|
(when (not (bobp))
|
|
|
|
|
(move-to-column (current-indentation)))))
|
2007-08-17 22:51:24 +00:00
|
|
|
|
|
|
|
|
|
(defun meta-indent-unfinished-line ()
|
|
|
|
|
"Tell if the current line of code ends with an unfinished expression."
|
|
|
|
|
(save-excursion
|
|
|
|
|
(end-of-line)
|
|
|
|
|
;; Skip backward the comments.
|
2007-09-10 17:25:58 +00:00
|
|
|
|
(let ((point-not-in-string (point)))
|
|
|
|
|
(while (search-backward comment-start (point-at-bol) t)
|
|
|
|
|
(unless (meta-indent-in-string-p)
|
|
|
|
|
(setq point-not-in-string (point))))
|
|
|
|
|
(goto-char point-not-in-string))
|
2007-08-17 22:51:24 +00:00
|
|
|
|
;; Search for the end of the previous expression.
|
|
|
|
|
(if (search-backward ";" (point-at-bol) t)
|
|
|
|
|
(progn (while (and (meta-indent-in-string-p)
|
|
|
|
|
(search-backward ";" (point-at-bol) t)))
|
|
|
|
|
(if (= (char-after) ?\;)
|
|
|
|
|
(forward-char)
|
|
|
|
|
(beginning-of-line)))
|
|
|
|
|
(beginning-of-line))
|
|
|
|
|
;; See if the last statement of the line is environment-related,
|
|
|
|
|
;; or exists at all.
|
|
|
|
|
(if (meta-indent-looking-at-code
|
2007-09-10 14:21:31 +00:00
|
|
|
|
(concat "[ \t\f]*\\($\\|" (regexp-quote comment-start)
|
2007-08-17 22:51:24 +00:00
|
|
|
|
"\\|\\<" meta-end-environment-regexp "\\>"
|
|
|
|
|
"\\|\\<" meta-begin-environment-regexp "\\>"
|
|
|
|
|
"\\|\\<" meta-within-environment-regexp "\\>\\)"))
|
|
|
|
|
nil
|
|
|
|
|
t)))
|
|
|
|
|
|
|
|
|
|
(defun meta-indent-current-indentation ()
|
|
|
|
|
"Return the indentation wanted for the current line of code."
|
|
|
|
|
(+ (meta-indent-current-nesting)
|
|
|
|
|
(if (save-excursion
|
|
|
|
|
(back-to-indentation)
|
|
|
|
|
(and (not (looking-at (concat "\\<" meta-end-environment-regexp "\\>"
|
|
|
|
|
"\\|\\<" meta-within-environment-regexp "\\>")))
|
|
|
|
|
(progn (meta-indent-previous-line)
|
|
|
|
|
(meta-indent-unfinished-line))))
|
|
|
|
|
meta-indent-level
|
|
|
|
|
0)))
|
|
|
|
|
|
|
|
|
|
(defun meta-indent-current-nesting ()
|
|
|
|
|
"Return the indentation according to the nearest environment keyword."
|
|
|
|
|
(save-excursion
|
|
|
|
|
(save-restriction
|
|
|
|
|
(widen)
|
|
|
|
|
(back-to-indentation)
|
|
|
|
|
(let ((to-add 0))
|
|
|
|
|
;; If we found some environment marker backward...
|
|
|
|
|
(if (catch 'found
|
|
|
|
|
(while (re-search-backward
|
|
|
|
|
(concat "(\\|)\\|\\<" meta-end-environment-regexp "\\>"
|
|
|
|
|
"\\|\\<" meta-begin-environment-regexp "\\>"
|
|
|
|
|
"\\|\\<" meta-within-environment-regexp "\\>")
|
|
|
|
|
nil t)
|
|
|
|
|
;; If we aren't in a string or in a comment, we've found something.
|
|
|
|
|
(unless (or (meta-indent-in-string-p)
|
|
|
|
|
(nth 4 (syntax-ppss)))
|
|
|
|
|
(cond ((= (char-after) ?\()
|
|
|
|
|
(setq to-add (+ to-add meta-indent-level)))
|
|
|
|
|
((= (char-after) ?\))
|
|
|
|
|
(setq to-add (- to-add meta-indent-level)))
|
|
|
|
|
(t (throw 'found t))))))
|
|
|
|
|
(progn
|
|
|
|
|
;; ... then use it to compute the current indentation.
|
|
|
|
|
(back-to-indentation)
|
|
|
|
|
(+ to-add (current-indentation) (meta-indent-level-count)
|
|
|
|
|
;; Compensate for backindent of end and within keywords.
|
|
|
|
|
(if (meta-indent-looking-at-code
|
|
|
|
|
(concat "\\<" meta-end-environment-regexp "\\>\\|"
|
|
|
|
|
"\\<" meta-within-environment-regexp "\\>"))
|
|
|
|
|
meta-indent-level
|
|
|
|
|
;; Compensate for unfinished line.
|
|
|
|
|
(if (save-excursion
|
|
|
|
|
(meta-indent-previous-line)
|
|
|
|
|
(meta-indent-unfinished-line))
|
|
|
|
|
(- meta-indent-level)
|
|
|
|
|
0))))
|
|
|
|
|
0)))))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
(defun meta-indent-level-count ()
|
|
|
|
|
"Count indentation change for begin-end commands in the current line."
|
|
|
|
|
(save-excursion
|
|
|
|
|
(save-restriction
|
|
|
|
|
(let ((count 0))
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(narrow-to-region
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(point) (save-excursion
|
|
|
|
|
(re-search-forward "[^\\\\\"]%\\|\n\\|\\'" nil t)
|
|
|
|
|
(backward-char) (point)))
|
|
|
|
|
(while (re-search-forward "\\<\\sw+\\>\\|(\\|)" nil t)
|
|
|
|
|
(save-excursion
|
|
|
|
|
(goto-char (match-beginning 0))
|
|
|
|
|
(cond
|
|
|
|
|
;; Count number of begin-end keywords within line.
|
2007-08-17 22:51:24 +00:00
|
|
|
|
((meta-indent-looking-at-code
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(concat "\\<" meta-begin-environment-regexp "\\>"))
|
|
|
|
|
(setq count (+ count meta-indent-level)))
|
2007-08-17 22:51:24 +00:00
|
|
|
|
((meta-indent-looking-at-code
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(concat "\\<" meta-end-environment-regexp "\\>"))
|
2007-08-17 22:51:24 +00:00
|
|
|
|
(setq count (- count meta-indent-level))))))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
count))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Editing commands.
|
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defcustom meta-begin-defun-regexp
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(concat "\\(begin\\(char\\|fig\\|logochar\\)\\|def\\|mode_def\\|"
|
|
|
|
|
"primarydef\\|secondarydef\\|tertiarydef\\|vardef\\)")
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Regexp matching beginning of defuns in Metafont or MetaPost mode."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'regexp
|
|
|
|
|
:group 'meta-font)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defcustom meta-end-defun-regexp
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(concat "\\(end\\(char\\|def\\|fig\\)\\)")
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Regexp matching the end of defuns in Metafont or MetaPost mode."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'regexp
|
|
|
|
|
:group 'meta-font)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun meta-beginning-of-defun (&optional arg)
|
2011-11-14 15:59:56 -08:00
|
|
|
|
"Move backward to beginning of a defun in Metafont or MetaPost code.
|
2003-02-04 13:24:35 +00:00
|
|
|
|
With numeric argument, do it that many times.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
Negative arg -N means move forward to Nth following beginning of defun.
|
|
|
|
|
Returns t unless search stops due to beginning or end of buffer."
|
|
|
|
|
(interactive "p")
|
|
|
|
|
(if (or (null arg) (= 0 arg)) (setq arg 1))
|
|
|
|
|
(and arg (< arg 0) (not (eobp)) (forward-char 1))
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(and (re-search-backward
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(concat "\\<" meta-begin-defun-regexp "\\>") nil t arg)
|
|
|
|
|
(progn (goto-char (match-beginning 0))
|
|
|
|
|
(skip-chars-backward "%")
|
2007-09-10 14:21:31 +00:00
|
|
|
|
(skip-chars-backward " \t\f") t)))
|
2003-02-04 13:24:35 +00:00
|
|
|
|
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(defun meta-end-of-defun (&optional arg)
|
|
|
|
|
"Move forward to end of a defun in Metafont or MetaPost code.
|
2003-02-04 13:24:35 +00:00
|
|
|
|
With numeric argument, do it that many times.
|
1997-06-22 20:08:32 +00:00
|
|
|
|
Negative argument -N means move back to Nth preceding end of defun.
|
|
|
|
|
Returns t unless search stops due to beginning or end of buffer."
|
|
|
|
|
(interactive "p")
|
|
|
|
|
(if (or (null arg) (= 0 arg)) (setq arg 1))
|
|
|
|
|
(and (< arg 0) (not (bobp)) (forward-line -1))
|
|
|
|
|
(and (re-search-forward
|
|
|
|
|
(concat "\\<" meta-end-defun-regexp "\\>") nil t arg)
|
|
|
|
|
(progn (goto-char (match-end 0))
|
|
|
|
|
(skip-chars-forward ";")
|
2007-09-10 14:21:31 +00:00
|
|
|
|
(skip-chars-forward " \t\f")
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(if (looking-at "\n") (forward-line 1)) t)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun meta-comment-region (beg end &optional arg)
|
|
|
|
|
"Comment out active region as Metafont or MetaPost source."
|
|
|
|
|
(interactive "r")
|
|
|
|
|
(comment-region beg end arg))
|
|
|
|
|
|
|
|
|
|
(defun meta-uncomment-region (beg end)
|
|
|
|
|
"Uncomment active region as Metafont or MetaPost source."
|
|
|
|
|
(interactive "r")
|
|
|
|
|
(comment-region beg end -1))
|
|
|
|
|
|
|
|
|
|
(defun meta-comment-defun (&optional arg)
|
|
|
|
|
"Comment out current environment as Metafont or MetaPost source.
|
|
|
|
|
With prefix argument, uncomment the environment.
|
|
|
|
|
The environment used is the one that contains point or follows point."
|
|
|
|
|
(interactive "P")
|
|
|
|
|
(save-excursion
|
|
|
|
|
(let* ((end (if (meta-end-of-defun) (point) (point-max)))
|
|
|
|
|
(beg (if (meta-beginning-of-defun) (point) (point-min))))
|
|
|
|
|
(comment-region beg end arg))))
|
|
|
|
|
|
|
|
|
|
(defun meta-uncomment-defun ()
|
|
|
|
|
"Uncomment current environment as Metafont or MetaPost source."
|
|
|
|
|
(interactive)
|
|
|
|
|
(meta-comment-defun -1))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun meta-indent-region (beg end)
|
|
|
|
|
"Indent the active region as Metafont or MetaPost source."
|
|
|
|
|
(interactive "r")
|
|
|
|
|
(indent-region beg end nil))
|
|
|
|
|
|
|
|
|
|
(defun meta-indent-buffer ()
|
|
|
|
|
"Indent the whole buffer contents as Metafont or MetaPost source."
|
|
|
|
|
(interactive)
|
|
|
|
|
(save-excursion
|
|
|
|
|
(indent-region (point-min) (point-max) nil)))
|
|
|
|
|
|
|
|
|
|
(defun meta-indent-defun ()
|
|
|
|
|
"Indent the current environment as Metafont or MetaPost source.
|
|
|
|
|
The environment indented is the one that contains point or follows point."
|
|
|
|
|
(interactive)
|
|
|
|
|
(save-excursion
|
|
|
|
|
(let* ((end (if (meta-end-of-defun) (point) (point-max)))
|
|
|
|
|
(beg (if (meta-beginning-of-defun) (point) (point-min))))
|
|
|
|
|
(indent-region beg end nil))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun meta-mark-defun ()
|
|
|
|
|
"Put mark at end of the environment, point at the beginning.
|
|
|
|
|
The environment marked is the one that contains point or follows point."
|
|
|
|
|
(interactive)
|
2017-04-28 11:25:26 +03:00
|
|
|
|
(push-mark)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(meta-end-of-defun)
|
|
|
|
|
(push-mark (point) nil t)
|
|
|
|
|
(meta-beginning-of-defun))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Syntax table, keymap and menu.
|
|
|
|
|
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(define-abbrev-table 'meta-mode-abbrev-table ()
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"Abbrev table used in Metafont or MetaPost mode.")
|
|
|
|
|
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(defvar meta-common-mode-syntax-table
|
2007-09-19 14:32:53 +00:00
|
|
|
|
(let ((st (make-syntax-table)))
|
2013-05-08 12:27:53 -04:00
|
|
|
|
;; FIXME: This goes against the convention!
|
2007-09-19 14:32:53 +00:00
|
|
|
|
;; underscores are word constituents
|
|
|
|
|
(modify-syntax-entry ?_ "w" st)
|
|
|
|
|
;; miscellaneous non-word symbols
|
|
|
|
|
(modify-syntax-entry ?# "_" st)
|
|
|
|
|
(modify-syntax-entry ?@ "_" st)
|
|
|
|
|
(modify-syntax-entry ?$ "_" st)
|
|
|
|
|
(modify-syntax-entry ?? "_" st)
|
|
|
|
|
(modify-syntax-entry ?! "_" st)
|
|
|
|
|
;; binary operators
|
|
|
|
|
(modify-syntax-entry ?& "." st)
|
|
|
|
|
(modify-syntax-entry ?+ "." st)
|
|
|
|
|
(modify-syntax-entry ?- "." st)
|
|
|
|
|
(modify-syntax-entry ?/ "." st)
|
|
|
|
|
(modify-syntax-entry ?* "." st)
|
|
|
|
|
(modify-syntax-entry ?. "." st)
|
|
|
|
|
(modify-syntax-entry ?: "." st)
|
|
|
|
|
(modify-syntax-entry ?= "." st)
|
|
|
|
|
(modify-syntax-entry ?< "." st)
|
|
|
|
|
(modify-syntax-entry ?> "." st)
|
|
|
|
|
(modify-syntax-entry ?| "." st)
|
|
|
|
|
;; opening and closing delimiters
|
|
|
|
|
(modify-syntax-entry ?\( "()" st)
|
|
|
|
|
(modify-syntax-entry ?\) ")(" st)
|
|
|
|
|
(modify-syntax-entry ?\[ "(]" st)
|
|
|
|
|
(modify-syntax-entry ?\] ")[" st)
|
|
|
|
|
(modify-syntax-entry ?\{ "(}" st)
|
|
|
|
|
(modify-syntax-entry ?\} "){" st)
|
|
|
|
|
;; comment character
|
|
|
|
|
(modify-syntax-entry ?% "<" st)
|
|
|
|
|
(modify-syntax-entry ?\n ">" st)
|
|
|
|
|
;; escape character, needed for embedded TeX code
|
|
|
|
|
(modify-syntax-entry ?\\ "\\" st)
|
|
|
|
|
st)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"Syntax table used in Metafont or MetaPost mode.")
|
|
|
|
|
|
2012-05-12 23:05:06 -04:00
|
|
|
|
(define-obsolete-variable-alias 'meta-mode-map 'meta-common-mode-map "24.1")
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(defvar meta-common-mode-map
|
2007-09-19 14:32:53 +00:00
|
|
|
|
(let ((map (make-sparse-keymap)))
|
|
|
|
|
;; Comment Paragraphs:
|
|
|
|
|
;; (define-key map "\M-a" 'backward-sentence)
|
|
|
|
|
;; (define-key map "\M-e" 'forward-sentence)
|
|
|
|
|
;; (define-key map "\M-h" 'mark-paragraph)
|
|
|
|
|
;; (define-key map "\M-q" 'fill-paragraph)
|
|
|
|
|
;; Navigation:
|
|
|
|
|
(define-key map "\M-\C-a" 'meta-beginning-of-defun)
|
|
|
|
|
(define-key map "\M-\C-e" 'meta-end-of-defun)
|
|
|
|
|
(define-key map "\M-\C-h" 'meta-mark-defun)
|
|
|
|
|
;; Indentation:
|
|
|
|
|
(define-key map "\M-\C-q" 'meta-indent-defun)
|
|
|
|
|
(define-key map "\C-c\C-qe" 'meta-indent-defun)
|
|
|
|
|
(define-key map "\C-c\C-qr" 'meta-indent-region)
|
|
|
|
|
(define-key map "\C-c\C-qb" 'meta-indent-buffer)
|
|
|
|
|
;; Commenting Out:
|
|
|
|
|
(define-key map "\C-c%" 'meta-comment-defun)
|
|
|
|
|
;; (define-key map "\C-uC-c%" 'meta-uncomment-defun)
|
|
|
|
|
(define-key map "\C-c;" 'meta-comment-region)
|
|
|
|
|
(define-key map "\C-c:" 'meta-uncomment-region)
|
|
|
|
|
;; Symbol Completion:
|
Use completion-at-point rather than completion-in-region.
* lisp/wid-edit.el: Use lexical scoping and move towards completion-at-point.
(widget-complete): Use new :completion-function property.
(widget-completions-at-point): New function.
(default): Use :completion-function instead of :complete.
(widget-default-completions): Rename from widget-default-complete, rewrite.
(widget-string-complete, widget-file-complete, widget-color-complete):
Remove functions.
(file, symbol, function, variable, coding-system, color):
* lisp/international/mule-cmds.el (default-input-method, charset)
(language-info-custom-alist):
* lisp/cus-edit.el (face): Use new property :completions.
* lisp/progmodes/pascal.el (pascal-completions-at-point): New function.
(pascal-mode): Use it.
(pascal-mode-map): Use completion-at-point.
(pascal-toggle-completions): Make obsolete.
(pascal-complete-word, pascal-show-completions):
* lisp/progmodes/octave-mod.el (octave-complete-symbol):
Redefine as obsolete alias.
* lisp/progmodes/octave-inf.el (inferior-octave-completion-at-point):
Signal absence of completion info for old Octave,
(inferior-octave-complete): Redefine as obsolete alias.
* lisp/progmodes/meta-mode.el: Use lexical-binding and completion-at-point.
(meta-completions-at-point): Rename from meta-complete-symbol and
adapt it for use on completion-at-point-functions.
(meta-common-mode): Use it.
(meta-looking-at-backward, meta-match-buffer): Remove.
(meta-complete-symbol): Redefine as obsolete alias.
(meta-common-mode-map): Use completion-at-point.
* lisp/progmodes/make-mode.el: Use lexical-binding and completion-at-point.
(makefile-mode-map): Use completion-at-point.
(makefile-completions-at-point): Rename from makefile-complete and
adapt it for use on completion-at-point-functions.
(makefile-mode): Use it.
(makefile-complete): Redefine as obsolete alias.
2011-06-20 12:02:31 -04:00
|
|
|
|
(define-key map "\M-\t" 'completion-at-point)
|
2007-09-19 14:32:53 +00:00
|
|
|
|
;; Shell Commands:
|
|
|
|
|
;; (define-key map "\C-c\C-c" 'meta-command-file)
|
|
|
|
|
;; (define-key map "\C-c\C-k" 'meta-kill-job)
|
|
|
|
|
;; (define-key map "\C-c\C-l" 'meta-recenter-output)
|
|
|
|
|
map)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"Keymap used in Metafont or MetaPost mode.")
|
|
|
|
|
|
2003-02-04 13:24:35 +00:00
|
|
|
|
(easy-menu-define
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
meta-mode-menu meta-common-mode-map
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"Menu used in Metafont or MetaPost mode."
|
|
|
|
|
(list "Meta"
|
|
|
|
|
["Forward Environment" meta-beginning-of-defun t]
|
|
|
|
|
["Backward Environment" meta-end-of-defun t]
|
|
|
|
|
"--"
|
|
|
|
|
["Indent Line" meta-indent-line t]
|
|
|
|
|
["Indent Environment" meta-indent-defun t]
|
2003-02-04 13:24:35 +00:00
|
|
|
|
["Indent Region" meta-indent-region
|
1997-06-22 20:08:32 +00:00
|
|
|
|
:active (meta-mark-active)]
|
|
|
|
|
["Indent Buffer" meta-indent-buffer t]
|
|
|
|
|
"--"
|
|
|
|
|
["Comment Out Environment" meta-comment-defun t]
|
|
|
|
|
["Uncomment Environment" meta-uncomment-defun t]
|
2003-02-04 13:24:35 +00:00
|
|
|
|
["Comment Out Region" meta-comment-region
|
1997-06-22 20:08:32 +00:00
|
|
|
|
:active (meta-mark-active)]
|
2003-02-04 13:24:35 +00:00
|
|
|
|
["Uncomment Region" meta-uncomment-region
|
1997-06-22 20:08:32 +00:00
|
|
|
|
:active (meta-mark-active)]
|
|
|
|
|
"--"
|
Use completion-at-point rather than completion-in-region.
* lisp/wid-edit.el: Use lexical scoping and move towards completion-at-point.
(widget-complete): Use new :completion-function property.
(widget-completions-at-point): New function.
(default): Use :completion-function instead of :complete.
(widget-default-completions): Rename from widget-default-complete, rewrite.
(widget-string-complete, widget-file-complete, widget-color-complete):
Remove functions.
(file, symbol, function, variable, coding-system, color):
* lisp/international/mule-cmds.el (default-input-method, charset)
(language-info-custom-alist):
* lisp/cus-edit.el (face): Use new property :completions.
* lisp/progmodes/pascal.el (pascal-completions-at-point): New function.
(pascal-mode): Use it.
(pascal-mode-map): Use completion-at-point.
(pascal-toggle-completions): Make obsolete.
(pascal-complete-word, pascal-show-completions):
* lisp/progmodes/octave-mod.el (octave-complete-symbol):
Redefine as obsolete alias.
* lisp/progmodes/octave-inf.el (inferior-octave-completion-at-point):
Signal absence of completion info for old Octave,
(inferior-octave-complete): Redefine as obsolete alias.
* lisp/progmodes/meta-mode.el: Use lexical-binding and completion-at-point.
(meta-completions-at-point): Rename from meta-complete-symbol and
adapt it for use on completion-at-point-functions.
(meta-common-mode): Use it.
(meta-looking-at-backward, meta-match-buffer): Remove.
(meta-complete-symbol): Redefine as obsolete alias.
(meta-common-mode-map): Use completion-at-point.
* lisp/progmodes/make-mode.el: Use lexical-binding and completion-at-point.
(makefile-mode-map): Use completion-at-point.
(makefile-completions-at-point): Rename from makefile-complete and
adapt it for use on completion-at-point-functions.
(makefile-mode): Use it.
(makefile-complete): Redefine as obsolete alias.
2011-06-20 12:02:31 -04:00
|
|
|
|
["Complete Symbol" completion-at-point t]
|
1997-06-22 20:08:32 +00:00
|
|
|
|
; "--"
|
|
|
|
|
; ["Command on Buffer" meta-command-file t]
|
|
|
|
|
; ["Kill Job" meta-kill-job t]
|
|
|
|
|
; ["Recenter Output Buffer" meta-recenter-output-buffer t]
|
|
|
|
|
))
|
|
|
|
|
|
|
|
|
|
;; Compatibility: XEmacs doesn't have the `mark-active' variable.
|
|
|
|
|
(defun meta-mark-active ()
|
|
|
|
|
"Return whether the mark and region are currently active in this buffer."
|
2005-02-18 14:28:24 +00:00
|
|
|
|
(if (boundp 'mark-active) mark-active (mark)))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Hook variables.
|
|
|
|
|
|
1998-01-26 11:29:46 +00:00
|
|
|
|
(defcustom meta-mode-load-hook nil
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Hook evaluated when first loading Metafont or MetaPost mode."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'hook
|
|
|
|
|
:group 'meta-font)
|
|
|
|
|
|
|
|
|
|
(defcustom meta-common-mode-hook nil
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Hook evaluated by both `metafont-mode' and `metapost-mode'."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'hook
|
|
|
|
|
:group 'meta-font)
|
|
|
|
|
|
|
|
|
|
(defcustom metafont-mode-hook nil
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Hook evaluated by `metafont-mode' after `meta-common-mode-hook'."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'hook
|
|
|
|
|
:group 'meta-font)
|
|
|
|
|
(defcustom metapost-mode-hook nil
|
2010-11-08 23:47:01 -08:00
|
|
|
|
"Hook evaluated by `metapost-mode' after `meta-common-mode-hook'."
|
1998-01-26 11:29:46 +00:00
|
|
|
|
:type 'hook
|
|
|
|
|
:group 'meta-font)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Initialization.
|
|
|
|
|
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(define-derived-mode meta-common-mode prog-mode "-Meta-common-"
|
1997-06-22 20:08:32 +00:00
|
|
|
|
"Common initialization for Metafont or MetaPost mode."
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
:abbrev-table meta-mode-abbrev-table
|
|
|
|
|
(set (make-local-variable 'paragraph-start)
|
|
|
|
|
(concat page-delimiter "\\|$"))
|
|
|
|
|
(set (make-local-variable 'paragraph-separate)
|
|
|
|
|
(concat page-delimiter "\\|$"))
|
|
|
|
|
|
|
|
|
|
(set (make-local-variable 'paragraph-ignore-fill-prefix) t)
|
|
|
|
|
|
|
|
|
|
(set (make-local-variable 'comment-start-skip) "%+[ \t\f]*")
|
|
|
|
|
(set (make-local-variable 'comment-start) "%")
|
|
|
|
|
(set (make-local-variable 'comment-end) "")
|
|
|
|
|
(set (make-local-variable 'comment-multi-line) nil)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
2007-09-10 14:21:31 +00:00
|
|
|
|
;; We use `back-to-indentation' but \f is no indentation sign.
|
|
|
|
|
(modify-syntax-entry ?\f "_ ")
|
|
|
|
|
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(set (make-local-variable 'parse-sexp-ignore-comments) t)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
Use completion-at-point rather than completion-in-region.
* lisp/wid-edit.el: Use lexical scoping and move towards completion-at-point.
(widget-complete): Use new :completion-function property.
(widget-completions-at-point): New function.
(default): Use :completion-function instead of :complete.
(widget-default-completions): Rename from widget-default-complete, rewrite.
(widget-string-complete, widget-file-complete, widget-color-complete):
Remove functions.
(file, symbol, function, variable, coding-system, color):
* lisp/international/mule-cmds.el (default-input-method, charset)
(language-info-custom-alist):
* lisp/cus-edit.el (face): Use new property :completions.
* lisp/progmodes/pascal.el (pascal-completions-at-point): New function.
(pascal-mode): Use it.
(pascal-mode-map): Use completion-at-point.
(pascal-toggle-completions): Make obsolete.
(pascal-complete-word, pascal-show-completions):
* lisp/progmodes/octave-mod.el (octave-complete-symbol):
Redefine as obsolete alias.
* lisp/progmodes/octave-inf.el (inferior-octave-completion-at-point):
Signal absence of completion info for old Octave,
(inferior-octave-complete): Redefine as obsolete alias.
* lisp/progmodes/meta-mode.el: Use lexical-binding and completion-at-point.
(meta-completions-at-point): Rename from meta-complete-symbol and
adapt it for use on completion-at-point-functions.
(meta-common-mode): Use it.
(meta-looking-at-backward, meta-match-buffer): Remove.
(meta-complete-symbol): Redefine as obsolete alias.
(meta-common-mode-map): Use completion-at-point.
* lisp/progmodes/make-mode.el: Use lexical-binding and completion-at-point.
(makefile-mode-map): Use completion-at-point.
(makefile-completions-at-point): Rename from makefile-complete and
adapt it for use on completion-at-point-functions.
(makefile-mode): Use it.
(makefile-complete): Redefine as obsolete alias.
2011-06-20 12:02:31 -04:00
|
|
|
|
(add-hook 'completion-at-point-functions #'meta-completions-at-point nil t)
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(set (make-local-variable 'comment-indent-function) #'meta-comment-indent)
|
|
|
|
|
(set (make-local-variable 'indent-line-function) #'meta-indent-line)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; No need to define a mode-specific 'indent-region-function.
|
|
|
|
|
;; Simply use the generic 'indent-region and 'comment-region.
|
|
|
|
|
|
|
|
|
|
;; Set defaults for font-lock mode.
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(set (make-local-variable 'font-lock-defaults)
|
|
|
|
|
'(meta-font-lock-keywords
|
|
|
|
|
nil nil ((?_ . "w")) nil
|
|
|
|
|
(font-lock-comment-start-regexp . "%")))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
;; Activate syntax table, keymap and menu.
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(easy-menu-add meta-mode-menu))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
|
1997-07-23 20:57:49 +00:00
|
|
|
|
;;;###autoload
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(define-derived-mode metafont-mode meta-common-mode "Metafont"
|
|
|
|
|
"Major mode for editing Metafont sources."
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; Set defaults for completion function.
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(set (make-local-variable 'meta-symbol-list) nil)
|
|
|
|
|
(set (make-local-variable 'meta-symbol-changed) nil)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(apply 'meta-add-symbols metafont-symbol-list)
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(set (make-local-variable 'meta-complete-list)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(list (list "\\<\\(\\sw+\\)" 1 'meta-symbol-list)
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(list "" 'ispell-complete-word))))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
1997-07-23 20:57:49 +00:00
|
|
|
|
;;;###autoload
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(define-derived-mode metapost-mode meta-common-mode "MetaPost"
|
|
|
|
|
"Major mode for editing MetaPost sources."
|
1997-06-22 20:08:32 +00:00
|
|
|
|
;; Set defaults for completion function.
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(set (make-local-variable 'meta-symbol-list) nil)
|
|
|
|
|
(set (make-local-variable 'meta-symbol-changed) nil)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(apply 'meta-add-symbols metapost-symbol-list)
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(set (make-local-variable 'meta-complete-list)
|
1997-06-22 20:08:32 +00:00
|
|
|
|
(list (list "\\<\\(\\sw+\\)" 1 'meta-symbol-list)
|
Derive from prog-mode, use derived-mode-p, and fix up various
minor style issues in lisp/progmodes.
* lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
(vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
make-local-hook.
* lisp/progmodes/sh-script.el (sh-require-final-newline): Remove.
(sh-set-shell): Don't set require-final-newline since it's already done
by prog-mode.
* lisp/progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
since we never set it.
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
Use read-string and standard prompt.
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
* lisp/progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
(meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
(meta-common-mode-map): Rename from meta-mode-map.
Remove C-m binding, which is a user preference, not mode specific.
(meta-common-mode): New major mode; replace meta-common-initialization.
* lisp/progmodes/js.el (js-mode): Call syntax-propertize rather than messing
around with font-lock.
* lisp/progmodes/etags.el (select-tags-table-mode):
Derive from special-mode.
* lisp/progmodes/octave-mod.el (octave-mode):
* lisp/progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
(gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
(gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
Let define-derived-mode do its job.
* lisp/progmodes/cpp.el (cpp-edit-mode-map):
Move initialization into declaration.
(cpp-edit-mode): Use define-derived-mode.
(cpp-edit-load): Use derived-mode-p.
* lisp/progmodes/mixal-mode.el (mixal-mode):
* lisp/progmodes/f90.el (f90-mode):
* lisp/progmodes/cfengine.el (cfengine-mode): Don't bother setting
require-final-newline since prog-mode does it already.
* lisp/progmodes/cc-cmds.el (c-update-modeline): Use match-string.
* lisp/progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
* lisp/progmodes/antlr-mode.el: Require cc-mode upfront.
(antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
the declaration.
(antlr-directory-dependencies, antlr-show-makefile-rules):
Use derived-mode-p.
(antlr-language-option): Don't assume point-min==1.
(antlr-mode): Use define-derived-mode.
* lisp/progmodes/ada-mode.el: Use derived-mode-p.
(ada-mode): Use define-derived-mode.
Use hack-local-variables-hook.
* lisp/progmodes/vhdl-mode.el (vhdl-mode):
* lisp/progmodes/verilog-mode.el (verilog-mode):
* lisp/progmodes/vera-mode.el (vera-mode):
* lisp/progmodes/sql.el (sql-mode):
* lisp/progmodes/scheme.el (scheme-mode):
* lisp/progmodes/perl-mode.el (perl-mode):
* lisp/progmodes/octave-inf.el (inferior-octave-mode):
* lisp/progmodes/autoconf.el (autoconf-mode):
* lisp/progmodes/m4-mode.el (m4-mode):
* lisp/progmodes/inf-lisp.el (inferior-lisp-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/icon.el (icon-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/dcl-mode.el (dcl-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
(ebrowse-member-mode, ebrowse-electric-position-mode):
Use define-derived-mode.
* lisp/progmodes/xscheme.el (xscheme-start)
(local-set-scheme-interaction-buffer, scheme-interaction-mode):
* lisp/progmodes/which-func.el (which-function):
* lisp/progmodes/vhdl-mode.el (vhdl-set-style):
* lisp/progmodes/verilog-mode.el (verilog-set-compile-command)
(verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
(verilog-set-define, verilog-auto-reeval-locals):
* lisp/progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
* lisp/progmodes/simula.el (simula-mode):
* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
* lisp/progmodes/python.el (python-check, python-mode):
* lisp/progmodes/prolog.el (prolog-mode-variables):
* lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions):
* lisp/progmodes/ebrowse.el (ebrowse-view-file-other-frame):
* lisp/progmodes/delphi.el (delphi-mode):
* lisp/progmodes/cc-styles.el (c-setup-paragraph-variables):
* lisp/progmodes/cc-mode.el (c-basic-common-init, c-common-init)
(c-font-lock-init): Move make-local-variable to their setq.
* lisp/progmodes/xscheme.el (exit-scheme-interaction-mode)
(xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
(xscheme-debugger-mode-p, xscheme-send-string-1):
* lisp/progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
(tcl-load-file, tcl-restart-with-file):
* lisp/progmodes/ps-mode.el (ps-run-running):
* lisp/progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
* lisp/progmodes/js.el (js--get-all-known-symbols):
* lisp/progmodes/inf-lisp.el (inferior-lisp-proc):
* lisp/progmodes/idlwave.el (idlwave-beginning-of-statement)
(idlwave-template, idlwave-update-buffer-routine-info)
(idlwave-update-current-buffer-info)
(idlwave-get-routine-info-from-buffers, idlwave-choose)
(idlwave-scan-class-info, idlwave-fix-keywords)
(idlwave-list-buffer-load-path-shadows):
* lisp/progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
(idlwave-toolbar-remove):
* lisp/progmodes/idlw-shell.el (idlwave-shell-save-and-action)
(idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
(idlwave-shell-menu-def):
* lisp/progmodes/idlw-complete-structtag.el
(idlwave-prepare-structure-tag-completion):
* lisp/progmodes/gud.el (gud-set-buffer):
* lisp/progmodes/f90.el (f90-backslash-not-special):
* lisp/progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
2010-12-10 15:00:25 -05:00
|
|
|
|
(list "" 'ispell-complete-word))))
|
1997-06-22 20:08:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Just in case ...
|
|
|
|
|
|
|
|
|
|
(provide 'meta-mode)
|
|
|
|
|
(run-hooks 'meta-mode-load-hook)
|
|
|
|
|
|
|
|
|
|
;;; meta-mode.el ends here
|