* bug#20436: 25.0.50; syntax-multiline not documented
@ 2015-04-27 3:33 Tom Tromey
2019-10-09 3:39 ` Lars Ingebrigtsen
2021-07-13 17:57 ` Lars Ingebrigtsen
0 siblings, 2 replies; 5+ messages in thread
From: Tom Tromey @ 2015-04-27 3:33 UTC (permalink / raw
To: 20436
I noticed some code in syntax.el for the syntax-multiline property.
This doesn't seem to be documented anywhere, but I think it should be.
In GNU Emacs 25.0.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.12)
of 2015-04-19 on bapiya
Repository revision: 61f67da4e4b1a4aa3409d4b6758fe046037fbe88
Windowing system distributor `Fedora Project', version 11.0.11603000
Configured using:
`configure --prefix=/home/tromey/Emacs/install'
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
Important settings:
value of $LANG: en_US.utf8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix
Major mode: Emacs-Lisp
Minor modes in effect:
diff-auto-refine-mode: t
flyspell-mode: t
which-function-mode: t
global-auto-revert-mode: t
desktop-save-mode: t
erc-services-mode: t
erc-list-mode: t
erc-menu-mode: t
erc-autojoin-mode: t
erc-ring-mode: t
erc-networks-mode: t
erc-pcomplete-mode: t
erc-track-mode: t
erc-match-mode: t
erc-netsplit-mode: t
erc-hl-nicks-mode: t
erc-button-mode: t
erc-fill-mode: t
erc-stamp-mode: t
erc-irccontrols-mode: t
erc-noncommands-mode: t
erc-move-to-prompt-mode: t
erc-readonly-mode: t
savehist-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
auto-fill-function: do-auto-fill
Recent messages:
Saving file /home/tromey/Emacs/Multi/PLAN...
Wrote /home/tromey/Emacs/Multi/PLAN
Saving file /home/tromey/Emacs/Multi/PLAN...
Wrote /home/tromey/Emacs/Multi/PLAN
Saving file /home/tromey/Emacs/Multi/PLAN...
Wrote /home/tromey/Emacs/Multi/PLAN
Type C-x 1 to delete the help window, C-M-v to scroll help.
Mark saved where search started [2 times]
Mark set
Mark saved where search started
Quit
Load-path shadows:
/home/tromey/.emacs.d/elpa/bubbles-0.5/bubbles hides /home/tromey/Emacs/install/share/emacs/25.0.50/lisp/play/bubbles
Features:
(shadow bbdb-message mailalias mail-hist emacsbug debug log-view
whitespace shr-color epg tabify man nndoc url-handlers debbugs-gnu
debbugs soap-client url-http url-auth url-gw log-edit pcvs-util dabbrev
copyright eieio-opt help-mode gnus-fun flow-fill shr dom subr-x
mm-archive gnus-html browse-url xml url-cache mm-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse url-vars sort smiley gnus-cite mail-extr qp
gnus-async gnus-bcklg gnus-ml disp-table gnus-topic nndraft nnmh
nnfolder utf-7 bbdb-gnus bbdb-mua bbdb-com crm gnutls network-stream nsm
starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
nntp gnus-cache gnus-registry registry eieio-compat eieio-base gnus-art
mm-uu mml2015 mm-view mml-smime smime dig mailcap gnus-sum gnus-group
gnus-undo smtpmail sendmail gnus-start gnus-cloud nnimap nnmail
mail-source tls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range
gnus-win gnus gnus-ems nnheader misearch multi-isearch message rfc822
mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader goto-addr
sh-script executable arc-mode archive-mode texinfo python systemtap-mode
derived cc-langs cc-awk php-mode speedbar sb-image ezimage dframe etags
xref flymake css-mode smie sgml-mode js json make-mode smerge-mode
bug-reference tar-mode markdown-mode org-element org-rmail org-mhe
org-irc org-info org-gnus org-docview doc-view jka-compr image-mode
dired org-bibtex bibtex org-bbdb org-w3m org org-macro org-footnote
org-pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs
vc-git diff-mode easy-mmode cc-mode cc-fonts cc-guess cc-menus cc-cmds
add-log flyspell ispell diminish edmacro kmacro projectile ibuf-ext
ibuffer pkg-info find-func lisp-mnt epl grep compile dash s appt
diary-lib diary-loaddefs cal-menu calendar cal-loaddefs which-func imenu
minimap autorevert filenotify desktop frameset cus-start cus-load status
erc-services erc-list erc-menu erc-join erc-ring erc-networks
erc-pcomplete pcomplete erc-track erc-match erc-netsplit erc-hl-nicks
color erc-button erc-fill erc-stamp wid-edit erc-goodies erc erc-backend
erc-compat format-spec auth-source eieio gnus-util mm-util mail-prsvr
password-cache thingatpt pp warnings advice vc-dir ewoc vc vc-dispatcher
cc-styles cc-align cc-engine cc-vars cc-defs bbdb bbdb-site timezone
ange-ftp comint ansi-color ring server savehist finder-inf
dwarf-mode-autoloads gdb-shell-autoloads eieio-core cl-generic byte-opt
bytecomp byte-compile cl-extra seq cconv lisppaste-autoloads
pydoc-info-autoloads info-look info easymenu help-fns cl-macs cl gv
cl-loaddefs pcase cl-lib weblogger-autoloads package epg-config
bbdb-loaddefs mule-util time-date tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face
macroexp files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind gfilenotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)
Memory information:
((conses 16 1886374 102577)
(symbols 48 123934 0)
(miscs 40 33584 42)
(strings 32 469971 49248)
(string-bytes 1 11979959)
(vectors 16 111010)
(vector-slots 8 2312396 8980)
(floats 8 3337 1446)
(intervals 56 170204 9355)
(buffers 976 323)
(heap 1024 331141 126832))
Tom
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#20436: 25.0.50; syntax-multiline not documented
2015-04-27 3:33 bug#20436: 25.0.50; syntax-multiline not documented Tom Tromey
@ 2019-10-09 3:39 ` Lars Ingebrigtsen
2021-07-13 17:57 ` Lars Ingebrigtsen
1 sibling, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-09 3:39 UTC (permalink / raw
To: Tom Tromey; +Cc: 20436
Tom Tromey <tom@tromey.com> writes:
> I noticed some code in syntax.el for the syntax-multiline property.
> This doesn't seem to be documented anywhere, but I think it should be.
I guess it should... I grepped through the tree and there doesn't
really seem to be any comments about how it's used, either. Could
somebody who knows add something... somewhere?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#20436: 25.0.50; syntax-multiline not documented
2015-04-27 3:33 bug#20436: 25.0.50; syntax-multiline not documented Tom Tromey
2019-10-09 3:39 ` Lars Ingebrigtsen
@ 2021-07-13 17:57 ` Lars Ingebrigtsen
2021-07-13 18:11 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
1 sibling, 1 reply; 5+ messages in thread
From: Lars Ingebrigtsen @ 2021-07-13 17:57 UTC (permalink / raw
To: Tom Tromey; +Cc: 20436, Stefan Monnier
Tom Tromey <tom@tromey.com> writes:
> I noticed some code in syntax.el for the syntax-multiline property.
> This doesn't seem to be documented anywhere, but I think it should be.
Looking at this:
(defun syntax-propertize-multiline (beg end)
"Let `syntax-propertize' pay attention to the syntax-multiline property."
(when (and (> beg (point-min))
(get-text-property (1- beg) 'syntax-multiline))
(setq beg (or (previous-single-property-change beg 'syntax-multiline)
(point-min))))
;;
(when (get-text-property end 'syntax-multiline)
(setq end (or (text-property-any end (point-max)
'syntax-multiline nil)
(point-max))))
(cons beg end))
And some of the usage sites... I'm still not quite sure what the
semantics here are. :-) I've added Stefan M to the CCs; perhaps he can
explain and I'll write something up for the manual?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#20436: 25.0.50; syntax-multiline not documented
2021-07-13 17:57 ` Lars Ingebrigtsen
@ 2021-07-13 18:11 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-07-13 18:22 ` Lars Ingebrigtsen
0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-07-13 18:11 UTC (permalink / raw
To: Lars Ingebrigtsen; +Cc: 20436, Tom Tromey
Lars Ingebrigtsen [2021-07-13 19:57:55] wrote:
> Tom Tromey <tom@tromey.com> writes:
>> I noticed some code in syntax.el for the syntax-multiline property.
>> This doesn't seem to be documented anywhere, but I think it should be.
>
> Looking at this:
>
> (defun syntax-propertize-multiline (beg end)
> "Let `syntax-propertize' pay attention to the syntax-multiline property."
> (when (and (> beg (point-min))
> (get-text-property (1- beg) 'syntax-multiline))
> (setq beg (or (previous-single-property-change beg 'syntax-multiline)
> (point-min))))
> ;;
> (when (get-text-property end 'syntax-multiline)
> (setq end (or (text-property-any end (point-max)
> 'syntax-multiline nil)
> (point-max))))
> (cons beg end))
>
> And some of the usage sites... I'm still not quite sure what the
> semantics here are. :-) I've added Stefan M to the CCs; perhaps he can
> explain and I'll write something up for the manual?
Its semantics is implemented by `syntax-propertize-multiline` (whose
docstring speaks volumes ;-), so the property is only effective after
you've added `syntax-propertize-multiline` to
`syntax-propertize-extend-region-functions`.
What it does is cause `syntax-propertize` to treat the marked text such
that it will always be propertized in a single call rather than two or
more separate calls.
The most common use for it is when the syntax to use for "FOO" depends
on some *later* text "BAR": by placing this property over the whole of
"FOO...BAR" you make sure that any change of "BAR" will cause the
syntax of "FOO" to be recomputed.
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#20436: 25.0.50; syntax-multiline not documented
2021-07-13 18:11 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2021-07-13 18:22 ` Lars Ingebrigtsen
0 siblings, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2021-07-13 18:22 UTC (permalink / raw
To: Stefan Monnier; +Cc: 20436, Tom Tromey
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> The most common use for it is when the syntax to use for "FOO" depends
> on some *later* text "BAR": by placing this property over the whole of
> "FOO...BAR" you make sure that any change of "BAR" will cause the
> syntax of "FOO" to be recomputed.
Excellent; I've now basically added that kinda verbatim to the
"Multiline Font Lock" section in the lispref manual. Feel free to tweak
further. :-)
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-07-13 18:22 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-27 3:33 bug#20436: 25.0.50; syntax-multiline not documented Tom Tromey
2019-10-09 3:39 ` Lars Ingebrigtsen
2021-07-13 17:57 ` Lars Ingebrigtsen
2021-07-13 18:11 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-07-13 18:22 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.