From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: "Garreau\, Alexandre" Newsgroups: gmane.emacs.devel Subject: Questions about text properties Date: Sun, 21 Oct 2018 05:21:40 +0200 Message-ID: <87pnw46l2z.fsf@portable.galex-713.eu> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1540092029 24560 195.159.176.226 (21 Oct 2018 03:20:29 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 21 Oct 2018 03:20:29 +0000 (UTC) User-Agent: Gnus (5.13), GNU Emacs 25.1.1 (i686-pc-linux-gnu) To: Emacs Development Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Oct 21 05:20:25 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gE4Hw-0006H7-0Y for ged-emacs-devel@m.gmane.org; Sun, 21 Oct 2018 05:20:24 +0200 Original-Received: from localhost ([::1]:57310 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gE4K2-0001co-8V for ged-emacs-devel@m.gmane.org; Sat, 20 Oct 2018 23:22:34 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36329) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gE4JD-0001cW-2K for emacs-devel@gnu.org; Sat, 20 Oct 2018 23:21:43 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gE4JC-0005DD-CW for emacs-devel@gnu.org; Sat, 20 Oct 2018 23:21:43 -0400 Original-Received: from portable.galex-713.eu ([2a00:5884:8305::1]:32806) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gE4JC-0005Cr-5G for emacs-devel@gnu.org; Sat, 20 Oct 2018 23:21:42 -0400 Original-Received: from localhost ([::1] helo=portable.galex-713.eu) by portable.galex-713.eu with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gE4JA-000209-JZ for emacs-devel@gnu.org; Sun, 21 Oct 2018 05:21:40 +0200 X-GPG-FINGERPRINT: E109 9988 4197 D7CB B0BC 5C23 8DEB 24BA 867D 3F7F X-Accept-Language: fr, en, it, eo X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:5884:8305::1 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:230534 Archived-At: I was reading the text properties and overlays manual part and I=E2=80=99ve= some questions about them: =E2=80=93=C2=A0why is everything using plists rather than alist? if I=E2=80= =99m right plists are just like alist but more conveniently displayed as sexps (hence used for keyword arguments) and not overridable by appending: however having a lot of common text properties between part of text makes me wonder if sharing properties in memory wouldn=E2=80=99t have been relevan= t, it also would have made inheritance easier; =E2=80=93=C2=A0how about adding stuff to a *value* of property, be it a lis= t, or anything that could inherit, such as an alist, a keymap, etc.? it seems there are no functions for that; =E2=80=94=C2=A0why does stuff everywhere (e.g. org-mode) appears to just bi= nd RET, C-c C-c, mouse events, etc. to contextual do-everything functions, rather than only bind these on fontified parts of buffer, so not to have such meaningless hard to debug, read, and understand functions; =E2=80=93=C2=A0why are properties rear-sticky by default rather than the op= posite? why are stickiness properties biased toward this choice? that seems to reflect high confidence toward a such default; =E2=80=93=C2=A0why is there only a mouse-face property, rather than a hover= , click, pressed, active, focus, etc. (like in html/css) that would help distinguishing point, mouse, region, etc.? that feels rather limited; =E2=80=93=C2=A0why can it only affects face rather than other properties so= that to extend its behavior? =E2=80=93=C2=A0sometimes most text properties can take a hook (that will be= called lazily to compute a valid value), sometimes not (like for a display prop space); =E2=80=94=C2=A0is the recenter thing about overlays related to the fact buf= fers are implemented with a buffer gap, or is it just something similar to fasten stuff?