Improve the REPL
See original GitHub issueHere’s a summary of what’s missing from the current impl:
- Lots of methods and fields are package-private, and I don’t know why. I guess making more of them
private
is a better idea. - Parser is unimplemented.
- Completion is unimplemented. I added completion for keywords, but that’s only available for non-commands. If your line starts with
:
, then no completion. This should be changed after we have commands that accept expressions. - No repl commands. I think we need a general interface for repl commands so the repl framework is extensible. Here’s a list of what I’m looking for.
-
:t
,:type
from GHCi. Completion should be enabled for this command. -
:normalize
or:eval
– whatever you’d like to call it – for normalizing the expression. Completion should be enabled. -
:prompt
that changes the prompt. - An option to change the pretty printing width.
- An option to change pretty printing options. Available options should be completed.
-
- Save history for jline3 based repl. We may start using
~/.aya/something
for this purpose. - Handle redefinitions.
- Completion of commands. This is very important.
_Originally posted by @ice1000 in https://github.com/aya-prover/aya-dev/issues/86#issuecomment-944882637_
Issue Analytics
- State:
- Created 2 years ago
- Reactions:1
- Comments:29 (29 by maintainers)
Top Results From Across the Web
How should repl.it improve? - Replit
How should repl.it improve and how can we help to do it? Write your opinions in the comments.
Read more >Boost your productivity with the REPL | Pydon't - Mathspp
the REPL is a great tool to help prototype small ideas and solutions;; the REPL supports multiline input, and breaks it after an...
Read more >Programming at the REPL: Enhancing your REPL workflow
There are a variety of things you may want to improve: Switching between my editor and the REPL is tedious. Most Clojure programmers...
Read more >Improve repl · Issue #19 · frida/frida-python - GitHub
Suggestions: Ctrl-c to clear current input in prompt, instead of raising the KeyboardInterrupt exception (same as normal shells)
Read more >improved repl for lua? - Reddit
I always use a repl regardless of the language, and if the language doesn't have a good repl experience I'm more likely to...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
me: “Which one is important to me? <stdin>? <interactive>?” <unknown-file>: “<stdin>” me: “Think again” <unknown-file>: “Then <interactive>” me: “Think again” <unknown-file>: “Still <stdin>” me: “None of them matters. It matters to me without <unknown-file>.”
For where to store aya config, history or cache files. I suggest one of them:
~/.ssh
)XXX_HOME
. We can support XDG Base Directory for desktop users byexport AYA_HOME="$XDG_DATA_HOME/aya"
or a command line option.I don’t suggest:
~/Library/Application Support
on macOS. This path is used for applications that ship with an app bundle.app
file. We may encounter some strange permission problems. I didn’t see any command line only programs use this path. And the path contains an unfriendly space that adds burden to command-line operation.Why is our own path that important?
~/.ssh
instead of googling something likessh key location on windows
.Why shouldn’t use XDG base directories by default?
XDG_XXX_HOME
set.XDG_XXX_HOME
set, like WSL. (Yes, WSL is desktop Linux and my WSL and Windows share the same home folder).Then how to use XDG base directories?