Commit Graph

35 Commits

Author SHA1 Message Date
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
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
a32d71e551 Add help message on blank start up 2024-02-11 02:06:26 -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
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
CrystalSplitter
9f2bb3c45b Reorganise modules to create the Ghcitui.Brick module 2024-01-19 01:46:31 -08:00
CrystalSplitter
9248597e8e Add start up logging for GHCiD 2024-01-15 13:04:18 -08:00
CrystalSplitter
4e533fe4bb Reorganise modules, clean up formatting
This moves the ghcitui libs which don't require Brick to ghcitui-core,
and the other library files to ghcitui-brick.
2024-01-15 02:12:47 -08:00
CrystalSplitter
898e00ef76 Add better failure handling in Ghcid.Daemon 2024-01-15 02:12:47 -08:00
CrystalSplitter
13b8ad8b38 Entirely rework the source viewer for more performance
This is a massive fundamental TUI change. Because Brick Viewports
are too slow to render large source files with tens of thousands
of widgets, we need to use a slice-able data structure to contain
this info.

This is where SourceWindow comes in, which efficiently displays
the source code as a custom widget. This is based on Brick.List,
though slightly different because Brick.List also doesn't
meet our needs.
2024-01-15 02:12:47 -08:00
CrystalSplitter
bf93aeecda Clean up Daemon start up and messaging 2024-01-15 02:12:47 -08:00
CrystalSplitter
34e494df37 Add submodule Ghcitui for all library components
Potentially, we should re-export the important bits. But for now this
seems to work fine.
2024-01-15 02:12:47 -08:00
CrystalSplitter
2f1ad27a96 Append commands to history only if they are not empty 2024-01-15 02:12:47 -08:00
CrystalSplitter
3c39f6836a Support program tracing
This is a fairly big feature add, where we now have program tracing
in the info sidebar.

Unfortunately, it's still fairly hard to read in its short space, so I
probably want to think about how to resize or highlight parts of the
info panel?
2024-01-15 02:12:47 -08:00
CrystalSplitter
586718e49a Simplify execMuted 2024-01-15 02:12:47 -08:00
CrystalSplitter
88992b7742 Remove deprecated lib/Tui.hs 2024-01-15 02:12:47 -08:00
CrystalSplitter
4d8b593856 Reorder most DaemonIO args 2023-10-14 21:49:33 -07:00
CrystalSplitter
33db7c4f32 Rename StringUtil.hs to Util.hs 2023-10-14 21:48:55 -07:00
CrystalSplitter
edccac0ee3 Multiple structural changes for lib
* Better documentation for nearly every module.
* Use DaemonIO (ExceptT DaemonError IO a)
2023-10-08 22:41:08 -07:00
CrystalSplitter
52a2f3c11c Module box + more 2023-10-01 22:43:10 -07:00
CrystalSplitter
ea7d9cc403 Support multiline source ranges 2023-09-20 01:23:52 -07:00
CrystalSplitter
55962ae79c Another large set of changes without much tracking 2023-08-30 00:45:59 -07:00
CrystalSplitter
afaad53b90 Add history to the live interpreter 2023-08-02 22:44:46 -07:00
CrystalSplitter
77d08e470a The interpreter commit 2023-07-30 16:02:36 -07:00
CrystalSplitter
ee8788dbf2 Add breakpoint toggling 2023-06-22 02:03:11 -07:00
CrystalSplitter
871f284e82 Some more early development 2023-06-06 22:19:12 -07:00
CrystalSplitter
39af025aa7 Continued early development work 2023-06-03 19:37:01 -07:00
CrystalSplitter
cde9f0a7e8 Initial commit 2023-05-31 20:26:13 -07:00