summaryrefslogtreecommitdiffstats
path: root/2022/captions/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2022/captions/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.vtt')
-rw-r--r--2022/captions/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.vtt473
1 files changed, 473 insertions, 0 deletions
diff --git a/2022/captions/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.vtt b/2022/captions/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.vtt
new file mode 100644
index 00000000..a55331b2
--- /dev/null
+++ b/2022/captions/emacsconf-2022-devel--emacs-development-updates--john-wiegley--main.vtt
@@ -0,0 +1,473 @@
+WEBVTT
+
+1
+00:00:00.000 --> 00:00:05.320
+Hello, it's time for another Emacs development update.
+
+2
+00:00:05.320 --> 00:00:07.800
+I want to thank the organizers of EmacsConf
+
+3
+00:00:07.800 --> 00:00:10.160
+for putting this together
+
+4
+00:00:10.160 --> 00:00:12.280
+and also the maintainers of Emacs
+
+5
+00:00:12.280 --> 00:00:14.240
+with a special thanks to Eli Zaretskii.
+
+6
+00:00:14.240 --> 00:00:16.560
+It's really he who gave me this information
+
+7
+00:00:16.560 --> 00:00:19.320
+so that I could pass it along to you.
+
+8
+00:00:19.320 --> 00:00:21.720
+The main thing to discuss this time
+
+9
+00:00:21.720 --> 00:00:25.880
+with regard to what's been going on with Emacs is Emacs 29.
+
+10
+00:00:25.880 --> 00:00:29.840
+The release cycle for Emacs 29 should begin in December
+
+11
+00:00:29.840 --> 00:00:32.720
+when a branch will be cut and the release work will start.
+
+12
+00:00:32.720 --> 00:00:36.640
+We should be seeing Emacs 29 coming out fairly soon.
+
+13
+00:00:36.640 --> 00:00:38.120
+Here's just a brief overview
+
+14
+00:00:38.120 --> 00:00:39.680
+of some of the things to look forward to
+
+15
+00:00:39.680 --> 00:00:42.400
+coming up in Emacs 29.
+
+16
+00:00:42.400 --> 00:00:45.680
+Overlays have been re-implemented.
+
+17
+00:00:45.680 --> 00:00:47.240
+If you haven't used them before,
+
+18
+00:00:47.240 --> 00:00:51.040
+overlays are a way to apply a set of properties
+
+19
+00:00:51.040 --> 00:00:53.680
+over a range of text so that
+
+20
+00:00:53.680 --> 00:00:55.840
+you can have things like mouse clicks
+
+21
+00:00:55.840 --> 00:00:57.920
+take on different behavior
+
+22
+00:00:57.920 --> 00:00:59.520
+depending on where it happens in the text.
+
+23
+00:00:59.520 --> 00:01:01.720
+This is different than text properties
+
+24
+00:01:01.720 --> 00:01:04.080
+which associate the properties with the text itself.
+
+25
+00:01:04.080 --> 00:01:07.200
+Overlays do not alter the text in any way
+
+26
+00:01:07.200 --> 00:01:09.320
+and they simply, as the name suggests,
+
+27
+00:01:09.320 --> 00:01:10.920
+overlay on the buffer.
+
+28
+00:01:10.920 --> 00:01:14.040
+Now previously, overlays were implemented as linear lists
+
+29
+00:01:14.040 --> 00:01:15.800
+which got very slow when there were
+
+30
+00:01:15.800 --> 00:01:17.840
+a lot of overlays in a buffer.
+
+31
+00:01:17.840 --> 00:01:19.880
+Now they're being re-implemented as trees,
+
+32
+00:01:19.880 --> 00:01:21.880
+so that searching should be very fast, and
+
+33
+00:01:21.880 --> 00:01:24.400
+in fact, comparable to text properties.
+
+34
+00:01:24.400 --> 00:01:26.520
+This is already on the master branch
+
+35
+00:01:26.520 --> 00:01:29.080
+and (more or less) is ready for release.
+
+36
+00:01:29.080 --> 00:01:32.200
+Eglot has been ported into Emacs.
+
+37
+00:01:32.200 --> 00:01:35.560
+Eglot is an LSP [Language Server Protocol] client for Emacs,
+
+38
+00:01:35.560 --> 00:01:38.480
+one of the two that are often used.
+
+39
+00:01:38.480 --> 00:01:40.840
+But now it's going to be included in core,
+
+40
+00:01:40.840 --> 00:01:42.800
+so it's considered official
+
+41
+00:01:42.800 --> 00:01:46.480
+and will be well integrated with other Emacs features.
+
+42
+00:01:46.480 --> 00:01:48.720
+There's going to be a Tree-sitter library.
+
+43
+00:01:48.720 --> 00:01:53.200
+Tree-sitter is a way of building fast incremental parsers.
+
+44
+00:01:53.200 --> 00:01:56.040
+There's a website on Tree-sitter if you Google for that.
+
+45
+00:01:56.040 --> 00:01:57.760
+This can be used for various features,
+
+46
+00:01:57.760 --> 00:01:59.760
+but first and foremost, it'll be used
+
+47
+00:01:59.760 --> 00:02:02.920
+for fontification and indentation in Emacs.
+
+48
+00:02:02.920 --> 00:02:05.600
+Instead of heuristics and regular expressions,
+
+49
+00:02:05.600 --> 00:02:07.400
+you can now build your fontifications
+
+50
+00:02:07.400 --> 00:02:08.720
+based on a parse tree.
+
+51
+00:02:08.720 --> 00:02:10.640
+There's a branch now that supports this
+
+52
+00:02:10.640 --> 00:02:13.600
+for several modes already, like Python, TypeScript,
+
+53
+00:02:13.600 --> 00:02:15.080
+and JavaScript.
+
+54
+00:02:15.080 --> 00:02:18.160
+We don't have anyone yet working on it for C mode
+
+55
+00:02:18.160 --> 00:02:20.480
+but Eli has challenged whether anyone
+
+56
+00:02:20.480 --> 00:02:21.960
+in the community is interested.
+
+57
+00:02:21.960 --> 00:02:25.960
+He would love to see Tree-sitter support added for C mode,
+
+58
+00:02:25.960 --> 00:02:27.880
+because this has been quite slow
+
+59
+00:02:27.880 --> 00:02:29.640
+when dealing with very, very large files
+
+60
+00:02:29.640 --> 00:02:30.840
+and Tree-sitter should help that.
+
+61
+00:02:30.840 --> 00:02:34.320
+There have been significant improvements
+
+62
+00:02:34.320 --> 00:02:36.560
+in dealing with very long lines.
+
+63
+00:02:36.560 --> 00:02:38.160
+This is something that has been
+
+64
+00:02:38.160 --> 00:02:40.480
+a long time frequent complaint.
+
+65
+00:02:40.480 --> 00:02:42.840
+Emacs becomes rather unusable
+
+66
+00:02:42.840 --> 00:02:45.560
+if you open a giant file that's a single long line.
+
+67
+00:02:45.560 --> 00:02:49.560
+Anyone who's ever tried to open a 30 megabyte JSON file
+
+68
+00:02:49.560 --> 00:02:52.200
+that's all on one line will know this pain.
+
+69
+00:02:52.200 --> 00:02:55.960
+Some modes, however, will have to adapt to this change,
+
+70
+00:02:55.960 --> 00:02:58.320
+because sometimes access to the whole buffer
+
+71
+00:02:58.320 --> 00:03:00.480
+is now forcefully restricted.
+
+72
+00:03:00.480 --> 00:03:04.400
+If the mode requires access to the entire buffer
+
+73
+00:03:04.400 --> 00:03:07.960
+at all times to work, then the developer of that mode
+
+74
+00:03:07.960 --> 00:03:10.240
+will need to devise some simplifications
+
+75
+00:03:10.240 --> 00:03:13.160
+so that they don't require that complete access.
+
+76
+00:03:13.160 --> 00:03:15.760
+For example, if a mode used to go way back
+
+77
+00:03:15.760 --> 00:03:16.880
+to the beginning of the buffer
+
+78
+00:03:16.880 --> 00:03:19.520
+in order to determine if there's an unbalanced parenthesis,
+
+79
+00:03:19.520 --> 00:03:23.160
+this won't work in the new long lines support mode,
+
+80
+00:03:23.160 --> 00:03:25.640
+because the entire buffer is not always available.
+
+81
+00:03:25.640 --> 00:03:27.680
+Emacs is sort of doing some
+
+82
+00:03:27.680 --> 00:03:29.920
+restricting of the buffer heuristically
+
+83
+00:03:29.920 --> 00:03:32.200
+in order to keep the visible range working
+
+84
+00:03:32.200 --> 00:03:35.240
+very, very quickly now.
+
+85
+00:03:35.240 --> 00:03:39.040
+Emacs can now build directly with SQLite.
+
+86
+00:03:39.040 --> 00:03:42.360
+This means that SQLite databases
+
+87
+00:03:42.360 --> 00:03:44.840
+can be directly accessible from Emacs.
+
+88
+00:03:44.840 --> 00:03:47.360
+Should be nice for anyone whose mode wants to
+
+89
+00:03:47.360 --> 00:03:50.080
+cache or store some queryable data.
+
+90
+00:03:50.080 --> 00:03:54.960
+The XInput extension is now up to version 2.
+
+91
+00:03:54.960 --> 00:03:58.160
+There are many extensions in this specification.
+
+92
+00:03:58.160 --> 00:03:59.600
+From the user's point of view,
+
+93
+00:03:59.600 --> 00:04:02.920
+it enables things like smooth scrolling and touch devices.
+
+94
+00:04:02.920 --> 00:04:06.320
+Emacs will now use this by default on all systems
+
+95
+00:04:06.320 --> 00:04:08.360
+where the library is installed.
+
+96
+00:04:08.360 --> 00:04:11.320
+It should be on every modern system that uses X.
+
+97
+00:04:11.320 --> 00:04:15.560
+There's also a pure GTK build in Emacs 29.
+
+98
+00:04:15.560 --> 00:04:17.560
+The purpose of this is to allow Emacs
+
+99
+00:04:17.560 --> 00:04:21.160
+on systems without X, such as Wayland or Broadway,
+
+100
+00:04:21.160 --> 00:04:24.640
+to be able to have a graphical build of Emacs.
+
+101
+00:04:24.640 --> 00:04:27.280
+There's also lots of improvements to drag and drop
+
+102
+00:04:27.280 --> 00:04:31.400
+on X systems, for people who like drag and drop.
+
+103
+00:04:31.400 --> 00:04:35.240
+And there's support for double buffering on Microsoft Windows.
+
+104
+00:04:35.240 --> 00:04:38.480
+The last of the headline features
+
+105
+00:04:38.480 --> 00:04:41.640
+coming for Emacs 29 is emoji input.
+
+106
+00:04:41.640 --> 00:04:43.520
+So there will now be a prefix key,
+
+107
+00:04:43.520 --> 00:04:47.320
+C-x 8 e for emoji input,
+
+108
+00:04:47.320 --> 00:04:50.240
+along with several new commands to insert emoji
+
+109
+00:04:50.240 --> 00:04:52.480
+by various forms of shorthand.
+
+110
+00:04:52.480 --> 00:04:54.360
+There will even be an input method
+
+111
+00:04:54.360 --> 00:04:57.600
+where you can write the plain English names of emojis
+
+112
+00:04:57.600 --> 00:05:00.080
+and have the symbol inserted.
+
+113
+00:05:00.080 --> 00:05:02.160
+So that rounds out some of the features
+
+114
+00:05:02.160 --> 00:05:03.680
+coming up for Emacs 29.
+
+115
+00:05:03.680 --> 00:05:05.680
+Sounds like an exciting release
+
+116
+00:05:05.680 --> 00:05:07.360
+and it should be headed your way soon.
+
+117
+00:05:07.360 --> 00:05:09.880
+I hope everybody has fun at the conference
+
+118
+00:05:09.880 --> 00:05:15.280
+and enjoy yourselves.