Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/emad-elsaid/amun
A minimal CLI text editor, built on Ruby, looking for Emacs as it's father and idol.
https://github.com/emad-elsaid/amun
cli editor emacs gem ruby
Last synced: 3 months ago
JSON representation
A minimal CLI text editor, built on Ruby, looking for Emacs as it's father and idol.
- Host: GitHub
- URL: https://github.com/emad-elsaid/amun
- Owner: emad-elsaid
- License: mit
- Created: 2017-03-10T13:34:50.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-08-21T12:32:31.000Z (over 4 years ago)
- Last Synced: 2024-05-02T00:26:21.540Z (10 months ago)
- Topics: cli, editor, emacs, gem, ruby
- Language: Ruby
- Homepage: http://www.emadelsaid.com/amun
- Size: 145 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Amun (Work in progress)
## "King of the gods and god of the wind"
[![Gem Version](https://badge.fury.io/rb/amun.svg)](http://badge.fury.io/rb/amun)
[![Build Status](https://travis-ci.org/emad-elsaid/amun.svg?branch=master)](https://travis-ci.org/emad-elsaid/amun)
[![Code Climate](https://codeclimate.com/github/emad-elsaid/amun/badges/gpa.svg)](https://codeclimate.com/github/emad-elsaid/amun)
[![Test Coverage](https://codeclimate.com/github/emad-elsaid/amun/badges/coverage.svg)](https://codeclimate.com/github/emad-elsaid/amun)
[![Inline docs](http://inch-ci.org/github/emad-elsaid/amun.svg?branch=master)](http://inch-ci.org/github/emad-elsaid/amun)A minimal CLI text editor, built on Ruby, looking for Emacs as it's father and idol.
As developing packages for Emacs with Elisp wasn't always a fun or easy task, Starting a project that leverage ruby ability for fast development will be a good move towards
an open, easy to extend editor.When I started this project I had 2 options, taking the VIM way or emacs way, looking in the current state of the two editors, It's obvious that emacs approach has a better
extensibility over VIM, emacs customizability is far superior to VIM, so building this project as a minimal and emacs-like would open the door for vim users to have their own
bindings as a package like emacs Evil mode, but doing the other way around won't help emacs users.## Advantages of building an editor in ruby
* We can use ruby gems as package management
* we already have bundler to fix dependencies, upgrade, downgrade gems (plugins in this case), you can even add sources for gems or get a gem from github or company inhouse gems.
* you can reflect on the runtime and autocomplete commands
* plugins can mutate all parts of the runtime application classes/objects included
* ruby is easy to learn so it'll be easier to build gems that is specifically for this editor
* lots of gems already exists and could be loaded into the editor environment
* you can use it locally or remotly as it's terminal based
* documentation included, rdoc is already there to be used## Installation
$ gem install amun
## Usage
amun install an executable to your path, so executing `amun` from your command-line should launch amun
## Structure
### Helpers
Helpers are modules that any class can use to do side tasks, think of it like Ruby on rails helpers.
* Only modules no classes
* doesn't depend on each other
* depends on the project dependencies only like "Curses"### MajorModes
Classes that are responsible the following for a buffer object:
* event handling
* manipulating IO
* Rendering IO into a curses window## Development
After checking out the repo, run `bundle install` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
### Tests
guard file will run rspec tests whenever a relevant file changes
```
$ guard
```## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/emad-elsaid/amun.
## License
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).