Commit graph

70 commits

Author SHA1 Message Date
Dmitry Gutov
827db6b559 Use a separate syntax-ppss cache for narrowed buffers
* lisp/emacs-lisp/syntax.el (syntax-ppss-wide):
New variable, to contain the data from `syntax-ppss-last' and
`syntax-ppss-cache'.
(syntax-ppss-cache, syntax-ppss-last): Remove.
(syntax-ppss-narrow, syntax-ppss-narrow-start): New variables.
(syntax-ppss-flush-cache): Flush both caches.
(syntax-ppss--data): Return the appropriate last result and
buffer cache for the current restriction.
(syntax-ppss, syntax-ppss-debug): Use it (bug#22983).
2017-09-26 02:52:23 +03:00
Paul Eggert
bc511a64f6 Prefer HTTPS to FTP and HTTP in documentation
Most of this change is to boilerplate commentary such as license URLs.
This change was prompted by ftp://ftp.gnu.org's going-away party,
planned for November.  Change these FTP URLs to https://ftp.gnu.org
instead.  Make similar changes for URLs to other organizations moving
away from FTP.  Also, change HTTP to HTTPS for URLs to gnu.org and
fsf.org when this works, as this will further help defend against
man-in-the-middle attacks (for this part I omitted the MS-DOS and
MS-Windows sources and the test tarballs to keep the workload down).
HTTPS is not fully working to lists.gnu.org so I left those URLs alone
for now.
2017-09-13 15:54:37 -07:00
Paul Eggert
bcf244ef9b Merge from origin/emacs-25
2e2a806 Fix copyright years by hand
5badc81 Update copyright year to 2017
2017-01-01 01:10:47 -08:00
Paul Eggert
5badc81c1c Update copyright year to 2017
Run admin/update-copyright.
2016-12-31 19:42:26 -08:00
Stefan Monnier
8270a64d53 * lisp/emacs-lisp/syntax.el (syntax-propertize): Flush extended region. 2016-06-22 09:44:24 -04:00
Paul Eggert
3354582b36 Merge from origin/emacs-25
c695fb3 ; Spelling fixes
03750c0 * doc/misc/texinfo.tex: Sync from gnulib.
42fed3b * lisp/isearch.el (isearch-forward-symbol-at-point): Add isea...
2016-05-01 18:14:23 -07:00
Paul Eggert
c695fb37d3 ; Spelling fixes 2016-05-01 18:01:39 -07:00
Lars Ingebrigtsen
0a14d84150 Clarify some doc strings
* lisp/emacs-lisp/syntax.el (syntax-propertize-via-font-lock):
Clarify doc string (bug#8693).
(syntax-propertize): Clarify doc string.

(cherry picked from commit ad3ef417f3)
2016-05-01 19:27:07 +02:00
Lars Ingebrigtsen
ad3ef417f3 Clarify some doc strings
* lisp/emacs-lisp/syntax.el (syntax-propertize-via-font-lock):
Clarify doc string (bug#8693).
(syntax-propertize): Clarify doc string.
2016-04-28 13:00:11 +02:00
Stefan Monnier
8dafacd041 * lisp/emacs-lisp/syntax.el (syntax-ppss-table): New var
(syntax-ppss):
* lisp/font-lock.el (font-lock-fontify-syntactically-region): Use it.
2016-01-16 15:06:04 -05:00
Paul Eggert
0e963201d0 Update copyright year to 2016
Run admin/update-copyright.
2016-01-01 01:34:24 -08:00
Stefan Monnier
d7a67c5a2f (internal--syntax-propertize): Save match-data here (bug#21766)
* lisp/emacs-lisp/syntax.el (internal--syntax-propertize): Save match-data.
* lisp/simple.el (delete-trailing-whitespace): Undo last change.
2015-10-28 22:18:47 -04:00
Stefan Monnier
dd1e684619 * lisp/emacs-lisp/syntax.el (syntax-begin-function): Make obsolete 2015-09-20 15:53:51 -04:00
Stefan Monnier
644c6b414f * lisp/font-lock.el (font-lock-beginning-of-syntax-function): Remove
(font-lock-fontify-block): Don't let-bind it.
(font-lock-compile-keywords): Don't use it.
(font-lock-set-defaults): Don't set it.  Allow the variable alist to
start one slot earlier, instead.

* lisp/emacs-lisp/syntax.el (font-lock-beginning-of-syntax-function):
Don't declare.
(syntax-ppss): Don't use it either.

* lisp/font-core.el (font-lock-defaults): Remove SYNTAX-BEGIN
from docstring.

* doc/emacs/display.texi (Font Lock): Don't mention
font-lock-beginning-of-syntax-function.

* doc/lispref/modes.texi (Font Lock Basics): Update description of
font-lock-defaults.
(Syntactic Font Lock): Remove font-lock-beginning-of-syntax-function.

* lisp/loadhist.el (unload-feature-special-hooks):
Remove font-lock-beginning-of-syntax-function.

* lisp/obsolete/lazy-lock.el (lazy-lock-fontify-region):
* lisp/emacs-lisp/lisp.el (beginning-of-defun-raw): Don't let-bind
font-lock-beginning-of-syntax-function.
2015-09-17 20:33:55 -04:00
Stefan Monnier
3928ef2dd5 Merge syntax-propertize--done and parse-sexp-propertize-done
* lisp/emacs-lisp/syntax.el (syntax-propertize--done): Remove.
(syntax-propertize): Set syntax-propertize--done even if
syntax-propertize-function is nil.  Avoid recursive invocations.
(syntax-propertize-chunks): New var.
(internal--syntax-propertize): Use it.  Rename from syntax--jit-propertize.
Simplify.
(parse-sexp-propertize-function): Don't set any more.

* src/syntax.c (SETUP_SYNTAX_TABLE): Call parse_sexp_propertize as needed.
(parse_sexp_propertize): Don't assume charpos is not yet propertized.
Call Qinternal__syntax_propertize instead of
Vparse_sexp_propertize_function.  Truncate e_property if needed.
(update_syntax_table_forward): Streamline.
(syms_of_syntax): Define Qinternal__syntax_propertize.
(syntax_propertize__done): Rename from parse_sexp_propertize_done.
2015-09-11 20:00:05 -04:00
Stefan Monnier
ab21f61a55 Make syntax.c call syntax-propertize on demand
* lisp/emacs-lisp/syntax.el (syntax--jit-propertize): New function.
(parse-sexp-propertize-function): Use it.
(syntax-propertize): Disable parse-sexp-propertize-function.

* src/syntax.c (parse_sexp_propertize, update_syntax_table_forward):
New functions.
(syms_of_syntax): New vars `parse-sexp-propertize-done' and
`parse-sexp-propertize-function'.

* src/syntax.h (struct gl_state_s): Add `e_property_truncated' field.
(UPDATE_SYNTAX_TABLE_FORWARD): Use update_syntax_table_forward.
(SETUP_BUFFER_SYNTAX_TABLE): Set e_property_truncated.

* lisp/progmodes/elisp-mode.el (elisp-byte-code-syntax-propertize):
Don't assume `point' is set.
2015-09-09 15:14:52 -04:00
Paul Eggert
96794d2f97 Don't quote nil and t in doc strings
This is as per "Tips for Documentation Strings" in the elisp manual.
For consistency, do the same in diagnostics and comments.
2015-05-21 10:06:44 -07:00
Paul Eggert
7e09ef09a4 Update copyright year to 2015
Run admin/update-copyright.
2015-01-01 14:26:41 -08:00
Glenn Morris
34dc21db6e Replace "Maintainer: FSF" with the emacs-devel mailing address 2014-02-09 17:34:22 -08:00
Paul Eggert
ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Xue Fuqiao
63bd7f352f * lisp/emacs-lisp/syntax.el (syntax-ppss): Doc fix. 2013-10-04 22:46:31 +08:00
Stefan Monnier
539240a694 * syntax.el (syntax-propertize-function): Fix docstring. 2013-05-30 09:57:44 -04:00
Erik Charlebois
70203c2ec1 * lisp/emacs-lisp/syntax.el (syntax-propertize-multiline):
Use `syntax-multiline' text property consistently instead of
`font-lock-multiline'..

Fixes: debbugs:14237
2013-04-22 10:11:37 -04:00
Paul Eggert
ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Chong Yidong
ec6f8ce637 * lisp/emacs-lisp/syntax.el (syntax-propertize-function): Doc fix.
Fixes: debbugs:12810
2012-11-17 15:33:01 +08:00
Stefan Monnier
dc5d230cac Miscellaneous minor cleanups and simplifications.
* lisp/help-fns.el (describe-variable): Don't croak when doc is not found.
* lisp/vc/pcvs.el (cvs-retrieve-revision): Avoid toggle-read-only.
* lisp/menu-bar.el (menu-bar-line-wrapping-menu): Purecopy a tiny bit more.
* lisp/emacs-lisp/syntax.el (syntax-ppss): Simplify with new `if' place.
* lisp/emacs-lisp/smie.el (smie-next-sexp): CSE.
* lisp/emacs-lisp/macroexp.el (macroexp-let2): Fix edebug spec and avoid
((lambda ..) ..).
* lisp/emacs-lisp/eieio.el (eieio-oref, slot-value): Use simpler defsetf.
2012-06-23 11:38:23 -04:00
Stefan Monnier
2ee3d7f0aa Provide generalized variables in core Elisp.
* lisp/emacs-lisp/gv.el: New file.
* lisp/subr.el (push, pop): Extend to generalized variables.
* lisp/loadup.el (macroexp): Unload if preloaded and uncompiled.
* lisp/emacs-lisp/cl-lib.el (cl-pop, cl-push, cl--set-nthcdr): Remove.
* lisp/emacs-lisp/cl-macs.el: Require gv.  Use gv-define-setter,
gv-define-simple-setter, and gv-define-expander.
Remove setf-methods defined in gv.  Rename cl-setf -> setf.
(cl-setf, cl-do-pop, cl-get-setf-method): Remove.
(cl-letf, cl-letf*, cl-define-modify-macro, cl-defsetf)
(cl-define-setf-expander, cl-struct-setf-expander): Move to cl.el.
(cl-remf, cl-shiftf, cl-rotatef, cl-callf, cl-callf2): Rewrite with
gv-letplace.
(cl-defstruct): Don't define setf-method any more.
* lisp/emacs-lisp/cl.el (flet): Don't autoload.
(cl--letf, letf, cl--letf*, letf*, cl--gv-adapt)
(define-setf-expander, defsetf, define-modify-macro)
(cl-struct-setf-expander): Move from cl-lib.el.
* lisp/emacs-lisp/syntax.el:
* lisp/emacs-lisp/ewoc.el:
* lisp/emacs-lisp/smie.el:
* lisp/emacs-lisp/cconv.el:
* lisp/emacs-lisp/timer.el: Rename cl-setf -> setf, cl-push -> push.
(timer--time): Use gv-define-simple-setter.
* lisp/emacs-lisp/macroexp.el (macroexp-let2): Rename from macroexp-let²
to avoid coding-system problems in subr.el.  Adjust all users.
(macroexp--maxsize, macroexp-small-p): New functions.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don't use cl-letf.
* lisp/scroll-bar.el (scroll-bar-mode):
* lisp/simple.el (auto-fill-mode, overwrite-mode, binary-overwrite-mode)
(normal-erase-is-backspace-mode): Don't use the `eq' place.
* lisp/winner.el (winner-configuration, winner-make-point-alist)
(winner-set-conf, winner-get-point, winner-set): Don't abuse letf.
* lisp/files.el (locate-file-completion-table): Avoid list*.

Fixes: debbugs:11657
2012-06-22 09:42:38 -04:00
Stefan Monnier
f80efb8695 Reduce use of cl in lisp/emacs-lisp/.
* lisp/emacs-lisp/timer.el, lisp/emacs-lisp/syntax.el, lisp/emacs-lisp/smie.el:
* lisp/emacs-lisp/ewoc.el, lisp/emacs-lisp/cconv.el,lisp/emacs-lisp/derived.el:
* lisp/emacs-lisp/byte-opt.el, lisp/emacs-lisp/autoload.el: Convert to cl-lib.
* lisp/emacs-lisp/easymenu.el, lisp/emacs-lisp/easy-mmode.el:
* lisp/emacs-lisp/bytecomp.el: Use pcase instead of `cl'.
* lisp/emacs-lisp/cl-lib.el: Get rid of special cl-macs auto load.
2012-06-10 09:28:26 -04:00
Stefan Monnier
e95a67dc75 Replace lexical-let by lexical-binding (except Gnus, CEDET, ERT).
* lisp/term/ns-win.el (ns-define-service):
* lisp/progmodes/pascal.el (pascal-goto-defun):
* lisp/progmodes/js.el (js--read-tab):
* lisp/progmodes/etags.el (tags-lazy-completion-table):
* lisp/emacs-lisp/syntax.el (syntax-propertize-via-font-lock):
* lisp/emacs-lisp/ewoc.el (ewoc--wrap):
* lisp/emacs-lisp/assoc.el (aput, adelete, amake):
* lisp/doc-view.el (doc-view-convert-current-doc):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/vc/diff.el (diff-no-select): Replace lexical-let by lexical-binding.
2012-04-26 08:43:28 -04:00
Glenn Morris
acaf905b11 Add 2012 to FSF copyright years for Emacs files 2012-01-05 01:46:05 -08:00
Juanma Barranquero
382c953bbe Fix typos. 2011-12-09 04:12:38 +01:00
Lars Magne Ingebrigtsen
1b5eaeb36c Minor grammer fixes for syntax.el.
Fixes: debbugs:8690
2011-07-15 15:55:00 +02:00
Daniel Colascione
bfbbb27d92 * emacs-lisp/syntax.el (syntax-ppss): Further improve docstring. 2011-06-19 20:36:16 -07:00
Daniel Colascione
f0d4059d8c * emacs-lisp/syntax.el (syntax-ppss): Clarify which items are invalid. 2011-06-11 17:27:14 -07:00
Glenn Morris
73b0cd5003 Convert consecutive FSF copyright years to ranges. 2011-01-24 20:08:28 -08:00
Glenn Morris
0d9f702fd0 Nuke arch-tags. 2011-01-15 15:16:57 -08:00
Stefan Monnier
77ab81d054 Merge from emacs-23 2011-01-14 12:18:41 -05:00
Glenn Morris
5df4f04cd3 Add 2011 to FSF/AIST copyright years. 2011-01-02 15:50:46 -08:00
Stefan Monnier
b879a6e297 Fix and improve last syntax-propertize patch
* lisp/emacs-lisp/syntax.el (syntax-propertize-precompile-rules): New macro.
(syntax-propertize-rules): Add var-ref case.  Fix offset computation
when adding surrounding \(..\).

* lisp/progmodes/fortran.el (fortran--font-lock-syntactic-keywords): Remove.
(fortran-make-syntax-propertize-function): New function; replaces
fortran-font-lock-syntactic-keywords.
(fortran-mode): Use it.
(fortran-line-length): Use it.  Improve interactive spec.

* lisp/progmodes/js.el (js-mode): Fix last change (bug#7054).

* lisp/textmodes/tex-mode.el (tex-syntax-propertize-rules)
(latex-syntax-propertize-rules): New consts; replace
tex-font-lock-syntactic-keywords.
(tex-env-mark, latex-env-before-change): New functions.
(latex-electric-env-pair-mode): New minor mode.
(tex-font-lock-verb): Change arguments; do move point.
(tex-font-lock-syntactic-face-function): Adjust to new verbatim
representation as a form of comment.
(tex-font-lock-keywords-1): Remove workaround, now unneeded.
(doctex-syntax-propertize-rules): New const; replaces
doctex-font-lock-syntactic-keywords.
(tex-common-initialization, doctex-mode): Use syntax-propertize-rules.
2010-09-18 02:35:00 +02:00
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
Stefan Monnier
2e664aab0b * lisp/emacs-lisp/syntax.el (syntax-ppss): More sanity check to catch
border case in change-log-mode.
2010-09-05 00:51:39 +02:00
MON KEY
9aea20c9f8 * lisp/emacs-lisp/syntax.el (syntax-ppss-toplevel-pos): Fix typo in docstring.
Fixes: debbugs:6747
2010-08-01 02:24:55 +02:00
Glenn Morris
114f9c9679 Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
Glenn Morris
ae940284fa Add 2009 to copyright years. 2009-01-05 03:18:22 +00:00
Andreas Schwab
b55426e988 (syntax-ppss): Doc fix. 2008-10-06 10:03:59 +00:00
Glenn Morris
d6cba7ae45 Switch to recommended form of GPLv3 permissions notice. 2008-05-06 03:21:21 +00:00
Glenn Morris
8b72699e88 Add 2008 to copyright years. 2008-01-07 01:14:52 +00:00
Glenn Morris
e0085d62fa Switch license to GPLv3 or later. 2007-07-25 04:14:29 +00:00
Glenn Morris
f0fa15c5e5 Add 2007 to copyright years. 2007-01-21 02:48:43 +00:00
Stefan Monnier
6bddffd0e3 (syntax-ppss-flush-cache, syntax-ppss): Use syntax-ppss-toplevel-pos. 2006-12-18 14:34:01 +00:00