DEV Community

Jeremy Friesen
Jeremy Friesen

Posted on

What Do You Consider a Must Have for Your Code Editor?

I'm wondering what keeps everyone coming back to their text editor.

Oldest comments (20)

Collapse
 
jeremyf profile image
Jeremy Friesen

I've made it a bit of a hobby moving through code editors.

When I moved from programming on a main frame to using open source languages, I seriously began considering my text editor.

I started with JEdit but then TextMate hit the scene. As it bogged down, Sublime emerged as a viable candidate. Then I started looking for open source, and chose Atom. Finally, I settled a few years ago on Emacs.

During each editor change, I always gave Vim a consideration, but it never quite worked for me. When I was setting aside Atom, I again experimented with VS Code and Vim. But Emacs pulled me in.

Why? Because I found it easy to build the text editor I needed. I extend and refine Emacs, and treat it as my primary interface to my computer.

My first requirement is that it must be easy to bind hot keys to common commands, and re-map them to my suiting. My second requirement is that I want extensibility. It wasn't until I adopted Emacs that I really started to add new features to my personal text editor.

In fact I've changed my relationship with my text editor. I configure it to my needs, by assembling packages, and adjusting accordingly. (And Emacs's unrivaled introspection makes this quite dreamy.) My text editor helps me do the various aspects of my job better: take notes, write documentation, write code, and connect me to my second brain.

I've never had that in my previous editors.

Collapse
 
onlyphantom profile image
Samuel Chan

"Emacs is great but what do you use as your code editor" overused joke but goes to show you just how visionary this piece of software is

Collapse
 
jeremyf profile image
Jeremy Friesen

Oh, definitely appropriate. I use it for writing code, because I use it for writing everything else. The thought of maintaining two systems for writing is now painful.

Collapse
 
jonrandy profile image
Jon Randy 🎖️

Syntax highlighting, and multiple cursors

Collapse
 
jeremyf profile image
Jeremy Friesen

Definitely adding that to my checklist.

Collapse
 
ben profile image
Ben Halpern

I'll caveat this by saying I really only use the terminal editors for a few quick tasks in my dev flow, and generally prefer launching other apps.

But I'll say that one editor in my life I really can't do without these days is TextEdit for Mac. Lately I just happen to have been needing to work with very large amounts of text for a few miscellaneous tasks, and my code editors just freeze when trying to accomplish this, but TextEdit can handle any amount of text I throw at it.

I typically use VSCode — I imagine something like Sublime is more performant than that, but still really happy with good ole TextEdit these days and don't need to overcomplicate. 😅

Collapse
 
onlyphantom profile image
Samuel Chan

If you love Vi/Vim, a modern IDE (VS Code, Sublime, Atom others) with the Vim keybindings gives you the combination of muscle memory and the power / ecosystem of modern IDE. Every IDE has Vim keybindings / emulation.

A close second is speed (booting up, code analysis or any 'non-trivial' task) but it's getting less and less of a factor as hardware just got so much better. Beyond that it's just ecosystem for extensibility. Github Copilot on VSCode for example.

I know it's super gimmicky but support for font ligatures is a bonus too.

Collapse
 
jeremyf profile image
Jeremy Friesen

I tried Vi/Vim keybindings and my brain melted. I see a lot of folks moving from Vim to Doom Emacs (with Vim bindings).

And speed is right up there as a requirement. I can't have any "auto-completion" freezing my editor.

And yes, yes, yes to extensibility!

No fret on the ligatures, I tried them and found them confusing, but can very much see how they can be beneficial.

Collapse
 
raguay profile image
Richard Guay

The best vim that is a gui is Onivim2. It runs many (but, not all) VSCode extensions and is super fast. It’s now open source so anyone and contribute to it.

So, I want native vim keyboard layouts, extensions, multiple cursors, syntax highlighting, and lot’s of speed!

Most dedicated IDE are way to slow and often are resource hogs (that is my experience). They often are very opinionated and get in the way of coding, in my opinion.

Collapse
 
