this post was submitted on 08 Jun 2023
24 points (100.0% liked)

Programming

568 readers
1 users here now

All things programming and coding related. Subcommunity of Technology.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 1 year ago
MODERATORS
top 43 comments
sorted by: hot top controversial new old
[–] [email protected] 18 points 1 year ago (2 children)

neovim. I've been using vim or neovim for >25 years and it's changed how my mind works to the point that other editors are awkward. I can also reliably find some form of vi on any machine I log onto and, while I am not necessarily writing Rust on a random machine at work, having to learn just one program for editing is nice.

[–] [email protected] 3 points 1 year ago (2 children)

+1 for Neovim I love that thing.

If anyone's curious/interested in it... while the stock editor is pretty "basic" (it can still do a ton of stuff!), the plugin ecosystem (or whatever it's called) is really nice. You can use "pre-built" ones like LunarVim, LazyVim, or NvChad (I've used this one, it aims to be highly customisable and it's pretty nice). There are probably many others.

You might want to get used to the key binds and such before doing any of that though ahahah. Once you open it, if you type :Tutor and press enter it should bring you to a little tutor program for explaining the basics.

I do however highly encourage you to try making your own config! You could write it in vimscript, but Neovim has full support for Lua. You can even have multiple different init files for it. (You can select them with the -u flag when running nvim. Like: nvim -u path/to/my/config_file.lua ). I liked ThePrimeagen's video about making a config from scratch (personally I really like his energy and personality, but he does sometimes yell and stuff (i don't think there's much of this in this video) so it might not appeal to everyone). I haven't really looked at any other resources (besides the built-in :help lua-guide and random searches), but I'm sure there's a ton out there.

It's really fun :DD

[–] [email protected] 3 points 1 year ago

I can't really comment on the preconfigured packages; I learned way back in the 90s before things like that existed. Definitely recommend learning the editor before going crazy with customization, though, and the tutor is also where I started. There is an enormity of config options, as you'd expect for software that has almost 50 years of history, so just start with what you want / fixing what annoys you.

[–] [email protected] 2 points 1 year ago

It's nice to have everything ready for you in Lunar, Lazy, Chad Vim, but it is honestly too much for any newbie to take at once. For anyone starting with vim/neovim best advice is to start with vanilla experience: no configs, no plugins and just learn basics. Then search for fixes to major annoyances, and when you're comfortable with keybindings look for plugins to extend features. You'll quickly realize how small is number of customizations required to be fast and productive in [Neo]Vim.

[–] [email protected] 1 points 1 year ago (1 children)

I'm ignorant and putter around with WebStorm as an IDE, but I'd like to ditch it. Does neovim have similar functionality? I thought it was more of a text editor.

[–] [email protected] 2 points 1 year ago (1 children)

I have stayed as far as I can from web development for about 10 years so I can't answer that question.

[–] [email protected] 1 points 1 year ago

You're wise. The entire JavaScript ecosystem is really great and hot garbage at the same time.

[–] [email protected] 13 points 1 year ago (1 children)

I am not a hardcore programmer, but anytime I code anything, I use vscodium. It is VScode without the microsoft telemetry.

[–] [email protected] 4 points 1 year ago (1 children)

That sounds great! Does it support the plugins as well?

[–] [email protected] 3 points 1 year ago (1 children)

It has the same plugin system, but they pull from Open VSX rather than Microsoft's extension marketplace. If there's an extension not available there, you can still download it from Microsoft's marketplace and then add it manually.

[–] [email protected] 3 points 1 year ago

It's also possible to swap out the extension registry entirely and still use Microsoft's marketplace instead of Open VSX in VSCodium.

[–] [email protected] 11 points 1 year ago (2 children)

No one has said Emacs yet, I was a long time vim/neovim user but switched a couple of years ago, still learning rust but it's been pretty comfy so far, plus I can wash my dishes in it.

[–] [email protected] 2 points 1 year ago (1 children)

Emacs is the best vim implementation.

[–] [email protected] 4 points 1 year ago (1 children)

Emacs is a great operating system but lacks a good text editor

[–] [email protected] 2 points 1 year ago

IDK what you're talking about, Vim runs great on there.

[–] [email protected] 1 points 1 year ago

I use Emacs for just about everythinhg, including Rust dev. It's fantastic!

[–] [email protected] 8 points 1 year ago* (last edited 1 year ago)

vscode. I think anything that supports LSP works well with rust, but my vscode setup is comfy enough and devcontainers are rather nice.

[–] [email protected] 6 points 1 year ago (1 children)

I used VSCode for a few months and tried the CLion free trial after missing some of the features from IntelliJ I use at work. I think CLion edges out just a little, but not by much. Both have some rough patches.

Next time I pick up a Rust project I want to try neovim; I keep ending in tutorial hell for vim and never actually building anything with it. But before that, I think I want to ditch my Windows OS all together and pick some Linux distro, something I've been putting off a very long time.

[–] [email protected] 4 points 1 year ago (1 children)

