;ELC ;;; compiled by rms@psilocin.gnu.ai.mit.edu on Mon Jul 29 19:19:02 1996 ;;; from file /home/fsf/rms/e19/lisp/font-lock.el ;;; emacs version 19.31.97.2. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`font-lock.el' was compiled for Emacs 19.29 or later")) #@145 *If non-nil, means show status messages for buffer fontification. If a number, only buffers greater than this size have fontification messages. (defvar font-lock-verbose (* 0 1024) (#$ . -481)) #@571 *Maximum decoration level for fontification. If nil, use the default decoration (typically the minimum available). If t, use the maximum decoration available. If a number, use that level of decoration (or if not available the maximum). If a list, each element should be a cons pair of the form (MAJOR-MODE . LEVEL), where MAJOR-MODE is a symbol or t (meaning the default). For example: ((c-mode . t) (c++-mode . 2) (t . 1)) means use the maximum decoration available for buffers in C mode, level 2 decoration for buffers in C++ mode, and level 1 decoration otherwise. (defvar font-lock-maximum-decoration nil (#$ . -682)) #@521 *Maximum size of a buffer for buffer fontification. Only buffers less than this can be fontified when Font Lock mode is turned on. If nil, means size is irrelevant. If a list, each element should be a cons pair of the form (MAJOR-MODE . SIZE), where MAJOR-MODE is a symbol or t (meaning the default). For example: ((c-mode . 256000) (c++-mode . 256000) (rmail-mode . 1048576)) means that the maximum size is 250K for buffers in C or C++ modes, one megabyte for buffers in Rmail mode, and size is irrelevant otherwise. (defvar font-lock-maximum-size 256000 (#$ . -1313)) #@27 Face to use for comments. (defvar font-lock-comment-face (quote font-lock-comment-face) (#$ . 1891)) #@26 Face to use for strings. (defvar font-lock-string-face (quote font-lock-string-face) (#$ . 1998)) #@27 Face to use for keywords. (defvar font-lock-keyword-face (quote font-lock-keyword-face) (#$ . 2102)) #@33 Face to use for function names. (defvar font-lock-function-name-face (quote font-lock-function-name-face) (#$ . 2209)) #@33 Face to use for variable names. (defvar font-lock-variable-name-face (quote font-lock-variable-name-face) (#$ . 2334)) #@29 Face to use for type names. (defvar font-lock-type-face (quote font-lock-type-face) (#$ . 2459)) #@34 Face to use for reference names. (defvar font-lock-reference-face (quote font-lock-reference-face) (#$ . 2562)) #@3802 *A list of the keywords to highlight. Each element should be of the form: MATCHER (MATCHER . MATCH) (MATCHER . FACENAME) (MATCHER . HIGHLIGHT) (MATCHER HIGHLIGHT ...) (eval . FORM) where HIGHLIGHT should be either MATCH-HIGHLIGHT or MATCH-ANCHORED. FORM is an expression, whose value should be a keyword element, evaluated when the keyword is (first) used in a buffer. This feature can be used to provide a keyword that can only be generated when Font Lock mode is actually turned on. For highlighting single items, typically only MATCH-HIGHLIGHT is required. However, if an item or (typically) items are to be highlighted following the instance of another item (the anchor) then MATCH-ANCHORED may be required. MATCH-HIGHLIGHT should be of the form: (MATCH FACENAME OVERRIDE LAXMATCH) Where MATCHER can be either the regexp to search for, or the function name to call to make the search (called with one argument, the limit of the search). MATCH is the subexpression of MATCHER to be highlighted. FACENAME is an expression whose value is the face name to use. FACENAME's default attributes may be defined in `font-lock-face-attributes'. OVERRIDE and LAXMATCH are flags. If OVERRIDE is t, existing fontification may be overwritten. If `keep', only parts not already fontified are highlighted. If `prepend' or `append', existing fontification is merged with the new, in which the new or existing fontification, respectively, takes precedence. If LAXMATCH is non-nil, no error is signaled if there is no MATCH in MATCHER. For example, an element of the form highlights (if not already highlighted): "\\\=" Discrete occurrences of "foo" in the value of the variable `font-lock-keyword-face'. ("fu\\(bar\\)" . 1) Substring "bar" within all occurrences of "fubar" in the value of `font-lock-keyword-face'. ("fubar" . fubar-face) Occurrences of "fubar" in the value of `fubar-face'. ("foo\\|bar" 0 foo-bar-face t) Occurrences of either "foo" or "bar" in the value of `foo-bar-face', even if already highlighted. MATCH-ANCHORED should be of the form: (MATCHER PRE-MATCH-FORM POST-MATCH-FORM MATCH-HIGHLIGHT ...) Where MATCHER is as for MATCH-HIGHLIGHT with one exception. The limit of the search is currently guaranteed to be (no greater than) the end of the line. PRE-MATCH-FORM and POST-MATCH-FORM are evaluated before the first, and after the last, instance MATCH-ANCHORED's MATCHER is used. Therefore they can be used to initialise before, and cleanup after, MATCHER is used. Typically, PRE-MATCH-FORM is used to move to some position relative to the original MATCHER, before starting with MATCH-ANCHORED's MATCHER. POST-MATCH-FORM might be used to move, before resuming with MATCH-ANCHORED's parent's MATCHER. For example, an element of the form highlights (if not already highlighted): ("\\\=" (0 anchor-face) ("\\\=" nil nil (0 item-face))) Discrete occurrences of "anchor" in the value of `anchor-face', and subsequent discrete occurrences of "item" (on the same line) in the value of `item-face'. (Here PRE-MATCH-FORM and POST-MATCH-FORM are nil. Therefore "item" is initially searched for starting from the end of the match of "anchor", and searching for subsequent instance of "anchor" resumes from where searching for "item" concluded.) Note that the MATCH-ANCHORED feature is experimental; in the future, we may replace it with other ways of providing this functionality. These regular expressions should not match text which spans lines. While \[font-lock-fontify-buffer] handles multi-line patterns correctly, updating when you edit the buffer does not, since it considers text one line at a time. Be very careful composing regexps for this list; the wrong pattern can dramatically slow things down! (defvar font-lock-keywords nil (#$ . -2682)) (make-variable-buffer-local (quote font-lock-keywords)) #@145 If set by a major mode, should be the defaults for Font Lock mode. The value should be like the `cdr' of an item in `font-lock-defaults-alist'. (defvar font-lock-defaults nil (#$ . 6591)) #@2429 Alist of default major mode and Font Lock defaults. Each item should be a list of the form: (MAJOR-MODE . (KEYWORDS KEYWORDS-ONLY CASE-FOLD SYNTAX-ALIST SYNTAX-BEGIN ...)) where MAJOR-MODE is a symbol. KEYWORDS may be a symbol (a variable or function whose value is the keywords to use for fontification) or a list of symbols. If KEYWORDS-ONLY is non-nil, syntactic fontification (strings and comments) is not performed. If CASE-FOLD is non-nil, the case of the keywords is ignored when fontifying. If SYNTAX-ALIST is non-nil, it should be a list of cons pairs of the form (CHAR-OR-STRING . STRING) used to set the local Font Lock syntax table, for keyword and syntactic fontification (see `modify-syntax-entry'). If SYNTAX-BEGIN is non-nil, it should be a function with no args used to move backwards outside any enclosing syntactic block, for syntactic fontification. Typical values are `beginning-of-line' (i.e., the start of the line is known to be outside a syntactic block), or `beginning-of-defun' for programming modes or `backward-paragraph' for textual modes (i.e., the mode-dependent function is known to move outside a syntactic block). If nil, the beginning of the buffer is used as a position outside of a syntactic block, in the worst case. These item elements are used by Font Lock mode to set the variables `font-lock-keywords', `font-lock-keywords-only', `font-lock-keywords-case-fold-search', `font-lock-syntax-table' and `font-lock-beginning-of-syntax-function', respectively. Further item elements are alists of the form (VARIABLE . VALUE) and are in no particular order. Each VARIABLE is made buffer-local before set to VALUE. Currently, appropriate variables include `font-lock-mark-block-function'. If this is non-nil, it should be a function with no args used to mark any enclosing block of text, for fontification via \[font-lock-fontify-block]. Typical values are `mark-defun' for programming modes or `mark-paragraph' for textual modes (i.e., the mode-dependent function is known to put point and mark around a text block relevant to that mode). Other variables include those for buffer-specialised fontification functions, `font-lock-fontify-buffer-function', `font-lock-unfontify-buffer-function', `font-lock-fontify-region-function', `font-lock-unfontify-region-function', `font-lock-comment-start-regexp', `font-lock-inhibit-thing-lock' and `font-lock-maximum-size'. (defvar font-lock-defaults-alist (byte-code "  BB B BBB BBB BBB B B-" [((c-font-lock-keywords c-font-lock-keywords-1 c-font-lock-keywords-2 c-font-lock-keywords-3) nil nil ((95 . "w")) beginning-of-defun (font-lock-comment-start-regexp . "/[*/]") (font-lock-mark-block-function . mark-defun)) ((c++-font-lock-keywords c++-font-lock-keywords-1 c++-font-lock-keywords-2 c++-font-lock-keywords-3) nil nil ((95 . "w") (126 . "w")) beginning-of-defun (font-lock-comment-start-regexp . "/[*/]") (font-lock-mark-block-function . mark-defun)) ((lisp-font-lock-keywords lisp-font-lock-keywords-1 lisp-font-lock-keywords-2) nil nil (("+-*/.<>=!?$%_&~^:" . "w")) beginning-of-defun (font-lock-comment-start-regexp . ";") (font-lock-mark-block-function . mark-defun)) (scheme-font-lock-keywords nil t (("+-*/.<>=!?$%_&~^:" . "w")) beginning-of-defun (font-lock-comment-start-regexp . ";") (font-lock-mark-block-function . mark-defun)) (tex-font-lock-keywords nil nil ((36 . "\"")) nil (font-lock-comment-start-regexp . "%") (font-lock-mark-block-function . mark-paragraph)) tex-mode-defaults scheme-mode-defaults lisp-mode-defaults c++-mode-defaults c-mode-defaults c++-c-mode c++-mode c-mode elec-c-mode emacs-lisp-mode inferior-scheme-mode latex-mode lisp-mode lisp-interaction-mode plain-tex-mode scheme-mode scheme-interaction-mode slitex-mode tex-mode] 15) (#$ . 6787)) #@113 *Non-nil means Font Lock should not fontify comments or strings. This is normally set via `font-lock-defaults'. (defvar font-lock-keywords-only nil (#$ . -10632)) #@122 *Non-nil means the patterns in `font-lock-keywords' are case-insensitive. This is normally set via `font-lock-defaults'. (defvar font-lock-keywords-case-fold-search nil (#$ . -10802)) #@155 Non-nil means use this syntax table for fontifying. If this is nil, the major mode's syntax table is used. This is normally set via `font-lock-defaults'. (defvar font-lock-syntax-table nil (#$ . 10993)) #@295 *Non-nil means use this function to move back outside of a syntactic block. When called with no args it should leave point at the beginning of any enclosing syntactic block. If this is nil, the beginning of the buffer is used (in the worst case). This is normally set via `font-lock-defaults'. (defvar font-lock-beginning-of-syntax-function nil (#$ . -11203)) #@222 *Non-nil means use this function to mark a block of text. When called with no args it should leave point at the beginning of any enclosing textual block and mark at the end. This is normally set via `font-lock-defaults'. (defvar font-lock-mark-block-function nil (#$ . -11570)) #@288 *Regexp to match the start of a comment. This need not discriminate between genuine comments and quoted comment characters or comment characters within strings. If nil, `comment-start-skip' is used instead; see that variable for more info. This is normally set via `font-lock-defaults'. (defvar font-lock-comment-start-regexp nil (#$ . -11855)) #@91 Function to use for fontifying the buffer. This is normally set via `font-lock-defaults'. (defvar font-lock-fontify-buffer-function (quote font-lock-default-fontify-buffer) (#$ . 12206)) #@139 Function to use for unfontifying the buffer. This is used when turning off Font Lock mode. This is normally set via `font-lock-defaults'. (defvar font-lock-unfontify-buffer-function (quote font-lock-default-unfontify-buffer) (#$ . 12400)) #@242 Function to use for fontifying a region. It should take two args, the beginning and end of the region, and an optional third arg VERBOSE. If non-nil, the function should print status messages. This is normally set via `font-lock-defaults'. (defvar font-lock-fontify-region-function (quote font-lock-default-fontify-region) (#$ . 12646)) #@153 Function to use for unfontifying a region. It should take two args, the beginning and end of the region. This is normally set via `font-lock-defaults'. (defvar font-lock-unfontify-region-function (quote font-lock-default-unfontify-region) (#$ . 12991)) #@185 List of Font Lock mode related modes that should not be turned on. Currently, valid mode names as `fast-lock-mode' and `lazy-lock-mode'. This is normally set via `font-lock-defaults'. (defvar font-lock-inhibit-thing-lock nil (#$ . 13251)) (byte-code "! B! B‡" [boundp font-lock-mode nil current-load-list font-lock-fontified] 2) #@58 Function or functions to run on entry to Font Lock mode. (defvar font-lock-mode-hook nil (#$ . 13605)) #@2212 Toggle Font Lock mode. With arg, turn Font Lock mode on if and only if arg is positive. When Font Lock mode is enabled, text is fontified as you type it: - Comments are displayed in `font-lock-comment-face'; - Strings are displayed in `font-lock-string-face'; - Certain other expressions are displayed in other faces according to the value of the variable `font-lock-keywords'. You can enable Font Lock mode in any major mode automatically by turning on in the major mode's hook. For example, put in your ~/.emacs: (add-hook 'c-mode-hook 'turn-on-font-lock) Alternatively, you can use Global Font Lock mode to automagically turn on Font Lock mode in buffers whose major mode supports it and whose major mode is one of `font-lock-global-modes'. For example, put in your ~/.emacs: (global-font-lock-mode t) There are a number of support modes that may be used to speed up Font Lock mode in various ways, specified via the variable `font-lock-support-mode'. Where major modes support different levels of fontification, you can use the variable `font-lock-maximum-decoration' to specify which level you generally prefer. When you turn Font Lock mode on/off the buffer is fontified/defontified, though fontification occurs only if the buffer is less than `font-lock-maximum-size'. For example, to specify that Font Lock mode use use Lazy Lock mode as a support mode and use maximum levels of fontification, put in your ~/.emacs: (setq font-lock-support-mode 'lazy-lock-mode) (setq font-lock-maximum-decoration t) To fontify a buffer, without turning on Font Lock mode and regardless of buffer size, you can use \[font-lock-fontify-buffer]. To fontify a block (the function or paragraph containing point, or a number of lines around point), perhaps because modification on the current line caused syntactic change on other lines, you can use \[font-lock-fontify-block]. The default Font Lock mode faces and their attributes are defined in the variable `font-lock-face-attributes', and Font Lock mode default settings in the variable `font-lock-defaults-alist'. You can set your own default settings for some mode, by setting a buffer local value for `font-lock-defaults', via its mode hook. (defalias 'font-lock-mode #[(&optional arg) "? H=?\f\f!V?!Lr \n=A!$ !!q` Vf qq \")# )" [noninteractive buffer-name 0 32 arg prefix-numeric-value font-lock-mode on-p make-local-variable font-lock-set-defaults font-lock-fontify-region-function ignore make-local-hook after-change-functions add-hook font-lock-after-change-function nil t font-lock-turn-on-thing-lock run-hooks font-lock-mode-hook font-lock-value-in-major-mode font-lock-maximum-size max-size font-lock-fontified buffer-size font-lock-fontify-buffer font-lock-verbose message "Fontifying %s...buffer too big" remove-hook font-lock-unfontify-buffer font-lock-turn-off-thing-lock font-lock-unset-defaults force-mode-line-update] 5 (#$ . 13716) "P"]) #@84 Turn on Font Lock mode conditionally. Turn on only if the terminal can display it. (defalias 'turn-on-font-lock #[nil "!" [window-system font-lock-mode t] 2 (#$ . 16746)]) (byte-code "! B! B‡" [boundp font-lock-buffers nil current-load-list global-font-lock-mode] 2) #@570 *Modes for which Font Lock mode is automagically turned on. Global Font Lock mode is controlled by the `global-font-lock-mode' command. If nil, means no modes have Font Lock mode automatically turned on. If t, all modes that support Font Lock mode have it automatically turned on. If a list, it should be a list of `major-mode' symbol names for which Font Lock mode should be automatically turned on. The sense of the list is negated if it begins with `not'. For example: (c-mode c++-mode) means that Font Lock mode is turned on for buffers in C and C++ modes only. (defvar font-lock-global-modes t (#$ . -17046)) #@405 Toggle Global Font Lock mode. With prefix ARG, turn Global Font Lock mode on if and only if ARG is positive. Displays a message saying whether the mode is on or off if MESSAGE is non-nil. Returns the new status of Global Font Lock mode (non-nil means on). When Global Font Lock mode is enabled, Font Lock mode is automagically turned on in a buffer if its major mode is one of `font-lock-global-modes'. (defalias 'global-font-lock-mode #[(&optional arg message) "\f!X \"(\"\"  \f:\f7΂8\"\f?)" [arg prefix-numeric-value 0 global-font-lock-mode off-p remove-hook find-file-hooks turn-on-font-lock-if-enabled add-hook post-command-hook buffer-list font-lock-buffers message "Global Font Lock mode is now %s." "OFF" "ON"] 4 (#$ . 17670) "P\np"]) (defalias 'font-lock-change-major-mode #[nil "!\n\"p\"" [font-lock-mode nil global-font-lock-mode add-hook post-command-hook turn-on-font-lock-if-enabled add-to-list font-lock-buffers] 3]) (defalias 'turn-on-font-lock-if-enabled #[nil "\" R @!J @q !I=B=:A>??>I\f )) A ˇ" [remove-hook post-command-hook turn-on-font-lock-if-enabled font-lock-buffers buffer-live-p font-lock-defaults major-mode font-lock-defaults-alist font-lock-global-modes t not nil inhibit-quit turn-on-font-lock] 4]) (add-hook (quote change-major-mode-hook) (quote font-lock-change-major-mode)) #@812 *Support mode for Font Lock mode. Support modes speed up Font Lock mode by being choosy about when fontification occurs. Known support modes are Fast Lock mode (symbol `fast-lock-mode') and Lazy Lock mode (symbol `lazy-lock-mode'). See those modes for more info. If nil, means support for Font Lock mode is never performed. If a symbol, use that support mode. If a list, each element should be of the form (MAJOR-MODE . SUPPORT-MODE), where MAJOR-MODE is a symbol or t (meaning the default). For example: ((c-mode . fast-lock-mode) (c++-mode . fast-lock-mode) (t . lazy-lock-mode)) means that Fast Lock mode is used to support Font Lock mode for buffers in C or C++ modes, and Lazy Lock mode is used to support Font Lock mode otherwise. The value of this variable is used when Font Lock mode is turned on. (defvar font-lock-support-mode nil (#$ . -19098)) (defalias 'font-lock-turn-on-thing-lock #[nil " !=!\n=!)" [font-lock-value-in-major-mode font-lock-support-mode thing-mode fast-lock-mode t lazy-lock-mode] 3]) (byte-code "! B! B‡" [boundp fast-lock-mode nil current-load-list lazy-lock-mode] 2) (defalias 'font-lock-turn-off-thing-lock #[nil "!\n!" [fast-lock-mode nil lazy-lock-mode] 2]) (defalias 'font-lock-after-fontify-buffer #[nil " \n " [fast-lock-mode fast-lock-after-fontify-buffer lazy-lock-mode lazy-lock-after-fontify-buffer] 1]) (defalias 'font-lock-after-unfontify-buffer #[nil " \n " [fast-lock-mode fast-lock-after-unfontify-buffer lazy-lock-mode lazy-lock-after-unfontify-buffer] 1]) #@60 Fontify the current buffer the way `font-lock-mode' would. (defalias 'font-lock-fontify-buffer #[nil "t )" [font-lock-verbose font-lock-fontify-buffer-function] 1 (#$ . 20689) nil]) (defalias 'font-lock-unfontify-buffer #[nil " " [font-lock-unfontify-buffer-function] 1]) (defalias 'font-lock-fontify-region #[(beg end &optional loudly) " \n #" [font-lock-fontify-region-function beg end loudly] 4]) (defalias 'font-lock-unfontify-region #[(beg end) " \n\"" [font-lock-unfontify-region-function beg end] 3]) (defalias 'font-lock-default-fontify-buffer #[nil "\f V  \" ~ʏ)\n< \f:͂;#)" [font-lock-verbose buffer-size verbose message "Fontifying %s..." buffer-name font-lock-mode font-lock-set-defaults nil (byte-code " Žed\f# +" [match-data match-data ((store-match-data match-data)) font-lock-fontify-region verbose font-lock-after-fontify-buffer t font-lock-fontified] 4) ((quit (font-lock-unfontify-buffer))) "Fontifying %s...%s" font-lock-fontified "done" "aborted"] 5]) (defalias 'font-lock-default-unfontify-buffer #[nil "~ed\" ‰)" [font-lock-unfontify-region font-lock-after-unfontify-buffer nil font-lock-fontified] 3]) (defalias 'font-lock-default-fontify-region #[(beg end loudly) " É \n ̎~ ' !6\"?##.\n" [buffer-modified-p t syntax-table nil buffer-file-truename buffer-file-name after-change-functions before-change-functions old-syntax-table inhibit-read-only buffer-undo-list modified ((byte-code " !\n !Ň" [set-syntax-table old-syntax-table modified buffer-modified-p set-buffer-modified-p nil] 2)) font-lock-syntax-table set-syntax-table font-lock-keywords-only font-lock-unfontify-region beg end font-lock-fontify-syntactically-region loudly font-lock-fontify-keywords-region] 8]) (defalias 'font-lock-default-unfontify-region #[(beg end) " ‰  \f# ?) )!." [buffer-modified-p t nil buffer-file-truename buffer-file-name after-change-functions before-change-functions inhibit-read-only buffer-undo-list modified remove-text-properties beg end (face nil) set-buffer-modified-p] 7]) (defalias 'font-lock-after-change-function #[(beg end old-len) " Ž\fby`by`\"+" [match-data match-data ((store-match-data match-data)) font-lock-fontify-region beg 0 end 1] 3]) #@387 Fontify some lines the way `font-lock-fontify-buffer' would. The lines could be a function or paragraph, or a specified number of lines. If ARG is given, fontify that many lines before and after point, or 16 lines if no ARG is given and `font-lock-mark-block-function' is nil. If `font-lock-mark-block-function' non-nil and no ARG is given, it is used to delimit the region to fontify. (defalias 'font-lock-fontify-block #[(&optional arg) " ǎʏ-" [nil deactivate-mark font-lock-beginning-of-syntax-function font-lock-mode font-lock-set-defaults match-data match-data ((store-match-data match-data)) error-data (byte-code " %!Ŋ\f[y`)\fy`)\") ` \"" [arg font-lock-mark-block-function prefix-numeric-value 16 lines font-lock-fontify-region mark] 3) (((error quit) (message "Fontifying block...%s" error-data)))] 3 (#$ . 23058) "P"]) (byte-code " #!B!B!!" [define-key facemenu-keymap "" font-lock-fontify-block boundp font-lock-cache-position nil current-load-list font-lock-cache-state make-variable-buffer-local] 4) #@111 Put proper face on each string and comment between START and END. START should be at the beginning of a line. (defalias 'font-lock-fontify-syntactically-region #[(start end &optional loudly) "\nP\n\nP(\n'\nP(Ɖ \n \f@ \"b=S ~eWoe\" Ɖ%  `\"   8`#`Ɖ %8`$`Ɖ % ) 8 8`e})`!$`Ɖ % )`W`  #`#`Ɖ % `% 8< 8l敆C甉be}鏈)`!$%`Ɖ % ) 8敆z#%`Ɖ %8|`$%`Ɖ % ))#-" [font-lock-comment-start-regexp "\\s\"\\|" comment-start-skip "\\s\"" "\\s<\\|" "\\s<" nil prevstate prev state comstart synstart loudly message "Fontifying %s... (syntactically...)" buffer-name start font-lock-cache-position font-lock-cache-state font-lock-beginning-of-syntax-function parse-partial-sexp 3 beg re-search-forward end move put-text-property face font-lock-string-face 4 7 (byte-code " e#!x" [re-search-backward comstart move forward-comment 1 " " nil] 4) ((error (goto-char end))) font-lock-comment-face t remove-text-properties (face nil) here 1 0 (byte-code "!x" [forward-comment 1 " " nil] 2) ((error (goto-char end))) (face nil)] 8 (#$ . 24161)]) #@276 Fill in one property of the text from START to END. Arguments PROP and VALUE specify the property and value to put where none are already in place. Therefore existing property values are not overwritten. Optional argument OBJECT is the string or buffer containing the text. (defalias 'font-lock-fillin-text-property #[(start end prop value &optional object) " \n %/ \n$   %\n %*" [text-property-any start end prop nil object next next-single-property-change put-text-property value] 7 (#$ . 25501)]) (put (quote font-lock-fillin-text-property) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@121 Uniquify LIST, deleting elements using `delq'. Return the list with subsequent duplicate items removed by side effects. (defalias 'font-lock-unique #[(list) "@A\")" [list delq] 5 (#$ . 26145)]) (put (quote font-lock-unique) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@285 Prepend to one property of the text from START to END. Arguments PROP and VALUE specify the property and value to prepend to the value already in place. The resulting property values are always lists, and unique. Optional argument OBJECT is the string or buffer containing the text. (defalias 'font-lock-prepend-text-property #[(start end prop value &optional object) "<  C U?e  $  # \f\n<:\n<\nC\"  W  @ A\" F) ) % +" [value nil prev next val start end next-single-property-change prop object get-text-property put-text-property append list delq] 10 (#$ . 26453)]) (put (quote font-lock-prepend-text-property) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@283 Append to one property of the text from START to END. Arguments PROP and VALUE specify the property and value to append to the value already in place. The resulting property values are always lists, and unique. Optional argument OBJECT is the string or buffer containing the text. (defalias 'font-lock-append-text-property #[(start end prop value &optional object) "<  C U?e  $  # \n<9\n;\nC\f\"  W  @ A\" F) ) % +" [value nil prev next val start end next-single-property-change prop object get-text-property put-text-property append list delq] 10 (#$ . 27192)]) (put (quote font-lock-append-text-property) (quote byte-optimizer) (quote byte-compile-inline-expand)) #@111 Apply HIGHLIGHT following a match. HIGHLIGHT should be of the form MATCH-HIGHLIGHT, see `font-lock-keywords'. (defalias 'font-lock-apply-highlight #[(highlight) "@ 8\n8 # 9\n $\n A@!$ =L\n A@!$ =\n A@!\n %\n $\n% %t. =,\n A@!<Cˉ\n U?'\n $\n#\n<C\"@A\"))%. =\n A@! A A扯3>)삺扯 A A扯 323)\"" [font-lock-display-type x-get-resource ".displayType" "DisplayType" display-resource intern x-display-color-p color x-display-grayscale-p grayscale mono font-lock-background-mode ".backgroundMode" "BackgroundMode" frame-parameters params bg-resource system-type ms-dos string-match "light" background-color light dark apply + x-color-values "white" 0.59999999999999998 font-lock-face-attributes light-bg (mono monochrome) (font-lock-comment-face nil nil t t nil) (font-lock-string-face nil nil nil t nil) (font-lock-keyword-face nil nil t nil nil) font-lock-function-name-face foreground-color t nil (font-lock-variable-name-face nil nil t t nil) (font-lock-type-face nil nil t nil t) (font-lock-reference-face nil nil t nil t) (grayscale greyscale grayshade greyshade) font-lock-comment-face "Gray80" "DimGray" font-lock-string-face "Gray50" "LightGray" font-lock-keyword-face "Gray90" font-lock-variable-name-face font-lock-type-face font-lock-reference-face ((font-lock-comment-face "Firebrick") (font-lock-string-face "RosyBrown") (font-lock-keyword-face "Purple") (font-lock-function-name-face "Blue") (font-lock-variable-name-face "DarkGoldenrod") (font-lock-type-face "DarkOliveGreen") (font-lock-reference-face "CadetBlue")) ((font-lock-comment-face "OrangeRed") (font-lock-string-face "LightSalmon") (font-lock-keyword-face "LightSteelBlue") (font-lock-function-name-face "LightSkyBlue") (font-lock-variable-name-face "LightGoldenrod") (font-lock-type-face "PaleGreen") (font-lock-reference-face "Aquamarine")) mapcar #[(face-attributes) "@\n !- ! J!Ƃ- !* L-!)" [face-attributes face override font-lock-make-face boundp facep nil] 2]] 13 (#$ . 36358)]) #@243 Make a face from FACE-ATTRIBUTES. FACE-ATTRIBUTES should be like an element `font-lock-face-attributes', so that the face name is the first item in the list. A variable with the same name as the face is also set; its value is the face name. (defalias 'font-lock-make-face #[(face-attributes) "@ ! ! \" \"!Ώ \"-я \"E \"Q #Q8Q # \"i \"u #u8u # \" 8\" L," [face-attributes face symbol-name face-name #[(face-name resource) " Q P\"" [x-get-resource face-name ".attribute" resource "Face.Attribute"] 4] set-p #[(face-name resource) " \n\" ĝ)" [set-p face-name resource set ("on" "true")] 4] on-p make-face add-to-list facemenu-unlisted-faces "Foreground" nil (byte-code " \nA@\"" [set-face-foreground face face-attributes] 3) ((error)) "Background" (byte-code " 8\"" [set-face-background face 2 face-attributes] 4) ((error)) "Bold" make-face-bold t 3 "Italic" make-face-italic 4 "Underline" set-face-underline-p 5] 4 (#$ . 38640)]) #@44 Subdued level highlighting for Lisp modes. (defconst lisp-font-lock-keywords-1 (byte-code "ưEC" ["^(\\(def\\(" "\\(const\\(\\|ant\\)\\|ine-key\\(\\|-after\\)\\|var\\)\\|" "\\(class\\|struct\\|type\\)\\|" "\\([^ \n()]+\\)" "\\)\\)\\>" "[ '(]*" "\\(\\sw+\\)?" (1 font-lock-keyword-face) (8 (cond ((match-beginning 3) font-lock-variable-name-face) ((match-beginning 6) font-lock-type-face) (t font-lock-function-name-face)) nil t)] 7) (#$ . 39681)) #@42 Gaudy level highlighting for Lisp modes. (defconst lisp-font-lock-keywords-2 (byte-code " ʰ BЯ\"" [append lisp-font-lock-keywords-1 "(\\(" "c\\(atch\\|ond\\(\\|ition-case\\)\\)\\|do\\|" "eval-\\(a\\(fter-load\\|nd-compile\\)\\|when-compile\\)\\|flet\\|" "i\\(f\\|nline\\)\\|l\\(abels\\|et\\*?\\)\\|prog[nv12*]?\\|" "return\\(\\|-from\\)\\|save-\\(excursion\\|match-data\\|restriction\\|" "selected-window\\|window-excursion\\)\\|t\\(hrow\\|rack-mouse\\)\\|" "un\\(less\\|wind-protect\\)\\|" "w\\(h\\(en\\|ile\\)\\|ith-\\(output-to-temp-buffer\\|timeout\\)\\)" "\\)\\>" 1 ("(\\(featurep\\|provide\\|require\\)\\>[ ']*\\(\\sw+\\)?" (1 font-lock-keyword-face) (2 font-lock-reference-face nil t)) ("\\\\\\\\\\[\\(\\sw+\\)]" 1 font-lock-reference-face prepend) ("`\\(\\sw\\sw+\\)'" 1 font-lock-reference-face prepend) ("\\<:\\sw+\\>" 0 font-lock-reference-face prepend) ("\\<\\&\\sw+\\>" . font-lock-type-face)] 11) (#$ . 40146)) #@49 Default expressions to highlight in Lisp modes. (defvar lisp-font-lock-keywords lisp-font-lock-keywords-1 (#$ . 41096)) #@51 Default expressions to highlight in Scheme modes. (defvar scheme-font-lock-keywords (quote (("(\\(define\\(\\(\\|-\\(generic\\(\\|-procedure\\)\\|method\\)\\)\\|\\(-syntax\\)\\|\\(-class\\)\\)\\)\\>[ ]*(?\\(\\sw+\\)?" (1 font-lock-keyword-face) (8 (cond ((match-beginning 3) font-lock-function-name-face) ((match-beginning 6) font-lock-variable-name-face) (t font-lock-type-face)) nil t)) ("(\\(and\\|begin\\|c\\(a\\(ll\\(-with-\\(current-continuation\\|input-file\\|output-file\\)\\|/cc\\)\\|se\\)\\|ond\\)\\|d\\(elay\\|o\\)\\|else\\|for-each\\|if\\|l\\(ambda\\|et\\(-syntax\\|\\*?\\|rec\\(\\|-syntax\\)\\)\\)\\|map\\|or\\|syntax\\(\\|-rules\\)\\)\\>" . 1) ("\\<<\\sw+>\\>" . font-lock-type-face) ("\\<:\\sw+\\>" . font-lock-reference-face))) (#$ . 41222)) #@41 Subdued level highlighting for C modes. (defconst c-font-lock-keywords-1 nil (#$ . 41987)) #@40 Medium level highlighting for C modes. (defconst c-font-lock-keywords-2 nil (#$ . 42084)) #@39 Gaudy level highlighting for C modes. (defconst c-font-lock-keywords-3 nil (#$ . 42180)) #@43 Subdued level highlighting for C++ modes. (defconst c++-font-lock-keywords-1 nil (#$ . 42275)) #@42 Medium level highlighting for C++ modes. (defconst c++-font-lock-keywords-2 nil (#$ . 42376)) #@41 Gaudy level highlighting for C++ modes. (defconst c++-font-lock-keywords-3 nil (#$ . 42476)) (defalias 'font-lock-match-c++-style-declaration-item-and-skip-to-next #[(limit) "! ĎǏ*" [looking-at "[ *&]*\\(\\sw+\\)\\(::\\(\\sw+\\)\\)?[ ]*\\((\\)?" match-data match-data ((store-match-data match-data)) nil (byte-code "e}b!`\"db ŕb)" [limit 1 looking-at "[ ]*\\(\\(,\\)\\|;\\|$\\)" scan-sexps 2] 3) ((error t))] 3]) (byte-code "RRΰӰEٯQBQBF\"\"\"RDE\"'AC\"))QBQB\"--RDE\"1,ԇ" ["break\\|continue\\|do\\|else\\|for\\|if\\|return\\|switch\\|while" "auto\\|c\\(har\\|onst\\)\\|double\\|e\\(num\\|xtern\\)\\|" "float\\|int\\|long\\|register\\|" "s\\(hort\\|igned\\|t\\(atic\\|ruct\\)\\)\\|typedef\\|" "un\\(ion\\|signed\\)\\|vo\\(id\\|latile\\)" "asm\\|break\\|c\\(atch\\|ontinue\\)\\|d\\(elete\\|o\\)\\|" "else\\|for\\|if\\|new\\|" "p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\|return\\|" "s\\(izeof\\|witch\\)\\|t\\(h\\(is\\|row\\)\\|ry\\)\\|while" "auto\\|bool\\|c\\(har\\|lass\\|o\\(mplex\\|nst\\)\\)\\|" "double\\|e\\(num\\|xtern\\)\\|f\\(loat\\|riend\\)\\|" "in\\(line\\|t\\)\\|long\\|register\\|" "s\\(hort\\|igned\\|t\\(atic\\|ruct\\)\\)\\|" "t\\(emplate\\|ypedef\\)\\|un\\(ion\\|signed\\)\\|" "v\\(irtual\\|o\\(id\\|latile\\)\\)" c++-type-types c++-keywords c-type-types c-keywords "^\\(\\sw+\\)[ ]*(" 1 font-lock-function-name-face ("^#[ ]*include[ ]+\\(<[^>\"\n]+>\\)" 1 font-lock-string-face) ("^#[ ]*define[ ]+\\(\\sw+\\)(" 1 font-lock-function-name-face) ("^#[ ]*\\(elif\\|if\\)\\>" ("\\<\\(defined\\)\\>[ ]*(?\\(\\sw+\\)?" nil nil (1 font-lock-reference-face) (2 font-lock-variable-name-face nil t))) ("^#[ ]*\\(\\sw+\\)\\>[ ]*\\(\\sw+\\)?" (1 font-lock-reference-face) (2 font-lock-variable-name-face nil t)) c-font-lock-keywords-1 append "\\<\\(" "\\)\\>" font-lock-type-face font-lock-keyword-face ("\\<\\(case\\|goto\\)\\>[ ]*\\(\\sw+\\)?" (1 font-lock-keyword-face) (2 font-lock-reference-face nil t)) ("^[ ]*\\(\\sw+\\)[ ]*:" 1 font-lock-reference-face) c-font-lock-keywords-2 "\\([ *&]+\\sw+\\>\\)*" (font-lock-match-c++-style-declaration-item-and-skip-to-next (goto-char (or (match-beginning 8) (match-end 1))) (goto-char (match-end 1)) (1 (if (match-beginning 4) font-lock-function-name-face font-lock-variable-name-face))) ("\\(}\\)[ *]*\\sw" (font-lock-match-c++-style-declaration-item-and-skip-to-next (goto-char (match-end 1)) nil (1 (if (match-beginning 4) font-lock-function-name-face font-lock-variable-name-face)))) ("^\\(\\sw+\\)\\>\\([ *]+\\sw+\\>\\)*" (1 font-lock-type-face) (font-lock-match-c++-style-declaration-item-and-skip-to-next (goto-char (or (match-beginning 2) (match-end 1))) nil (1 (if (match-beginning 4) font-lock-function-name-face font-lock-variable-name-face)))) c-font-lock-keywords-3 ("^\\(\\sw+\\)\\(::\\(\\sw+\\)\\)?[ ]*(" (1 (if (match-beginning 2) font-lock-type-face font-lock-function-name-face)) (3 font-lock-function-name-face nil t)) c++-font-lock-keywords-1 ("\\<\\(operator\\)\\>[ ]*\\([[(><=+-]?\\)?" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) ("\\<\\(case\\|goto\\)\\>[ ]*\\(\\sw+\\)?" (1 font-lock-keyword-face) (2 font-lock-reference-face nil t)) ("^[ ]*\\(\\sw+\\)[ ]*:[^:]" 1 font-lock-reference-face) c++-font-lock-keywords-2 (font-lock-match-c++-style-declaration-item-and-skip-to-next (goto-char (or (match-beginning 13) (match-end 1))) (goto-char (match-end 1)) (1 (cond ((match-beginning 2) font-lock-type-face) ((match-beginning 4) font-lock-function-name-face) (t font-lock-variable-name-face))) (3 (if (match-beginning 4) font-lock-function-name-face font-lock-variable-name-face) nil t)) ("\\(}\\)[ *]*\\sw" (font-lock-match-c++-style-declaration-item-and-skip-to-next (goto-char (match-end 1)) nil (1 (if (match-beginning 4) font-lock-function-name-face font-lock-variable-name-face)))) ("^\\(\\sw+\\)\\>\\([ *]+\\sw+\\>\\)*" (1 font-lock-type-face) (font-lock-match-c++-style-declaration-item-and-skip-to-next (goto-char (or (match-beginning 2) (match-end 1))) nil (1 (cond ((match-beginning 2) font-lock-type-face) ((match-beginning 4) font-lock-function-name-face) (t font-lock-variable-name-face))) (3 (if (match-beginning 4) font-lock-function-name-face font-lock-variable-name-face) nil t))) c++-font-lock-keywords-3] 9) #@45 Default expressions to highlight in C mode. (defvar c-font-lock-keywords c-font-lock-keywords-1 (#$ . 46866)) #@47 Default expressions to highlight in C++ mode. (defvar c++-font-lock-keywords c++-font-lock-keywords-1 (#$ . 46982)) #@48 Default expressions to highlight in TeX modes. (defvar tex-font-lock-keywords (quote (("\\\\\\(begin\\|end\\|newcommand\\){\\([a-zA-Z0-9\\*]+\\)}" 2 font-lock-function-name-face) ("\\\\\\(cite\\|label\\|pageref\\|ref\\){\\([^} \n]+\\)}" 2 font-lock-reference-face) ("^[ ]*\\\\def\\\\\\(\\(\\w\\|@\\)+\\)" 1 font-lock-function-name-face) "\\\\\\([a-zA-Z@]+\\|.\\)" ("\\\\emph{\\([^}]+\\)}" 1 (quote italic) keep) ("\\\\text\\(\\(bf\\)\\|it\\|sl\\){\\([^}]+\\)}" 3 (if (match-beginning 2) (quote bold) (quote italic)) keep) ("\\\\\\(\\(bf\\)\\|em\\|it\\|sl\\)\\>\\(\\([^}&\\]\\|\\\\[^\\]\\)+\\)" 3 (if (match-beginning 2) (quote bold) (quote italic)) keep))) (#$ . 47104)) (byte-code " \n B!" [font-lock-mode minor-mode-alist (font-lock-mode " Font") provide font-lock] 2)