I've been using emacs for 30 years and have tried VS code several times but the muscle memory on Emacs has prevented me for switching. I've gotten LSP on emacs working well enough but the performance just isn't there. So today thanks to your suggestion I tried it once more with the Awesome Emacs Keymap extension and right away I ran into not having dired mode to switch files.
A quick google search got me vscode-dired (incase anyone else runs into it):
that seems to satisfy the muscle memory... and it seems at first glance that this time the switch to vscode might actually stick. (thanks for the link to the emacs keymap extension)
We'll see how it goes!
edit: After even 5 minutes of building some rust code I ran into too many issues! I love the syntax highlighting in VS Code and everything else but I have way too much custom elisp to build and debug Rust/Go/C++ and recreating all that in VSCode or learning the new bindings is a bridge too far! I would pay real money to someone who would build an amazing performant experience for emacs. Sigh.
Depending on the language you use VScode might not be any more performant because it probably uses the same LSP on top of electron instead of elisp. I write Rust/C++ on a sizable project and since everyone depends on rust-analyzer* all IDEs are just unbearably slow and mostly useless in language integration beyond basic refactors and click to go to definition.
* except RustRover but that comes with its own set of issues
Nothing special or too sophisticated. On the one hand I use Just (a command runner) to standardize specific build and test commands that call cargo with various flags. Here is a simple example from one of my repos: https://github.com/deepmesa/deepmesa-rs/blob/mainline/justfi...
Then I have a bunch of elisp code that calls just and / or generates boilerplate code right in the buffer - M-x new-macro or M-x run-test (asks for a test to run) etc. I keep writing more elisp as I go along and add specific key bindings to specific things and now its too hard to move away from it all.
Github should donate a license for Github Enterprise to gnome so that the gnome folks can have the best of both worlds - self hosted + github. Its a win for github to have a big project like gnome running on GHE.
Gnome already discounted Gitlab Enterprise as an option because its proprietary.
It is very hypocritical to promote free software while using proprietary software that you got special privilege for on the backend. KDE had the same line of thought when they chose Phabricator - if features like LDAP weren't locked behind Gitlab EE they would have used that, but they were only considering freedom respecting options, because they are communities of hackers that want access to improve their tools.
What kind of LDAP functionality did KDE want? LDAP login is in GitLab CE (open source) but LDAP group sync is in GitLab Enterprise Edition (proprietary).
GNOME is part of the GNU project, so the only "pressure" they could apply to GNOME is to make their enterprise offering entirely free software (at which point they will run it themselves because of GNUs and the FSFs position on Service-as-a-Software-Substitute[1]).
I've been using Emacs for over 15 years now and I do almost all my work in it. The two things that I still haven't found good solutions for in emacs are available out of the box in almost every editor today:
1. Autocomplete of methods, classes, variables etc
2. Auto import statement organisation
Yes I am aware of JDEE for #2 and I am aware of emacswiki/autocomplete but none of those solutions are as smooth, well integrated or work well enough like they do in atom or visual studio.
If someone was to rethink the problem from the ground up and solve it in an elegant and efficient way my life would be complete.
Emacs features vary wildly in support from language to language - in Go, for instance, it's very easy to get both those working, while in Java it requires something more complicated such as eclim. company-mode is by far the best completion frontend, but the quality of the completions is dependent on how good the backend is, which varies a lot.
It basically takes the power of eclipse and runs it in a lightweight daemon, then ports most of the features (auto completion, refactoring, automatic imports, etc) directly to emacs.
I actually switched back to Rstudio, which has everything ESS has to offer (eg helm style autocomplete) plus much better autocomplete for tidy verse pipes.
I have not really used Rstudio, so I can't compare. I tried RStudio first, but then I was up and running with ESS effortlessly and have looked no further. Its the integration of Emacs with other development enviroments that keeps my life simple :-)
Could you clarify what you mean by "integration with other development environments"? I assume you're in data science -- could you describe how Emacs solve your need?
Also, am I correct in thinking that ESS company-mode autocomplete does not autocomplete data frame's variable names when using tidyverse's pipe?
Late response, but I moved to Emacs after being a very happy user of Rstudio for many many years.
Rstudio is a better editor for R. The problem is that it's a worse editor for everything else, and these days I write plenty of else, too. Being able to flip between different files, language shells, terminals, magit buffers, etc. effortlessly, makes putting up with worse autocomplete in R a pretty good deal for me. It does annoy me a little, but R is hardly a verbose language, and elisp is high-level enough that I have a shot at extending / changing the behavior if it really bothers me.
Is that a Java-specific thing? My experience with C++ is that ever since libclang became widely used, autocompletion works really well—but that's because libclang is so good. Is there an analog of libclang for Java?
What package are you using for your Emacs back end for completion? I've tried several and never really found them stable or even working in some cases. I write a couple thousand lines of C++ every week in emacs and I've actually become very productive without auto completion, so perhaps I'm not missing it anymore at all.
I use irony-mode (with its flycheck and company support) on OSX, and I think it works really well. It uses libclang as the backend, so for completion it's about as precise as a compiler can be.
I code in C so can't speak for C++, but I imagine it works well for that too: irony-mode as a backend and company-mode as frontend. It pretty much gives the Xcode auto-complete experience, and I think it works great!
Seconded this, this is my setup on both Windows and Linux and works for me across multi-million-line C and C++ codebases. It's quite finicky to get set up on Windows at first (or at least, it was for me last time I tried), but once you have irony-mode working with libclang, you don't need to think about it ever again, except for changing a couple compiler flags here and there.
My one complaint is that clang's MSVC mode is imperfect, and sometimes suggests some strange things (or produces some false negative/positive in syntax checking). But they've been getting much better lately and it's never caused me much pain.
e: also, second what a sibling said - combo this with flycheck-mode and you have yourself a full-blown C++ IDE in emacs ;)
I tried irony mode, but my autocomplete pop-ups would contain all kinds of nonsense, and I noticed at least two other issues on the irony mode github page that showed other people with the same experience as mine, on Mac. So I eventually gave up after not tracking down a resolution.
For #1, maybe company-mode can be of assistance? I haven't used it with Java (I never had to write enough of it to need Emacs), but I imagine it works.
I'm the founder at Distelli and the folks at The New Stack reached out to me for an interview. Here is the article - unvarnished feedback from the HN community would be awesome.
IMHO the most important thing for opsolutely to figure out is whether they're focusing on the Enterprise or the SMB space. The reason is that will dictate the direction of their product and the features, integrations and customer experience.
The requirements for enterprise are very different from the requirements for small companies.
I say this from experience running a deployment automation company focused primarily on the enterprise (https://www.distelli.com) and we made a decision early on to focus on the enterprise. Making a decision early on helped us focus on the target market we're going after and we have actively built stuff for the enterprise because of that decision.
A quick google search got me vscode-dired (incase anyone else runs into it):
https://marketplace.visualstudio.com/items?itemName=rrudi.vs...
Quick Tip: I set C-x C-d, C-x C-b and C-xb all to call extension.dired.open per this stackoverflow: https://stackoverflow.com/questions/62235792/how-to-add-mult...
that seems to satisfy the muscle memory... and it seems at first glance that this time the switch to vscode might actually stick. (thanks for the link to the emacs keymap extension)
We'll see how it goes!
edit: After even 5 minutes of building some rust code I ran into too many issues! I love the syntax highlighting in VS Code and everything else but I have way too much custom elisp to build and debug Rust/Go/C++ and recreating all that in VSCode or learning the new bindings is a bridge too far! I would pay real money to someone who would build an amazing performant experience for emacs. Sigh.