DEV Community

James King
James King

Posted on

What do you look for in a Code Editor?

I find myself often searching for better editor experiences when writing code.

Things I've tried:

  • Visual Studio code: too slow, resource hog.
  • Atom: same as above.
  • Intellij: very slow to open.
  • NeoVim/Vim: steep learning curve and requires a good memory (human, not computer!).
  • Lite (and Lite-xl): lacking fully-featured language support currently.
  • Sublime Text: Has probably come the closest to my reliable editor, but actually getting it setup to be an editor can be fiddly, because it's primarily supposed to be a text editor.

Things I need:

  • Speed - my biggest frustration
  • cross-platform
  • LSP integrations (specifically gopls and pylsp)
  • debug support (delve, pdb)
  • Large extension library / list of plugins

Things I want:

  • Nice Testing & coverage visualisations
  • Kubernetes & docker support
  • hackability / customisation

This got me thinking, with modern LSPs (Language Server Protocols) and rich web-based ecosystems - what do you look for in an editor?

Discussion (29)

Collapse
simeg profile image
Simon Egersand 🎈

What do you look for in a Code Editor?

Does it support vim bindings? 😄

On a serious note: highly customisable, ability to write your own plugins, not too resource heavy.

I've been using Jetbrains products for so long (IntelliJ etc.) that I don't really know any other IDEs. Vim + IntelliJ works for me!

Collapse
bassforce86 profile image
James King Author

I enjoy Vim, quite a lot in-fact! But vim required learning and when you're pairing with other members of the team that don't use Vim... it can be quite frustrating for them to follow I find

Collapse
simeg profile image
Simon Egersand 🎈

Yeah, I can relate with that. That's why everyone should learn vim :D

Collapse
jeremyf profile image
Jeremy Friesen

Emacs supports Vim bindings. You'd want to use evil-mode.

Collapse
pandademic profile image
Pandademic

Beware of evil-mode though! It's addicting...

Thread Thread
jeremyf profile image
Jeremy Friesen

I have become tempted to practice...but Master Yoda says beware the dark side

Collapse
simeg profile image
Simon Egersand 🎈

Is it really called that? 😄

Thread Thread
jeremyf profile image
Jeremy Friesen

Yup. I don't use it (vim has remained a struggle for me) but there's a vibrant community of vim to Emacs converts.

Collapse
unsungnovelty profile image
Nikhil
  • Open source
  • Good enough support for tools/languages
  • Good performance.
  • LSP is ideal.
  • Community.

I recently went on a spree to find a alternative for VSCodium which I am using. Tried Emacs, Lite-XL, Kate. And ended up liking Emacs and Lite-XL.

  • Emacs just blows any text editor out of the water with respect to functionalities IMO. The only problem is that it's just too hard to get used to. Not to mention the keybindings are from jurassic park era. Keybindings before ctrl+c and ctrl+v for copy and paste were even a thing. Found everything unnecessarily hard and you have to relearn a lot of things. After using it for almost a month, I moved on. Not because it is bad. But because I didn't get settled with it even after almost a month. And I ran out of time. Still can't deny that...

    • Orgmode is mindblowing.
    • Magit is crazy.
  • Lite-XL is fast and minimal. It's is my ideal choice and I use it whenever I can. Trying it out made me learn a lot about text editors. It needs a little more tools and functionality support is all. And it is getting there as far as I can tell. Also, you can extend it easily with Lua. I ended up writing stuff in Lua even though I didn't know Lua. So I am pretty sure anybody can if they really wanted to.

While I had to come back to VSCodium, I still use Lite-XL as my secondary text editor. Oh, and their community is really nice. :)

The only other text editor I want to try out now is NeoVim. It has good support AFAIK. It uses Lua for plugins, so it's an excuse to play around with Lua outside of Lite-XL. All I need now is some time. :)

Collapse
guithomas profile image
Guilherme Thomas

Never heard of Lite-XL, and reading it was write mostly in LUA makes me happy :D

Collapse
bassforce86 profile image
James King Author

I'd second what @unsungnovelty said. It's certainly worth a try if you've a mind to get creative. I'm tempted to start writting some overlays for gopls for it just so i can start seeing how difficult it would be to replace something like VSCod[e|ium]

Collapse
unsungnovelty profile image
Nikhil • Edited on

Lite-XL is a continuation of Lite text editor. With an emphasis on convenience and functionality. You should try it if you have time. It is a really good text editor.

Collapse
capz profile image
Leroy • Edited on

I think the key here is not to expect one editor to rule them all. In my case I use sublime text for quick edits but rider/webstorm for most of development. This way you get the best of both worlds. You really can't have a super snappy ide that does everything and also starts really quickly , something has got to give. Hence going with two is a great strategy. Is there really anyone who exclusively uses one IDE and no other editor? I've never met one

Collapse
zenphp profile image
Jason Murray

This is how I see it as well. My major projects are all done in IntelliJ or PHPStorm. I don't care about start up time. I want the features. I'm not opening and closing it all day long, it starts up and runs all day.

When I need to edit something quick, like some notes or a system config file...something non-project based, then I resort to sublime on GUI based machines and vim or nano on remote servers.

I've been learning VSCode, and it's turning out to be a fairly middle of the road option, faster to open but less full featured for project based stuff. More features and slower opening for non-project based quick stuff.

Collapse
darkain profile image
Vincent Milum Jr

