19 ms·
Emacs 27.1
- anyfoo 6y agoSome goodies in there. For example, a clear direction into making more things work when editing on remote hosts out of the box. I hope lsp/eglot pick that up, so that I can now edit on a remote host via ssh just like I could on a local one and still have semantic completion, references etc. Or the ability to just run ripgrep on the remote host transparently.
- mcqueenjordan 6y agoReally good call outs. Seamless toolchain integration with the remote host while on a TRAMP buffer has been a painpoint for me.
- taeric 6y agoWhat are the specific pain points? Is it a limitation of lsp? This is one of the things that has felt magical in Emacs for near the past decade for me. So much "just works" if local or remote. Now... Now that I am on 4g internet... I admit things can feel slow wicket than I'd care for. :(
- anyfoo 6y agoOne painpoint for me was that no matter what I tried, I couldn't get eglot to connect to a remotely started clangd. I haven't checked if that's solved now, but good to see that there's some momentum in remote editing in general.
- smabie 6y agoHonest question: doesn't sshfs solve this problem? I've never understood the appeal of TRAMP, mounting the remote resources seems like a much better and less finicky solution.
- znpy 6y agoYou might not have the required host permission to mount a filesystem or you might not have sshfs at all (think about gnu emacs on windows). Tramp is agnostic in most things (well, you need an ssh client at least).
- contravariant 6y agoCalling tramp a solution for windows is somewhat iffy though. So far I don't think there's an easy way to simply get it to work on windows (the path handling seems to forbid tramp-like paths on windows, which messes with things quite considerably).
- znpy 6y agoMeh, it worked well enough for me when I had to use it on windows 7 first and 10 later (using putty as ssh client).
- disgruntledphd2 6y agoYeah, you can get it to work with putty, but it's nowhere near as reliable as from Mac/Linux to server (and to be fair, network issues make it a less than optimal solution if you have a choice). These days I just tmux on the server, open emacs and hack away (as long as you can install things on the server).
- deleted 6y ago[deleted]
- dan-robertson 6y agoTramp works for non-ssh remote terminals. Also it leads to remote commands running automatically rather than running commands locally against a remote fs.
- jlg23 6y agoTRAMP works well over slow connections and, if told to save temporary files locally, deals with connection loss pretty well.
- clircle 6y agoAwesome! Great list of updates. But what is early init?
- deleted 6y ago[deleted]
- sjm 6y agoearly-init.el is loaded before the package system is initialized (which also lets you disable the package system before it can possibly be loaded -- useful for people like me who use straight.el instead), while the normal init.el happens after package-initialize.
- Kaze404 6y agoI love the change to adopt XDG standards. It surprised me that this wasn't implemented sooner when I first found out about it.
- andreareina 6y agoIIRC 26 adopted ~/.config. Proper XDG support was coded in last year[1] but has been waiting for the next major release. [1] https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=4118297ae2fab4886b20d193ba511a229637aea3 https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=41182...
- flaxton 6y agoThank you for updating my favorite editor of all time ;-)
- maxgfaraday 6y agoPrelude Emacs is a great ‘distribution’ and this is great to have another amazing emacs release.
- amake 6y agoThis is a very important release for LSP users, as Emacs now has a fast, C-based JSON parser that speeds up e.g. lsp-mode significantly.
- pandatigox 6y agoJust a quick question on this, what's the best way to emulate an ide in emacs? I feel so overwhelmed by the options, and the additional tools you have to install alongside it. For example, python ide in emacs alone requires pyflakes, autopep8, jedi and so on... What's the most catchall, generic ide system where I don't have to fiddle with the config too much?
- moonchild 6y agoI've heard good things about doom emacs and spacemacs; might be worth giving one of those a try.
- stjohnswarts 6y agoDoom Emacs is great an has more emphasis on performance and load time than Spacemacs
- john4532452 6y agoThe main idea of Emacs is unlike other ide's it can be customized greatly to specific users, but Doom Emacs seems to be a ready made configuration. It seems to be opposite of the main idea behind Emacs, yet Doom Emacs seems to be getting popular. Is there anything i am missing.
- smabie 6y agoYou're missing that a default vanilla Emacs experience is pretty shitty. Besides, it's not like you're sacrificing any customizability with Doom/Prelude/Spacemacs, you're just getting a better starting point.
- maxgfaraday 6y agoEmacs has been my power weapon for 30 years now and it has never left me wanting for anything else. Thanks for another great release! The last several years I have been using the “Prelude” distribution of packages and it has been great, it does just enough and doesn’t overreach. Go EMACS!!!!
- dan-robertson 6y agoLots of these changes are quite significant improvements under the hood. One thing emacs has struggled with is that it has been around for a long time so many features were added when the libraries around them were quite immature, and emacs ended up with libraries that were difficult and outdated and insufficient manpower to quickly move to newer libraries. Another issue is the desire for backwards compatibility (which can rule out libraries which eg require gtk or can’t sufficiently cope with non-UTF-8 encodings). Adding harfbuzz gives emacs much better text shaping and let’s emacs get rid of whatever ancient library they were using before. Similarly the old dependency (and security liability) on imagemagick can be dropped. Other improvements should just allow certain elisp code to use C functions to run faster. I think it is a testament to the versatility of emacs lisp as a language that these things were good enough while implemented in pure elisp that they could still be productively used, so no one needed to first request new C functions before they could implement e.g. lsp clients or calculators.
- tome 6y ago> Adding harfbuzz gives emacs much better text shaping FTI "If you give HarfBuzz a font and a string containing a sequence of Unicode codepoints, HarfBuzz selects and positions the corresponding glyphs from the font, applying all of the necessary layout rules and font features. HarfBuzz then returns the string to you in the form that is correctly arranged for the language and writing system." https://harfbuzz.github.io/what-is-harfbuzz.html#what-is-text-shaping https://harfbuzz.github.io/what-is-harfbuzz.html#what-is-tex...
- ashton314 6y agoI’ve been running on bleeding edge releases for about a month now. It’s been a bit rocky at times but I’ve overall been surprised at how stable master has been. I’m delighted to see 27 is out now. If I get fed up with 28 maybe I’ll downgrade to the new stable. :-P The best thing with this release (as far as I am aware) is the JSON parser implemented in C. This should make lsp-more a lot snappier.
- disgruntledphd2 6y agoI normally do this in the lead-up to a new release, but downgrade aftwerwards. Often, there'll be big changes on the master branch after a release, so it tends to be a little less stable (and I normally just need Emacs to work, so not interested).
- smabie 6y agoEmacs felt like it was stagnating around 5 to 10 years ago, but now things are just getting better and better. LSP had been a game changer, for Emacs and all other editors. The days of IDEs are numbered.
- simion314 6y ago>The days of IDEs are numbered. How? if you turn your text editor into an IDE with plugins then you make Emacs an IDE. In my mind an IDE "understands" the entire project not just the opened file.
- smabie 6y agoI guess an IDE has an unclear definition, but I mean stuff like Intellij, Visual Studio, or Eclipse. With LSP along with an explosion of new languages, they don't provide as much value anymore. A high quality language server can provide 99% of what a high quality IDE can (like Intellij). IDEs still have an edge, like with debugging, profiling, or SQL db integration. I've mostly ditched Intellij in favor of Emacs for a large Scala project, something I wouldn't have ever dreamed of doing 5 years ago. I still use Intellij for debugging, but hopefully debugging servers and some Elisp will solve that problem soon.
- pjmlp 6y agoThat is like 10% of IDE capabilities.
- niclo 6y agoCan you please list the other 90% of must have capabilities for day to day development ?
- pjmlp 6y ago- GUI designer for each UI framework available - Visual representation of data structures - Navigating in binary libraries - Architecture diagrams with two way editing - Integration with ticket and source control systems, so that I can relate an issue with a branch and respective set of changed lines of code - Live unit tests - Live static analysis, as one types - Incremental compilation, when hitting run almost everything is pre-compiled - SQL database integration, ER diagrams, OR mappings generation - Management of server instances and cloud services - Memory profilers - GC tuning tools - Code metrics - Graphical debuggers for GPGPU programming - Graphical debuggers for threads, tasks and processes - Handling of processes as single project for micro-services debugging And a couple of other stuff, basically the kind of goodies one gets with Visual Studio Enterprise.
- k_bx 6y agoI wonder whether there's any discussion around addressing the elephant in the room: big config files. Is there any work towards making Emacs be usable immediately, while config being loaded asynchronously in background, adding features like syntax highlighting without blocking the main editing experience?
- fiddlerwoaroof 6y agouse-package already has a way to defer configuration until it’s needed.
- k_bx 6y agoYes, I'm certainly using that, but it's far from being enough to make emacs-with-config a usable replacement for the in-terminal editor.
- fiddlerwoaroof 6y agoIt’s probably not what you want to hear, but I just use emacsclient for that. I agree that the startup time is annoying, though.
- k_bx 6y agoYes, I just use "emacs -nw -q" (aliased as eq) when in terminals, and it's surprisingly good most of the time. But having good startup time always would make a huge difference imho, including Emacs's popularity.
- natrys 6y agoParent is talking about using "emacsclient". Basically you start Emacs in daemon mode (e.g. add "(server-start)" at end of config), and you never kill it. You just pay slow startup cost once, any subsequent client invocation after that is instantaneous.
- smabie 6y agoI would strongly recommend everyone try the native-comp Emacs 28 branch. Native compilation of Elisp files has greatly improved performance and start-up time, with no downside. Though it's bleeding edge, I haven't experienced any issues: everything just works.. faster! It always amazes me that some people are willing to put in such hard work, alone, for open source. The fact that one guy managed to speed up all of Emacs 2x-20x in his spare time for no pay is frankly amazing. Certainly puts my side-projects to shame.
- josteink 6y ago> It always amazes me that some people are willing to put in such hard work, alone, for open source. For many people this is about scratching an itch, their own itch. They improve upon it not for the sake of "open source", but for the sake of making the very same tools they rely on to be better tools. This is how open-source used to work, and this is how it grew.
- jmnicolas 6y ago> It always amazes me that some people are willing to put in such hard work, alone, for open source. Apart of a few well known projects, the open source world is not so rosy. I'm building an app that exports GPX files (XML file where you can store GPS positions, POIs, routes etc). All the examples files on the official website ( https://www.topografix.com/gpx.asp https://www.topografix.com/gpx.asp ) are broken (they return a blank page) and to validate that your file is compliant you have to compile a 15 years old C++ library first (for some reason they refuse to release a binary).
- iudqnolq 6y agoWhat does your app do? That's an area I'm pretty interested in.
- jmnicolas 6y agoIt's a desktop (Windows) map viewer. I have built my own OSM server to pre-generate tiles so my app has offline capabilities (I have a very slow internet connection so online maps are quite laggy). I use it mostly to build routes that I export as gpx files to my Android phone (vehicle nav with Osmand and trekking with Iphigénie).
- phoe-krk 6y ago> Lexical-binding is used by default Finally, about time!
- globular-toast 6y agoLots of people mentioning LSP. I've been an emacs user for over 10 years now. I've installed and tried the LSP modes. I've done it with 27 and jsonc as well. They are slow as hell and buggy. Is this just the accepted way of things now? I like emacs because it's fast. I can't stand using tools that are slower than the speed I can think.
- benley 6y agoI can't speak to bugginess in general, but they're not supposed to be slow. I've used emacs with lsp modes for Haskell, Elm, Bash, and Python and they've all seemed very quick and responsive to me; if your setup is sluggish there is probably something amiss that can be fixed!
- zelly 6y agoYes you're not alone, it slows Emacs to an absolute crawl. I was excited about LSP a couple years ago when it came out, but it turns out that it's another one of those things that's better in theory than in practice. There's nothing worse than having your editor freeze up while you're typing. I've had bad experiences with clangd especially where it consumes all available memory when faced with large codebases. It's not just slow on Emacs, it's slow on the other editors that use LSP like VS Code. If I were conspiracy minded, I would think this was an elaborate a conspiracy by Microsoft to kill off programming on Linux and get everyone on Visual Studio and WSL.
- disgruntledphd2 6y agoYou needed to upgrade a bunch of variables to account for the absurd amount of json LSP modes spit out, and use the C-based json parser that's available in 27 (I've been running from the source branch for a few months now) and I personally find lsp-mode super, super good. It's like 100x better than TAGS files (because I don't have to generate them) and has made my navigation of a new codebase much, much more smooth and effective.
- zarkov99 6y agoWhen I tried LSP for C++, speed wasn't the issue, though you do have to jump through some hoops to make sure emacs uses native JSON parsing. The problem was just stability as LSP for C++ was stupid buggy as recently as a couple of months ago.
- p4bl0 6y agoIt seems to be the end of the infamous `unexec` function. I hope its story will not be forgotten, it's a very amusing hack :).
- submeta 6y agoAfter seven years of not working with Emacs, a few weeks ago I gave it a try. I was negative, biased and convinced that it would just be a distraction, a time waster. But the more I dived into it, I realized that the Emacs that I worked with in 2010-2013 was not the same anymore. Packages like `dash.el' or `s.el' make programming in Elisp fun! Then there are beautiful themes like `spacemacs'. Also packages for managing notes and files (`Deft' for instance). Within a few days I migrated all my note-taking and task-managfement-systems to Emacs. Previously I was using Evernote, Bear app, Ulysses app for note taking and TaskPaper + OmniFocus for project management. Emacs + Org-Mode replaced all those apps and many more. And it makes me `dance' with my data by using Elisp to transform all my data into ways I need and want. I realized that I didn't use Emacs to its full potential in 2013 because I was reluctant to dive into (E)Lisp. This time I made a full dive into it. And I am absolutely loving it. I had some contanct with Scheme some twenty years ago, and that influenced me very much. But CL and Elisp offer much more. Emacs does not need to be an IDE, but it can be a decent one. (Yes, I know and use intelliJ: PyCharm and PHPStorm). It can be used for everything text: Note taking, programming, transforming text. But via org-mode for much more than text: Project- and task-management, ascii-tables, note-management system. I even initiate my Google searches from within Emacs and keep a track of my searches via org-capture. Thank you for all the maintainers! -- Edit: - I am a user of a Mac with a US keyboard. Using an app named "Karabiner Elements" to remap my keys. I have my caps and enter key behave like a Control key whenever I hit them in combo with other keys. That way I have two control keys in reach of both my pinkies. - r/emacs and r/orgmode are super helpful communities - learn to program in Lisp and have a look at Lisp macros. That's a very useful concept to write DSLs to transform code very easily. - scratch buffer is your friend in learning elisp. Place the cursor after the last colon of your code and hit `C-x C-e`, that will evaluate that line. - Learn about debugging your Elisp code. Edebug (`edebug-defun`) is your friend. See http://blog.binchen.org/posts/my-work-flow-to-debug-emacs-plugin.html http://blog.binchen.org/posts/my-work-flow-to-debug-emacs-pl... - Be patient. Once you have mastered the basics, you'll fly!
- davydog187 6y agoWow, thank you for introducing me to `dash.el` and `s.el`. I tried to learn Elisp a year back and was frustrating by the lack of basic functional facilities that I'm used to in my primary language (Elixir). How do you recommend diving deeper? I feel like there is so much to Emacs that would make me much more productive, but I'm apprehensive to dive below the surface
- ycombinete 6y agoIs there a way to find out if/when this version will be available for Windows?
- rayalez 6y agoDid anyone manage to make a good Emacs config for effective React webdev? I'm really missing graphql and styled components syntax highlighting and generally a bugless properly working webdev mode. Currently it keeps messing up indentation and losing syntax highlighting. I tried moving to VS code, and I saw how amazing an editor designed for webdev can be. But despite all the issues, I'm still much more productive in emacs, so I went back. I really wish it was possible to setup emacs for modern webdev, but I haven't found a way yet. Any tips/advice?
- petr_tik 6y agoI haven’t done any web development, so my best recommendation is to forward you to search relevant keywords and then ask questions on r/emacs or r/spacemacs
- fovc 6y agoWon't get you graphql literals, but the new Emacs has much better JSX support. Reposting my setup: """ Disclosure: I'm the author of rjsx-mode) The best setup I've found is to use js2-mode for .js and rjsx-mode for .jsx, which parse the buffer for syntax highlighting, local refactoring (with js2r) and basic linting. For typescript, use typescript-mode. Flow support is quite bad ATM nvm.el replaces the shell scripts from nvm. Add a jsconfig.json to your project root and enable tide-mode for completion. This has worked far better than tern-mode, which some people recommend. For fuller linting than what js2/rjsx offer, use flycheck. Eslint support is built-in, so it should just work, I think. [2018 update: I prefer using tslint, which you can accomplish with: (flycheck-add-mode 'typescript-tslint 'js2-mode) (flycheck-add-mode 'typescript-tslint 'rjsx-mode)] Finally, for build management, I use prodigy to run webpack, babel, ts, etc.
- brlewis 6y agoUsing prettier-js-mode I don't worry about messed up indentation; any problems are fixed on save.
- sufyanadam 6y agoI've been using web-mode and it's awesome. Works well with jsx. My config is here https://github.com/sufyanadam/.emacs.d https://github.com/sufyanadam/.emacs.d
- arminiusreturns 6y agoCheck out sane-emacs for a sane yet simple starting config.
- tome 6y agoAnother emacs thread with no mention[1] of straight.el. How do people sanely manage their emacs configurations without it? Is there a way to pin dependency versions that you get from MELPA or ELPA? Otherwise one risks one's setup completely breaking with a new dependency release and having no way of getting back to the old configuration! [1] OK, one brief mention
- NateEag 6y agoI have some code to run an update then commit every package individually. That way I can always get back to any previous state and I can use git bisect to find the culprit when a package update causes a regression of some kind.
- daptaq 6y agoSimple: You use ELPA or MELPA Stable, and if necessary clone the repo and install the package via M-x package-install-file.
- tome 6y agoHmm, but as I understand it neither ELPA nor MELPA can be rolled back. https://emacs.stackexchange.com/questions/28731/easiest-way-to-downgrade-a-package-installed-via-melpa https://emacs.stackexchange.com/questions/28731/easiest-way-...