The Atom Editor
There is a pretty nice open source text editor and IDE called Atom, it is backed by GitHub.
Visually it looks similar to Sublime Text or TextMate.
I tried it for a while and looks quite interesting, I'd like to try it more, learn how to extend it then share the findings and ideas.
Advantages
As Atom is developed by GitHub is has a nice integration with GitHub technologies like integrated Git VCS support, open the current source at GitHub, GFM (MarkDown) live preview, etc...
Hackable, it was designed for customization and easy enhancements, the API is well documented.
Atom can be built from sources, alternatively DEB and RPM binary packages are provided for Linux. The RPM package is built for Fedora but works in openSUSE as well (tested in 13.2 and 42.1).
Disadvantages
The default Atom functionality is pretty wide, but there are still some missing features which are supported by the other editors. Fortunately there are about 3000 packages (plugins) provided by the community which can significantly extend the functionality.
Unfortunately the package does not support auto-upgrade, there is no notification about a new upgrade available, you have to actively check the latest version available. And if there is a new version available you have to download the package and run
rpm -Uvh
manually.
Technologies
It is quite interesting from technology point of view, it runs embedded in a Chrome web browser window. That means it's built on HTML, CoffeeScript (Javascript), Less (CSS) and NodeJs. So if you are familiar with the web technologies it should be pretty easy for you to hack the Atom editor and make your own customization or new plugins.
And if you are not familiar with them you can learn some new trendy technologies...
Ideas for the Hackweek Project
Here are some ideas for the Hackweek project:
- Get familiar with Atom, try using it in your usual projects you work on.
- Try to find some useful packages, make a list of recommended packages or configuration settings.
- Build a native package for openSUSE, make it easy to upgrade the package by simple
zypper up
command just like the other packages.
If you find some missing functionality try implementing it as a new Atom package. Ideas for some new packages or enhancements:
- Syntax highlighting for
*.changes
files (already started) - Syntax highlighting for Bugzilla and FATE numbers (already started)
- Syntax highlighting for the YCP language. (YCP was dropped in YaST but it's still used in SLE11, for maintenance updates at least a basic syntax highlighting support still makes sense.)
- Rake support - there is a build-tools-make package, create a similar package for Rake
- Ruby code coverage highlighting (support for RSpec + SimpleCov), check the existing packages (1, 2, 3).
- Ruby code navigator - there already is a ruby-navigator package, but needs some external tool and does not work reliably. Maybe the internal Ruby parser (used for syntax highlighting) could be reused, like in ruby-block.
Links
- Atom home page
- Atom documentation, API
- CoffeeScript
- Less
- NodeJs, NodeJs API
- NpmJs (NodeJs packages)
This project is part of:
Hack Week 13
Activity
Comments
Be the first to comment!
Similar Projects
obs-service-vendor_node_modules by cdimonaco
Description
When building a javascript package for obs, one option is to use https://github.com/openSUSE/obs-service-node_modules as source service to get the project npm dependencies available for package bulding.
obs-service-vendornodemodules aims to be a source service that vendors npm dependencies, installing them with npm install (optionally only production ones) and then creating a tar package of the installed dependencies.
The tar will be used as source in the package building definitions.
Goals
- Create an obs service package that vendors the npm dependencies as tar archive.
- Maybe add some macros to unpack the vendor package in the specfiles
Resources