rasa: A modular text editor
A modular text editor This is only a snippet, see the project's README.
Rasa is a text editor project with a few interesting goals. For better or worse it attempts
to be as modular as possible. This means that most functionality which would typically be considered to be core
in other editors
is implemented as extensions in Rasa.
This approach comes with its own share of pros and cons, for instance:
Pros
Implementing most core functionality as extensions ensures a powerful and elegant extension interface.
Flexibility; don't like the default cursor implementation? Write your own!
Adaptability; the core of Rasa is miniscule, you can mix and match extensions to build any editor you want.
Cons
Module cross-dependencies makes the community infrastructure more fragile; We'll likely have to develop a solution to this as a community as time goes on.
Fragmentation; Not having a single implementation for a given feature means extensions that depend on a feature have to pick a specific implementation to augment. Over time data-structures and types will be standardized into Rasa's core to help alleviate this.
While highly experimental, I've found the current API to be quite expressive and adaptable; for instance I was able to implement the notion of multiple cursors using the extension API in less than a day. I hope to keep the learning curve low as development continues.
Getting Started
First clone the Github repo and try running the example-config included there. Once you get it running (see the README) then you can customize your keymap to add a few mappings you like. Then I'd check out the Building your own extensions guide. It goes in depth into everything you'd want to know!
If you have any issues (and I'm sure there'll be a few; it's a new project!) please report them here and we'll talk about it!
[Skip to Readme]
Modules
[Index]
- Rasa
- Rasa.Ext
- Internal
- Rasa.Internal.Action
- Rasa.Internal.ActionMonads
- Rasa.Internal.Actions
- Rasa.Internal.BufAction
- Rasa.Internal.BufActions
- Rasa.Internal.Buffer
- Rasa.Internal.Editor
- Rasa.Internal.Events
- Rasa.Internal.Extensions
- Rasa.Internal.Interpreters
- Rasa.Internal.Listeners
- Rasa.Internal.Range
- Rasa.Internal.Styles
- Rasa.Internal.Text
- Rasa.Internal.Utility
- Rasa.Testing
Downloads
- rasa-0.1.10.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0.0, 0.1.1, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.1.10, 0.1.11, 0.1.12 |
---|---|
Dependencies | async (>=2.1.1 && <2.2), base (>=4.9 && <5), bifunctors (>=5.4.1 && <5.5), containers (>=0.5.7.1 && <0.6), data-default (>=0.7.1.1 && <0.8), free (>=4.12.4 && <4.13), hspec (>=2.2.4 && <2.3), lens (>=4.14 && <4.15), mtl (>=2.2.1 && <2.3), pipes (>=4.1.9 && <4.2), pipes-concurrency (>=2.0.6 && <2.1), pipes-parse (>=3.0.7 && <3.1), profunctors (>=5.2 && <5.3), text (>=1.2.2.1 && <1.3), text-lens (>=0.1.1 && <0.2), transformers (>=0.5.2.0 && <0.6), yi-rope (>=0.7.0.2 && <0.8) [details] |
License | GPL-3.0-only |
Copyright | 2016 Chris Penner |
Author | Chris Penner |
Maintainer | christopher.penner@gmail.com |
Revised | Revision 1 made by HerbertValerioRiedel at 2017-03-18T21:38:31Z |
Category | Text Editor, Executable |
Home page | https://github.com/ChrisPenner/rasa#readme |
Source repo | head: git clone https://github.com/ChrisPenner/rasa |
Uploaded | by ChrisPenner at 2017-02-20T18:58:03Z |
Distributions | |
Reverse Dependencies | 10 direct, 1 indirect [details] |
Downloads | 8151 total (37 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2017-02-20 [all 1 reports] |