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!