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:18.442 Native compilation should 00:18.442 --> 00:19.959 make everything way faster, 00:19.959 --> 00:21.476 and emoji support will probably 00:21.476 --> 00:22.549 make things more fun. 😎👍 00:22.549 --> 00:25.133 John Wiegley will share more Emacs 28 details 00:25.133 --> 00:26.913 in his update, so check out his talk. 00:26.913 --> 00:28.783 Andrea Corallo's giving a talk 00:28.783 --> 00:30.418 on native compilation too. 00:30.418 --> 00:31.206 2. 00:31.206 --> 00:33.732 Org mode is now at version 9.5. 00:33.732 --> 00:35.086 New features include 00:35.086 --> 00:36.935 a library for managing citations, 00:36.935 --> 00:38.414 asynchronous session support 00:38.414 --> 00:39.375 for code blocks, 00:39.375 --> 00:40.342 and better control 00:40.342 --> 00:41.595 of your agenda's appearance. 00:41.595 --> 00:43.372 If you've been getting your Org packages 00:43.372 --> 00:44.506 from Org ELPA, 00:44.506 --> 00:46.128 you can update your configuration 00:46.128 --> 00:47.896 to get Org from GNU ELPA 00:47.896 --> 00:50.155 and org-contrib from NonGNU ELPA. 00:50.155 --> 00:52.278 The new release of the Org Roam package 00:52.278 --> 00:54.185 should be a faster and more consistent way 00:54.185 --> 00:56.060 to use Org to manage a knowledgebase, 00:56.060 --> 00:58.423 and org-roam-ui looks pretty snazzy. 00:58.423 --> 01:00.531 The best way to keep up with Org changes 01:00.531 --> 01:02.556 is to check out the blog This Month in Org. 01:02.556 --> 01:03.439 3. 01:03.439 --> 01:05.469 New Magit major release! 01:05.469 --> 01:07.781 Jonas Bernoulli has split some functionality 01:07.781 --> 01:09.557 into other packages so that 01:09.557 --> 01:11.719 Emacs Lisp developers can use them, such as 01:11.719 --> 01:14.049 magit-section, transient, and forge. 01:14.049 --> 01:16.502 Here's an example of using magit-section 01:16.502 --> 01:17.773 to manage groups of buffers. 01:17.773 --> 01:19.333 You can learn more about Transient 01:19.333 --> 01:20.842 in the talk on self-describing 01:20.842 --> 01:23.538 smart domain-specific languages or DSLs. 01:23.538 --> 01:24.320 4. 01:24.320 --> 01:26.545 In terms of smaller packages, there's been 01:26.545 --> 01:28.625 a lot of activity around completion. 01:28.625 --> 01:30.292 Karthik has a great diagram, 01:30.292 --> 01:32.459 and Prot explains how things work together. 01:32.459 --> 01:34.414 I think the idea is that instead of having 01:34.414 --> 01:36.066 one large completion system 01:36.066 --> 01:38.344 like Helm or Icicles, you can choose 01:38.344 --> 01:40.110 a few different, smaller packages 01:40.110 --> 01:41.869 and configure them to work together. 01:41.869 --> 01:43.129 If you're curious about this, 01:43.129 --> 01:45.159 you might start with either selectrum 01:45.159 --> 01:47.871 or vertico, which are both completion interfaces, 01:47.871 --> 01:50.443 add marginalia for more information, 01:50.443 --> 01:52.222 and try consult for many useful 01:52.222 --> 01:53.233 completing commands. 01:53.233 --> 01:54.279 There are so many options, 01:54.279 --> 01:55.867 so it might be useful to check out 01:55.867 --> 01:56.714 some discussions. 01:56.714 --> 01:57.477 5. 01:57.477 --> 01:59.531 Embark is usually mentioned as part of 01:59.531 --> 02:00.607 that group of packages, 02:00.607 --> 02:02.196 but it's well worth looking into 02:02.196 --> 02:03.895 even if you use a different system. 02:03.895 --> 02:06.417 Embark lets you have context-sensitive shortcuts 02:06.417 --> 02:08.796 that work on things in buffers, minibuffers, 02:08.796 --> 02:10.768 and even collections of things. 02:10.768 --> 02:11.737 You can also use it 02:11.737 --> 02:12.912 when you start doing one command 02:12.912 --> 02:15.012 and then decide to do a different one instead. 02:15.012 --> 02:16.271 For more ideas, check out 02:16.271 --> 02:17.495 Fifteen Ways to Use Embark. 02:17.495 --> 02:18.285 6. 02:18.285 --> 02:20.163 Now that there are Emacs Lisp bindings 02:20.163 --> 02:22.139 for tree-sitter, we can work more easily 02:22.139 --> 02:23.799 with the structure of code instead of 02:23.799 --> 02:25.461 just using regular expressions. 02:25.461 --> 02:26.209 Check out the talk 02:26.209 --> 02:27.804 on Tree-edit and structural editing 02:27.804 --> 02:28.593 to learn more. 02:28.593 --> 02:30.056 You can use tree-sitter for 02:30.056 --> 02:31.951 intelligent snippets that get information 02:31.951 --> 02:33.169 from the code around them, 02:33.169 --> 02:35.064 editing Lisp expressions, 02:35.064 --> 02:37.401 and navigating text objects in Evil mode. 02:37.401 --> 02:39.670 (That's when Emacs is pretending to be Vi.) 02:39.670 --> 02:42.563 Dynamic modules help us add more to Emacs 02:42.563 --> 02:44.388 than Emacs Lisp easily offers, 02:44.388 --> 02:46.804 such as structural editing in OCaml 02:46.804 --> 02:48.729 and using Rust to figure out parentheses 02:48.729 --> 02:50.086 and indentation for Lisp. 02:50.086 --> 02:50.999 If you're curious, 02:50.999 --> 02:51.923 check out the talk on 02:51.923 --> 02:54.336 Extending Emacs in Rust with Dynamic Modules. 02:54.336 --> 02:55.239 7. 02:55.239 --> 02:57.294 Collaborative editing is now much easier 02:57.294 --> 02:59.890 since the CRDT package is in GNU ELPA. 02:59.890 --> 03:01.632 It allows multiple people to edit 03:01.632 --> 03:03.285 the same file over the network, 03:03.285 --> 03:05.025 using their own Emacs. 03:05.025 --> 03:06.850 This means you can keep your own config 03:06.850 --> 03:08.674 and keybindings, yay! 03:08.674 --> 03:10.400 Watch the Emacs Research Group talk 03:10.400 --> 03:12.185 for an example of how several people 03:12.185 --> 03:13.337 used it to work together. 03:13.337 --> 03:13.838 8. 03:13.838 --> 03:15.401 In case you're still under the impression 03:15.401 --> 03:17.049 that Emacs is just a text editor, 03:17.049 --> 03:18.560 some folks have been working on 03:18.560 --> 03:20.254 pretty neat graphical experiments. 03:20.254 --> 03:22.432 These OpenGL bindings for Emacs Lisp 03:22.432 --> 03:24.195 use an embedded xwidget, 03:24.195 --> 03:26.607 while other prototypes use the SVG support 03:26.607 --> 03:27.700 that's built into Emacs 03:27.700 --> 03:29.047 for Gantt charts, 03:29.047 --> 03:29.819 scribbles, 03:29.819 --> 03:31.320 and even diagrams. 03:31.320 --> 03:32.790 The color-picker from that one 03:32.790 --> 03:34.841 looks particularly useful for CSS. 03:34.841 --> 03:37.043 If you want to play around with adding SVGs 03:37.043 --> 03:38.722 to your files and interfaces, 03:38.722 --> 03:39.762 svg-icon 03:39.762 --> 03:40.679 and svg-lib 03:40.679 --> 03:42.733 might be good places to start. (Reddit) 03:42.733 --> 03:44.207 Of course, there's always a place 03:44.207 --> 03:45.209 for ASCII art, 03:45.209 --> 03:46.933 especially with the new boxy package 03:46.933 --> 03:48.433 that you can use for org files, 03:48.433 --> 03:49.753 imenu navigation, 03:49.753 --> 03:51.418 and even things in real life. 03:51.418 --> 03:52.208 9. 03:52.208 --> 03:54.411 There have been a lot of great posts, videos, 03:54.411 --> 03:56.312 and livestreams about Emacs this year. 03:56.312 --> 03:57.574 In addition to the ones 03:57.574 --> 03:58.973 from System Crafters, 03:58.973 --> 04:00.153 Emacs Elements, 04:00.153 --> 04:01.664 and Protesilaos, 04:01.664 --> 04:02.474 John Kitchin 04:02.474 --> 04:03.220 and Mike Zamansky 04:03.220 --> 04:04.255 are back, hooray! 04:04.255 --> 04:06.626 And Marcin Borkowski has just finished 04:06.626 --> 04:08.516 writing an intermediate textbook 04:08.516 --> 04:09.751 Emacs Lisp, too! 04:09.751 --> 04:10.422 10. 04:10.422 --> 04:11.929 Lastly, if you want to chat 04:11.929 --> 04:13.083 with other Emacs folks 04:13.083 --> 04:15.284 and get help on Emacs, Org mode, 04:15.284 --> 04:16.211 or other topics, 04:16.211 --> 04:17.436 the #emacs and #org-mode 04:17.436 --> 04:19.861 Internet Relay Chat or IRC channels 04:19.861 --> 04:21.747 are now on the libera.chat network 04:21.747 --> 04:23.013 instead of Freenode. 04:23.013 --> 04:24.888 If you'd like to add something I've missed, 04:24.888 --> 04:26.583 please add them to the wiki page, 04:26.583 --> 04:29.034 or e-mail me at sacha@sachachua.com . 04:29.034 --> 04:30.554 That's all for this quick review. 04:30.554 --> 04:33.104 Enjoy the rest of EmacsConf 2021!