Commit Graph

134 Commits

Author SHA1 Message Date
CrystalSplitter
3cc4e16ac3 Force upgrade fsnotify
This breaks for whatever reason only on hackage. It appears
ghcid depends on fsnotify as an executable, but not as a
library. We're not using it as an executable, but perhaps
the documentation is breaking on it. I'm uncertain why
we're building the executable dependencies, but until that's
fixed we can't do anything except either downgrade text
or force upgrade fsnotify.
2024-11-16 19:30:13 -08:00
CrystalSplitter
bc4fa79743 Fix manual typo 2024-11-15 22:02:58 -08:00
CrystalJRAW
4eeca763ab
Update MANUAL.rst
Minor typo fix
2024-11-15 20:58:52 -08:00
CrystalSplitter
ea73428e3c Update revision, add changelog, update dependencies
This is readies us for the release for 0.4.0.0
2024-11-15 20:56:11 -08:00
CrystalSplitter
d1c30f7037 Format InterpWindowEvents.hs 2024-11-15 20:56:11 -08:00
CrystalSplitter
b1c47f2e25 Update docs, minor reformatting 2024-11-15 20:56:11 -08:00
CrystalSplitter
d5c716e5d7 Add util to reveal newlines 2024-11-15 20:56:11 -08:00
CrystalSplitter
add4d3e286 Enter newline/hide prompt in REPL
This attempts to address the issues brought up in Issue #49.
2024-11-15 20:56:11 -08:00
CrystalSplitter
7fc027c981 Minor documentation update 2024-11-15 20:56:11 -08:00
CrystalSplitter
f6262ca4e9 Update haskell-actions
This updates the haskell-actions/setup to 2.7.6, so that
we avoid an outdated NodeJS issue.
2024-11-15 20:56:11 -08:00
CrystalSplitter
2fcd14cf67 Remove unneccessary imports 2024-11-15 20:56:11 -08:00
CrystalSplitter
692395d82a Remove unneeded language extension 2024-11-15 20:56:11 -08:00
CrystalSplitter
321a0b278f Rewrite existing sync/async DaemonIO runners
This commit removes Ghcitui.Ghcid.Daemon.run and replaces it with
Ghcitui.Ghcid.Daemon.threadUnsafeRun, which does the same thing
but has a more appropriate name.

Also rewrite Ghcitui.Ghcid.Daemon.schedule to be actually thread
safe and compatible with Ghcitui.Ghcid.Daemon.scheduleWithCb.

Update the module docs accordingly.
2024-11-15 20:56:11 -08:00
CrystalSplitter
8213edef22 Update some inline documentation, NFC 2024-11-15 20:56:11 -08:00
CrystalSplitter
dbfdee38ff Rename SourceWindowEvents Callbacks
This makes them match the other naming conventions.
2024-11-15 20:56:11 -08:00
CrystalSplitter
edb698db99 Asynchronicity event rewrite
This is a full rewrite of how event handling works for Daemon interaction.
The new design flow schedules execution to the Daemon on their own thread,
waiting to acquire a lock through an MVar primitive. This ensures that
interaction with the Ghcid handle is done synchronously, while still
allowing interrupts.

We're making use of Brick's Bounded Channels, which allow asynchronous
message passing to the Brick application itself. Messaging passing must
now be done through the CustomAppEvent.

This is feature complete but there's a lot of clean up that still
must be done before this should land.
2024-11-15 20:56:11 -08:00
CrystalSplitter
0a3ac3fc01 Restructure Brick.Events
This moves a lot of the logic out of Brick.Events, to make
it easier to isolate which module parts are shared, and which
parts are specific to individual event handlers.
2024-11-15 20:56:11 -08:00
CrystalSplitter
f1b4d1db63 Add contact method for CONTRIBUTING.md 2024-11-15 20:56:11 -08:00
CrystalSplitter
c443bce0bf Fix bug where source isn't visible
This commit fixes a bug where the source viewer will not display
the source code when there's only one module available. It specifically
prevents viewing that source code because it had the file already
selected--but hadn't refreshed the source window contents.

On start up, call `setSelectedFile` first to load the source window
contents.

