-
Notifications
You must be signed in to change notification settings - Fork 61
Home
The OmniSharp Atom package is part of a family many OmniSharp based editor plugins, so in that sense we ride on the coat-tails of many others.
v0.4.X has been released, which runs against OmniSharp Roslyn, which is the Roslyn based version of the server and supports ASP.NET v5. The entire package has been rebuilt using TypeScript.
v0.2.1, was the last version that ran against OmniSharp Server. Keep in mind that version is no longer supported and will show a lot of Atom API deprecation warnings.
Riding on the coat-tails of others, the omnisharp-atom package depends on the following packages being installed
autocomplete-plus and linter packages are now automatically installed if they aren't already installed when you install omnisharp-atom.
Please ensure you've got Mono 3.4.1 or later installed if you're on OS X/Linux. Or .NET 4.5.1 on Windows. Please refer to the instructions detailed in the aspnet/home repository.
On Linux and OS X, you'll also need to have libuv installed (apt-get on linux, and homebrew on OS X). Do note that this is only a requirement for versions <= v0.4.0. Future versions will run against stdio which removes this dependency.
The Atom getting started guide is a good starting point for you.
Just a tip, to navigate to any file in the folder you've opened, just use CMD+T
on OS X or CTRL+T
on Windows/Linux. And to jump to any symbol (method/property) within a C# file use CMD+R
on OS X or CTRL+R
on Windows/Linux.
You're probably a developer, so of course you want the latest shiny ;)
- You'll need to git clone omnisharp-atom repository master (branch) to your
~/.atom/packages
(orc:\Users\<username>\.atom\packages
on Windows) folder. - Once you've cloned it, navigate to the omnisharp-atom folder now within packages using your favourite terminal/command prompt.
- Run the following command:
npm install
. This will pull in all the dependent packages. - If you're having any issues, ensure you've got the latest version of npm installed. See the Installing Node.js and updating npm guide.
- If you're still having issues, jump into the omnisharp chat room (mentioned below).
While our goal is for OmniSharp Atom to run smoothly across all platforms Atom supports (Mac OS X, Windows, Linux), there will always be cases where something breaks.
- Open the root of your solution within Atom
- When the flame icon in the bottom left corner turns green, the server has started!
- You can also make use of the Atom Command Palette by invoking the keyboard shortcut
CMD+SHIFT+P
on OS X orCTRL+SHIFT+P
on Windows/Linux.
Feel free to send a pull request to fix something or add a new feature, and someone will review it when they have time. We're an OSS project, staffed by volunteers doing this in our free time. So have patience :)
The ultimate goal is to have available all (applicable/relevant) features exposed by OmniSharp Roslyn from OmniSharp Atom, a list of which can be seen here.
Our list of actual implemented features is small (at this point in time), but will grow with active contributions. If you're comfortable, do have a poke at the code base and see if you can contribute. The current code in master is written mainly in TypeScript, so if you want to edit it, I'd strongly suggest installing the TypeScript package for Atom.
We use another Omnisharp abstraction project to communicate with the server https://github.com/OmniSharp/omnisharp-node-client. New features will need to be implemented first in that project, then in this project.
- Features are kept in the
lib/omnisharp-atom/features
folder. - If you'd like to add an item to the OmniSharp Atom menu (or context menu), this can be done by modifying
/menus/atom-sharper.cson
. - If you'd like to add a new keyboard shortcut, this can be done by modifying
keymaps/omnisharp-atom.cson
To load as a development package (in terminal/command prompt)
- apm develop
- atom
- atom -d (this loads Atom in dev mode)
To remove a dev package.
- apm delete --dev
They're available here: https://atom.io/docs/api/latest
Join us on jabbr for a chat - https://jabbr.net/#/rooms/omnisharp