Changelog for ghcitui-0.4.0.0
Revision history for ghcitui
0.4.0.0 -- 2024-11-15
New features
- Interruptable expressions! This was a huge rework of the code. You can now press
Ctrl+c
and expression evaluation will be interrupted! Very handy for avoiding hanging. See GitHub Issue #49 for details.
API changes
Large overhaul in general, as GHCiTUI has moved to an async daemon scheduling model.
- Ghcitui.Brick
- Introduction of the new
CustomAppEvent
to handle new event handling. - The
brickApp
now specifies aCustomAppEvent
. - Moved event utils to
EventUtils.hs
- Separated out
Events.hs
intoInterpWindowEvents.hs
andSourceWindowEvents.hs
. - Introduced the callback functions
handleSourceWindowPostCb
andinterpWindowPostCb
.
- Introduction of the new
- Ghcitui.Core
- Removed the
run
command as it was misleading in an asynchronous context. Replaced withthreadUnsafeRun
. - Added the
schedule
andscheduleWithCb
functions, which mostly replace the intent ofrun
, but work with async. - Added
interruptDaemon
to call the interrupt signal. emptyInterpreterState
now must be run underIO
, as it must set up the lock.- Added
readyToExec
to check if theghci
handle lock is taken.
- Removed the
In general, lots of doc fixes.
Bug fixes
- Fixed a bug where the module display wouldn't reveal the source in the
Source Window
. when there was only one module. See GitHub Issue #48 for details.
Known issues
See https://github.com/CrystalSplitter/ghcitui/issues for the latest issues.
- Inability to suspend operation through
Ctrl+z
.
0.3.0.0 -- 2024-03-17
API changes
- Ghcitui.Brick
- Large rework of SourceWindow's end calculation.
- Removed
updateSrcWindowEnd
, replaced withupdateVerticalSpace
. - Added
srcWindowLineDiffCount
.
- Removed
- Large rework of SourceWindow's end calculation.
Bug fixes
- Can now parse functions with apostraphes in names. (Issue #38)
- Switching between files when updating contexts now snaps to the stopped line (Issue #41)
Known issues
See https://github.com/CrystalSplitter/ghcitui/issues for the latest issues.
- Unable to interrupt expressions (fixed in 0.4.0.0)
- Inability to suspend operation through
Ctrl+z
.
0.2.0.0 -- 2024-02-11
New features
- Rudimentary tab completion! (credit: https://github.com/bradrn)
API changes
- Ghcitui.Brick
- Added functions to support tab completion.
- Ghcitui.Core
- Added
Ghcitui.Ghcid.ParseTabCompletions
module. - Added
Ghcitui.Ghcid.Daemon.tabComplete
. - Moved ParseError to its own module (
Ghcitui.Ghcid.ParseError
). - Removed lazy data fields in records in
Ghcitui.Ghcid.Daemon.BreakpointArg
Ghcitui.Ghcid.Daemon.InterpState
- Possibly a few more
- Added
- Other
- Update version for
vty
.
- Update version for
Bug fixes
- Fix issue with CRLF line endings caused weird source viewer wrapping behaviour.
Misc
- Added help message on start up splash to mention '?' keybinding.
- Increased the cabal
tested-with
range.
Known issues
See https://github.com/CrystalSplitter/ghcitui/issues for the latest issues.
- Can't parse functions with apostrophes in names. (Issue #38) (fixed in 0.3.0.0)
- Switching between files when updating contexts does not snap to the stopped line (Issue #41) (fixed in 0.3.0.0)
- Unable to interrupt expressions (fixed in 0.4.0.0)
- Inability to suspend operation through
Ctrl+z
.
0.1.0.0 -- 2024-01-21
First release! This is a "public beta" release, which we try to get feedback for higher priority features.
Features
- The public Ghcitui library.
- Ghcid connection set up.
- Source code viewer.
- GHCi REPL
- Current Bindings.
- Available Modules.
- Tracing.
- Debug console.
Bug fixes
- None--this is the first release.
Known issues
(See https://github.com/CrystalSplitter/ghcitui/issues for the latest issues.)
- Occasionally we get a SEGV on start up. Uncertain why. Very infrequent--likely a race condition in Vty or GHCiD?
- String variables which contain quotes are not parsed correctly.
- Unable to interrupt expressions (fixed in 0.4.0.0)
- Currently no remapping of keybindings or colours.
- CRLF line endings don't work (fixed in 0.2.0.0)
- Inability to suspend operation through
Ctrl+z
.