Commit graph

140 commits

Author SHA1 Message Date
Stefan Monnier
cf38dd4298 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.
2010-09-11 01:13:42 +02:00
Chong Yidong
b0126eac41 Merge changes from emacs-23 branch. 2010-08-22 16:02:16 -04:00
Stefan Monnier
8f081e96de * progmodes/make-mode.el (makefile-fill-paragraph): Account for the
extra backslash added to each line.

Fixes: debbugs:6890
2010-08-21 11:19:38 +02:00
Tom Tromey
ae0c249465 Derive programming modes from prog-mode.
* progmodes/js.el (js-mode):
* progmodes/make-mode.el (makefile-mode):
* progmodes/simula.el (simula-mode):
* progmodes/tcl.el (tcl-mode): Derive from prog-mode.
2010-07-27 18:37:25 +02:00
Stefan Monnier
9586c41ae5 Misc cleanup.
* progmodes/make-mode.el (makefile-bsdmake-rule-action-regex):
Use replace-regexp-in-string.
(makefile-mode-abbrev-table): Merge defvar and define-abbrev-table.
(makefile-imake-mode-syntax-table): Move init into defvar.
(makefile-mode): Use define-derived-mode.
2010-03-24 19:56:43 -04:00
Stefan Monnier
efee6a6d9c (makefile-rule-action-regex): Backtrack less.
(makefile-make-font-lock-keywords): Adjust rule since submatch 1 may
not be present any more.
2010-03-24 11:57:16 -04:00
Glenn Morris
114f9c9679 Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
Stefan Monnier
ea52206ba0 (makefile-special-targets-list): No need for it to be an alist any more.
(makefile-complete): Use completion-in-region.
2009-12-03 03:02:34 +00:00
Glenn Morris
c4f6e489aa Mark face aliases with "-face" suffix as obsolete. 2009-09-01 07:24:13 +00:00
Glenn Morris
df1c29a0a0 (makefile-browser-toggle): Use forward-line rather than goto-line.
(makefile-browser-insert-selection): Use goto-char rather than goto-line.
2009-08-22 19:20:27 +00:00
Glenn Morris
ae940284fa Add 2009 to copyright years. 2009-01-05 03:18:22 +00:00
Glenn Morris
dc18400924 (makefile-match-function-end): Move point. (Bug#983) 2008-09-16 02:41:49 +00:00
John Paul Wallington
e956634f3a (makefile-cleanup-continuations, makefile-warn-suspicious-lines):
Use `derived-mode-p'.
2008-06-03 19:39:24 +00:00
Glenn Morris
b1fc2b5014 Switch to recommended form of GPLv3 permissions notice. 2008-05-06 07:25:26 +00:00
Miles Bader
a113b3ca32 Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1121
2008-04-23 05:55:42 +00:00
Stefan Monnier
5e01f1ca49 (makefile-fill-paragraph): Treat indented comments like unindented ones. 2008-04-12 05:40:15 +00:00
Dan Nicolaescu
2f9a87f57b (makefile-mode-abbrev-table): Add menu
entries and add :help to the existing ones.
2008-03-10 05:02:55 +00:00
Glenn Morris
4e643dd23c Add 2008 to copyright years. 2008-01-07 02:11:00 +00:00
Glenn Morris
1a484753b2 Switch license to GPLv3 or later. 2007-07-25 04:29:40 +00:00
Glenn Morris
d7a0267c8d Add 2007 to copyright years. 2007-01-21 03:53:13 +00:00
Stefan Monnier
472e1031ae (makefile-mode): Don't disable jit-lock. 2006-09-28 20:03:25 +00:00
Chong Yidong
b99489fee1 * emulation/viper-init.el, calendar/calendar.el:
* progmodes/make-mode.el: Delete calls to facemenu-unlisted-faces.
2006-07-03 14:32:01 +00:00
Daniel Pfeiffer
88983f8c8f (makefile-macroassign-regex): Accept preceding keyword.
(makefile-gmake-statements): Reorganize, now that makepp has "override" and also handle forgotten "override define".
(makefile-makepp-statements): Add new "global", "override export" and "override global".
2006-07-02 19:05:49 +00:00
Eli Zaretskii
594dde9bb7 (makefile-fill-paragraph): Don't remove spaces after the comment start. 2006-06-09 17:43:54 +00:00
Stefan Monnier
c5301b5c36 (makefile-browser-map, makefile-mode-syntax-table): Move init inside decl.
(makefile-fill-paragraph): Use the default comment-filling code.
2006-05-28 20:56:34 +00:00
Roland Winkler
b308197bd9 (makefile-query-one-target-method): Make this the alias for the
following variable.
(makefile-query-one-target-method-function): Make this the real name.
2006-05-21 19:26:05 +00:00
Roland Winkler
9e2d84ccc8 (makefile-special-targets-list)
(makefile-macro-table, makefile-target-table): Mark as risky.
2006-05-21 18:46:41 +00:00
Eli Zaretskii
73290fbd37 (makefile-mode): Doc fix. 2006-05-20 18:36:11 +00:00
Nick Roberts
d91362c9e0 Update copyright for 2006. 2006-02-10 09:00:31 +00:00
Masatake YAMATO
3968c89ffe Added makefile-imake-mode. 2006-01-17 18:11:53 +00:00
Richard M. Stallman
618142d989 Remove faces from group `faces'. 2005-12-27 01:06:54 +00:00
Juri Linkov
8ec3bce045 Add :link (custom-group-link font-lock-faces) to defgroup. 2005-11-17 07:40:11 +00:00
Masatake YAMATO
f5fab556d4 * message.el (message-expand-group): Pass the common
prefix substring of completion to `display-completion-list'.

* mh-comp.el (mh-complete-word): Pass the common
prefix substring of completion to `display-completion-list'.

* dabbrev.el (dabbrev-completion): Pass the common
prefix substring of completion to `display-completion-list'.

* filecache.el (file-cache-minibuffer-complete)
(file-cache-complete): Ditto.

* tempo.el (tempo-display-completions): Ditto.

* wid-edit.el (widget-file-complete, widget-color-complete): Ditto.

* emacs-lisp/lisp.el (lisp-complete-symbol): Ditto.

* eshell/em-hist.el (eshell-list-history): Ditto.

* mail/mailabbrev.el (mail-abbrev-complete-alias): Ditto.

* progmodes/etags.el (complete-tag): Ditto.

* progmodes/make-mode.el (makefile-complete): Ditto.

* progmodes/meta-mode.el (meta-complete-symbol): Ditto.

* progmodes/octave-mod.el (octave-complete-symbol): Ditto.

* progmodes/pascal.el (pascal-complete-word)
(pascal-show-completions): Ditto.

* textmodes/bibtex.el (bibtex-complete-internal): Ditto.

* simple.el (completion-common-substring): New variable.
(completion-setup-function): Use `completion-common-substring'
to put faces.

* minibuf.c (Fdisplay_completion_list): Add new optional
argument COMMON_SUBSTRING. Bind `completion-common-substring'
to the optional argument during running `completion-setup-hook'.
2005-10-16 09:31:48 +00:00
Richard M. Stallman
cac9ce0d76 (makefile-add-log-defun): Trim the result. 2005-09-09 01:24:59 +00:00
Nick Roberts
034babe1e1 Update copyright for release of 22.1 for progmodes directory. 2005-08-01 08:43:45 +00:00
Lute Kamstra
3a35cf56e7 Update FSF's address. 2005-07-04 17:55:18 +00:00
Daniel Pfeiffer
a4bf534f1e (put 'makefile-space-face 'face-alias 'makefile-space) 2005-06-15 22:15:46 +00:00
Daniel Pfeiffer
602dc0daa0 (makefile-space, makefile-makepp-perl): Eliminate "-face" suffix.
(makefile-targets): Inherit from font-lock-function-name-face and eliminate
"-face" suffix.
(makefile-shell): Remove attributes and eliminate "-face" suffix.
(makefile-*-font-lock-keywords): Append makefile-targets in rule actions,
instead of prepending, to make it less visible.
(makefile-previous-dependency, makefile-match-dependency): Don't match a target
on a continuation line.
2005-06-14 22:33:56 +00:00
Richard M. Stallman
9391790a10 (makefile-shell-face): Make this a no-op
except on terminals with enough colors to really display it.
(makefile-dependency-regex): Delete spurious `bb'.
2005-06-08 15:43:59 +00:00
Richard M. Stallman
dce16363d3 (makefile-dependency-regex): Handle whitespace
just like other allowed characters.
(makefile-match-dependency): Exclude leading and training whitespace
from the range of regexp subexp 1.
(makefile-macroassign-regex): Don't try to match the body,
just the name of the macro being defined.
2005-06-06 12:50:01 +00:00
Daniel Pfeiffer
30edba6e09 (makefile-targets-face, makefile-shell-face, makefile-makepp-perl-face): Add :version.
(makefile-bsdmake-dependency-regex, makefile-makepp-rule-action-regex, makefile-bsdmake-rule-action-regex): New constants.
(makefile-makepp-mode, makefile-bsdmake-mode): Use them.
2005-06-03 08:47:25 +00:00
Daniel Pfeiffer
d85d15c8ee (makefile-makepp-mode, makefile-bsdmake-mode): Continuation lines may be empty. 2005-05-29 08:01:17 +00:00
Daniel Pfeiffer
adde76933c (makefile-rule-action-regex, makefile-macroassign-regex): Continuation lines may be empty. Reported by Joshua Varner.
(makefile-makepp-font-lock-keywords): Add $(stem).
2005-05-29 07:54:07 +00:00
Daniel Pfeiffer
774cd45416 (makefile-imenu-generic-expression): Use function to find dependencies, because regexp alone is so complex, it easily goes into an endless loop.
(makefile-makepp-mode): Also add submenu for Perl functions defined in the makefile.
(makefile-bsdmake-mode): Special imenu-generic-expression no longer needed, due to function call.
(makefile-match-dependency): Take BOUND into account when checking if we're through.
2005-05-21 02:46:37 +00:00
Richard M. Stallman
e1c45277c5 (makefile-mode): Use run-mode-hooks. 2005-05-19 15:46:19 +00:00
Daniel Pfeiffer
dfa89b5db8 (makefile-add-this-line-targets): Simplify and integrate into `makefile-pickup-targets'.
(makefile-add-this-line-macro): Simplify and integrate into `makefile-pickup-macros.
(makefile-pickup-filenames-as-targets): Simplify.
(makefile-previous-dependency, makefile-match-dependency): Don't stumble over `::'.
2005-05-19 02:20:34 +00:00
Daniel Pfeiffer
5c8b544281 (makefile-previous-dependency, makefile-match-dependency): Check for := (and in bsd mode also !=) to give a better result, even when font-lock is not on. 2005-05-18 20:12:10 +00:00
Daniel Pfeiffer
8ade3c25b7 (makefile-macroassign-regex, makefile-make-font-lock-keywords): Also fontify plain strings assigned to variables, mostly so that a colon has a face and is thus not taken as a dependency separator.
(makefile-mode): Cancel `font-lock-support-mode', because blocks to be fontified in one piece can be too long for JIT.  Makefiles are never *that* big.
2005-05-17 21:37:59 +00:00
Daniel Pfeiffer
0b11ce59ee (makefile-dependency-skip): New variable.
(makefile-previous-dependency): Inline the new matcher, because it is too complex to work in both directions.
(makefile-match-dependency): Eliminate `backward' arg (see above). Completely reimplemented so as to not sometimes go into an endless loop.  It should also be more efficient, because first it only searches for `:', instead of applying the very complex regexp.
2005-05-17 20:45:26 +00:00
Daniel Pfeiffer
92984345bc (makefile-dependency-regex): Turn it into a var, and refine it to mask one more level of nested vars.
(makefile-rule-action-regex): Turn it into a var, and refine it so it recognizes backslashed continuation lines as belonging to the same command.
(makefile-macroassign-regex): Refine it so it recognizes backslashed continuation lines as belonging to the same command.
(makefile-var-use-regex): Don't look at the next char, because it might be the same one to be skipped by the initial [^$], leading to an overlooked variable use.
(makefile-make-font-lock-keywords): Remove two parameters, which are now variables that some of the modes set locally.  Handle dependency and rule action matching through functions, because regexps alone match too often.  Dependency matching now comes last, so it can check, whether a colon already matched something else.
(makefile-mode): Inform that font-lock improves makefile parsing capabilities.
(makefile-match-dependency, makefile-match-action): New functions.
2005-05-16 20:13:09 +00:00