Mercurial > emacs
view doc/lispref/hooks.texi @ 110305:b10051866f51
New syntax-propertize functionality.
* lisp/font-lock.el (font-lock-syntactic-keywords): Make obsolete.
(font-lock-fontify-syntactic-keywords-region): Move handling of
font-lock-syntactically-fontified to...
(font-lock-default-fontify-region): ...here.
Let syntax-propertize-function take precedence.
(font-lock-fontify-syntactically-region): Cal syntax-propertize.
* lisp/emacs-lisp/regexp-opt.el (regexp-opt-depth): Skip named groups.
* lisp/emacs-lisp/syntax.el (syntax-propertize-function)
(syntax-propertize-chunk-size, syntax-propertize--done)
(syntax-propertize-extend-region-functions): New vars.
(syntax-propertize-wholelines, syntax-propertize-multiline)
(syntax-propertize--shift-groups, syntax-propertize-via-font-lock)
(syntax-propertize): New functions.
(syntax-propertize-rules): New macro.
(syntax-ppss-flush-cache): Set syntax-propertize--done.
(syntax-ppss): Call syntax-propertize.
* lisp/progmodes/ada-mode.el (ada-set-syntax-table-properties)
(ada-after-change-function, ada-initialize-syntax-table-properties)
(ada-handle-syntax-table-properties): Only define when
syntax-propertize is not available.
(ada-mode): Use syntax-propertize-function.
* lisp/progmodes/autoconf.el (autoconf-mode):
Use syntax-propertize-function.
(autoconf-font-lock-syntactic-keywords): Remove.
* lisp/progmodes/cfengine.el (cfengine-mode):
Use syntax-propertize-function.
(cfengine-font-lock-syntactic-keywords): Remove.
* lisp/progmodes/cperl-mode.el (cperl-mode): Use syntax-propertize-function.
* lisp/progmodes/fortran.el (fortran-mode): Use syntax-propertize-function.
(fortran--font-lock-syntactic-keywords): New var.
(fortran-line-length): Update syntax-propertize-function and
fortran--font-lock-syntactic-keywords.
* lisp/progmodes/gud.el (gdb-script-syntax-propertize-function): New var;
replaces gdb-script-font-lock-syntactic-keywords.
(gdb-script-mode): Use it.
* lisp/progmodes/js.el (js--regexp-literal): Define while compiling.
(js-syntax-propertize-function): New var; replaces
js-font-lock-syntactic-keywords.
(js-mode): Use it.
* lisp/progmodes/make-mode.el (makefile-syntax-propertize-function):
New var; replaces makefile-font-lock-syntactic-keywords.
(makefile-mode): Use it.
(makefile-imake-mode): Adjust.
* lisp/progmodes/mixal-mode.el (mixal-syntax-propertize-function): New var;
replaces mixal-font-lock-syntactic-keywords.
(mixal-mode): Use it.
* lisp/progmodes/octave-mod.el (octave-syntax-propertize-sqs): New function
to replace octave-font-lock-close-quotes.
(octave-syntax-propertize-function): New function to replace
octave-font-lock-syntactic-keywords.
(octave-mode): Use it.
* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function): New fun to
replace perl-font-lock-syntactic-keywords.
(perl-syntax-propertize-special-constructs): New fun to replace
perl-font-lock-special-syntactic-constructs.
(perl-font-lock-syntactic-face-function): New fun.
(perl-mode): Use it.
* lisp/progmodes/python.el (python-syntax-propertize-function): New var to
replace python-font-lock-syntactic-keywords.
(python-mode): Use it.
(python-quote-syntax): Simplify and adjust to new use.
* lisp/progmodes/ruby-mode.el (ruby-here-doc-beg-re):
Define while compiling.
(ruby-here-doc-end-re, ruby-here-doc-beg-match)
(ruby-font-lock-syntactic-keywords, ruby-comment-beg-syntax)
(syntax-ppss, ruby-in-ppss-context-p, ruby-in-here-doc-p)
(ruby-here-doc-find-end, ruby-here-doc-beg-syntax)
(ruby-here-doc-end-syntax): Only define when
syntax-propertize is not available.
(ruby-syntax-propertize-function, ruby-syntax-propertize-heredoc):
New functions.
(ruby-in-ppss-context-p): Update to new syntax of heredocs.
(electric-indent-chars): Silence bytecompiler.
(ruby-mode): Use prog-mode, syntax-propertize-function, and
electric-indent-chars.
* lisp/progmodes/sh-script.el (sh-st-symbol): Remove.
(sh-font-lock-close-heredoc, sh-font-lock-open-heredoc): Add eol arg.
(sh-font-lock-flush-syntax-ppss-cache, sh-font-lock-here-doc): Remove.
(sh-font-lock-quoted-subshell): Assume we've already matched $(.
(sh-font-lock-paren): Set syntax-multiline.
(sh-font-lock-syntactic-keywords): Remove.
(sh-syntax-propertize-function): New function to replace it.
(sh-mode): Use it.
* lisp/progmodes/simula.el (simula-syntax-propertize-function): New var to
replace simula-font-lock-syntactic-keywords.
(simula-mode): Use it.
* lisp/progmodes/tcl.el (tcl-syntax-propertize-function): New var to
replace tcl-font-lock-syntactic-keywords.
(tcl-mode): Use it.
* lisp/progmodes/vhdl-mode.el (vhdl-mode): Use syntax-propertize-function
if available.
(vhdl-fontify-buffer): Adjust.
* lisp/textmodes/bibtex.el (bibtex-mode): Use syntax-propertize-function.
* lisp/textmodes/reftex.el (font-lock-syntactic-keywords): Don't declare
since we don't use it.
* lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-function): New var to
replace sgml-font-lock-syntactic-keywords.
(sgml-mode): Use it.
* lisp/textmodes/tex-mode.el (tex-common-initialization, doctex-mode):
Use syntax-propertize-function.
* lisp/textmodes/texinfo.el (texinfo-syntax-propertize-function): New fun
to replace texinfo-font-lock-syntactic-keywords.
(texinfo-mode): Use it.
* test/indent/octave.m: Remove some `fixindent' not needed any more.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sat, 11 Sep 2010 01:13:42 +0200 |
parents | 1d1d5d9bd884 |
children | 376148b31b5e |
line wrap: on
line source
@c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2001, 2002, 2003, 2004, @c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/hooks @node Standard Hooks, Index, Standard Keymaps, Top @appendix Standard Hooks @cindex standard hooks @cindex hook variables, list of The following is a list of hook variables that let you provide functions to be called from within Emacs on suitable occasions. Most of these variables have names ending with @samp{-hook}. They are @dfn{normal hooks}, run by means of @code{run-hooks}. The value of such a hook is a list of functions; the functions are called with no arguments and their values are completely ignored. The recommended way to put a new function on such a hook is to call @code{add-hook}. @xref{Hooks}, for more information about using hooks. Every major mode defines a mode hook named @samp{@var{modename}-mode-hook}. The major mode command runs this normal hook with @code{run-mode-hooks} as the very last thing it does. @xref{Mode Hooks}. Most minor modes have mode hooks too. Mode hooks are omitted in the list below. The variables whose names end in @samp{-hooks} or @samp{-functions} are usually @dfn{abnormal hooks}; their values are lists of functions, but these functions are called in a special way (they are passed arguments, or their values are used). The variables whose names end in @samp{-function} have single functions as their values. A special feature allows you to specify expressions to evaluate if and when a file is loaded (@pxref{Hooks for Loading}). That feature is not exactly a hook, but does a similar job. @c We need to xref to where each hook is documented or else document @c it here. @table @code @item abbrev-expand-functions @xref{Abbrev Expansion}. @item activate-mark-hook @xref{The Mark}. @item after-change-functions @xref{Change Hooks}. @item after-change-major-mode-hook @xref{Mode Hooks}. @item after-init-hook @xref{Init File}. @item after-insert-file-functions @xref{Format Conversion}. @item after-make-frame-functions @xref{Creating Frames}. @item after-revert-hook @xref{Reverting}. @item after-save-hook @xref{Saving Buffers}. @item auto-fill-function @xref{Auto Filling}. @item auto-save-hook @xref{Auto-Saving}. @item before-change-functions @xref{Change Hooks}. @item before-hack-local-variables-hook @xref{File Local Variables}. @item before-init-hook @xref{Init File}. @item before-make-frame-hook @xref{Creating Frames}. @item before-revert-hook @xref{Reverting}. @item before-save-hook @xref{Saving Buffers}. @item blink-paren-function @xref{Blinking}. @item buffer-access-fontify-functions @xref{Lazy Properties}. @item calendar-initial-window-hook @iftex @inforef{Calendar Customizing,, emacs-xtra}. @end iftex @ifnottex @xref{Calendar Customizing,,, emacs}. @end ifnottex @item calendar-load-hook @iftex @inforef{Calendar Customizing,, emacs-xtra}. @end iftex @ifnottex @xref{Calendar Customizing,,, emacs}. @end ifnottex @item calendar-today-invisible-hook @iftex @inforef{Calendar Customizing,, emacs-xtra}. @end iftex @ifnottex @xref{Calendar Customizing,,, emacs}. @end ifnottex @item calendar-today-visible-hook @iftex @inforef{Calendar Customizing,, emacs-xtra}. @end iftex @ifnottex @xref{Calendar Customizing,,, emacs}. @end ifnottex @item change-major-mode-hook @xref{Creating Buffer-Local}. @item command-line-functions @xref{Command-Line Arguments}. @item comment-indent-function @xref{Options for Comments,, Options Controlling Comments, emacs, the GNU Emacs Manual}. @item compilation-finish-functions Functions to call when a compilation process finishes. @item custom-define-hook Hook called after defining each customize option. @item deactivate-mark-hook @xref{The Mark}. @item delete-frame-functions Functions to call when Emacs deletes a frame. @xref{Deleting Frames}. @item delete-terminal-functions Functions to call when Emacs deletes a terminal. @xref{Multiple Terminals}. @item desktop-after-read-hook Normal hook run after a successful @code{desktop-read}. May be used to show a buffer list. @xref{Saving Emacs Sessions,, Saving Emacs Sessions, emacs, the GNU Emacs Manual}. @item desktop-no-desktop-file-hook Normal hook run when @code{desktop-read} can't find a desktop file. May be used to show a dired buffer. @xref{Saving Emacs Sessions,, Saving Emacs Sessions, emacs, the GNU Emacs Manual}. @item desktop-save-hook Normal hook run before the desktop is saved in a desktop file. This is useful for truncating history lists, for example. @xref{Saving Emacs Sessions,, Saving Emacs Sessions, emacs, the GNU Emacs Manual}. @item diary-hook List of functions called after the display of the diary. Can be used for appointment notification. @item diary-list-entries-hook @iftex @inforef{Fancy Diary Display,, emacs-xtra}. @end iftex @ifnottex @xref{Fancy Diary Display,,, emacs}. @end ifnottex @item diary-mark-entries-hook @iftex @inforef{Fancy Diary Display,, emacs-xtra}. @end iftex @ifnottex @xref{Fancy Diary Display,,, emacs}. @end ifnottex @item diary-nongregorian-listing-hook @iftex @inforef{Non-Gregorian Diary,, emacs-xtra}. @end iftex @ifnottex @xref{Non-Gregorian Diary,,, emacs}. @end ifnottex @item diary-nongregorian-marking-hook @iftex @inforef{Non-Gregorian Diary,, emacs-xtra}. @end iftex @ifnottex @xref{Non-Gregorian Diary,,, emacs}. @end ifnottex @item diary-print-entries-hook @iftex @inforef{Diary Display,, emacs-xtra}. @end iftex @ifnottex @xref{Diary Display,,, emacs}. @end ifnottex @item disabled-command-function @xref{Disabling Commands}. @item echo-area-clear-hook @xref{Echo Area Customization}. @item emacs-startup-hook @xref{Init File}. @item find-file-hook @xref{Visiting Functions}. @item find-file-not-found-functions @xref{Visiting Functions}. @item first-change-hook @xref{Change Hooks}. @item font-lock-beginning-of-syntax-function @xref{Syntactic Font Lock}. @item font-lock-fontify-buffer-function @xref{Other Font Lock Variables}. @item font-lock-fontify-region-function @xref{Other Font Lock Variables}. @item font-lock-mark-block-function @xref{Other Font Lock Variables}. @item font-lock-syntactic-face-function @xref{Syntactic Font Lock}. @item font-lock-unfontify-buffer-function @xref{Other Font Lock Variables}. @item hack-local-variables-hook @xref{File Local Variables}. @item font-lock-unfontify-region-function @xref{Other Font Lock Variables}. @item kbd-macro-termination-hook @xref{Keyboard Macros}. @item kill-buffer-hook @xref{Killing Buffers}. @item kill-buffer-query-functions @xref{Killing Buffers}. @item kill-emacs-hook @xref{Killing Emacs}. @item kill-emacs-query-functions @xref{Killing Emacs}. @item lisp-indent-function @item mail-setup-hook @xref{Mail Mode Misc,, Mail Mode Miscellany, emacs, the GNU Emacs Manual}. @item menu-bar-update-hook @xref{Menu Bar}. @item minibuffer-setup-hook @xref{Minibuffer Misc}. @item minibuffer-exit-hook @xref{Minibuffer Misc}. @item mouse-position-function @xref{Mouse Position}. @item occur-hook @item post-command-hook @xref{Command Overview}. @item pre-command-hook @xref{Command Overview}. @item resume-tty-functions @xref{Suspending Emacs}. @item scheme-indent-function @item suspend-hook @xref{Suspending Emacs}. @item suspend-resume-hook @xref{Suspending Emacs}. @item suspend-tty-functions @xref{Suspending Emacs}. @item temp-buffer-setup-hook @xref{Temporary Displays}. @item temp-buffer-show-function @xref{Temporary Displays}. @item temp-buffer-show-hook @xref{Temporary Displays}. @item term-setup-hook @xref{Terminal-Specific}. @item window-configuration-change-hook @xref{Window Hooks}. @item window-scroll-functions @xref{Window Hooks}. @item window-setup-hook @xref{Window Systems}. @item window-size-change-functions @xref{Window Hooks}. @item write-contents-functions @xref{Saving Buffers}. @item write-file-functions @xref{Saving Buffers}. @item write-region-annotate-functions @xref{Format Conversion}. @end table @ignore arch-tag: 55fd0296-d906-4551-b300-979d3846aa88 @end ignore