Lightweight atom.io Salesforce development plugin.
Primary goal is seamless atom.io integration. Utilize the growing atom.io ecosystem of packages and play to its strengths as an editor as much as possible. For example, compile error messages are linted in code using linter. And no, you do not have to have a separate app or server running to use it!
Other goals:
MyClass.cls
) then it can figure out what you're trying to save to.File > Settings
or ctrl-,
, then Install
, then search for atom-force
.
Via apm: apm install atom-force
Do Packages > atom-force > activate
after opening up your SF project directory. The first time, it will open a browser window and ask you to authenticate. Upon success, your oauth token is saved in your project's root directory in a file .atomforce
. Next time you open up and do activate
, atom-force will read your previous token and you can pick up where you left off.
Note: this is a big difference from how other IDEs work. This way your username/password is never stored in plain text. If your machine is ever compromised, you can de-authorize atom-force tokens via Salesforce UI and you will still be protected.
You can now add other orgs, which you can then deploy to via metadata API: Packages > atom-force > Add org
.
Currently atom-force cannot download your org's metadata - the assumption is that you already have a git repository set up with your code in it. This functionality is on the roadmap. For now, use another IDE or use ant or solenopsis.
Simply save any file whose extension matches (cls|trigger|page|resource)
and atom-force will automatically save to your Salesforce environment. Any errors will be linted using linter. (Future: allow auto-save to be turned off, allowing the user to keybind to the save command).
In order of priority:
If you think one of these should be higher, please consider submitting a pull request!
Code uses ES6 and follows airbnb style. I recommend installing linter-eslint to atom while working on this package to help keep style consistent.
update()
call isn't playing nice with promises. See this PR. To work around this, either manually apply the above patch to nforce-tooling in your node_modules
folder or clone my forked repo and symlink it in node_modules
.Inspiration has been and will be taken from vim-force. It's easily the best Salesforce IDE out there.
This project is licensed under the GPLv2.
Good catch. Let us know what about this package looks wrong to you, and we'll investigate right away.