- Reference manual
- Getting started quickly
- The user's initialisation file
- Initialisation files and goals
- Command line options
- UI Themes
- GNU Emacs Interface
- Online Help
- Command line history
- Reuse of top-level bindings
- Overview of the Debugger
- Environment Control (Prolog flags)
- An overview of hook predicates
- Automatic loading of libraries
- Packs: community add-ons
- The SWI-Prolog syntax
- Rational trees (cyclic terms)
- Just-in-time clause indexing
- Wide character support
- System limits
- SWI-Prolog and 64-bit machines
- Binary compatibility
- Reference manual
UI (colour) themes play a role in two parts: when writing to the console and for the xpce-based development tools such as PceEmacs or the graphical debugger. Coloured console output is based on ansi_format/3. The central message infra structure based on print_message/2 labels message (components) with a Prolog term that specifies the role. This is mapped to concrete colours by means of the hook prolog:console_color/2. Theming the IDE uses xpce class variables that are initialised from Prolog when xpce is loaded.
Themes are implemented as a Prolog file in the file search path library/theme. A theme can be loaded using (for example) the directive below in the user's initialization file (see section 2.2).
The theme file
library(theme/auto) is provided to
automatically choose a reasonable theme based on the environment. The
current version detects the background color on xterm compatible
terminal emulators (found on most Unix systems) and loads the
theme if the background is‘darkish'.
The following notes apply to the different platforms on which SWI-Prolog is supported:
- If an xterm compatible terminal emulator is used to run Prolog you may
wish to load either an explicit theme or
- The swipl-win.exe graphical application can be themed by loading a theme file. The theme file also sets the foreground and background colours for the console.
Theme support was added in SWI-Prolog 8.1.11. Only part of the IDE
tools are covered and the only additional theme (
not net well balanced. The interfaces between the theme file and notably
the IDE components is not very well established. Please contribute by
dark theme. Once that is complete and
properly functioning we can start adding new themes.