
help.pl -- Text based manual
This module provides help/1 and apropos/1 that give help on a topic or searches the manual for relevant topics.
By default the result of help/1 is sent through a pager such as
less. This behaviour is controlled by the following:
- The Prolog flag
help_pager, which can be set to one of the following values:- false
- Never use a pager.
- default
- Use default behaviour. This tries to determine whether Prolog
is running interactively in an environment that allows for
a pager. If so it examines the environment variable
PAGERor otherwise tries to find thelessprogram. - Callable
- A Callable term is interpreted as
program_name(Arg, ...). For example,less('-r')would be the default. Note that the program name can be an absolute path if single quotes are used.
help is det
help(+What) is det- Show help for What. What is a term that describes the
topics(s)to give help for. Notations for What are:- Atom
- This ambiguous form is most commonly used and shows all
matching documents. For example:
?- help(append).
- Name / Arity
- Give help on predicates with matching Name/Arity. Arity may be unbound.
- Name // Arity
- Give help on the matching DCG rule (non-terminal)
- Module:Name
- Give help on predicates with Name in Module and any arity. Used for loaded code only.
- Module:Name/Arity
- Give help on predicates with Name in Module and Arity. Used for loaded code only.
- f(Name/Arity)
- Give help on the matching Prolog arithmetic functions.
- c(Name)
- Give help on the matching C interface function
- section(Label)
- Show the section from the manual with matching Label.
- xpce(Class, Kind, Name)
- Show the documentation of an XPCE class member.
help/1 shows documentation from the manual as well as from loaded user code if the code is documented using PlDoc. To show only the documentatoion of the loaded predicate we may prefix predicate indicator with the module in which it is defined.
If an exact match fails this predicates attempts fuzzy matching and, when successful, display the results headed by a warning that the matches are based on fuzzy matching.
If possible, the results are sent through a pager such as the
lessprogram. This behaviour is controlled by the Prolog flaghelp_pager. See section level documentation.If the terminal supports hyperlinks (see the Prolog flag
hyperlink_term), the manual references in the page are clickable. In an Epilog window, clicking one quits the pager and runs help/1 on the linked object.
show_html_hook(+HTML:string) is semidet[multifile]- Hook called to display the extracted HTML document. If this hook fails the HTML is rendered to the console as plain text using html_text/2.
apropos(+Query) is det
apropos(+Query, +Options) is det- Print objects from the manual whose name or summary match with
Query. Query takes one of the following forms:
- Type:Text
- Find objects matching Text and filter the results by Type.
Type matching is a case intensitive prefix match.
Defined types are
section,cfunction,function,iso_predicate,swi_builtin_predicate,library_predicate,dcgand aliaseschapter,arithmetic,c_function,predicate,nonterminalandnon_terminal. For example:?- apropos(c:close). ?- apropos(f:min).
- Text
- Text is broken into tokens. A topic matches if all tokens appear in the name or summary of the topic. Matching is case insensitive. Results are ordered depending on the quality of the match.
Only the best
limitmatches are shown. Options:- limit(+Count)
- Maximum number of matches to show. Default 20.
- offset(+Skip)
- Ignore the Skip best matches. Default 0.
If the terminal supports hyperlinks (see the Prolog flag
hyperlink_term), the matches are clickable and so is the line that reports there are more matches. In an Epilog window, clicking these runs help/1 on the match or apropos/2 on the next page.
help_apropos(+Query, -Obj, -Summary, -Score) is nondet- Find matching documented objects in the help database. Obj is the formal object identifier, Summary its summary description and Score is a number indicating the quality of the match.
help_text(+Predicate:term, -HelpText:string) is semidet- When Predicate is a term of the form
Name/Arityfor which documentation exists, HelpText is the documentation in textual format (parsed from the HTML help).
epilog:tty_link_hook(+Terminal, +Link) is semidet[multifile]- Open a
man:orapropos:link that was clicked in an Epilog Terminal. We quit the pager if it is still showing the page the link was clicked in and let the terminal run help/1 on the linked object or continue the apropos/2 search.
Undocumented predicates
The following predicates are exported, but not or incorrectly documented.