-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
File events and sanity checks #64 #65
base: master
Are you sure you want to change the base?
Conversation
do | ||
newBuf <- addBuffer txt | ||
dispatchFileLoaded $ extOf fname newBuf | ||
bufDo_ newBuf (setFilename fname) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should set the filename first THEN dispatch the event probably :) Remember that even handlers are processed synchronously in-line by default
data Extension = Extension String | UnknownExtension deriving (Eq) | ||
|
||
data FileLoaded | ||
= FileLoaded Extension BufRef |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the FileLoaded
event should probably just pass the whole filepath and the consumer can pull the extension out themselves if they like.
= FileLoaded Extension BufRef | ||
|
||
-- | Trigger an 'App' on a 'Keypress' | ||
onFileLoaded :: (FileLoaded -> App result) -> App ListenerId |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we don't plan to use the result for anything I'd prefer we just set it to ()
for clarity purposes.
onFileLoaded :: (FileLoaded -> App result) -> App ListenerId | ||
onFileLoaded actionF = addListener (void <$> actionF) | ||
|
||
-- | Dispatch a 'Keypress' event. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
copy pasta 'FileLoaded
event' 😋
data FileLoaded | ||
= FileLoaded Extension BufRef | ||
|
||
-- | Trigger an 'App' on a 'Keypress' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keypress
-> FileLoaded event
😛
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good! What do you think about passing the whole FilePath instead of just the extension?
Here's enough file event data to hook the new syntax module. I also added some file related packages to do some basic sanity checks. I guess these will be useful later.