Skip to content

ChrisNZL/Eiffelicious

Repository files navigation

Eiffelicious

C# syntax theme for Atom 1.24.1

If you:

  • Code in C#
  • Fancy having method and property declarations stand out
  • Are okay with using an older version of Atom
  • Don't require Visual Studio for getting work done, and
  • Don't mind wearing sunglasses

This theme might spice up your life.

Inspired from TextMate's Eiffel theme, Eiffelicious works well with C# and Atom 1.24.1.

Eiffelicious preview screenshot

Why Atom 1.24.1?

Atom's ability to change font sizes for specific symbols is something unique compared to other editors.

Unfortunately, newer versions of Atom suffer from a regression of being incapable of detecting the difference between declarations and calls for methods and properties in C#, so all symbols of a method or property are affected by styling changes, regardless of context. 1.24.1 seems to be the last version that knows the difference.

Despite being an older version, Atom's generic multi-file intellisense autocompletion still works well without needing to rely on external code parsers.

Why Atom?

Atom's out-of-the-box search features just work, time and time again.

  • Ctrl+R: Jump to any declaration in the current file.

  • Ctrl+T: Jump to any file in any Project Folder you've added to Atom's sidebar.

  • Ctrl+Shift+F: Search all files in your Project Folders for any text.

In a perfect world, everything would work without a hitch, but the lay of the land is:

  • Visual Studio is slow to launch, takes ages to update, is only for Windows (the macOS version is a different beast), and doesn't play nicely with Unity's project solutions. Too often, projects becomes unlinked, or Visual Studio's intellisense stops working after a DLL is changed, requiring you to reload all the files, and even then it doesn't always come back.

  • Visual Studio Code can't tell the difference between method and property declarations and calls for C#, and thus can't style them differently.

  • Sublime Text 3 does not detect C# property declarations when searching via Ctrl+R, and does not support generic multi-file intellisense.

  • OmniSharp doesn't always work.

  • Rider is expensive.

As silly as it sounds, this particular version of Atom is my preferred C# editor, coupled with this theme.

Unity integration

If you develop games with Unity, go Edit > Preferences > External Tools, and then:

  1. For External Script Editor, browse for Atom.exe or Atom.app.
  2. For External Script Editor Args, enter: "$(File)":$(Line)

Unity preferences for Atom

Issues and gotchas with Atom 1.24.1

  • Before installing Atom 1.24.1:

    1. Disconnect your Internet connection so Atom doesn't update itself.
    2. Upon launch, go Help > About Atom, and uncheck Automatically download updates.
  • Lines sometimes squish together. Restarting Atom sometimes helps, but you might need to pad your code with a couple blank newlines in places to make things readable.

  • After closing a tab or file, Atom may stop suggesting autocomplete results and stop highlighting matching brackets. This can be resolved by reloading Atom via Ctrl+Shift+F5.

Recommended complementing packages