moopet profile image
Ben Sinclair

I've just looked at the Onivim website and it's really confusing. It talkes about purchases and refunds and license keys but also that it's licensed MIT and based on libvim. It doesn't have anything on the website about pricing or whether it's intended to be a proprietary licensed product after its alpha period or what.

It hasn't been updated in months, but I'm reluctant to try something that might turn out to be non-free next year.

Thread Thread
 
raguay profile image
Richard Guay

It is MIT now, but there isn’t a download for it. You have to clone the GitHub repository and compile it yourself. There are instructions on the site. The author had to get a job and decided to make it public domain. But, his new job is taking all his time and he hasn’t completely changed the web site. It will not be non-free in the future. It is just going through some growing pains.

Collapse
 
tracygjg profile image
Tracy Gilmore

I think the term "Code Editor" can be misleading and a distinction needs to be made between a text editor and an Integrated Development Environment (IDE).
An applications like Microsoft Notepad is extremely simple and only offers a developer a quick and reliable tool for creating textual data files. They know nothing about syntax, debugging or additional tools like those that support a build chain. Even the simple application Actipro Code Writer has an understanding of a small number of different programming languages and provides syntax highlighting. But it is far from my regular goto for development. On the flip-side IDE's can easily become over complicated and difficult to use; Eclipse comes to my mind.
I personally like MS Visual Studio Code because it loads quickly, is usually very responsive and reliable. The key features for me are the management of all the files related to a project and having a plug-in facility so the development of additional features is not limited to the original author.

Collapse
 
lukasw12v profile image
lukas

SHORTCUTS

Collapse
 
jacksonmwansa20 profile image
Jackson mwansa

interesting

Collapse
 
ivankalatchev profile image
Ivan Kalatchev

At least for me there are exactly four factors that matter:

  • Smartness
    An editor should be able to predict a at least 50% of my words and actions. (A great example here would be Visual Studio)

  • Speed
    An editor shouldn't be slowing me down, while loading stupid shit, or just plainly not responding. (IMHO VS Code exceeds here)

  • Community
    A code editor isn't just a text one with syntax highlighting, in almost every case it's way more. It's an ecosystem, it should be hackable enough, that the original creators should only worry about the foundation. (VS Code is the best example of this)

  • Looks
    It should be pleasant to look at. Full stop.

But yeah I think VS is good enough for most DotNet occasions. Would love to hear your opinion on the topic.

Collapse
 
jeremyf profile image
Jeremy Friesen

This post is helping me refine and crystalize my opinion.

Smartness is good, but I want to ask my editor to be smart (I want to be the one invoking auto-completions, not watching it continually making suggestions and getting in my way).

Speed yes, I long maintain that when I'm watching someone in their native editor, "I want to be a little dizzy". I want to see them moving quickly through the relevant code places and show that "the editor is keeping up with their thoughts."

Community absolutely necessary because the more folks using it, the more opportunity it has to get better. With the fundamental assumption being that the tool is extensible.

Looks definitely needs a theming setup; and for me "coherent and cohesive" is the main visual requirement.

Other things…that I specifically want is for it to support writing code, documentation, meeting notes, and blog posts. I'm in love with the org-mode package of Emacs for this very reason.

Collapse
 
jcubic profile image
Jakub T. Jankiewicz

syntax highlighting and auto indent on enter.

Collapse
 
getsetgopi profile image
GP

Must have for VS Code
ES Lint, Prettier, ES6, React Code Snippet, Axe Linter, Template String Converted, Toggle Quote, GitLens, SonarLint, Error Lens, Auto Rename Tag, Bracket Pair Colorizer 2.

Collapse
 
jeremyf profile image
Jeremy Friesen

The list looks great (I'm unfamiliar with the specifics of the packages, but can read between the lines).

I'd be curious to see what your functional requirements are behind these

Collapse
 
getsetgopi profile image
GP

They are VS Code extensions helps in writing clean code, easy to read and faster development. Each extension has specific task to take care of and we get everything in one ecosystem.