WEBVTT
00:00.003 --> 00:01.519
I'm Sacha Chua, and here are
00:01.519 --> 00:03.754
ten Emacs News highlights for 2021.
00:03.754 --> 00:05.305
If you want to follow the links,
00:05.305 --> 00:06.846
check out the wiki page at
00:06.846 --> 00:11.024
https://emacsconf.org/2021/talks/news/ .
00:11.024 --> 00:13.442
1. The Emacs developers are currently
00:13.442 --> 00:15.346
working on Emacs 28.1,
00:15.346 --> 00:17.119
which will be the next major release.
00:17.119 --> 00:19.703
John Wiegley will share more Emacs 28 details
00:19.703 --> 00:21.483
in his update, so check out his talk.
00:21.483 --> 00:23.353
Andrea Corallo's giving a talk
00:23.353 --> 00:24.988
on native compilation too.
00:24.988 --> 00:25.776
2.
00:25.776 --> 00:28.302
Org Mode is now at version 9.5.
00:28.302 --> 00:29.656
New features include
00:29.656 --> 00:31.505
a library for managing citations,
00:31.505 --> 00:32.984
asynchronous session support
00:32.984 --> 00:33.945
for code blocks,
00:33.945 --> 00:34.912
and better control
00:34.912 --> 00:36.165
of your agenda's appearance.
00:36.165 --> 00:37.942
If you've been getting your Org packages
00:37.942 --> 00:39.076
from Org ELPA,
00:39.076 --> 00:40.698
you can update your configuration
00:40.698 --> 00:42.466
to get Org from GNU ELPA
00:42.466 --> 00:44.725
and org-contrib from NonGNU ELPA.
00:44.725 --> 00:46.848
The new release of the Org Roam package
00:46.848 --> 00:48.755
should be a faster and more consistent way
00:48.755 --> 00:50.630
to use Org to manage a knowledgebase,
00:50.630 --> 00:52.993
and org-roam-ui looks pretty snazzy.
00:52.993 --> 00:55.101
The best way to keep up with Org changes
00:55.101 --> 00:57.126
is to check out the blog This Month in Org.
00:57.126 --> 00:58.009
3.
00:58.009 --> 01:00.039
New Magit major release!
01:00.039 --> 01:02.351
Jonas Bernoulli has split some functionality
01:02.351 --> 01:04.127
into other packages so that
01:04.127 --> 01:06.289
Emacs Lisp developers can use them, such as
01:06.289 --> 01:08.619
magit-section, transient, and forge.
01:08.619 --> 01:11.072
Here's an example of using magit-section
01:11.072 --> 01:12.343
to manage groups of buffers.
01:12.343 --> 01:13.903
You can learn more about Transient
01:13.903 --> 01:15.412
in the talk on self-describing
01:15.412 --> 01:18.108
smart domain-specific languages or DSLs.
01:18.108 --> 01:18.890
4.
01:18.890 --> 01:21.115
In terms of smaller packages, there's been
01:21.115 --> 01:23.195
a lot of activity around completion.
01:23.195 --> 01:24.862
Karthik has a great diagram,
01:24.862 --> 01:27.029
and Prot explains how things work together.
01:27.029 --> 01:28.984
I think the idea is that instead of having
01:28.984 --> 01:30.636
one large completion system
01:30.636 --> 01:32.914
like Helm or Icicles, you can choose
01:32.914 --> 01:34.680
a few different, smaller packages
01:34.680 --> 01:36.439
and configure them to work together.
01:36.439 --> 01:37.699
If you're curious about this,
01:37.699 --> 01:39.729
you might start with either selectrum
01:39.729 --> 01:42.441
or vertico, which are both completion interfaces,
01:42.441 --> 01:45.013
add marginalia for more information,
01:45.013 --> 01:46.792
and try consult for many useful
01:46.792 --> 01:47.803
completing commands.
01:47.803 --> 01:48.849
There are so many options,
01:48.849 --> 01:50.437
so it might be useful to check out
01:50.437 --> 01:51.284
some discussions.
01:51.284 --> 01:52.047
5.
01:52.047 --> 01:54.101
Embark is usually mentioned as part of
01:54.101 --> 01:55.177
that group of packages,
01:55.177 --> 01:56.766
but it's well worth looking into
01:56.766 --> 01:58.465
even if you use a different system.
01:58.465 --> 02:00.987
Embark lets you have context-sensitive shortcuts
02:00.987 --> 02:03.366
that work on things in buffers, minibuffers,
02:03.366 --> 02:05.338
and even collections of things.
02:05.338 --> 02:06.307
You can also use it
02:06.307 --> 02:07.482
when you start doing one command
02:07.482 --> 02:09.582
and then decide to do a different one instead.
02:09.582 --> 02:10.841
For more ideas, check out
02:10.841 --> 02:12.065
Fifteen Ways to Use Embark.
02:12.065 --> 02:12.855
6.
02:12.855 --> 02:14.733
Now that there are Emacs Lisp bindings
02:14.733 --> 02:16.709
for tree-sitter, we can work more easily
02:16.709 --> 02:18.369
with the structure of code instead of
02:18.369 --> 02:20.031
just using regular expressions.
02:20.031 --> 02:20.779
Check out the talk
02:20.779 --> 02:22.374
on Tree-edit and structural editing
02:22.374 --> 02:23.163
to learn more.
02:23.163 --> 02:24.626
You can use tree-sitter for
02:24.626 --> 02:26.521
intelligent snippets that get information
02:26.521 --> 02:27.739
from the code around them,
02:27.739 --> 02:29.634
editing Lisp expressions,
02:29.634 --> 02:31.971
and navigating text objects in Evil mode.
02:31.971 --> 02:34.240
(That's when Emacs is pretending to be Vi.)
02:34.240 --> 02:37.133
Dynamic modules help us add more to Emacs
02:37.133 --> 02:38.958
than Emacs Lisp easily offers,
02:38.958 --> 02:41.374
such as structural editing in OCaml
02:41.374 --> 02:43.299
and using Rust to figure out parentheses
02:43.299 --> 02:44.656
and indentation for Lisp.
02:44.656 --> 02:45.569
If you're curious,
02:45.569 --> 02:46.493
check out the talk on
02:46.493 --> 02:48.906
Extending Emacs in Rust with Dynamic Modules.
02:48.906 --> 02:49.809
7.
02:49.809 --> 02:51.864
Collaborative editing is now much easier
02:51.864 --> 02:54.460
since the CRDT package is in GNU ELPA.
02:54.460 --> 02:56.202
It allows multiple people to edit
02:56.202 --> 02:57.855
the same file over the network,
02:57.855 --> 02:59.595
using their own Emacs.
02:59.595 --> 03:01.420
This means you can keep your own config
03:01.420 --> 03:03.244
and keybindings, yay!
03:03.244 --> 03:04.970
Watch the Emacs Research Group talk
03:04.970 --> 03:06.755
for an example of how several people
03:06.755 --> 03:07.907
used it to work together.
03:07.907 --> 03:08.408
8.
03:08.408 --> 03:09.971
In case you're still under the impression
03:09.971 --> 03:11.619
that Emacs is just a text editor,
03:11.619 --> 03:13.130
some folks have been working on
03:13.130 --> 03:14.824
pretty neat graphical experiments.
03:14.824 --> 03:17.002
These OpenGL bindings for Emacs Lisp
03:17.002 --> 03:18.765
use an embedded xwidget,
03:18.765 --> 03:21.177
while other prototypes use the SVG support
03:21.177 --> 03:22.270
that's built into Emacs
03:22.270 --> 03:23.617
for Gantt charts,
03:23.617 --> 03:24.389
scribbles,
03:24.389 --> 03:25.890
and even diagrams.
03:25.890 --> 03:27.360
The color-picker from that one
03:27.360 --> 03:29.411
looks particularly useful for CSS.
03:29.411 --> 03:31.613
If you want to play around with adding SVGs
03:31.613 --> 03:33.292
to your files and interfaces,
03:33.292 --> 03:34.332
svg-icon
03:34.332 --> 03:35.249
and svg-lib
03:35.249 --> 03:37.303
might be good places to start. (Reddit)
03:37.303 --> 03:38.777
Of course, there's always a place
03:38.777 --> 03:39.779
for ASCII art,
03:39.779 --> 03:41.503
especially with the new boxy package
03:41.503 --> 03:43.003
that you can use for org files,
03:43.003 --> 03:44.323
imenu navigation,
03:44.323 --> 03:45.988
and even things in real life.
03:45.988 --> 03:46.778
9.
03:46.778 --> 03:48.981
There have been a lot of great posts, videos,
03:48.981 --> 03:50.882
and livestreams about Emacs this year.
03:50.882 --> 03:52.144
In addition to the ones
03:52.144 --> 03:53.543
from System Crafters,
03:53.543 --> 03:54.723
Emacs Elements,
03:54.723 --> 03:56.234
and Protesilaos,
03:56.234 --> 03:57.044
John Kitchin
03:57.044 --> 03:57.790
and Mike Zamansky
03:57.790 --> 03:58.825
are back, hooray!
03:58.825 --> 04:01.196
And Marcin Borkowski has just finished
04:01.196 --> 04:03.086
writing an intermediate textbook
04:03.086 --> 04:04.321
Emacs Lisp, too!
04:04.321 --> 04:04.992
10.
04:04.992 --> 04:06.499
Lastly, if you want to chat
04:06.499 --> 04:07.653
with other Emacs folks
04:07.653 --> 04:09.854
and get help on Emacs, Org Mode,
04:09.854 --> 04:10.781
or other topics,
04:10.781 --> 04:12.006
the #emacs and #org-mode
04:12.006 --> 04:14.431
Internet Relay Chat or IRC channels
04:14.431 --> 04:16.317
are now on the libera.chat network
04:16.317 --> 04:17.583
instead of Freenode.
04:17.583 --> 04:19.458
If you'd like to add something I've missed,
04:19.458 --> 04:21.153
please add them to the wiki page,
04:21.153 --> 04:23.604
or e-mail me at sacha@sachachua.com .
04:23.604 --> 04:25.124
That's all for this quick review.
04:25.124 --> 04:27.674
Enjoy the rest of EmacsConf 2021!