ChrisPenner / rasa

Extremely modular text editor built in Haskell
GNU General Public License v3.0
614 stars 42 forks source link

Add Buffer Types #63

Open ChrisPenner opened 5 years ago

ChrisPenner commented 5 years ago

cc @jmatsushita

Allow Buffers to have types by introducing a new event type:

data BufTypeChanged bufType = BufTypeChanged

BufTypeChanged ReadOnlyBuffer for read-only buffers in rasa-ext-files (rasa -R example.txt) BufTypeChanged (EditorBuffer languageType) for specifying syntax choice in rasa-ext-syntax. Allowing to make syntax modular by having for instance a markdown syntax extension listen to BufferTypeChanged (EditorBuffer MarkdownLanguage) BufTypeChanged FileBrowser for a file browser, etc.

ChrisPenner commented 5 years ago

@jmatsushita In response to your questions in #2 ,

Should the BufTypeChanged type be introduced in Rasa.Internal.Events or in an extension? Should BufAdded be extended also to include the BufType in addition to the BufRef?

Yes, I think that makes sense for both of those. The tricky bit will be how to standardize buffer types across all extensions? We can either add some common ones into the core, or we can write a simple module that just has 'all' the filetypes in it and people can add new ones as needed 😄