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 --> 00:02:12.064
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 --> 00:02:44.655
and indentation for Lisp.
02:44.656 --> 02:45.559
7.
02:45.559 --> 02:47.614
Collaborative editing is now much easier
02:47.614 --> 02:50.210
since the CRDT package is in GNU ELPA.
02:50.210 --> 02:51.952
It allows multiple people to edit
02:51.952 --> 02:53.605
the same file over the network,
02:53.605 --> 02:55.345
using their own Emacs.
02:55.345 --> 02:57.170
This means you can keep your own config
02:57.170 --> 02:58.994
and keybindings, yay!
02:58.994 --> 03:00.720
Watch the Emacs Research Group talk
03:00.720 --> 03:02.505
for an example of how several people
03:02.505 --> 00:03:03.656
used it to work together.
03:03.657 --> 03:04.158
8.
03:04.158 --> 03:05.721
In case you're still under the impression
03:05.721 --> 03:07.369
that Emacs is just a text editor,
03:07.369 --> 03:08.880
some folks have been working on
03:08.880 --> 03:10.574
pretty neat graphical experiments.
03:10.574 --> 03:12.752
These OpenGL bindings for Emacs Lisp
03:12.752 --> 03:14.515
use an embedded xwidget,
03:14.515 --> 03:16.927
while other prototypes use the SVG support
03:16.927 --> 03:18.020
that's built into Emacs
03:18.020 --> 03:19.367
for Gantt charts,
03:19.367 --> 03:20.139
scribbles,
03:20.139 --> 03:21.640
and even diagrams.
03:21.640 --> 03:23.110
The color-picker from that one
03:23.110 --> 03:25.161
looks particularly useful for CSS.
03:25.161 --> 03:27.363
If you want to play around with adding SVGs
03:27.363 --> 03:29.042
to your files and interfaces,
03:29.042 --> 03:30.082
svg-icon
03:30.082 --> 03:30.999
and svg-lib
03:30.999 --> 03:33.053
might be good places to start. (Reddit)
03:33.053 --> 03:34.527
Of course, there's always a place
03:34.527 --> 03:35.529
for ASCII art,
03:35.529 --> 03:37.253
especially with the new boxy package
03:37.253 --> 03:38.753
that you can use for org files,
03:38.753 --> 03:40.073
imenu navigation,
03:40.073 --> 00:03:41.737
and even things in real life.
03:41.738 --> 03:42.528
9.
03:42.528 --> 03:44.731
There have been a lot of great posts, videos,
03:44.731 --> 03:46.632
and livestreams about Emacs this year.
03:46.632 --> 03:47.894
In addition to the ones
03:47.894 --> 03:49.293
from System Crafters,
03:49.293 --> 03:50.473
Emacs Elements,
03:50.473 --> 03:51.984
and Protesilaos,
03:51.984 --> 03:52.794
John Kitchin
03:52.794 --> 03:53.540
and Mike Zamansky
03:53.540 --> 03:54.575
are back, hooray!
03:54.575 --> 03:56.946
And Marcin Borkowski has just finished
03:56.946 --> 03:58.836
writing an intermediate textbook
03:58.836 --> 00:04:00.070
Emacs Lisp, too!
04:00.071 --> 04:00.742
10.
04:00.742 --> 04:02.249
Lastly, if you want to chat
04:02.249 --> 04:03.403
with other Emacs folks
04:03.403 --> 04:05.604
and get help on Emacs, Org Mode,
04:05.604 --> 04:06.531
or other topics,
04:06.531 --> 04:07.756
the #emacs and #org-mode
04:07.756 --> 04:10.181
Internet Relay Chat or IRC channels
04:10.181 --> 04:12.067
are now on the libera.chat network
04:12.067 --> 04:13.333
instead of Freenode.
04:13.333 --> 04:15.208
If you'd like to add something I've missed,
04:15.208 --> 04:16.903
please add them to the wiki page,
04:16.903 --> 04:19.354
or e-mail me at sacha@sachachua.com .
04:19.354 --> 04:20.874
That's all for this quick review.
04:20.874 --> 04:23.424
Enjoy the rest of EmacsConf 2021!