Commit graph

102 commits

Author SHA1 Message Date
Philipp Stephani
3988411f6c Give 'syntax-propertize-wholelines' a docstring.
This function is generally useful.

* lisp/emacs-lisp/syntax.el (syntax-propertize-wholelines): Add
docstring.
2021-05-30 22:38:48 +02:00
Stefan Monnier
7109307c1a * lisp/emacs-lisp/syntax.el (syntax-propertize-rules): Use macroexp-let2
This also silences the recently introduced compilation warning.
2021-03-11 21:47:10 -05:00
Stefan Kangas
5f69c222f4 Prefer defvar-local in emacs-lisp/*.el
* lisp/emacs-lisp/chart.el (chart-local-object):
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode)
(define-globalized-minor-mode):
* lisp/emacs-lisp/edebug.el:
* lisp/emacs-lisp/generic.el (generic-font-lock-keywords):
* lisp/emacs-lisp/re-builder.el (reb-regexp, reb-regexp-src)
(reb-overlays):
* lisp/emacs-lisp/syntax.el
(syntax-propertize-extend-region-functions): Prefer defvar-local.
2021-01-31 14:55:53 +01:00
Paul Eggert
ba05d005e5 Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright".
2021-01-01 01:13:56 -08:00
Stefan Kangas
81fe928a76 Prefer setq-local in emacs-lisp/*.el
* lisp/emacs-lisp/chart.el (chart-mode):
* lisp/emacs-lisp/copyright.el (copyright-update):
* lisp/emacs-lisp/eieio-custom.el (eieio-customize-object):
* lisp/emacs-lisp/elint.el (elint-update-env, elint-init-form):
* lisp/emacs-lisp/ert.el (ert--results-update-ewoc-hf):
(ert--setup-results-buffer):
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables):
* lisp/emacs-lisp/pp.el (pp-display-expression):
* lisp/emacs-lisp/re-builder.el (reb-mode, reb-restart-font-lock):
* lisp/emacs-lisp/shadow.el (load-path-shadows-mode):
* lisp/emacs-lisp/smie.el (smie-setup):
* lisp/emacs-lisp/syntax.el (syntax-propertize):
* lisp/emacs-lisp/trace.el (trace-make-advice): Prefer setq-local.
2020-12-04 19:12:12 +01:00
Glenn Morris
81aed7becf ; * lisp/emacs-lisp/syntax.el (syntax-propertize-function): Doc fix. 2020-09-20 17:20:08 -07:00
Glenn Morris
3675993d76 Merge from origin/emacs-27
df04f3e755 Fix a rare segfault in syntax.c
fd1fe1e1ec Add doc to syntax-propertize-function saying it must do a ...
fcd599bbea Minor copyedits of doc of 'with-silent-modifications'
759399cdb1 Improve documentation of 'max-mini-window-height'
3223302aa2 Use modern constant names for the NS pasteboard
985703d380 Fix doc string of 'toggle-menu-bar-mode-from-frame'
184a4977c7 Make vc-bzr tests work with brz 3.1 (bug#43314)

# Conflicts:
#	lisp/emacs-lisp/syntax.el
#	src/syntax.c
2020-09-20 17:18:16 -07:00
Alan Mackenzie
fd1fe1e1ec Add doc to syntax-propertize-function saying it must do a 100% job
and cannot be combined with other ways of applying syntax-table text
properties.

* lisp/emacs-lisp/syntax.el (syntax-propertize-function): Amend doc string.

* doc/lispref/syntax.texi (Syntax Properties): Amend the description of the
variable.
2020-09-19 16:50:27 +00:00
Tassilo Horn
5af991872d Allow back-references in syntax-propertize-rules.
* lisp/emacs-lisp/syntax.el (syntax-propertize--shift-groups-and-backrefs):
Renamed from syntax-propertize--shift-groups, and also shift
back-references.
(syntax-propertize-rules): Adapt docstring and use renamed function.
* test/lisp/emacs-lisp/syntax-tests.el: New test.
(syntax-propertize--shift-groups-and-backrefs): New ERT test.
2020-05-19 20:50:14 +02:00
Stefan Monnier
45fa5e9724 * lisp/emacs-lisp/syntax.el: Fix bug#41195
Allow use of `syntax-ppss-flush-cache` in `syntax-propertize-function`.

(syntax-propertize--inhibit-flush): New var.
(syntax-propertize): Bind it.
(syntax-ppss-flush-cache): Test it.
2020-05-12 16:52:11 -04:00
Stefan Monnier
5601eb231f * lisp/emacs-lisp/syntax.el (syntax-propertize): Use run-hook-wrapped
This way we avoid making assumptions about the content of
syntax-propertize-extend-region-functions
2020-05-11 00:15:15 -04:00
Noam Postavsky
ba7004b2a7 Shorten some ppss struct field names
* lisp/emacs-lisp/syntax.el (ppss): Capitalize docstrings.
(ppss-comment-depth): Renamed from ppss-comment-nesting.
(ppss-quoted-p): Renamed from ppss-after-quote-p.
(ppss-min-depth): Renamed from ppss-minimum-paren-depth.
(ppss-open-parens): Renamed from ppss-open-paren-positions.
* etc/NEWS: Announce the ppss-* accessors.
2020-02-23 09:03:18 -05:00
Paul Eggert
365e01cc9f Update copyright year to 2020
Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
2020-01-01 00:59:52 +00:00
Lars Ingebrigtsen
77d4491391 Revert "Move description of value to syntax-ppss function."
This reverts commit 305dbc7e2b.

Both of the functions in question are used a lot in the sources, so move it back to the more basic function.
2019-10-30 21:26:22 +01:00
Lars Ingebrigtsen
f7673c147c Add a new ppss structure for syntax-ppss data
* lisp/emacs-lisp/syntax.el (ppss): Add a new structure to provide
accessors to the syntax-ppss data.
2019-10-30 21:25:23 +01:00
Lars Ingebrigtsen
305dbc7e2b Move description of value to syntax-ppss function.
* lisp/emacs-lisp/syntax.el (syntax-ppss): Move the description of
the return value from...

* src/syntax.c (Fparse_partial_sexp): ... here because
`syntax-ppss' is what's called over the place, and jumping through
an indirection to get to the value description is inconvenient.
2019-10-30 13:16:44 +01:00
Stefan Kangas
84d7fdbee5 Remove old commented out XEmacs compat code from syntax.el (Bug#37524)
* lisp/emacs-lisp/syntax.el: Remove ancient commented out XEmacs
compat code.  This code has been commented out since 2001.
2019-10-01 20:25:11 +02:00
Lars Ingebrigtsen
f3b1b5fb50 Document syntax-ppss-context
* doc/lispref/syntax.texi (Parser State): Document it.

* lisp/emacs-lisp/syntax.el (syntax-ppss-context): Add a doc
string (bug#32504).
2019-06-24 00:04:04 +02:00
Dario Gjorgjevski
dec148939a Do not use syntax-ppss-table in syntax-propertize when nil (Bug#36095)
* lisp/emacs-lisp/syntax.el (syntax-propertize): Use (syntax-table)
instead of syntax-ppss-table when the latter is nil.
2019-06-05 07:29:23 -04:00
Stefan Monnier
0b3982b1a3 * lisp/emacs-lisp/syntax.el: Use syntax-ppss-table for syntax-propertize.
`syntax-ppss` uses `syntax-ppss-table` while parsing the buffer as well
as when it calls `syntax-propertize`, but `syntax-propertize` can also
be called directly rather than via `syntax-ppss` so it needs to explicitly
use `syntax-ppss-table` as well in order to avoid using sometimes one
table and sometimes another.

(syntax-ppss-table): Move before new use.
(syntax-propertize): Use it.
2019-06-04 21:48:06 -04:00
Stefan Monnier
fe0cb43fb8 * lisp/subr.el (add-hook): Turn append into depth (bug#35508)
Make it possible to control the relative ordering of functions on hooks by
specifying `depth` in the same was as was possible with `add-function`.

* lisp/electric.el (electric--sort-post-self-insertion-hook):
Delete function.
(electric-indent-mode, electric-layout-mode, electric-quote-mode):
* lisp/elec-pair.el (electric-pair-mode): Use new `depth` arg instead of
electric--sort-post-self-insertion-hook.

* lisp/emacs-lisp/syntax.el (syntax-propertize, syntax-ppss):
Use new `depth` arg to make sure noone accidentally gets added
after syntax-ppss-flush-cache.

* doc/lispref/modes.texi (Setting Hooks): Document new `depth` arg.

* test/lisp/subr-tests.el (subr-tests-add-hook-depth): New test.
2019-05-29 15:56:14 -04:00
Paul Eggert
f744797af1 Go back to "Maintainer: emacs-devel@gnu.org"
Restore lines saying "Maintainer: emacs-devel@gnu.org" when there is
no special maintainer for a file.  Although this wasn't documented
it was common practice and removing the lines didn't have consensus.
2019-05-25 14:25:18 -07:00
Paul Eggert
bef1be8730 Fixes for "Maintainer:" and related lines
Mostly, this just removes "Maintainer: emacs-devel@gnu.org" lines,
which are not that useful.  It also cleans up and regularizes a
few similar lines.
2019-05-19 21:34:27 -07:00
Stefan Monnier
f97628f58e * lisp/emacs-lisp/syntax.el (syntax-propertize): ignore is like nil
(syntax-ppss-after-change-function): Mark it as obsolete.
* lisp/font-lock.el (font-lock-apply-syntactic-highlight):
Use syntax-ppss-flush-cache instead.
2019-05-08 15:18:32 -04:00
Stefan Monnier
3320fe2dee * lisp/subr.el (combine-change-calls-1): Don't combine syntax-ppss flushes 2019-03-16 20:11:45 -04:00
Paul Eggert
b0b483d714 Use integers for syntax-pps-stats
* lisp/emacs-lisp/syntax.el (syntax-ppss-stats):
Use integers, not floating-point, for stats, now that integers are
unbounded.  Almost always these should be fixnums.  Add 1 to last
slot’s car so that this addition need not be done at runtime.
(syntax-pps-stats, syntax-ppss): Use integers for calculations.
(syntax-ppss--update-stats): New convenience function.
(syntax-ppss): Use it.
2019-01-06 11:15:40 -08:00
Paul Eggert
ba809612c0 Merge from origin/emacs-26
2fcf2df Fix copyright years by hand
26bed8b Update copyright year to 2019
2814292 Fix value of default frame height.  (Bug#33921)
2018-12-31 17:57:29 -08:00
Paul Eggert
26bed8ba10 Update copyright year to 2019
Run 'TZ=UTC0 admin/update-copyright $(git ls-files)'.
2019-01-01 01:01:13 +00:00
Stefan Monnier
7b82d51437 * lisp/emacs-lisp/syntax.el (syntax-propertize-rules): Allow empty rules 2018-11-02 17:47:11 -04:00
Eli Zaretskii
adfe2f580f Remove outdated comment in syntax.el
* lisp/emacs-lisp/syntax.el (syntax-ppss-toplevel-pos): Remove
outdated comment.  (Bug#30617)
2018-03-03 14:41:16 +02:00
Stefan Monnier
dbb4aac212 * lisp/emacs-lisp/syntax.el (syntax-propertize): Fix bug#29767 2018-01-11 10:11:39 -05:00
Paul Eggert
5c7dd8a783 Update copyright year to 2018
Run admin/update-copyright.
2018-01-01 00:57:59 -08:00
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