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!