Next: gauche.lazy
- Lazy sequence utilities, Previous: gauche.hook
- Hooks, Up: Library modules - Gauche extensions [Contents][Index]
gauche.interactive
- Utilities for interactive sessionProvides useful utilities for the interactive session.
This module is automatically loaded when you run gosh
interactively.
This module also sets autoloads for functions defined in
gauche.reload
module
(see gauche.reload
- Reloading modules), so that
those functions can be used by default in interactive development.
{gauche.interactive} Show a list of defined variables whose name matches pattern. If you give a module or a module name module, only the variables defined in that module are listed. Without module, the variables "visible" from the current module are listed.
pattern may be a symbol or a regexp object. If it is a symbol, the variables whose name contains the substring that matches the symbol’s name are listed. If it is a regexp object, the variables whose name matches the regexp are listed.
Some examples:
;; List variables that contains "string" in their name (apropos 'string) ;; Search in srfi.14 module (apropos 'char 'srfi.14)
{gauche.interactive} Prints the detail information about a Scheme object obj. The default method shows obj’s class, and if it has any slots, the list of slot names and their values. You can specialize this method for customized display. Some built-in types has specialized methods (see how an integer is described in the example below).
If obj is omitted, the last evaluation result bound to *1
in REPL
is used. (see Working in REPL)
gosh> (sys-stat "Makefile") #<<sys-stat> 0x1e7de60> gosh> (d) #<<sys-stat> 0x1e7de60> is an instance of class <sys-stat> slots: type : regular perm : 436 mode : 33204 ino : 3242280 dev : 2097 rdev : 0 nlink : 1 uid : 500 gid : 500 size : 19894 atime : 1435379061 mtime : 1432954340 ctime : 1432954340 gosh> (d 1432954340) 1432954340 is an instance of class <integer> (#x556925e4, ~ 1.4Gi, 2015-05-30T02:52:20Z as unix-time)
{gauche.interactive}
Displays an entry of the named function, syntax, module or class
from Gauche’s info document.
If an environment variable INFOPATH
is defined,
this function searches for the info file from the directories in it.
Otherwise, this function guesses info file location from the
gosh
’s library directory. If the info file can’t be
found, an error is signaled.
So this function doesn’t work if you haven’t installed info file.
If no entry exactly matching with symbol is found, the procedure tries to look for similar named entries:
gosh> (info 'stirng) There is no entry for stirng. Did you mean: string> string? string= string< string :string
(If you want to search entries using pattern, see info-serach
below.)
If the current output port is a tty, the info page is displayed by
a paging software. If an environment variable PAGER
is defined,
it is used as a paging software. Otherwise, this function looks for
less
and more
in this order from the directories in
PATH
. If none of them is found, or the output port is not
a tty, this function just displays the page.
The first invocation of this function in a session takes some time to parse the info file.
NB: When you use less
as a pager, make sure you set
it to handle utf-8 characters (e.g. setting LESSCHARSET
environment variable to
UTF-8
), or you’ll see some escaped sequences on the screen.
NB: If you invoke gosh
within the build tree, using -ftest
option, info
reads the info files in the build tree if they exist.
{gauche.interactive}
Lists info entries matching regexp. See info
above
about where the info files are searched.
{gauche.interactive}
Invoke an external editor to open the named file, or the file containing
the definition of the given procedure (if it can be known).
For the latter, it uses source-location
procedure to find out
the source code location (see Debugging aid).
The name of the editor to invoke is determined as follows:
*editor*
in the user
module,
if defined. This is handy that you can set this in your .gaucherc
.
GAUCHE_EDITOR
.
EDITOR
.
If none of the above is defined or #f
, the procedure prompts the user
to type in the name of the editor.
Once the editor name is obtained, it is invoked as a subprocess, with the following format:
EDITOR +lineno filename
The lineno is an integer line number, 1 being the first line. The editor is expected to locate the cursor on the specified line.
Once the editor process exits, the procedure checks if the named file is updated. If so, it may load the file, according to the value of the load-after keyword argument. It may take one of the following values:
#t
Load the file automatically if it’s updated.
#f
Do not load the file.
ask
The symbol ask
cause the procedure to prompt the user
whether it should load the file. This is the default.
Next: gauche.lazy
- Lazy sequence utilities, Previous: gauche.hook
- Hooks, Up: Library modules - Gauche extensions [Contents][Index]