Useful Atom Packages for C# Development

Since I’m doing a thorough investigation of Atom and Omnisharp as a development environment, I thought I’d give some useful hints and tips plus useful packages that I found during the process.


Install packages using File -> Settings -> Install. Just search for the package name – none of the packages have any settings to speak of.

language-cshtml provides syntax highlighting for your Razor views. If you are developing ASP.NET MVC, then this is pretty much a requirement.

atom-beautify claims to do the same as CTRL-K D in Visual Studio – beautify your code. I’ve found it falls down in complex cases and doesn’t quite do what I want it to. However, it’s a good addition to the arsenal.

gulp-control runs gulp commands. I’ve switched away from using this now because of a bug when using rules with colons in them. However it does provide a good replacement for the Task Runner Explorer in Visual Studio.

file-icons is one of my favorites in this list. It gives each file type its own icon in the project folder explorer, allowing you to see what type of file it is at a glance.

autoclose-html automatically closes HTML tags. It’s also configurable so you can decide to not close certain tags (like IMG, for instance). The default set is pretty good.

terminal-panel is a command line (or multiple command lines) within the atom window. I have two – one running “k web” pretty much all the time, and one that I use to run my gulp commands.

web-browser runs a web browser in a tab. You can even use F12 Developer Tools.

GIT Integration

I like the git integration in the project folder explorer better than the git integration in Visual Studio. It’s a lot clearer as to where files you want to be concerned with are located. Darker gray are files that are being ignored, lighter gray are files that are checked in and haven’t been touched, green are new files and orange are modified files.

There is also a section of the status bar on the far right that tells you some information about the file:


I can also see the changed lines easily by checking out the margin decorators (just like Visual Studio):


Unfortunately, none of the “Open on Github” functionality seemed to work on Windows (and this was a common complaint of mine during this process).

Running in a Terminal

The terminal-panel package provides an excellent way of running things at the current location in a terminal. There is an indication in the status bar of the available windows:


Here I have a (cyan) one that is running something (in this case, it’s k web) and a (green) one that is available for input. I have buttons to kill the current process, destroy the window (in which case you have to re-create it if you need it again) and close the window (in which case you can select it again from the status bar)

My Normal Setup

Immediately on starting Atom, I use File -> Open Project Folder to open my folder. I then start two terminals – one I type “k web” to start the web server, and the other I leave running for my gulp and git commands. Then I use Ctrl-Shift-P to bring up the command palette, type in Web Browser and start the web browser, pointing it to http://localhost:5000.

At this point I have a fully functional setup that I can go “full-screen” on. Alternatively, I can press F12 on the web browser and create myself a large developer tools region (which is more useful generally).

Still Hoping for Visual Studio

This is an excellent setup for Linux and Mac systems that develop ASP.NET MVC code. However it isn’t going to replace Visual Studio any time soon. There are several things missing. Obviously, the debugging support for C# code is much better – Atom is only an editor, after all. Package management support for NuGet, NPM, JSPM and Bower is much easier in VS.

Still, this is closer to VS than I expected it to be and is a very comfortable development experience.