summaryrefslogtreecommitdiffstats
path: root/2022/info/devel-after.md
blob: 5d7eada3797884e776538189743267be11b155a8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!-- Automatically generated by emacsconf-publish-after-page -->


<a name="devel-mainVideo-transcript"></a>
# Transcript

[[!template new="1" text="""Hello, it's time for another Emacs development update.""" start="00:00:00.000" video="mainVideo-devel" id="subtitle"]]
[[!template text="""I want to thank the organizers of EmacsConf""" start="00:00:05.320" video="mainVideo-devel" id="subtitle"]]
[[!template text="""for putting this together""" start="00:00:07.800" video="mainVideo-devel" id="subtitle"]]
[[!template text="""and also the maintainers of Emacs""" start="00:00:10.160" video="mainVideo-devel" id="subtitle"]]
[[!template text="""with a special thanks to Eli Zaretskii.""" start="00:00:12.280" video="mainVideo-devel" id="subtitle"]]
[[!template text="""It's really he who gave me this information""" start="00:00:14.240" video="mainVideo-devel" id="subtitle"]]
[[!template text="""so that I could pass it along to you.""" start="00:00:16.520" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""The main thing to discuss this time""" start="00:00:19.360" video="mainVideo-devel" id="subtitle"]]
[[!template text="""with regard to what's been going on with Emacs is Emacs 29.""" start="00:00:21.720" video="mainVideo-devel" id="subtitle"]]
[[!template text="""The release cycle for Emacs 29 should begin in December""" start="00:00:25.880" video="mainVideo-devel" id="subtitle"]]
[[!template text="""when a branch will be cut and the release work will start.""" start="00:00:29.840" video="mainVideo-devel" id="subtitle"]]
[[!template text="""We should be seeing Emacs 29 coming out fairly soon.""" start="00:00:32.880" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Here's just a brief overview""" start="00:00:36.600" video="mainVideo-devel" id="subtitle"]]
[[!template text="""of some of the things to look forward to""" start="00:00:38.120" video="mainVideo-devel" id="subtitle"]]
[[!template text="""coming up in Emacs 29.""" start="00:00:39.680" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""Overlays have been re-implemented.""" start="00:00:42.480" video="mainVideo-devel" id="subtitle"]]
[[!template text="""If you haven't used them before,""" start="00:00:45.680" video="mainVideo-devel" id="subtitle"]]
[[!template text="""overlays are a way to apply a set of properties""" start="00:00:47.240" video="mainVideo-devel" id="subtitle"]]
[[!template text="""over a range of text so that""" start="00:00:50.960" video="mainVideo-devel" id="subtitle"]]
[[!template text="""you can have things like mouse clicks""" start="00:00:53.560" video="mainVideo-devel" id="subtitle"]]
[[!template text="""take on different behavior""" start="00:00:55.840" video="mainVideo-devel" id="subtitle"]]
[[!template text="""depending on where it happens in the text.""" start="00:00:57.920" video="mainVideo-devel" id="subtitle"]]
[[!template text="""This is different than text properties""" start="00:00:59.520" video="mainVideo-devel" id="subtitle"]]
[[!template text="""which associate the properties with the text itself.""" start="00:01:01.720" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Overlays do not alter the text in any way""" start="00:01:04.080" video="mainVideo-devel" id="subtitle"]]
[[!template text="""and they simply, as the name suggests,""" start="00:01:07.200" video="mainVideo-devel" id="subtitle"]]
[[!template text="""overlay on the buffer.""" start="00:01:09.320" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Now previously, overlays were implemented as linear lists""" start="00:01:10.920" video="mainVideo-devel" id="subtitle"]]
[[!template text="""which got very slow when there were""" start="00:01:14.040" video="mainVideo-devel" id="subtitle"]]
[[!template text="""a lot of overlays in a buffer.""" start="00:01:15.800" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Now they're being re-implemented as trees,""" start="00:01:17.880" video="mainVideo-devel" id="subtitle"]]
[[!template text="""so that searching should be very fast, and""" start="00:01:19.920" video="mainVideo-devel" id="subtitle"]]
[[!template text="""in fact, comparable to text properties.""" start="00:01:21.880" video="mainVideo-devel" id="subtitle"]]
[[!template text="""This is already on the master branch""" start="00:01:24.440" video="mainVideo-devel" id="subtitle"]]
[[!template text="""and (more or less) is ready for release.""" start="00:01:26.520" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""Eglot has been ported into Emacs.""" start="00:01:29.280" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Eglot is an LSP [Language Server Protocol] client for Emacs,""" start="00:01:32.240" video="mainVideo-devel" id="subtitle"]]
[[!template text="""one of the two that are often used.""" start="00:01:36.960" video="mainVideo-devel" id="subtitle"]]
[[!template text="""But now it's going to be included in core,""" start="00:01:38.440" video="mainVideo-devel" id="subtitle"]]
[[!template text="""so it's considered official""" start="00:01:40.840" video="mainVideo-devel" id="subtitle"]]
[[!template text="""and will be well integrated with other Emacs features.""" start="00:01:42.760" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""There's going to be a Tree-sitter library.""" start="00:01:46.480" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Tree-sitter is a way of building fast incremental parsers.""" start="00:01:48.640" video="mainVideo-devel" id="subtitle"]]
[[!template text="""There's a website on Tree-sitter if you Google for that.""" start="00:01:53.200" video="mainVideo-devel" id="subtitle"]]
[[!template text="""This can be used for various features,""" start="00:01:56.040" video="mainVideo-devel" id="subtitle"]]
[[!template text="""but first and foremost, it'll be used""" start="00:01:57.800" video="mainVideo-devel" id="subtitle"]]
[[!template text="""for fontification and indentation in Emacs.""" start="00:01:59.720" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Instead of heuristics and regular expressions,""" start="00:02:02.840" video="mainVideo-devel" id="subtitle"]]
[[!template text="""you can now build your fontifications""" start="00:02:05.600" video="mainVideo-devel" id="subtitle"]]
[[!template text="""based on a parse tree.""" start="00:02:07.400" video="mainVideo-devel" id="subtitle"]]
[[!template text="""There's a branch now that supports this""" start="00:02:09.080" video="mainVideo-devel" id="subtitle"]]
[[!template text="""for several modes already, like Python, TypeScript,""" start="00:02:10.640" video="mainVideo-devel" id="subtitle"]]
[[!template text="""and JavaScript.""" start="00:02:13.680" video="mainVideo-devel" id="subtitle"]]
[[!template text="""We don't have anyone yet working on it for C mode""" start="00:02:15.000" video="mainVideo-devel" id="subtitle"]]
[[!template text="""but Eli has challenged whether anyone""" start="00:02:18.120" video="mainVideo-devel" id="subtitle"]]
[[!template text="""in the community is interested.""" start="00:02:20.480" video="mainVideo-devel" id="subtitle"]]
[[!template text="""He would love to see Tree-sitter support added for C mode,""" start="00:02:21.960" video="mainVideo-devel" id="subtitle"]]
[[!template text="""because this has been quite slow""" start="00:02:25.960" video="mainVideo-devel" id="subtitle"]]
[[!template text="""when dealing with very, very large files""" start="00:02:27.880" video="mainVideo-devel" id="subtitle"]]
[[!template text="""and Tree-sitter should help that.""" start="00:02:29.640" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""There have been significant improvements""" start="00:02:32.000" video="mainVideo-devel" id="subtitle"]]
[[!template text="""in dealing with very long lines.""" start="00:02:34.320" video="mainVideo-devel" id="subtitle"]]
[[!template text="""This is something that has been""" start="00:02:36.680" video="mainVideo-devel" id="subtitle"]]
[[!template text="""a long time frequent complaint.""" start="00:02:38.160" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Emacs becomes rather unusable""" start="00:02:40.800" video="mainVideo-devel" id="subtitle"]]
[[!template text="""if you open a giant file that's a single long line.""" start="00:02:42.880" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Anyone who's ever tried to open a 30 megabyte JSON file""" start="00:02:45.840" video="mainVideo-devel" id="subtitle"]]
[[!template text="""that's all on one line will know this pain.""" start="00:02:49.560" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Some modes, however, will have to adapt to this change,""" start="00:02:52.200" video="mainVideo-devel" id="subtitle"]]
[[!template text="""because sometimes access to the whole buffer""" start="00:02:55.960" video="mainVideo-devel" id="subtitle"]]
[[!template text="""is now forcefully restricted.""" start="00:02:58.320" video="mainVideo-devel" id="subtitle"]]
[[!template text="""If the mode requires access to the entire buffer""" start="00:03:00.440" video="mainVideo-devel" id="subtitle"]]
[[!template text="""at all times to work, then the developer of that mode""" start="00:03:04.400" video="mainVideo-devel" id="subtitle"]]
[[!template text="""will need to devise some simplifications""" start="00:03:08.000" video="mainVideo-devel" id="subtitle"]]
[[!template text="""so that they don't require that complete access.""" start="00:03:10.240" video="mainVideo-devel" id="subtitle"]]
[[!template text="""For example, if a mode used to go way back""" start="00:03:13.160" video="mainVideo-devel" id="subtitle"]]
[[!template text="""to the beginning of the buffer""" start="00:03:15.760" video="mainVideo-devel" id="subtitle"]]
[[!template text="""in order to determine if there's an unbalanced parenthesis,""" start="00:03:16.920" video="mainVideo-devel" id="subtitle"]]
[[!template text="""this won't work in the new long lines support mode,""" start="00:03:19.480" video="mainVideo-devel" id="subtitle"]]
[[!template text="""because the entire buffer is not always available.""" start="00:03:23.040" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Emacs is sort of doing some""" start="00:03:25.840" video="mainVideo-devel" id="subtitle"]]
[[!template text="""restricting of the buffer heuristically""" start="00:03:27.720" video="mainVideo-devel" id="subtitle"]]
[[!template text="""in order to keep the visible range working""" start="00:03:29.880" video="mainVideo-devel" id="subtitle"]]
[[!template text="""very, very quickly now.""" start="00:03:32.480" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""Emacs can now build directly with SQLite.""" start="00:03:35.280" video="mainVideo-devel" id="subtitle"]]
[[!template text="""This means that SQLite databases""" start="00:03:39.240" video="mainVideo-devel" id="subtitle"]]
[[!template text="""can be directly accessible from Emacs.""" start="00:03:42.360" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Should be nice for anyone whose mode wants to""" start="00:03:44.880" video="mainVideo-devel" id="subtitle"]]
[[!template text="""cache or store some queryable data.""" start="00:03:47.360" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""The XInput extension is now up to version 2.""" start="00:03:50.080" video="mainVideo-devel" id="subtitle"]]
[[!template text="""There are many extensions in this specification.""" start="00:03:54.960" video="mainVideo-devel" id="subtitle"]]
[[!template text="""From the user's point of view,""" start="00:03:58.240" video="mainVideo-devel" id="subtitle"]]
[[!template text="""it enables things like smooth scrolling and touch devices.""" start="00:03:59.800" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Emacs will now use this by default on all systems""" start="00:04:03.360" video="mainVideo-devel" id="subtitle"]]
[[!template text="""where the library is installed.""" start="00:04:06.320" video="mainVideo-devel" id="subtitle"]]
[[!template text="""It should be on every modern system that uses X.""" start="00:04:08.560" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""There's also a pure GTK build in Emacs 29.""" start="00:04:11.320" video="mainVideo-devel" id="subtitle"]]
[[!template text="""The purpose of this is to allow Emacs""" start="00:04:15.520" video="mainVideo-devel" id="subtitle"]]
[[!template text="""on systems without X, such as Wayland or Broadway,""" start="00:04:17.560" video="mainVideo-devel" id="subtitle"]]
[[!template text="""to be able to have a graphical build of Emacs.""" start="00:04:21.160" video="mainVideo-devel" id="subtitle"]]
[[!template text="""There's also lots of improvements to drag and drop""" start="00:04:24.160" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""on X systems, for people who like drag and drop.""" start="00:04:27.320" video="mainVideo-devel" id="subtitle"]]
[[!template text="""And there's support for double buffering on Microsoft Windows.""" start="00:04:31.360" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""The last of the headline features""" start="00:04:34.280" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""coming for Emacs 29 is emoji input.""" start="00:04:38.480" video="mainVideo-devel" id="subtitle"]]
[[!template text="""So there will now be a prefix key,""" start="00:04:41.160" video="mainVideo-devel" id="subtitle"]]
[[!template text="""C-x 8 e for emoji input,""" start="00:04:43.520" video="mainVideo-devel" id="subtitle"]]
[[!template text="""along with several new commands to insert emoji""" start="00:04:47.320" video="mainVideo-devel" id="subtitle"]]
[[!template text="""by various forms of shorthand.""" start="00:04:50.240" video="mainVideo-devel" id="subtitle"]]
[[!template text="""There will even be an input method""" start="00:04:52.480" video="mainVideo-devel" id="subtitle"]]
[[!template text="""where you can write the plain English names of emojis""" start="00:04:54.360" video="mainVideo-devel" id="subtitle"]]
[[!template text="""and have the symbol inserted.""" start="00:04:57.560" video="mainVideo-devel" id="subtitle"]]
[[!template text="""So that rounds out some of the features""" start="00:04:59.120" video="mainVideo-devel" id="subtitle"]]
[[!template new="1" text="""coming up for Emacs 29.""" start="00:05:02.160" video="mainVideo-devel" id="subtitle"]]
[[!template text="""Sounds like an exciting release""" start="00:05:03.680" video="mainVideo-devel" id="subtitle"]]
[[!template text="""and it should be headed your way soon.""" start="00:05:05.680" video="mainVideo-devel" id="subtitle"]]
[[!template text="""I hope everybody has fun at the conference""" start="00:05:07.480" video="mainVideo-devel" id="subtitle"]]
[[!template text="""and enjoy yourselves.""" start="00:05:09.920" video="mainVideo-devel" id="subtitle"]]



Captioner: sachac
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20devel%3A%20Emacs%20development%20updates)


<!-- End of emacsconf-publish-after-page -->