I guess I'm that person. I use Sublime Text exclusively. :) The ONLY exception is the times I'm working on Arduino projects, so non-commercial stuff, just some hobby tinkering stuff. In that case, I do all my editing in Sublime Text, and then Arduino IDE just for compiling. But that's also because the Arduino IDE cannot keep up with editing the size of projects I work on.

I could in theory setup the compile environment inside of Sublime Text for all of the microcontrollers I work with, but I'm just lazy is all it really comes down to LOL

Collapse
crinklywrappr profile image
Daniel Fitzpatrick • Edited on

I feel like emacs ticks all your boxes.

If you try it, pick a popular distribution and read the docs first. I recommend spacemacs, but I know a lot of people prefer doom these days so give that a try, too. You'll want to

  1. Install emacs first, and use the graphical version. I believe it's in scoop (scoop.sh/) if you're on windows.
  2. Enable the emacs daemon for speed, but probably only after you're happy with your config
  3. Learn how to manage buffers and windows inside an emacs client for even more speed. No need to keep opening fresh clients.
Collapse
katafrakt profile image
Paweł Świątkowski
  • Not being forced to use mouse/touchpad for anything - be it Vim bindings or something else, I don't care so much
  • Ability to easily store the editor config in version control
  • Having some kind of command palette so I don't have to memorize all the keyboard shortcuts to lesser used things

That being said, I use Doom Emacs as my main editor and VSCodium as my supporting editor.

Collapse
jeremyf profile image
Jeremy Friesen

Three years ago it was: Open source (with sustained support), extensibility, and the ability to quickly load as my $EDITOR or $GIT_EDITOR.

But today, it's the above but it also needs to support my blogging and personal knowledge management. I've settled on Emacs after previously using Jedit, TextMate, Sublime, and Atom. In 2020 I chose to explore 3 editors: VS Code, Emacs, and Vim. It didn't take long to settle into Emacs.

README for Dotemacs

This is my Emacs configuration repository. It pairs with my dotzshrc repository. The install.rb script of the dotzshrc repository uses this repository. For implementation reasons, the emacs.d directory contains the init files that I link into my $HOME/.emacs.d directory.

For those curious, I wrote Why I Chose Emacs as My New Text Editor // Take on Rules.

The Structure

Below is the top-level directory:

> tree -L 1
├── README.org
├── deprecated-packages
├── emacs.d
├── lib
└── snippets
4 directories, 1 file

The files and directories:

README.org
This file.
emacs.d
A directory that contains files symlinked into $HOME/.emacs.d directory.
deprecated-packages
A directory of elisp-files. I have since moved towards a literate configuration style.
snippets
A directory of yasnippets I’ve created.

The emacs.d Directory

There are two “primary” files to consider in ./emacs.d:

configuration.org
This file is where I write my Emacs configuration with…
Collapse
val_baca profile image
Valentin Baca
  • IntelliJ for Java and Kotlin.
  • Xcode for Objective-C and Swift.
  • vim for quick edits: git commits, working over ssh, config files, etc.
  • And VS Code for literally everything else: notes, JS/TS, Clojure, etc...
Collapse
hapakaien profile image
Ahmad Husen

I most of the time need LSP, so I only use this editor:

  1. Sublime Text 4: My main editor
  2. VS Code: I only use this for things that can't be done in Sublime Text
  3. Helix: My $EDITOR in terminal. EditorConfig support is still missing.

If you are using Mac, maybe you also can try Nova. It's written natively for Mac.

Collapse
jfbloom22 profile image
Jonathan Flower

I used Sublime for years and loved it! I switched to VS Code about 2 years ago because it had better support for Typescript at the time. I just downloaded Sublime again and going to give another shake. I am running an M1 Mac, so VS code is not painfully slow. Sublime has got to be blazing fast with M1 support. Speed is huge for me.

Collapse
darkwiiplayer profile image
DarkWiiPlayer

One thing that's absolutely essential for me is that an editor must be programmable. I get paid to solve problems, not to operate a text editor; so whenever there is any repetitive typing to do, I want to automate that as much as possible.

In that sense, having an interface for extensions is useless to me. Sure, it's a great thing to have, but it doesn't solve my problem of wanting to hammer a few lines of code into an editor and within 30 seconds have a solution that solves my problem even though it's way too brittle to be of general use.

So far, vim is the only editor I've used that does this. I'm sure emacs is the same, but I don't see the reason to switch away from one stone-age editor to another. Among the modern browsers, I haven't yet found anything like what I expect.

Collapse
eljayadobe profile image
Eljay-Adobe

An editor that I never have to take my hands off the keyboard to use a mouse.

An editor that does not get in my way, so I don't have to think about the editor, I can focus on what I'm editing. Zen-like. One with the code.

And editor that is available on every platform I work on. And I work on dozens of platforms.

I use Vim.

Collapse
zabdeldjallil profile image
Zitouni Abdeldjallil • Edited on

Used to code in vs code then used atom then vim/neovim with lunarvim and i honestly love it !

Collapse
nssimeonov profile image
Templar++

setup to be an editor can be fiddly, because it's primarily supposed to be a text editor

Sorry I don't understand that part?

Collapse
bassforce86 profile image
James King Author

Sublime text is a fast (and generally great) text editor. However some plugin's / packages require pre-installation & setup of the tools required. Some handle this better than others, but debugging why it doesn't work can be awkward sometimes

Collapse
jwp profile image
John Peters

I look for visual studio code.

Collapse
aminmansuri profile image
hidden_dude

First and foremost is good debugging support..

Collapse
andrewbaisden profile image
Andrew Baisden

A huge extension library so I can customise it any way I want. This is an area where VS Code excels.