diff options
| author | Eli Zaretskii | 2019-09-21 12:03:31 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2019-09-21 12:03:31 +0300 |
| commit | 8147d939ae5c2d933c9a87f6281a8dfd7c850836 (patch) | |
| tree | 3eb86bccf75fe090d7cd18f3aa1fbd48413098a4 | |
| parent | c61bfe0a3adab1a9fd0dc283cbf8291a78ed6da1 (diff) | |
| download | emacs-8147d939ae5c2d933c9a87f6281a8dfd7c850836.tar.gz emacs-8147d939ae5c2d933c9a87f6281a8dfd7c850836.zip | |
; * etc/TODO: Update.
| -rw-r--r-- | etc/TODO | 60 |
1 files changed, 56 insertions, 4 deletions
| @@ -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 | ||
| 223 | For the list of typographical ligatures, see | ||
| 224 | |||
| 225 | https://en.wikipedia.org/wiki/Orthographic_ligature#Ligatures_in_Unicode_(Latin_alphabets) | ||
| 226 | |||
| 227 | For Text and derived modes, the job is to figure out which ligatures | ||
| 228 | we want to support, how to let the user customize that, and probably | ||
| 229 | define a minor mode for automatic ligation (as some contexts might not | ||
| 230 | want, say, "fi" or "ff" always yield a ligature, and also because it | ||
| 231 | might slow down redisplay, because character composition goes through | ||
| 232 | Lisp). | ||
| 233 | |||
| 234 | For ligature support in programming language modes, one can look at | ||
| 235 | the various add-on packages out there that provide the feature via | ||
| 236 | prettify-symbols-mode. We need to figure out which ligatures are | ||
| 237 | needed for each programming language, and provide user options to turn | ||
| 238 | this on and off. | ||
| 239 | |||
| 240 | The implementation should use the infrastructure for character | ||
| 241 | compositions, i.e., we should define appropriate regexp-based rules | ||
| 242 | for character sequences that need to be composed into ligatures, and | ||
| 243 | populate composition-function-table with those rules. See | ||
| 244 | composite.el for examples of this, and also grep lisp/language/*.el | ||
| 245 | for references to composition-function-table. | ||
| 246 | |||
| 247 | The prettify-symbols-mode should be deprecated once ligature support | ||
| 248 | is in place. | ||
| 249 | |||
| 250 | ** Support for Stylistic Sets | ||
| 251 | This will allow using "alternate glyphs" supported by modern fonts. | ||
| 252 | For an overview of this feature, see | ||
| 253 | |||
| 254 | https://www.typography.com/faq/157 | ||
| 255 | https://glyphsapp.com/tutorials/stylistic-sets | ||
| 256 | |||
| 257 | HarfBuzz supports this, see this discussion: | ||
| 258 | |||
| 259 | https://lists.freedesktop.org/archives/harfbuzz/2019-September/007434.html | ||
| 260 | |||
| 261 | One possible way of letting Lisp program support this would be to | ||
| 262 | introduce a new text property 'stylistic-set' whose value will be the | ||
| 263 | set name(s), a symbol or a list of symbols. Characters that have this | ||
| 264 | property should be processed specially by 'get_glyph_face_and_encoding': | ||
| 265 | instead of calling the 'encode_char' method of the font driver, we | ||
| 266 | should invoke the 'shape' method. 'hbfont_shape' should be extended | ||
| 267 | to pass to 'hb_shape_full' the required array of features, as | ||
| 268 | mentioned 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 |
| 224 | This would get us rid of font-lock-face property (and I'd be happy to | 272 | This 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 |