-
Notifications
You must be signed in to change notification settings - Fork 200
Future work
Dmitry Ivanov edited this page Nov 12, 2013
·
9 revisions
- We should get rid of circular dependencies.
- Buffer should know nothing about Windows and let Editor handle all Buffer<->Window interaction. Current Buffer.Misc is a kitchen sink.
- Architecture must allow fast development cycle. Current 'cabal install && :reload' is rather slow.
- We should make it easy to make plugins. From time to time people want to make paredit (syntastic, fugitive, etc.) for yi, but the barrier of entry is too high.
- We must be able to use external tools (haskell-source-exts for Haskell, libclang for (Obj-)C(++), etc.)
- We still want it to be possible to create syntax highlighting from grammars (use case: user has some in-house config file format)
- Rainbow parens!
- Syntax highlighting must be asynchronous (like in xcode, for example), so that slow highlighting doesn't make editing unbearable.
- It must be possible to switch or disable highlighting at runtime, e.g. when editing a huge file or working on a very slow machine.
- Layout code must be shared by frontends.
- Maybe it would be nice to have Qt frontend.
- Should we try terminal libraries other than vty?
- It would be nice to have acme in addition to nano, vim and emacs.
- User must be able to switch and edit keymaps at runtime.
It's been a long time since yi was very actively developed. We should re-evaluate our dependencies. For example:
- Should we move from data-accessor to lens? https://github.com/ethercrow/yi/tree/lens-take2
- Should we move from regex-tdfa to some PCRE library? Regex-pcre branch here: https://github.com/ethercrow/yi/tree/regex Some modern text editors seem to use http://www.geocities.jp/kosako3/oniguruma/
- Should we dump Strings and ByteStrings in favor of Text where possible? (Ropes use Text instead of ByteStrings in my regex branch)
- Is it time to drop Scion and GHCAPI flags?
There are bunch of things that raise barrier of entry:
- Highlighting is broken for utf8.
- All example configs are monolithic, we should provide a modular one.
- First launch greets user with "Error, no frontend", it should be friendlier.
What tasks have the right difficulty and scope for a GSoC project?