TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Rasa: Extremely modular text editor built in Haskell

189 pointsby poiuzover 8 years ago

11 comments

ChrisPennerover 8 years ago
Author here; I can answer any questions you might have; It&#x27;s still a really early project but it&#x27;s growing quickly! Anyone who&#x27;s interested should join in the discussion in our chat-room here: <a href="https:&#x2F;&#x2F;gitter.im&#x2F;rasa-editor&#x2F;Lobby" rel="nofollow">https:&#x2F;&#x2F;gitter.im&#x2F;rasa-editor&#x2F;Lobby</a>
harpocratesover 8 years ago
This looks really neat. I really like the idea, and I think it has lots of potential.<p>That said, I&#x27;m going to try to moderate my enthusiasm until more stuff gets implemented. Thinking back to Yi [0], there is a lot of really cool stuff in that too (namely precise syntax highlighting, which relied heavily on parsing lazily). There&#x27;s even a couple papers written about it [1]! IIRC, the main problem was (I think it has been at least partially dealt with) performance - people expect their editors to be blazingly fast. It will be interesting to see if Rasa encounters similar problems.<p>[0] <a href="http:&#x2F;&#x2F;yi-editor.github.io&#x2F;" rel="nofollow">http:&#x2F;&#x2F;yi-editor.github.io&#x2F;</a> [1] <a href="https:&#x2F;&#x2F;github.com&#x2F;yi-editor&#x2F;yi#reading-material" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;yi-editor&#x2F;yi#reading-material</a>
评论 #13395758 未加载
HugoDanielover 8 years ago
Love it, specially the &quot;What people are saying&quot; part :D<p><pre><code> * Excessively Modular! - some bald guy * I&#x27;m glad I&#x27;m unemployed so I have time to configure it! - my mate Steve * You should go outside one of these days. - Mother</code></pre>
评论 #13398374 未加载
wycover 8 years ago
&gt; I&#x27;m glad I&#x27;m unemployed so I have time to configure it! - my mate Steve<p>&gt; You should go outside one of these days. - Mother<p>These quotes are great.
评论 #13396790 未加载
peatmossover 8 years ago
Without knowing too much about either editor, how does this compare &#x2F; differ with Yi (<a href="http:&#x2F;&#x2F;yi-editor.github.io&#x2F;" rel="nofollow">http:&#x2F;&#x2F;yi-editor.github.io&#x2F;</a>)?
评论 #13395130 未加载
评论 #13394891 未加载
thinkpad20over 8 years ago
I&#x27;m excited to see another option appear in text editing, and excited that it&#x27;s written in Haskell, one of my favorite languages. But, why would I choose it over another text editor? The ability to customize it is neat, but editors like emacs can be customized to one&#x27;s heart&#x27;s content, and indeed can suffer from this (why did my editor suddenly become slow? why is my syntax highlighting or indentation not working correctly? who knows, it&#x27;s the interaction of one of the 50 packages I have installed...).<p>Of course, you as the author are under no obligation save to write whatever you want, but speaking personally, I would love to see some sort of demonstration of how the editor works, and&#x2F;or the case made selling me on why I should choose it over other options.
评论 #13396991 未加载
评论 #13397370 未加载
brennenover 8 years ago
While this looks appealing and I will probably try it, I&#x27;m not sure if I have cognitive room for another core tool configured in Haskell. Running xmonad is already like a commitment to periodic skirmishes with an angry badger.
评论 #13395786 未加载
gizmo686over 8 years ago
Exciting project.<p>For those people who might be scared off because it is Haskell, I would encourage you look at the default config. [0]<p>Apart from import statements and two lines of boilerplate, it is just a newline deliminated list of modules. The only line that this does not apply to is the last line, which sets the initial state of the buffer.<p>Writing your own extensions probably will always involve being comfortable with Haskell, but (assuming it gets a decent community) will not be nessasary for the majority of users.<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;master&#x2F;rasa-example-config&#x2F;app&#x2F;Main.hs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;master&#x2F;rasa-example...</a>
visargaover 8 years ago
Does the name mean &quot;aroma&quot; or &quot;flavor&quot; (from Sanskrit), or has another meaning altogether?
评论 #13394948 未加载
评论 #13394935 未加载
评论 #13395713 未加载
newsat13over 8 years ago
This is amazing, I will give it a try over the weekend for sure. Is modular the selling point here? Last thing I seek in an editor is modularity. This is like saying my browser is written in some pluggable framework... Who cares as long as it works?
评论 #13397420 未加载
Mathnerd314over 8 years ago
I followed the code flow a bit:<p>main loop: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;master&#x2F;rasa&#x2F;src&#x2F;Rasa.hs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;master&#x2F;rasa&#x2F;src&#x2F;Ras...</a> renderer: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;master&#x2F;rasa-ext-slate&#x2F;src&#x2F;Rasa&#x2F;Ext&#x2F;Slate&#x2F;Internal&#x2F;Render.hs#L27" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;master&#x2F;rasa-ext-sla...</a> views: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;2fcb326b646e2f6b01f8434ab790b632a25f8d00&#x2F;rasa-ext-views&#x2F;src&#x2F;Rasa&#x2F;Ext&#x2F;Views&#x2F;Internal&#x2F;Views.hs#L208" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;2fcb326b646e2f6b01f...</a> buffer references: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;2fcb326b646e2f6b01f8434ab790b632a25f8d00&#x2F;rasa&#x2F;src&#x2F;Rasa&#x2F;Internal&#x2F;Directive.hs#L80" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;2fcb326b646e2f6b01f...</a> buffers: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;2fcb326b646e2f6b01f8434ab790b632a25f8d00&#x2F;rasa&#x2F;src&#x2F;Rasa&#x2F;Internal&#x2F;Buffer.hs#L24" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;2fcb326b646e2f6b01f...</a><p>events: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;0b7a037fde31b81d211f74475ba0869cbd2226fa&#x2F;rasa-ext-slate&#x2F;src&#x2F;Rasa&#x2F;Ext&#x2F;Slate&#x2F;Internal&#x2F;Event.hs#L10" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;0b7a037fde31b81d211...</a> handler: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;b1da88138a68fc2c74113d68230290e310db7003&#x2F;rasa-ext-vim&#x2F;src&#x2F;Rasa&#x2F;Ext&#x2F;Vim.hs#L57" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;b1da88138a68fc2c741...</a> typing: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;b1da88138a68fc2c74113d68230290e310db7003&#x2F;rasa-ext-vim&#x2F;src&#x2F;Rasa&#x2F;Ext&#x2F;Vim.hs#L99" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;b1da88138a68fc2c741...</a> cursor: <a href="https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;bb95a3263fc40120edbbcb9fe59521b4e362af33&#x2F;rasa-ext-cursors&#x2F;src&#x2F;Rasa&#x2F;Ext&#x2F;Cursors&#x2F;Actions.hs#L37" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ChrisPenner&#x2F;rasa&#x2F;blob&#x2F;bb95a3263fc40120edb...</a><p>Seems kind of scattered, compared to others such as <a href="https:&#x2F;&#x2F;hackage.haskell.org&#x2F;package&#x2F;qtah-examples-0.2.0&#x2F;src&#x2F;src&#x2F;Graphics&#x2F;UI&#x2F;Qtah&#x2F;Example&#x2F;Notepad.hs" rel="nofollow">https:&#x2F;&#x2F;hackage.haskell.org&#x2F;package&#x2F;qtah-examples-0.2.0&#x2F;src&#x2F;...</a> or <a href="https:&#x2F;&#x2F;github.com&#x2F;HeinrichApfelmus&#x2F;threepenny-gui&#x2F;blob&#x2F;master&#x2F;samples&#x2F;Canvas.hs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;HeinrichApfelmus&#x2F;threepenny-gui&#x2F;blob&#x2F;mast...</a>, although of course it&#x27;s still better than Yi.<p>Personally I wouldn&#x27;t consider it without a GUI supporting variable-width text, and that seems far away at this point. But if someone writes an OpenGL renderer it might be worth a second look.