/*  $Id$ -*- Prolog -*-

    SWI-Prolog personalization file
*/

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This is a sample user-initialisation file for SWI-Prolog. If you wish to
customise prolog, make  a  copy  of  this   file  and  edit  it  to your
preferences.

Installation:

	Unix/MacOS:	~/.plrc
	Windows:	<appdata>/pl.ini (see win_folder(appdata, AppData))

More hints on useful things you  can  put   into  this  file  are in the
SWI-Prolog reference manual. Notably look   at debugger settings, editor
hooks, file_search_path/2, set_prolog_flag/2 and portray/1.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

		/********************************
		*            XPCE            *
		********************************/

%	If we are running XPCE, load the user XPCE stuff if it exists

:-	(   current_prolog_flag(xpce, true),
	    (	current_prolog_flag(windows, true)
	    ->	Base = 'xpce.ini'
	    ;	Base = '.xpcerc'
	    ),
	    absolute_file_name(user_profile(Base),
			       [ file_errors(fail),
				 access(read)
			       ],
			       XpceRC)
	->  ensure_loaded(XpceRC)
	;   true
	).

		 /*******************************
		 *	       IDE		*
		 *******************************/

%	Use this if you want to run  the development tools in a separate
%	thread. Doing allows you to use   the editor, thread monitor and
%	other tools while you  are  running   a  (long)  query  from the
%	toplevel.
%
%	Works fairly well on Unix systems, but you cannot run or develop
%	XPCE applications this way. Occasionally deadlocks (in partcular
%	when  using  XPCE  applications  that  are   not  aware  of  the
%	possibility that XPCE runs  in   another  thread). Please report
%	reproducable deadlocks. You typically  have   a  deadlock if the
%	interface or toplevel becomes unresponsive while  no CPU time is
%	being used.

% :- set_prolog_flag(xpce_threaded, true).


		 /*******************************
		 *	      EDITOR		*
		 *******************************/

%	Define the editor to use.  Note that more advanced manipulation
%	of this is defined in the SWI-Prolog reference manual, section
%	"Listing and Editor Interface"
%
%	The value pce_emacs (or built_in) causes the system to use the
%	built-in editor PceEmacs if the environment provides for a GUI.
%	pce_emacs is the default if XPCE is available.
%
%	The second entry defines an arbitrary editor and how to tell
%	SWI-Prolog to open a file with it on a specified line-number.

% :- set_prolog_flag(editor, pce_emacs).
% :- set_prolog_flag(editor, pico).

%:- multifile
%	prolog_edit:edit_command/2.
%
%prolog_edit:edit_command(pico, '%e +%d "%f"').
%prolog_edit:edit_command(pico, '%e "%f"').


		 /*******************************
		 *	      DEBUGGING		*
		 *******************************/

%	If you prefer graphical tracing, add the line below.

% :- (current_prolog_flag(gui, true) -> guitracer ; true).

%	Determine how terms are printed by the debugger and toplevel.  The
%	values here are defaults. max_depth(10) replaces all subterms at
%	a greater depth with elipses (...). See write_term/3 for further
%	explanation and more options.

% :- set_prolog_flag(toplevel_print_options,
%		     [quoted(true), portray(true), max_depth(10)]).
% :- set_prolog_flag(debugger_print_options,
%		     [quoted(true), portray(true), max_depth(10)]).

%	If you want to suppress printing toplevel query variables
%	starting with an `_'

% :- set_prolog_flag(toplevel_print_anon, false).

%	If you do not want the tracer to stop at at the exit port.

% :- leash(-exit).


		 /*******************************
		 *	   MISC SETTINGS	*
		 *******************************/

%	Use the flag below to  disable   coloured  output  in all cases.
%	Normally,  coloured  output  is  enabled  if  the  output  is  a
%	terminal.

% :- set_prolog_flag(color_term, false).

%	Specify colors for the above,  based   on  the  message kind See
%	ansi_format/3 for specifying visual  effects.   The  table below
%	duplicates the default behavior.  Notably   on  terminals with a
%	dark background, yellow might be a   better  choice for warnings
%	and errors.

%:- multifile user:message_property/2.
%
%user:message_property(informational, color(fg(green))).
%user:message_property(information,   color(fg(green))).
%user:message_property(debug,         color(fg(blue))).
%user:message_property(warning,       color(fg(red))).
%user:message_property(error,         color([fg(red),bold])).

%	If you want to access the command-history like a Unix shell,
%	set =history= to the number of commands to remember.

% :- set_prolog_flag(history, 50).

% Set =save_history= to =false= if you never want to save/restore the
% command history.   Normally, the history is enabled if the system
% provides a history and the input comes from a terminal.

% :- set_prolog_flag(save_history, false).