Issue originally reported in:
https://github.com/CrystalSplitter/ghcitui/issues/48
2024-11-15 20:56:11 -08:00
CrystalSplitter
ab9888214f Add a Tracing section to MANUAL.rst
I felt this probably deserved its own
explainer.
2024-11-15 20:56:11 -08:00
CrystalSplitter
210147b23a Add documentation for AppState 2024-11-15 20:56:11 -08:00
CrystalSplitter
541489a989 Limit source file path character lengths to 45
When they were very long, they made it even harder to read than if
they were truncated.
2024-11-15 20:56:11 -08:00
CrystalSplitter
921bbd4b3f Standardise debug messages to use lower case first letter 2024-11-15 20:56:11 -08:00
CrystalJRAW
1863b26087 Update bug_report.md 2024-11-06 20:51:52 -08:00
CrystalSplitter
b8f3a50fb8 Update brick version 2024-08-15 19:56:10 -07:00
CrystalSplitter
0ace1fbfb6 Add Troubleshooting section in INSTALL.rst
Trying to install ghcitui on a minimal system
made me realise that `libncurses-dev` is an unlisted
dependency of `vty`.

Also follow restructured text guidelines on headings.
2024-07-28 17:43:39 -07:00
CrystalSplitter
64ae0c6285 Update version number to 0.3.0.0 2024-03-17 22:10:27 -07:00
CrystalSplitter
dcf48c2639 Update minor docs in Events.hs 2024-03-17 22:10:27 -07:00
CrystalSplitter
46ca959f51 Redesign SourceWindow around start + space
Originally, SourceWindow was built around a start and an end point.
It turns out, this was a bad idea as it caused update issues when
switching files.

Now we keep around the extent information.
2024-03-17 22:10:27 -07:00
CrystalSplitter
040e7bce79 Add deriving Show to various data types
Mostly for better debugging.
2024-03-17 22:10:27 -07:00
CrystalSplitter
4987c7a49a Allow apostraphes interspersed in token names
It turns out these are also allowed--and thus we need to be
able to match on them.
2024-03-08 00:58:34 -08:00
CrystalSplitter
b1ef23191e Reorganise ParseContextSpec fixtures 2024-03-08 00:58:34 -08:00
CrystalSplitter
676396079a Match on functions that have apostraphes
Apostraphes are of course valid haskell characters in function names.
The current ParseContext did not understand this.

Fixes #38 hopefully
2024-03-08 00:58:34 -08:00
CrystalSplitter
a0c44d2f0f Update for 0.2.0.0
This updates:
- The CHANGELOG.md.
- The cabal version number.
2024-02-11 14:38:45 -08:00
CrystalSplitter
261232adcd Update vty dependency 2024-02-11 14:38:45 -08:00
CrystalSplitter
d14941ed01 Add Hackage shield 2024-02-11 02:06:26 -08:00
CrystalSplitter
a32d71e551 Add help message on blank start up 2024-02-11 02:06:26 -08:00
CrystalSplitter
35efe6172b Update GitHub actions
This moves the actions to Node 20, and also runs actions against
`develop` branch.
2024-02-10 21:00:43 -08:00
CrystalSplitter
521cd0d4af Mention autocomplete in the MANUAL 2024-02-10 20:17:42 -08:00
CrystalSplitter
4fc3621955 Add better documentation for AppInterpState 2024-02-10 20:17:42 -08:00
Brad Neimann
e1f38caa3c Implement tab completion
This provides the GHCi Repl inside GHCiTUI with basic tab completion.
This is slightly more advanced than the standard GHCi tab completion,
but not by much.

This commit also moves around some error and parsing code to help
in this effort.

Co-authored-by: CrystalSplitter <crystal@crystalwobsite.gay>
2024-02-10 20:17:42 -08:00
CrystalSplitter
4344d0988c Reformat files 2024-02-02 20:59:44 -08:00
CrystalSplitter
6e63debbeb Fix minor lints 2024-02-02 20:59:44 -08:00
CrystalSplitter
4de6b652f7 Convert CRLF line endings to just LF in the cache 2024-02-02 20:59:44 -08:00
CrystalSplitter
96e1578aa3 Make package dependencies DRY
This removes all the duplicate version numbers for the
executable/non-base libraries.
2024-01-21 18:32:06 -08:00
CrystalSplitter
50bfae20d5 Mark package as experimental 2024-01-21 18:08:54 -08:00
CrystalSplitter
664dec6593 Update ghcitui.cabal with version change, metadata
This prepares version 0.1.0.0.
2024-01-21 17:59:12 -08:00
CrystalSplitter
f8233fad6c Update docs
This updates the CHANGELOG.md, adds more to CONTRIBUTING, updates the
bug_report.md GitHub template, and updates the README.
2024-01-21 17:59:12 -08:00
Jordan R AW
5fce42cd0b Update issue templates 2024-01-21 17:31:33 -08:00
CrystalSplitter
160f704353 Update cabal file with more correct version bounds
This uses the --prefer-oldest flag to find what the correct
bottom bounds should be for some package versions.
2024-01-21 14:59:41 -08:00