package utop
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=a11844563c36efefc466076f6f5f114d30eff6f032aec2fbe0dcbd20255d204d
sha512=07991b7a837bb3cae4d0ca2977d011a34f1bb9a7b3b472787010f788aae3b8d7960bc3c5b7f19c3153249dc8f229934b5f48c37d16f93b50eb4d6b5da65dfe7b
doc/utop/UTop/index.html
Module UTop
Source
UTop configuration.
Version of utop.
The number of commands already executed.
The set of OCaml keywords.
Add a new OCaml keyword.
Load all the given findlib packages
If true
(the default) identifiers starting with a '_' will be hidden from the output. i.e. the following phrase won't produces any output:
let _x = 1
This is for hidding variables created by code generators for internal use. It can also be set/unset by the command line options -hide-reserved
and -show-reserved
.
Returns the value of hide_reserved
.
Modifies hide_reserved
.
If true
(not the default) expressions entered in the toplevel are automatically bound, for example:
# 3 + 4;;
_0 : int = 7
# _0 + 10;;
_1 : int = 17
Returns the value of create_implicits
.
Modifies create_implicits
.
If false
(the default) messages from findlib are hidden. This is only effective with findlib >= 1.4.
Returns the value of topfind_verbose
.
Modifies topfind_verbose
.
List of messages logged by findlib since the beginning of the session. This requires findlib >= 1.4.
If true
(the default) the completion bar is displayed.
Margin of the standard and error formatters as a function of the screen size.
The default is:
fun size -> Some (min 80 size.cols)
The phrase terminator, ";;".
Returns the value of phrase_terminator
.
Modifies phrase_terminator
.
If true
(the default) toplevel lwt expressions are automatically run with Lwt_main.run
. i.e. if you type:
Lwt_io.printl "Hello, world"
this will be replaced by:
Lwt_main.run (Lwt_io.printl "Hello, world")
Returns the value of auto_run_lwt
.
Modifies auto_run_lwt
.
If true
(the default) toplevel Async expressions are automatically run with in a separate thread with Thread_safe.block_on_async_exn
. i.e. if you type:
after (Time.Span.of_s 1.0)
this will be replaced by:
Thread_safe.block_on_async_exn (fun () -> after (Time.Span.of_s 1.0))
Returns the value of auto_run_async
.
Modifies auto_run_async
.
Action that add the phrase terminator at the end of the current phrase and accepts it. For instance to avoid typing ;;
, add this to your ~/.config/utop/init.ml:
#require "lambda-term";;
LTerm_read_line.bind
[ { control = false; meta = false; shift = false; code = Enter } ]
[ UTop.end_and_accept_current_phrase ]
External editor command. None
for default.
History
The history used by utop. You can configure limits using the LTerm_history
module.
For example if you want to limit the history to 1000 line, add these lines to your ~/.config/utop/init.ml file:
#require "lambda-term";;
LTerm_history.set_max_entries UTop.history 1000;;
Name of the history file. If None
, no history will be loaded or saved.
Maximum size of the history file. If None
(the default) the maximum size of history
will be used.
Maximum entries to store in the history file. If None
(the default) the maximum number of entries if history
will be used.
A history consisting of inputs and resulting values or errors of the current session. Because stashing is supposed to produce a valid OCaml file which will behave roughly the same as the console, it is best if this history never gets truncated. While this will certainly lead to a slight memory leaking problem, UTop sessions are rarely long enough to make it a serious issue.
Console specific configuration
The color profile. It defaults to Dark
. This is used by the default prompt to choose colors.
The current size of the terminal. This is used only in the console UI.
The current key sequence entered by the user. This is used only in the console UI.
The prompt.
Edit mode configuration
The edit mode.
Hooks
Functions called before each new command.
at_new_command f
adds f
to the hooks executed before each new commands.
Parsing
Type of a string-location. It is composed of a start and stop offsets (in bytes).
Type for a range of lines in a buffer from start to stop.
type 'a result =
| Value of 'a
(*The function succeeded and returned this value.
*)| Error of location list * string
(*The function failed. Arguments are a list of locations to highlight in the source and an error message.
*)
Result of a function processing a programx.
Exception raised by a parser when it need more data.
The default parser for toplevel regions. It uses the standard ocaml parser.
parse_toplevel_phrase
is the function used to parse a phrase typed in the toplevel.
Its arguments are:
input
: the string to parseeos_is_error
If eos_is_error
is true
and the parser reach the end of input, then Parse_failure
should be returned.
If eos_is_error
is false
and the parser reach the end of input, the exception Need_more
must be thrown.
Except for Need_more
, the function must not raise any exception.
The default parser for toplevel phrases. It uses the standard ocaml parser.
The default parser. It uses the standard ocaml parser.
The name you must use in location to let ocaml know that it is from the toplevel.
lexbuf_of_string eof str
is the same as Lexing.from_string str
except that if the lexer reach the end of str
then eof
is set to true
.
Helpers
get_message printer x
applies printer
on x
and returns everything it prints as a string.
get_ocaml_error_message exn
returns the location and error message for the exception exn
which must be an exception from the compiler.
val check_phrase :
Parsetree.toplevel_phrase ->
(location list * string * lines option list) option
check_phrase phrase
checks that phrase
can be executed without typing or compilation errors. It returns None
if phrase
is OK and an error message otherwise.
If the result is None
it is guaranteed that Toploop.execute_phrase
won't raise any exception.
collect_formatters buf pps f
executes f
and redirect everything it prints on pps
to buf
.
discard_formatters pps f
executes f
, dropping everything it prints on pps
.
compiler-libs reexports
get_load_path
and set_load_path
manage the include directories.
The internal variable contains the list of directories added by findlib-required packages and #directory
directives.