aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2019-09-21 12:03:31 +0300
committerEli Zaretskii2019-09-21 12:03:31 +0300
commit8147d939ae5c2d933c9a87f6281a8dfd7c850836 (patch)
tree3eb86bccf75fe090d7cd18f3aa1fbd48413098a4
parentc61bfe0a3adab1a9fd0dc283cbf8291a78ed6da1 (diff)
downloademacs-8147d939ae5c2d933c9a87f6281a8dfd7c850836.tar.gz
emacs-8147d939ae5c2d933c9a87f6281a8dfd7c850836.zip
; * etc/TODO: Update.
-rw-r--r--etc/TODO60
1 files changed, 56 insertions, 4 deletions
diff --git a/etc/TODO b/etc/TODO
index a065763933f..ac47b0ad2b9 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -219,6 +219,54 @@ https://lists.gnu.org/r/emacs-devel/2013-11/msg00515.html
219 processing. That is why we added text properties and variable 219 processing. That is why we added text properties and variable
220 width fonts. However, more features are still needed to achieve this. 220 width fonts. However, more features are still needed to achieve this.
221 221
222** Support ligatures out of the box
223For the list of typographical ligatures, see
224
225 https://en.wikipedia.org/wiki/Orthographic_ligature#Ligatures_in_Unicode_(Latin_alphabets)
226
227For Text and derived modes, the job is to figure out which ligatures
228we want to support, how to let the user customize that, and probably
229define a minor mode for automatic ligation (as some contexts might not
230want, say, "fi" or "ff" always yield a ligature, and also because it
231might slow down redisplay, because character composition goes through
232Lisp).
233
234For ligature support in programming language modes, one can look at
235the various add-on packages out there that provide the feature via
236prettify-symbols-mode. We need to figure out which ligatures are
237needed for each programming language, and provide user options to turn
238this on and off.
239
240The implementation should use the infrastructure for character
241compositions, i.e., we should define appropriate regexp-based rules
242for character sequences that need to be composed into ligatures, and
243populate composition-function-table with those rules. See
244composite.el for examples of this, and also grep lisp/language/*.el
245for references to composition-function-table.
246
247The prettify-symbols-mode should be deprecated once ligature support
248is in place.
249
250** Support for Stylistic Sets
251This will allow using "alternate glyphs" supported by modern fonts.
252For an overview of this feature, see
253
254 https://www.typography.com/faq/157
255 https://glyphsapp.com/tutorials/stylistic-sets
256
257HarfBuzz supports this, see this discussion:
258
259 https://lists.freedesktop.org/archives/harfbuzz/2019-September/007434.html
260
261One possible way of letting Lisp program support this would be to
262introduce a new text property 'stylistic-set' whose value will be the
263set name(s), a symbol or a list of symbols. Characters that have this
264property should be processed specially by 'get_glyph_face_and_encoding':
265instead of calling the 'encode_char' method of the font driver, we
266should invoke the 'shape' method. 'hbfont_shape' should be extended
267to pass to 'hb_shape_full' the required array of features, as
268mentioned in the above HarfBuzz discussion.
269
222** Extend text-properties and overlays 270** Extend text-properties and overlays
223*** Several text-property planes 271*** Several text-property planes
224This would get us rid of font-lock-face property (and I'd be happy to 272This would get us rid of font-lock-face property (and I'd be happy to
@@ -529,10 +577,6 @@ from the emacsclient process.
529** Optionally make the cursor a little thinner at the end of a line 577** Optionally make the cursor a little thinner at the end of a line
530 or the end of the buffer. 578 or the end of the buffer.
531 579
532** Port the conservative stack marking code of Emacs's garbage collector
533 to more systems, so that we can completely get rid of GCPROs. Note
534 that Boehm garbage collector provides this.
535
536** Reorder defcustom's in each package so that the more important 580** Reorder defcustom's in each package so that the more important
537 options come first in the Customize buffers. This could be done by 581 options come first in the Customize buffers. This could be done by
538 either rearranging the file (since options are shown in the order 582 either rearranging the file (since options are shown in the order
@@ -1469,17 +1513,25 @@ presence of multi-file documents.
1469** Replace linum.el with nlinum.el 1513** Replace linum.el with nlinum.el
1470 https://lists.gnu.org/r/emacs-devel/2013-08/msg00379.html 1514 https://lists.gnu.org/r/emacs-devel/2013-08/msg00379.html
1471 1515
1516 (Since Emacs 26 introduced native line numbers, this item is
1517 probably obsolete.)
1518
1472** Merge sendmail.el and messages.el. 1519** Merge sendmail.el and messages.el.
1473 Probably not a complete merge, but at least arrange for messages.el to be 1520 Probably not a complete merge, but at least arrange for messages.el to be
1474 a derived mode of sendmail.el. Or arrange for messages.el to be split 1521 a derived mode of sendmail.el. Or arrange for messages.el to be split
1475 into a small core and "the rest" so that we use less resources as long as 1522 into a small core and "the rest" so that we use less resources as long as
1476 we stick to the features provided in sendmail.el. 1523 we stick to the features provided in sendmail.el.
1477 1524
1525 (Probably obsolete, as Emacs 24 switched to message.el as the
1526 default mail composer.)
1527
1478** Replace gmalloc.c with the modified Doug Lea code from the current 1528** Replace gmalloc.c with the modified Doug Lea code from the current
1479 GNU libc so that the special mmapping of buffers can be removed -- 1529 GNU libc so that the special mmapping of buffers can be removed --
1480 that apparently loses under Solaris, at least. [fx has mostly done 1530 that apparently loses under Solaris, at least. [fx has mostly done
1481 this.] 1531 this.]
1482 1532
1533 (Obsolete, since gmalloc.c is nowadays only used on MS-DOS.)
1534
1483** Rewrite make-docfile to be clean and maintainable. 1535** Rewrite make-docfile to be clean and maintainable.
1484 It might be better to replace it with Lisp, using the byte compiler. 1536 It might be better to replace it with Lisp, using the byte compiler.
1485 https://lists.gnu.org/r/emacs-devel/2012-06/msg00037.html 1537 https://lists.gnu.org/r/emacs-devel/2012-06/msg00037.html