Recommendations for a Text Editor

Started by
21 comments, last by Aldacron 8 years, 2 months ago

Notepad++ has served me well for over a decade, but today I'd settle for either Visual Studio Code or Atom. I personally prefer Visual Studio Code because the Git integration is pure greatness, but Atom has more addons and is a little bit more mature.

Advertisement


With the continued rise of the "Web 2.0 Text Editors", though, I have to say that GitHub's Atom is equally capable, and free. If I didn't already own a Sublime Text license, it would be my go to editor.

Visual Studio Code is also a great alternative if you ever need to work with Microsoft technologies.

VS Code is my recommendation -- but I might be baised, working for Microsoft and all.

Its actually build on Atom's open-source shell (Not the editing itself, but the web-based front-end and node-based back-end) and very recently opened up its extensibility APIs for themes, highlighters, and plugins. And it became open-source that same day, its written in typescript. Even before going to extensions though, the editor itself and how it works with external tools is highly, highly configurable through some really nice JSON files.

Since then, there are tons of plugins for all your favorite languages available from the Visual Studio marketplace which you can access right inside Code. From what I can tell, debugging seems to be the stand-apart feature over Atom or other editors, and Code is at or nearing Parity in other regards.

Its now my go-to editor when VS itself is unavailable (OSX, Linux) or heavier than I need. I still prefer VS for heavy lifting, but that would probably be less true if I did less of my heavy lifting in C++ and more in, say, C# (Code is only beginning to get more than basic support for C++, and its got better C++ support (e.g. intellisense) on non-Windows platforms so far), and I still use Vim when I want something super lightweight, only have a terminal, or to use its powerful programmatic editing commands.

throw table_exception("(? ???)? ? ???");


Its now my go-to editor when VS itself is unavailable (OSX, Linux) or heavier than I need. I still prefer VS for heavy lifting, but that would probably be less true if I did less of my heavy lifting in C++ and more in, say, C# (Code is only beginning to get more than basic support for C++, and its got better C++ support (e.g. intellisense) on non-Windows platforms so far), and I still use Vim when I want something super lightweight, only have a terminal, or to use its powerful programmatic editing commands.

That's more or less the state of things for me. I use VS for most of my work, as well as vim when I have to go through a terminal, but I'm looking for something to fill that gap where I don't really want to open VS or I'm not on Windows, and I don't like vim enough to use it in all those circumstances.

I've heard good things about VSC. I'll give it a try.


With the continued rise of the "Web 2.0 Text Editors", though, I have to say that GitHub's Atom is equally capable, and free. If I didn't already own a Sublime Text license, it would be my go to editor.

Visual Studio Code is also a great alternative if you ever need to work with Microsoft technologies.

VS Code is my recommendation -- but I might be baised, working for Microsoft and all.

Its actually build on Atom's open-source shell (Not the editing itself, but the web-based front-end and node-based back-end) and very recently opened up its extensibility APIs for themes, highlighters, and plugins. And it became open-source that same day, its written in typescript. Even before going to extensions though, the editor itself and how it works with external tools is highly, highly configurable through some really nice JSON files.

Since then, there are tons of plugins for all your favorite languages available from the Visual Studio marketplace which you can access right inside Code. From what I can tell, debugging seems to be the stand-apart feature over Atom or other editors, and Code is at or nearing Parity in other regards.

Its now my go-to editor when VS itself is unavailable (OSX, Linux) or heavier than I need. I still prefer VS for heavy lifting, but that would probably be less true if I did less of my heavy lifting in C++ and more in, say, C# (Code is only beginning to get more than basic support for C++, and its got better C++ support (e.g. intellisense) on non-Windows platforms so far), and I still use Vim when I want something super lightweight, only have a terminal, or to use its powerful programmatic editing commands.

I really like VSCode as an editor, I prefer it over Sublime, but I just don't get along with it with C++. Any usability tips for working with C++ would be handy, either in this or a separate thread :)

Truth be told, C++ is a lowlight for VS Code. But the same is true for many of the lighter-weight editors.

Without any kind of reflection, a notoriously-hard grammar to parse, lack of proper modules, and that damnable preprocessor, its a really difficult problem to provide the kind of first-class programming experience that, say, C# enjoys, but for C++. I believe the only systems that do it in near-real time with any real dexterity are only able to do so through very tight integration with an IDE, and still they are imperfect. Basically any stand-alone tool needs total program knowledge, including build parameters, and IDEs benefit from having enough of that knowledge to fake it. Imagine changing a macro or template parameter default, or any other thing which changes which source code is active or what it means -- stand-alone, static tools have to completely recompile their knowledge.

Having looked at these kinds of issues at work because we'd really like to be able to reliably stub-out documentation from C++ source code (without programmer intervention, and with the ability to track ongoing changes) I can say that the rabbit hole goes much deeper than you'd think. You might say "but Doxygen does it" and I'd counter with "Doxygen does less than what you're giving it credit for."

Even syntax highlighting is more difficult than other languages, but at least its well-understood and basically solved.

I don't think VS Code does C++ debugging yet either, though again that's par for the course of lightweight code editors -- hell, Visual Studio's debugger beats the pants of every other debugger I've encountered, including those in other IDEs.

throw table_exception("(? ???)? ? ???");


Visual Studio's debugger beats the pants of every other debugger I've encountered, including those in other IDEs.

Someone introduced me to Casey Muratori's Handmade Hero a couple weeks ago. It's amusing to see him do everything on the command line, including using emacs, then whip over to the Visual Studio debugger when he wants to actually run something. That just goes to show how much better VS's debugger is for C/C++ compared to pretty much everything else.

I cry at work when I don't have access to it and have to finagle with WinDbg instead.

Visual Studio's debugger beats the pants of every other debugger I've encountered, including those in other IDEs.


Someone introduced me to Casey Muratori's Handmade Hero a couple weeks ago. It's amusing to see him do everything on the command line, including using emacs, then whip over to the Visual Studio debugger when he wants to actually run something. That just goes to show how much better VS's debugger is for C/C++ compared to pretty much everything else.

I cry at work when I don't have access to it and have to finagle with WinDbg instead.

IKR? It kind of depresses me to realize that other DEs are still so horribly deficient in this area.
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

By the way, this (VS Marketplace link) seems to be one of the better intellisense-like things for VS code. I didn't mention it earlier because I thought it only worked on Linux/Mac, but details on the page suggest Windows is supported. Its not as rich as Visual Studio intellisense, but it has basic auto-completion and things like Go To Definition, find references, list symbols.

Its based on GNU's Global tagging system though, which has a couple repercussions:

  • You have to have the GNU tools installed on your system. Easy on Linux and Mac, probably less-so on Windows, but doable.
  • Its not 'live' like Visual Studio intellisense -- you need to refresh it manually, but that can be bound to a key combo I'm sure. Takes time though.
  • It doesn't really parse C++ as I understand it, so it might show you a several foobar functions but it won't know which of them are global, a member of a class, or a member of a different class.

throw table_exception("(? ???)? ? ???");

Atom has the (somewhat beta) autocomplete-clang extension, which is pretty nifty for C++. I bet someone will come up with a VS Code extension for the same in short order.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Thanks for the suggestions, everyone. I still have no idea what I'm going to use, but this gives me stuff to look at.

You’re going to use Notepad++.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

This topic is closed to new replies.

Advertisement