Try Linux Mint. It's made for people who are coming over from Windows. You'll find it feels very familiar.

[–] [email protected] 1 points 1 year ago

This was also the distribution I chose when first moving away from Windows and I can definitely recommend it. The vast majority of things worked out of the box, and people on the Linux Mint forum were very helpful in solving my remaining issues.

[–] [email protected] 6 points 1 year ago (1 children)

I love using helix. Not really an IDE, but since it has built-in support for language servers like rust-analyzer, it can do everything I need.

[–] [email protected] 4 points 1 year ago (1 children)

I'm just waiting for the inbuilt file explorer to stabilise. The only thing I miss is easy file navigation. The fuzzy searcher just isn't what I want most of the time.

[–] [email protected] 1 points 1 year ago

I see. I used to use things like nerdtree in vim, but when switching to helix I just accepted the fuzzy file search, and now I don't see why I would ever need anything else to open files.

[–] [email protected] 5 points 1 year ago

Helix text editor

[–] [email protected] 4 points 1 year ago

I'm not a rust dev but ran into Lapce recently which seemed to be vscode like IDE for rust made in Rust.

[–] [email protected] 3 points 1 year ago

Helix is neat but not a full IDE. After a while I'm much more efficient and basically don't use the mouse anymore. https://helix-editor.com/

[–] [email protected] 3 points 1 year ago

VScode. It works mostly fine for me, using rust-analyzer and CodeLLDB

[–] [email protected] 3 points 1 year ago

Once I started using CLion I couldn't go back

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (1 children)

Neovim. Its awesome with the rust plugin. Everything works and it's fast.

[–] [email protected] 1 points 1 year ago

Could you share your config?

I switched to the built-in LSP but keep hitting small issues with changes to mappings, etc. and keeping rust-analyzer updated is a pain.

So now I just use vscode, even though I'd really like to have neovim set up for small things.

[–] [email protected] 2 points 1 year ago

I used to use CLion for rust but lately I've switched to VScode with rust-analyzer and it is pretty good, so I've more or less switched to it.

Also helix mentioned here looks interesting, I might try it out.

[–] [email protected] 2 points 1 year ago (1 children)

Neovim all the way!

Rustanalyzer is seamless with it and I never have issues with multiple instances running

[–] [email protected] 1 points 1 year ago (2 children)

I also use Neovim with coc-rust-analyzer as my daily setup, although, for large projects, it eats up to 4GB of RAM :/

[–] [email protected] 4 points 1 year ago (1 children)

neovim has built-in LSP support and it works so. SO. SO! much better than coc-rust-analyzer. Start with this repo. I promise you that it'll be a better experience for you. No node.js, only native code, and it's significantly faster. The coc LSP plugins are really intended for vim because it doesn't have asynchronous execution for plugins.

[–] [email protected] 3 points 1 year ago (1 children)

Totally agree with this, neovim with LSP is PERFECT! I had a lot of problem's with coc and it was terrible, one day it worked one day it had another problems... Recently i decided to try Neovim with lua so i followed this tutorial video. You should take a look, believe me.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago)

I also had huge problems with it, and indeed LSP support is why I use neovim these days and not vanilla vim. I probably had problems similar to what you did: sometimes it'd work, often it wouldn't. And it was SO slow. I'm also using recent, powerful hardware: top of the line MacBook Pro, 16 core / 64 GB RAM Linux workstation, both on SSD/NVME storage. Once I switched to the built-in LSP, all my problems disappeared. I'm pretty happy with my current setup, and videos are hard for me to follow for tech stuff, but others who aren't already may want to look at the video.

I should point out that even this repo reinvents things that are already in vim: you don't need packer. Vanilla vim has package management now, all you need to do is put the plugins in a directory under ~/.vim/pack/whatever/start. See :help packages for more.

[–] [email protected] 1 points 1 year ago (1 children)

Wow crazy. I honestly couldn't say what lsp settings I use. My personal config broke a while back and I use Astronvim now until I get to fixing it... Although so far its been good enough that I just dont bother moving back...

[–] [email protected] 1 points 1 year ago

Yea, for me it's also working pretty fast (unused ram is wasted ram anyway), just that I must always keep an eye on my RAM usage of my 10-year-old PC with 8GB of RAM and HDD only...

[–] [email protected] 2 points 1 year ago

Helix, great out of the box experience and is written in Rust itself.

[–] boopeditandnow 2 points 1 year ago

I alternate between CLion and VSCode depending on what I'm doing. CLion has nice refactoring tools, but VSCode has much better GitHub Copilot integration.

[–] [email protected] 2 points 1 year ago

VsCode because I'm basic like that :^)

[–] [email protected] 1 points 1 year ago

Kakoune for all languages :-)

[–] [email protected] 1 points 1 year ago

Wow, no one mentioning IntelliJ?? I use the free edition with Rust and it works great... the only thing missing is a debugger, which requires the CLion distribution which is not free... but so far that hasn't been a big problem for me.

load more comments
view more: next ›