#
#	Paramtres globaux.
#

styles = LineCommentStyle (ChangeStyle), BlockCommentStyle (VerbatimStyle, ArgumentStyle,\
		 InsertStyle), KeywordStyle (DeleteStyle), LibraryStyle (SameStyle, StyleStyle, TitleStyle),\
		 StringStyle (SwitchStyle, ImageStyle, MathStyle),\
		 ConstantStyle (HeaderStyle, RefStyle), ClassStyle (ItalicStyle), NoStyle,\
		 ExtensionStyle (AliasStStyle, CaptionStyle),\
		 TypedefStyle (ValueStyle, CcodeStyle), TypeStyle,\
		 CppStyle (CommandStyle, ObjectStyle, BoldStyle), QuoteStyle (VariableStyle)

#
# nom des styles de commentaire: FLWiX doit les connatre
# pour plier et dplier correctement les lignes.
#

linecomment_name = LineCommentStyle
blockcomment_name = BlockCommentStyle

# machine hbergeant les dpts (argument de ssh / scp, pourrait tre:
# toto@machine.truc.machin: )
# A mettre sur un portable par exemple

master_host = bioinfo:

# pour faire un dpt matre ailleurs mais sur la mme machine.
#scp_cmd = cp
#master_dir = $HOME/pa/

# tout se fait automatiquement.

#auto_commit = true
#auto_update = true

# utiliser keychain pour stocker les passphrases (exemple pour moi!)

if (USER == "pa" && SYSTEM == Linux)
	scp_cmd = keychain $HOME/.ssh/id_rsa > /dev/null 2>&1; . $HOME/.keychain/$(HOSTNAME)-sh; /bin/scp -q
# ailleurs (MacOSX ou autres)
else
	scp_cmd = scp -q

# taille par dfaut des fontes
fontsize = 14
list_fontsize = 12
query_fontsize = 14
# offsets pour le placement selon le window-manager qu'on utilise
if (SYSTEM != MacOSX) {
	wm_x_offset = 0
	wm_y_offset = 29
}
# nombre de lignes et colonnes par dfaut.
num_lines = 25
num_columns = 85
# scroll par cran complet (sinon par demi-cran)
scroll_full_screen = false
# faire suivre la souris par le curseur
follow_mouse = false
#  avec None ou Shift et/ou Ctrl et/ou Meta et/ou Alt
follow_mouse_modifiers = Alt
drag_tab_modifiers = Ctrl

# intervalle entre deux clics d'un double ou triple clic (en millisecondes).
click_interval = 250
shape_timeout = 800

highlight_all_found = true
wheel_acceleration = 1 5

# choix pour le slecteur de fichiers home-made.
fsel_case_sensitive = false
fsel_exec_colour = #d00000
fsel_dir_colour = #0000ff
fsel_file_colour = #202020
fsel_match_colour = #b030b0

# montrer le _flwxrc en cas de modification dans la doc
show_config_file = false

case_sensitive = true
alias_prefix = true

# se rappeler de la chaine cherche par flwx -s toto.
save_search_pattern = false

# couleurs de la slection Wix monoligne:
#						fond		bord
mono_selection_colour =	#ffb000	#dd8000

if (ALT_DISPLAY) {
	# couleurs de fond et d'avant plan.
	background = #ffffff
	foreground = #000000
	# couleurs des marques de fin de ligne
	fold_mark_colour = #0000ff
	long_line_colour = #ff0000
	# couleurs de la slection Wix multiligne:
	#					fond		bord
	selection_colour =	#b6e0ff	#5aa0ff
	# couleurs des chaines trouves:
	#					fond		bord
	highlight_colour =	#ffffb0	#cccc8d
} else {
	# couleurs de fond et d'avant plan.
	background = #000000
	foreground = #ffeedd
	# couleurs des marques de fin de ligne
	fold_mark_colour = #00ffff
	dummy_mark_colour = #a060ff
	long_line_colour = #e00000
	# couleurs de la slection Wix multiligne:
	#						fond		bord
	selection_colour =		#323c64	#6478c8
	# couleurs des chaines trouves:
	#						fond		bord
	highlight_colour =		#643c32	#c87864
}
mono_foreground = #000000
mono_background = #ffffff
gui_background = #cab78d
inactive_gui_background = #9a875d
# inverser les couleurs pour les onglets (l'onglet actif est le seul de sa couleur de toute la barre)
active_tab_colour = #ffffb0
# toujours montrer la barre d'onglets ?
always_show_tab = false

# le fait de slectionner du texte le copie-t-il automatiquement ?
select_do_copy = true

# copie systmatiquement le sommet de la kill-stack dans le clipboard.
killstack_to_clipboard = false

# paramtres pour l'export PDF.
pdf_fontsize = 10
pdf_frame = true
pdf_page_num = true
# tailles des marges (du texte) en mm, le cadre est extrieur de 1.36 mm (8 pt)
pdf_hmargin = 15
pdf_vmargin = 15
# pour voir un PDF
if (SYSTEM == MacOSX)
	pdf_viewer_cmd = open -a /Applications/Preview.app --
else if (SYSTEM == Linux)
	pdf_viewer_cmd = evince
else
	pdf_viewer_cmd = C:\Program Files (x86)\Adobe\Acrobat 10.0\Acrobat\Acrobat.exe

# afficher l'icone de lancement
show_launch_icon = true
launch_icon_geometry = 48x48+0-32

if (ROOT)
	gui_background = #bad2ea

# taille des fontes en fonction de la rsolution de l'cran.

# sur mon macbook air 15" (1710 x 1107)
if (SCREEN_WIDTH == 1710 && SYSTEM == MacOSX) {
	launch_icon_geometry = 48x48+0+46
	fontsize = 16
	list_fontsize = 14
	query_fontsize = 16
	help_fontsize = 18
	gui_fontsize = 16
	num_lines = 24
	num_columns = 80
	alt_num_lines = 35
	alt_num_columns = 90
	# crer la  fentre  cot du pointeur.
	near_pointer = true
} else if (SCREEN_RESOLUTION > 120 && SCREEN_WIDTH < 1500) {
	# sur macbook avec cran retina 13.3-inch (1440 x 900)
	fontsize = 16
	query_fontsize = 16
	help_fontsize = 16
	alt_num_lines = 35
	alt_num_columns = 80
	# offsets pour le placement selon le window-manager qu'on utilise
	wm_x_offset = 0
	wm_y_offset = 0
	if (SYSTEM == MacOSX)
		launch_icon_geometry = 48x48+0-1
} else if (SCREEN_RESOLUTION >= 103) {
	fontsize = 16
	list_fontsize = 14
	query_fontsize = 16
	gui_fontsize = 16
	# sur mon gigantesque cran DELL U4919DW 49-inch (5120 x 1440)
	if (SCREEN_WIDTH > 5000) {
		if (SYSTEM == MacOSX)
			launch_icon_geometry = 48x48+0+34
		foreground = #bbaa99
		help_fontsize = 18
		num_lines = 40
		num_columns = 95
		# crer la  fentre  cot du pointeur.
		near_pointer = true
	} else
	# sur mon autre gigantesque cran DELL U4320Q 43-inch (3840 x 2160)
	if (SCREEN_WIDTH > 3800) {
		if (SYSTEM == Linux) {
			if (HOSTNAME == "enterprise.lisn.fr")
				launch_icon_geometry = 48x48+0-40
			else
				launch_icon_geometry = 48x48+0+0
		}
		else if (SYSTEM == MacOSX)
			launch_icon_geometry = 48x48+0+34

		help_fontsize = 17
		num_lines = 30
		num_columns = 90
		alt_num_lines = 45
		alt_num_columns = 90
		# cre la  fentre  cot du pointeur.
		near_pointer = true
	}
} else if (SCREEN_RESOLUTION == 102) {
	# mon cran LaCie de Montpellier.
	launch_icon_geometry = 48x48+0+30
	gui_fontsize = 13
	fontsize = 15
	help_fontsize = 16
	num_lines = 40
	num_columns = 100
} else if (SCREEN_WIDTH > 5000) {
	# sur mon gigantesque cran DELL U4919DW 49-inch (5120 x 1440)
	fontsize = 15
	list_fontsize = 14
	query_fontsize = 16
	gui_fontsize = 16
	foreground = #bbaa99
	help_fontsize = 16
	num_lines = 40
	num_columns = 95
	# crer la  fentre  cot du pointeur.
	near_pointer = true
} else {
	fontsize = 15
	help_fontsize = 16
	num_lines = 24
	num_columns = 80
	alt_num_lines = 35
	alt_num_columns = 90
}

if (SYSTEM == Windows) {
	# fond bleutre pour matcher le cadre des fentres Windows.
	select_do_copy = false
	gui_background = #bad2ea
	inactive_gui_background = #dbe8f3
	launch_icon_geometry = 48x48+0-40
}
gui_foreground = #0
yes_no_colour = #ffff00


# paramtres de la scrollbar
lift_always_visible = false
lift_width = 12
lift_background = #0
lift_colour = #ff3030
active_lift_colour = #20ff40
lift_motion_colour = #5050ff

misspell_colour = #ff0000 [dot 2]
mult_spell_colour = #00ffa0 [solid 0]
accented_colour = #ffff00
alt_lang_colour = #a060a0
checkpoint_interval = 0

# que les variantes accentues ou bien la totale?
accented_variants_only = true

# strict sur le test orthographique des lettres accentues?
strict_accent_check = true

# commenter la ligne suivante pour avoir le slecteur de fichiers natif.
use_native_fsel = false

# utiliser AES 256 pour encryper les fichers (sinon c'est DES)
aes_crypt = true

# autorise l'dition multiple du mme fichier.
multiple_edit = true

# ouarpe le pointeur dans une fentre frachement cre.
warp_pointer = true

# offset pour adjust_window_width (en nombre de colonnes)
adjust_offset = 0

# nombre de jours au bout desquels on oublie les infos d'un fichier pour les repertoires
# non mentionns dans info_path.
info_delay = 3

# touches  presser pour popper le menu des symboles ou des emojis

pop_symbol = Shift+Alt_R
pop_emoji = Meta_R

# liste des rpertoires o on a un umask spcifique.
#
#	001 -> no-exec, 010 -> no-write, 100 -> no-read	owner/group/other
#

dir_umask = ~/OpenGL/WixEdit(027):/tmp(022)

# liste des rpertoires o on a un delai spcifique de maintien des infos sur les fichiers dits.
if (SYSTEM == MacOSX) {
	info_path = ~/divers(0):/tmp(0):~/LeMonde(21)
	pop_emoji = Alt_R
} else
	info_path = ~/divers(0):/tmp(0):/Data/LeMonde(21):/Data/MKV/Series(1)
#
#	user-commands : elles sont valable dans tous les modes.
#

defcmd open-prev-line () {
	"Inserts an empty line before the current one."
	beginning-of-line ();
	open-line ();
}

#
#	Redfinition du mode fondamental natif
#

defmode Fundamental {
	tabsize:				4
	ascii_quote:			false
	display_line_number:	true
	indent_with_tabs:		true
	language_recheck:		false
	word_delimiters:		\!'`";:.,~}*()[]=+-|@$%&?<>
	string_submode:			Text
	line_comment_submode:	Text
	block_comment_submode:	Text
	#
	#	Couleurs					cran		sortie PDF
	#
	if (ALT_DISPLAY) {
		no_colour:				#0			#0
		line_comment_colour:	#8f6000		#8f6000
		block_comment_colour:	#906000		#906000
		keyword_colour:			#008000		#008000
		library_colour:			#991199 	#991199
		string_colour:			#d00000		#ff8800
		constant_colour:		#2060a0		#2060a0
		class_colour:			#0 			#0
		extension_colour:		#ff0000 	#ff0000
		typedef_colour:			#008000 	#008000
		type_colour:			#008000 	#008000
		cpp_colour:				#900000		#900000
		quote_colour:			#800080		#800080
	} else {
		no_colour:				#ffeedd		#0
		line_comment_colour:	#ffd010		#8f6000
		block_comment_colour:	#ffff00		#906000
		keyword_colour:			#00ff00		#008000
		typedef_colour:			#a0d0f0 	#008000
		type_colour:			#30f0e0 	#008000
		library_colour:			#aa44aa 	#991199
		string_colour:			#ffc0b0		#ff8800
		constant_colour:		#20a0c3		#2060a0
		class_colour:			#ffffff 	#0
		extension_colour:		#ff4b3a		#ff0000
		cpp_colour:				#f09060		#900000
		quote_colour:			#ff00ff		#800080
	}
	#
	#	Fontes				cran		sortie PDF
	#
	text_font:				mono		mono-bold
	no_font:				mono		mono-bold
	string_font:			mono		mono-bold
	quote_font:				mono		mono-bold
	cpp_font:				mono		mono-bold
	constant_font:			mono		mono-bold
	keyword_font:			mono		mono-bold
	block_comment_font:		mono		mono-bold-italic
	library_font:			mono		mono-bold
	extension_font:			mono		mono-bold
	type_font:				mono		mono-bold
	typedef_font:			mono		mono-bold
	class_font:				mono-bold	mono-bold-italic

	# fonte des commentaires.
	if (SYSTEM == MacOSX) {
		# sous MacOSX
		block_comment_colour:	#cccc00		#906000
		block_comment_font:		mono-bold	mono-bold-italic
		line_comment_font:		user_font_1	serif-bold-italic
		user_font_1:			Times New Roman Italic
		line_spacing_offset:	3
		if (SCREEN_RESOLUTION < 102)
			user_font_offset_1:		1
		else
		if (SCREEN_RESOLUTION == 108) {
			user_font_offset_1:		3
			line_spacing_offset:	0
		} else {
			user_font_offset_1:		1
			line_spacing_offset:	-1
		}
	} else if (SYSTEM == Windows) {
		# sous Windows
		line_comment_font:		user_font_1	serif-bold-italic
		user_font_1:			Comic Sans MS italic
		user_font_offset_1:		0
		line_spacing_offset:	2
	} else {
		# sous Linux
		line_comment_font:		sans serif-bold-italic
		if (SCREEN_WIDTH > 3800)
			line_spacing_offset:	-4
		else
			line_spacing_offset:	-5
	}
#
#	^<lettre majuscule> veut dire Ctrl+<lettre>
#	@<lettre majuscule> veut dire Meta+<lettre> (Pomme sur MacOSX)
#	$^<lettre majuscule> veut dire Ctrl+Shift+<lettre>
#	$E<lettre quelconque> veut dire Esc+<lettre> 
#	$S = Espace, $< = Home, $> = Fin, $T = Tab, $N = PgUDown
#	$P = PgUp, $L = Gauche, $R = Droite, $U = Up, $D = Down
#	$$P = Shift+PgUp, $$L = Shift+Gauche, $$R = Shift+Droite,
#	$$U = Shift+Up, $$D = Shift+Down
#

	keytable:	$^O		exec-user-cmd (open-prev-line)\
				^9		insert-numarg\
				$^W		adjust-window-size (awm)\
				$^Z		toggle-zoom-window\
				^0		debug\
				)		flasher-parenthesis\
				]		flasher-parenthesis\
				}		flasher-parenthesis\
				^$L		select-prev-tab\
				^$R		select-next-tab\
				^$U		scroll-up\
				^$D		scroll-down\
				^S^D	show-diff-window\
				^X^G	unbound-command\
				^X^@	toggle-split-window\
				$$S		insert-string ( )\
				$$U		prev-line (selection)\
				$$D		next-line (selection)\
				$$R		forward-char (selection)\
				$$L		backward-char (selection)
}

#
#	Dfinition du mode Diff
#
#
defmode Diff {
	no_colour:			#ffffff		#0
	change_colour:		#ffff00		#8f6000
	insert_colour:		#00ff00		#906000
	delete_colour:		#ff0000		#008000
	same_colour:		#ffa000		#008000

	change_font:		mono		mono-bold
	insert_font:		mono		mono-bold
	delete_font:		mono		mono-bold
	same_font:			mono		mono-bold

	keytable:	$E^M	apply-line-change\
				^$U		scroll-up\
				^$D		scroll-down\
				^$L		focus-other-pane\
				^$R		focus-other-pane
}

#
#	colorations OpenGL
#

set	opengl-kw =	GL[a-z][0-9a-z]*		TypedefStyle\
				gl[A-Z][A-Za-z0-9]*		LibraryStyle\
				glu[A-Z][A-Za-z0-9]*	LibraryStyle\
				GL_[A-Z][0-9A-Z_]*		CppStyle

#
#	Mode C
#

#	colorations des mots spcifiques  C.

set c-keywords = 	?				KeywordStyle\
				:					KeywordStyle\
				\*					TypeStyle\
				\^					KeywordStyle\
				&					TypeStyle\
				&&					KeywordStyle\
				|					KeywordStyle\
				>					KeywordStyle\
				<					KeywordStyle\
				!					KeywordStyle\
				=					KeywordStyle\
				\+					KeywordStyle\
				-					KeywordStyle\
				0[xX][a-fA-FUL0-9]+	ConstantStyle\
				0[bB][01]+			ConstantStyle\
				[_A-Z0-9]+			ConstantStyle\
				[0-9]+[fF]			ConstantStyle\
				auto				KeywordStyle\
				break				KeywordStyle\
				char				TypeStyle\
				case				KeywordStyle\
				continue			KeywordStyle\
				const				TypeStyle\
				default				KeywordStyle\
				do					KeywordStyle\
				double				TypeStyle\
				else				KeywordStyle\
				extern				KeywordStyle\
				enum				TypeStyle ClassStyle >\
				for					KeywordStyle\
				float				TypeStyle\
				goto				KeywordStyle\
				if					KeywordStyle\
				int					TypeStyle\
				long				TypeStyle\
				restrict			KeywordStyle\
				return				KeywordStyle\
				offsetof			KeywordStyle\
				sizeof				KeywordStyle\
				signed				KeywordStyle\
				static				TypeStyle\
				struct				KeywordStyle ClassStyle >\
				short				TypeStyle\
				switch				KeywordStyle\
				typedef				KeywordStyle TypedefStyle -\
				union				KeywordStyle TypedefStyle >\
				unsigned			TypeStyle\
				void				TypeStyle\
				volatile			KeywordStyle\
				while				KeywordStyle\
#
#				Les types perso
#
				break_				KeywordStyle\
				continue_			KeywordStyle\
				loop				KeywordStyle\
#
#				Les variables/fonctions de bibliothque
#
				FILE				LibraryStyle\
				gzFile				LibraryStyle\
				stdin				LibraryStyle\
				stdout				LibraryStyle\
				stderr				LibraryStyle\
				fopen				LibraryStyle\
				fclose				LibraryStyle\
				fread				LibraryStyle\
				fwrite				LibraryStyle\
				fseek				LibraryStyle\
				ftell				LibraryStyle\
				scanf				LibraryStyle\
				fscanf				LibraryStyle\
				sscanf				LibraryStyle\
				printf				LibraryStyle\
				fprintf				LibraryStyle\
				sprintf				LibraryStyle\
				snprintf			LibraryStyle\
				gzopen				LibraryStyle\
				gzclose				LibraryStyle\
				gzread				LibraryStyle\
				gzwrite				LibraryStyle\
				gzprintf			LibraryStyle\
				exit				LibraryStyle\
				read				LibraryStyle\
				write				LibraryStyle\
				lseek				LibraryStyle\
				unlink				LibraryStyle\
				open				LibraryStyle\
				close				LibraryStyle\
				creat				LibraryStyle\
#
#				Le prprocesseur
#
				defined				CppStyle\
				"^[ 	]*#[ 	]*pragma"	CppStyle TypedefStyle >\
				"^[ 	]*#[ 	]*define"	CppStyle ConstantStyle >\
				"^[ 	]*#[ 	]*if"		CppStyle ConstantStyle >\
				"^[ 	]*#[ 	]*elif"		CppStyle ConstantStyle >\
				"^[ 	]*#[ 	]*ifdef"	CppStyle ConstantStyle >\
				"^[ 	]*#[ 	]*ifndef"	CppStyle ConstantStyle >\
				"^[ 	]*#[ 	]*undef"	CppStyle NoStyle >\
				"^[ 	]*#[ 	]*else"		CppStyle\
				"^[ 	]*#[ 	]*endif"	CppStyle

#	alias spcifiques  C.

set c-alias =	{	{|+|*|-}\
				break;\
				char\
				case	case |*:\
				continue;\
				const\
				default:\
				do\
				double\
				else\
				extern\
				enum\
				for	for (|*;;)\
				float\
				goto\
				if	if (|*)\
				int\
				long\
				main	int main (int argc, char** argv)|i{|+|*|ireturn 0;|-}|i\
				return\
				sizeof\
				static\
				struct\
				short\
				switch	switch (|*)\
				switch	switch (|*) {|icase :|+break;|-case :|+break;|-default:|+break;|-}\
				typedef\
				unsigned\
				union\
				void\
				while	while (|*)\
				/\*		/* |* */\
				/\*\*	/*|i *|*|i */\
				//		// |*.\
				strlen	strlen (|*)\
				strcat	strcat (|*, )\
				strcpy	strcpy (|*, )\
				printf	printf ("|*\\n");\
				fprintf	fprintf (stderr, "|*\\n");\
				sprintf	sprintf (tc, "|*", );\
				snprintf	snprintf (tc, , "|*", );\
				fopen	fopen (|*, "r");\
				fclose	fclose (fp);\
				#\
				#define\
				#include	#include <|*.h>\
				#pragma\
				#ifdef\
				#undef\
				#ifndef\
				#endif\
				#else\
				#elif

defmode C {
	include_directive:	^#include "\(.*\)"
	magic:				};|^static|[ 	]char[ 	*]|^#define|!//
	word_delimiters:	\!";:.,~}*()[]=+-|@$%&?<>
	colour_delimiters:	\!";:.,~{}*()[]=+-|@$%&?<>/
#										color-beg	color-end	spell-chk	nested
	line_comment:		"//"	"$"		true	false	true	false
	block_comment:		"/\*"	"\*/"	true	true	true	false
	string:				"\""	"\""	false	false	true	false
	cpp:				"^[ 	]*#[ 	]*include"	"$"	true	false	false	true
	constant:			"'"		"'"		false	false	false	false

	keytable:	^M		new-line-indent (C)\
				$^M		new-line-indent (+)\
				$^H		new-line-indent (-)\
				$E^I	indent-line\
				$E{		find-opening-brace\
				$E}		find-closing-brace\
				$E[		find-opening-bracket\
				$E]		find-closing-bracket\
				$E(		find-opening-par\
				$E)		find-closing-par\
				^I		expand-alias\
				^]		expand-alias (from_alias_table)

	keywords:	$opengl-kw\
				$c-keywords
	alias:		$c-alias
}

#
#	Dfinition du mode C++ (drive du mode C pour rcuprer sa keytable).
#

#	colorations des mots spcifiques  C++.

set cc-keywords =
				::					KeywordStyle ClassStyle <\
				alignas				KeywordStyle\
				alignof				KeywordStyle\
				bool				TypeStyle\
				catch				KeywordStyle\
				class				KeywordStyle ClassStyle >\
				const_cast			KeywordStyle\
				constexpr			KeywordStyle\
				decltype			KeywordStyle\
				delete				KeywordStyle\
				dynamic_cast		KeywordStyle\
				explicit			KeywordStyle\
				false				KeywordStyle\
				friend				KeywordStyle\
				inline				KeywordStyle\
				namespace			KeywordStyle\
				new					KeywordStyle\
				noexcept			KeywordStyle\
				operator			KeywordStyle\
				override			KeywordStyle\
				private				KeywordStyle\
				protected			KeywordStyle\
				public				KeywordStyle\
				reinterpret_cast	KeywordStyle\
				static_assert		KeywordStyle\
				static_cast			KeywordStyle\
				template			KeywordStyle\
				this				KeywordStyle\
				throw				KeywordStyle\
				true				KeywordStyle\
				try					KeywordStyle\
				typeid				KeywordStyle\
				typename			KeywordStyle ClassStyle >\
				using				KeywordStyle\
				virtual				KeywordStyle\
				cerr				LibraryStyle\
				cin					LibraryStyle\
				cout				LibraryStyle\
				endl				LibraryStyle\
#
#	mes types prdfinis prfrs.
#
				uint				TypeStyle\
				ulong				TypeStyle\
				ull					TypeStyle\
				uchar				TypeStyle\
				cchar				TypeStyle\
#
				__attribute__		KeywordStyle\
				((flatten))			QuoteStyle\
				((always_inline))	QuoteStyle\
				__STDC__			CppStyle\
				__cplusplus			CppStyle

#	alias spcifiques  C++

set cc-alias =	EBUG\
				bool\
				class\
				cl[a]ss		class |* {|iprivate:|+|-protected:|+|-public:|+|-};|i\
				delete\
				true\
				false\
				explicit\
				friend\
				inline\
				operator\
				private:\
				protected:\
				public:\
				template	template <typename T>\
				catch	catch (|*) {|+|-}\
				try		try {|+|*|-}|icatch () {|+|-}\
				throw\
				this\
				virtual

defmode C++ : C {
	include_directive:	^#include "\(.*\)"|[ 	]//[ 	]*style_import[ 	]*"\(.*\)"
	magic:				^class[ 	]|^#include|^#define|::|inline|char\*|operator|^[	]*//|!__host__|!<<<|!__CUDACC__
	process_command:	make
	colour_delimiters:	!";:.,~{}*()[]=+-|@$%&?<>/

	keywords:	$opengl-kw\
				$c-keywords\
				$cc-keywords

	alias:		$c-alias\
				$cc-alias
}

#
#	mode CUDA, driv de C++
#

defmode CUDA : C++ {
	include_directive:	^#include "\(.*\)"|//[ 	]*style_import[ 	]*"\(.*\)"
	magic:				__device__|__host__|__constant__|__CUDACC__|<<<
	word_delimiters:	\!";:.,~}*()[]=+-|@$%&?<>
	colour_delimiters:	\!";:.,~{}*()[]=+-|@$%&?<>/
	typedef_colour:		#00cc00

	keywords:	$c-keywords\
				$cc-keywords\
				>>>				ExtensionStyle\
				<<<				ExtensionStyle\
				dim3			ExtensionStyle\
				__forceinline__	ExtensionStyle\
				__noinline__	ExtensionStyle\
				__global__		ExtensionStyle\
				__device__		ExtensionStyle\
				__host__		ExtensionStyle\
				__constant__	ExtensionStyle\
				warpSize		ExtensionStyle\
				gridDim			ExtensionStyle\
				blockDim		ExtensionStyle\
				blockIdx		ExtensionStyle\
				threadIdx		ExtensionStyle\
				__shared__		ExtensionStyle\
				__restrict__	ExtensionStyle\
				__managed__		ExtensionStyle\
				uchar[1-4]		ExtensionStyle\
				char[1-4]		ExtensionStyle\
				uint[1-4]		ExtensionStyle\
				int[1-4]		ExtensionStyle\
				ulong[1-4]		ExtensionStyle\
				long[1-4]		ExtensionStyle\
				float[1-4]		ExtensionStyle\
				double[1-2]		ExtensionStyle\
				powf			ExtensionStyle\
				sqrtf			ExtensionStyle\
				cbrtf			ExtensionStyle\
				hypotf			ExtensionStyle\
				expf			ExtensionStyle\
				exp2f			ExtensionStyle\
				expm1f			ExtensionStyle\
				logf			ExtensionStyle\
				log2f			ExtensionStyle\
				log10f			ExtensionStyle\
				log1pf			ExtensionStyle\
				sinf			ExtensionStyle\
				cosf			ExtensionStyle\
				tanf			ExtensionStyle\
				asinf			ExtensionStyle\
				acosf			ExtensionStyle\
				atanf			ExtensionStyle\
				atan2f			ExtensionStyle\
				sinhf			ExtensionStyle\
				coshf			ExtensionStyle\
				tanhf			ExtensionStyle\
				asinhf			ExtensionStyle\
				acoshf			ExtensionStyle\
				atanhf			ExtensionStyle\
				ceil			ExtensionStyle\
				floor			ExtensionStyle\
				trunc			ExtensionStyle\
				round			ExtensionStyle

	alias:	$c-alias\
			$cc-alias\
			dim3\
			__global__\
			__device__\
			__host__\
			__constant__\
			warpSize\
			gridDim\
			blockDim\
			blockIdx\
			threadIdx\
			__shared__\
			__restrict__\
			__managed__
}

#
#	mode Objective-C++
#

defmode Objective-C++ : C++ {
	magic:				#import
	word_delimiters:	\!";:.,~}*()[]=+-|@$%&?<>
	colour_delimiters:	\!";:.,~{}*()[]=+-|@$%&?<>/
	typedef_colour:		#00cc00
	cpp:				"#import"	"$"	true	false	false	true

	keywords:	$c-keywords\
				$cc-keywords

	alias:	$c-alias\
			$cc-alias\
			#import
}

#
#	mode pour les shell scripts.
#

#	mots-clef communs aux shells.

set sh-keywords =
		if				KeywordStyle\
		fi				KeywordStyle\
		in				KeywordStyle\
		do				KeywordStyle\
		done			KeywordStyle\
		then			KeywordStyle\
		else			KeywordStyle\
		elif			KeywordStyle\
		case			KeywordStyle\
		esac			KeywordStyle\
		while			KeywordStyle\
		exec			KeywordStyle\
		eval			KeywordStyle\
		exit			KeywordStyle\
		trap			KeywordStyle\
		for				KeywordStyle\
		source			KeywordStyle\
		set				KeywordStyle\
		echo			KeywordStyle\
		\[				KeywordStyle\
		\]				KeywordStyle\
		[<>|&]			KeywordStyle\
		[<>]&			KeywordStyle\
		>&2				KeywordStyle\
		2>				KeywordStyle\
		()				KeywordStyle ConstantStyle <\
		\$#				KeywordStyle\
		\$\*			KeywordStyle\
		\$[0-9a-zA-Z]+	KeywordStyle\
		[a-zA-Z]+=		LibraryStyle\
		-[a-zA-Z0-9_]+	ConstantStyle\
		--				CppStyle\
		\+\+			CppStyle\
		[`]				LibraryStyle\
		["']			TypedefStyle\
		((				LibraryStyle\
		))				LibraryStyle


defmode Shell {
	include_directive:	^\. \(.*\)
	magic:				^#!.*sh[ 	]*[- ]*|setenv
	colour_delimiters:	!"';:.,~*()|/@%&?<>=
	word_delimiters:	\!";:.,~}()[]=+-|@%&?<>$
	line_comment:		"^#"	"$"					true	false	true	false
	keyword:			"\${[a-zA-Z]+"	"}"			true	true	false	true
	cpp:				"[a-zA-Z0-9]+\["	"\]="	true	true	false	true
	string:				"\""	"\""				false	false	true	true

	keywords:	$sh-keywords

	alias:		if						if [ |* ]|+then |ielse |-fi|i\
				if\([dflerwxzn]\)		if [ -\1 "$|*" ]|+then |ielse |-fi|i\
				elif					elif [ |* ]|+then \
				elif\([dflerwxzn]\)		elif [ -\1 "$|*" ]|+then \
				while					while [ |* ]|ido|+|-done|i\
				while\([dflerwxzn]\)	while [ -\1 "$|*" ]|ido|+|-done|i\
				for						for |* in |ido|+|-done|i\
				case					case "$|*" in|+) |+;;|-*)|-esac|i\
				^\([a-zA-Z0-9]*\)$		\1 () {|+|*|-}
}

#
#	mode pour les scripts csh.
#

defmode C-Shell : Shell {
	include_directive:	^source \(.*\)
	magic:		^#!.*csh[ 	]*[- ]*|setenv
	priority:	4

	keywords:	[0-9a-zA-Z]+=	LibraryStyle\
				[0-9]+		ConstantStyle\
				\$#			KeywordStyle\
				\$\*		KeywordStyle\
				\$[0-9]+	KeywordStyle\
				\$[a-zA-Z]+	KeywordStyle\
				!=			KeywordStyle\
				==			KeywordStyle\
				=			KeywordStyle\
				\[			KeywordStyle\
				\]			KeywordStyle\
				&&			KeywordStyle\
				||			KeywordStyle\
				[<>]&		KeywordStyle\
				if			KeywordStyle\
				source		KeywordStyle\
				else		KeywordStyle\
				foreach		KeywordStyle\
				setenv		KeywordStyle\
				unsetenv	KeywordStyle\
				endif		KeywordStyle\
				end			KeywordStyle\
				set			KeywordStyle\
				unset		KeywordStyle\
				echo		KeywordStyle\
				alias		KeywordStyle\
				unalias		KeywordStyle\
				complete	KeywordStyle\
				uncomplete	KeywordStyle
}

#
#	petit mode Python.
#

defmode Python {
	magic:				import[ 	]|from[ 	]|def[ 	][ 	]*[a-z][a-z]*(
	line_comment:		"#"	"$"			true	false	true	false
	word_delimiters:	\"':;,()[]=+-/.%

	keytable:	^M	new-line-indent\
				$E{	find-opening-brace\
				$E}	find-closing-brace\
				$E(	find-opening-par\
				$E)	find-closing-par\
				)	flasher-parenthesis\
				}	flasher-parenthesis\
				]	flasher-parenthesis

	keywords: 	not		KeywordStyle\
				or		KeywordStyle\
				and		KeywordStyle\
				if		KeywordStyle\
				else	KeywordStyle\
				elif	KeywordStyle\
				while	KeywordStyle\
				def		KeywordStyle\
				class	KeywordStyle\
				lambda	KeywordStyle\
				try		KeywordStyle\
				except	KeywordStyle\
				finally	KeywordStyle\
				raise	KeywordStyle\
				import	KeywordStyle\
				from	KeywordStyle\
				for		KeywordStyle\
				in		KeywordStyle\
				pass	KeywordStyle\
				break	KeywordStyle\
				continue	KeywordStyle\
				global	KeywordStyle\
				exec	KeywordStyle\
				None	KeywordStyle\
				return	KeywordStyle\
				__init__	KeywordStyle\
				__del__	KeywordStyle\
				self	CppStyle\
				len		LibraryStyle\
				isinstance LibraryStyle
}

#
#	mode XML minimaliste.
#

defmode XML {
	magic: 				<\?xml
	auto_wrap:			true
	word_delimiters:	\";:.,~}<>()[]=+-|@$%&?
	line_comment:		"<!"	"$"		true	false	true	false
	keyword:			"<"		">"		true	true	false	false
}

#
#	mode Texte de base.
#

defmode Text {
	priority:			5
	word_delimiters:	!"'\;:.,~}*()[]=+|@$%&?<>
	paragraph_delimiters:	"[1-9]*[0-9]*[\.:-] "	par-ind\
							"----*"					par-noind\
							"====*"					par-noind
	stop_on_comment:	false
	ascii_quote:		true

	quote:				""		""		true	true	false	false
	string:				"\""	"\""	false	false	true	false
	quote_colour:		#6988d1	#6080c0
	auto_wrap:			true
	auto_spell_check:	true
	wrap_column:		70
	main_dictionary:	~/.fr_dict.gz
	alt_dictionary:		~/.en_dict.gz
	user_dictionary:	~/.user_dict
	infer_language:		true
	language_recheck:	true
	jump_type:			misspell, mult_spell, accented

	keytable:		^M	new-line-indent\
					$^M	new-line-indent (+)\
					$^H	new-line-indent (-)\
					$E{	find-opening-brace\
					$E}	find-closing-brace\
					$E[	find-opening-bracket\
					$E]	find-closing-bracket\
					$E(	find-opening-par\
					$E)	find-closing-par\
					$Ep	adjust-paragraph\
					$E^P	flatten-paragraph\
					^I	expand-alias\
					'	replace-string ("e", "", "", "e'", "E", "", "", "E'", "'", "", "", "''")\
					`	replace-char (eeEEaaAAuuUU``)\
					,	replace-string ("c,", "", "", "c,", "C,", "", "", "C,")\
					\^	replace-char (eeEEaaAAuuUUiiIIooOO)\
					\"	replace-char (eeaauuiiooEEAAUUIIOO)\
					\$	replace-string ("$", "", "", "$$")
}

#
#	mode texte en allemand.
#

defmode German : Text {
	magic:				[ ]der[ ]|[ ]ein[ ]|[ ]Ich[ ]
	main_dictionary:	~/.de_dict.gz
	quote:	none
	string:	none
}

#
#	mode TeX / LaTex
#

defmode LaTex : Text {
	magic:					\\[a-z][a-z]*[ 	]*{[a-z]*}
	process_command:		make -j
	word_delimiters:		!'`";:.,~{}()[]*=+-|@$%&?<>
	colour_delimiters:		!'`";:.,~{}()[]*=+-|@$%&?<>/
	paragraph_delimiters:	"\\begin{[A-Za-z]*}"	par-noind\
							"\\end{[A-Za-z]*}"		par-noind\
							"\\\["					par-noind\
							"\\\]"					par-noind\
							"\\chapter"				par-noind\
							"\\section"				par-noind\
							"\\subsection"			par-noind\
							"\\subsubsection"		par-noind\
							"\\label"				par-noind\
							"\\paragraph"			par-noind\
							"\\caption"				par-noind\
							"\\newline"				par-noind\
							"\\noindent"			par-noind\
							"\\\\"					par-noind\
							"\\smallitem"			par-ind\
							"\\item"				par-ind

	math_submode:			LaTex
	math_colour:			#ea1919

	math:					"\$"				"\$"				true	true	false	false
	cpp:					"{"					"}"					true	true	false	true
	class:					"``"				"''"				false	false	true	false
	library:				"\["				"\]"				true	true	false	false
	line_comment:			"%"					"$"					true	false	false	false
	keyword:				"\\."				"[^a-zA-Z]"			true	false	false	false
	verbatim:				"\\begin{verbatim}"	"\\end{verbatim}"	true	true	true	false
	line_comment_submode:	Fundamental
	verbatim_submode:		Text
	verbatim_colour:		#b0b0a0
	verbatim_font:			mono	mono-bold
	text_font:				sans	sans
	# cette user-command est nanmoins utilisable dans tous le modes.
	# mais lie que dans celui-l!
	defcmd boldify-word () {
		"Surrounds the current word with the LaTeX boldface directive:\
		 <font color=#a0a0a0>wor|d -&gt; \textbf {|word}</font> the cursor\
		 is then put at the beginning of the word."
		end-word (); insert-string ("}");
		backward-word (); insert-string ("\textbf {");
	}

	keytable:	^M		new-line\
				$E^B	exec-user-cmd (boldify-word)

	alias:	em			\\emph{|*}\
			\([a-zA-Z][a-zA-Z]*\)\(/[rR]\)	\\\\textrm{\1}\
			\([a-zA-Z][a-zA-Z]*\)\(/[eE]\)	\\\\emph{\1}\
			\([a-zA-Z][a-zA-Z]*\)\(/[iI]\)	\\\\textit{\1}\
			\([a-zA-Z][a-zA-Z]*\)\(/[bB]\)	\\\\textbf{\1}\
			\([a-zA-Z][a-zA-Z]*\)\(/[cC]\)	\\\\textsc{\1}\
			\([a-zA-Z][a-zA-Z]*\)\(/[tT]\)	\\\\texttt{\1}\
			no			\\noindent\
			it			\\textit{|*}\
			bf			\\textbf{|*}\
			sc			\\textsc{|*}\
			tt			\\texttt{|*}\
			sl			\\textsl{|*}\
			mbox		\\mbox{|*}\
			underline	\\underline{|*}\
			footnote	\\footnote{|*}\
			tiny		{\\tiny |*}\
			begin		\\begin{|*}{}|+|-\\end{}\
			section 	\\section{|*}\
			subsection	\\subsection{|*}\
			subsub		\\subsubsection{|*}\
			chapter		\\chapter{|*}\
			hs			\\hspace|*{6mm}\
			vs			\\vspace*{2mm}\
			ct			\\^{}|*\
			quote		\\begin{quote}|i|*|i\\end{quote}|i\
			tabular		\\begin{tabular}{|*}|i|i\\end{tabular}|i\
			tabbing		\\begin{tabbing}|innnnnnnn \\= \\kill \|+ \\\\|i|*|i\\end{tabbing}|i\
			center		\\begin{center}{|*}|i|i\\end{center}|i\
			verbatim	\\begin{verbatim}|i|*|i\\end{verbatim}\
			itemize 	\\begin{itemize}|i\\item|+|*|-\\item|+|-\\end{itemize}|i\
			enumerate 	\\begin{enumerate}|i\\item|+|*|-\\item|+|-\\end{enumerate}|i\
			description	\\begin{description}|+\\item[|*] |i\\item[] |-\\end{description}|i\
			verse		\\begin{verse}|+|*|-\\end{verse}|i\
			displaymath	\\begin{displaymath}|i|*|i\\end{displaymath}|i\
			equation	\\begin{equation}|i|*|i\\end{equation}|i\
			framebox	\\framebox(|*,)[]{}\
			makebox		\\makebox(|*,)[]{}\
			picture		\\begin{picture}(|*,)(,)|+|-\\end{picture}\
			\([a-zA-Z][a-zA-Z]*\)\(T\)	\\\\texttt{\1}\
			\([a-zA-Z][a-zA-Z]*\)\(I\)	\\\\textit{\1}\
			\([a-zA-Z][a-zA-Z]*\)\(B\)	\\\\textbf{\1}\
			\([a-zA-Z][a-zA-Z]*\)\(S\)	\\\\textsc{\1}\
			\([a-zA-Z][a-zA-Z]*\)\(E\)	\\\\emph{\1}
}

#
#	Mode Bibtex
#

defmode Bibtex : Text {
	magic:					@[aA][rR][tT][iI][cC][lL][eE] *{
	priority:				4
	auto_wrap:				true
	colour_delimiters:		!'`";:.,~{}*+-|$%&?<>/
	paragraph_delimiters:	"[A-Za-z]+[ 	]*="		par-ind
	line_comment:			"%"			"$"				true  false	false	false
	keyword:				"\\."		"[^a-zA-Z]"		true  false	false	false

	keywords:	"^[ 	]*@[a-zA-Z]+{"			KeywordStyle ConstantStyle >\
				"^[ 	]*[a-zA-Z_]+[ 	]*="	LibraryStyle

	alias:	@book\
			@proceedings\
			@misc
}

#
#	mode MarkDown
#

defmode MarkDown : LaTex {
	magic:				header-includes

	bold:				"\*\*"			"\*\*"	true	true	true	true
	italic:				"\*[^\*]"		"\*"	true	true	true	true
	caption:			"!\["			"\]"	true	true	true	true
	ref:				"\["			"\]"	true	true	false	false
	title:				"^[ 	]*#"	"$"		true	false	false	false

	ref_colour:			#aa44aa 	#991199
	ref_font:			mono		mono-bold
	text_font:			mono
	caption_colour:		#30a030
	caption_font:		mono
	bold_colour:		#fffff0
	bold_font:			mono-bold
	italic_colour:		#fffff0
	italic_font:		mono-italic
	title_font:			mono-bold-italic
	title_colour:		#ffff00
}

defmode Mail : Text {
	magic:				From:|To:|Subject:|Cc:
	display_line_number:	false
	charset:			utf8
	infer_language:		false
	language_recheck:	true
	line_comment:		"X-ExtEditorR"	"$"		true	false	true	false
	line_comment_colour:	#505050
	line_comment_font:	mono-italic
	ref:				"^To:"			"$"		true	true	false	false
	ref_colour:			#cc44cc
	ref_font:			mono-bold
	title:				"^Subject:"		"$"		true	true	false	false
	title_colour:		#eeee00
	italic:				"^Cc:"			"$"		true	true	false	false
	italic_colour:		#ee8800
	italic_font:		mono
	bold:				"^Bcc:"			"$"		true	true	false	false
	bold_colour:		#bb6600
	bold_font:			mono
	caption:			"^Reply-To:"	"$"		true	true	false	false
	caption_colour:		#aa5000
	caption_font:		mono

	alias:		deg						\
				\([-0-9][0-9]*\)\(deg\)	\1\
				cc		Coucou
}

defmode Makefile {
	include_directive:	^include \(.*\)
	magic:				[CXD]FLAGS|SUFFIXES|\$(CXX)|^[a-zA-Z][a-zA-Z.]*:[ 	]\$(
	word_delimiters:	!";:,~}()[]=+|@*$%&?<>
	colour_delimiters:	!";:,~{}*()[]=+|@$%&?<>/
	line_comment:		"#"		"$"					true	false	true	false
	keyword:			"\$("	")"					true	true	false	false
	library:			"^[ ]*[A-Z0-9_]+[ 	]+"	"=" true	false	false	false
	if (ALT_DISPLAY)
		ccode_colour:		#b060d0
	else
		ccode_colour:		#60ffff

	keywords:	-O[1-6]			KeywordStyle\
				[\-A-Za-z0-9_]+\.o	ObjectStyle\
				[\-A-Za-z0-9_]+\.h	HeaderStyle\
				[\-A-Za-z0-9_]+\.c	CcodeStyle\
				[\-A-Za-z0-9_]+\.cc	CcodeStyle\
				[\-A-Za-z0-9_]+\.pdf	ImageStyle\
				[\-A-Za-z0-9_]+\.png	ImageStyle\
				[\-A-Za-z0-9_]+\.jpg	ImageStyle\
				[\-A-Za-z0-9_]+\.svg	ImageStyle\
				[\-A-Za-z0-9_]+\.svgz	ImageStyle\
				include			KeywordStyle\
				\.SUFFIXES		KeywordStyle\
				\.SILENT		KeywordStyle\
				ifeq			KeywordStyle\
				ifneq			KeywordStyle\
				else			KeywordStyle\
				endif			KeywordStyle\
				@				KeywordStyle\
				=				KeywordStyle\
				\$<				KeywordStyle\
				\$@				KeywordStyle\
				\$*				KeywordStyle
}

defmode SED {
	magic:				^s/.*/
	word_delimiters:	!";:.,~}<>()[]=+-|/@$%&?
	colour_delimiters:	!"';:.,~}<>()[]=+-|/@$%&?

	constant:	"s[/|]"	"[/|]"	true	false	false	false
	library:	"[/|]"	"[/|]$"	true	true	false	false
	alias:	s	s/|*//
}

defmode PHP {
	include_directive:	^require('\(.*\)')
	suffix:				*.php
	magic:				<?php | ?>
	word_delimiters:	!";:.,~}<>()[]=+-|@$%&?
	colour_delimiters:	!"';:.,~}()[]=+-|@%$&
#										color-beg	color-end	spell-chk	nested
	line_comment:		"//"	"$"		true	false	true	false
	block_comment:		"/\*"	"\*/"	true	true	true	false
	string:				"\""	"\""	false	false	true	false
	quote:				"'"		"'"		true	true	false	false

	quote_colour:			#6988d1	#6080c0
	block_comment_colour:	#ffff00	#906000
	block_comment_font:		mono	mono

	wrap_column:			79
	main_dictionary:		~/.fr_dict.gz
	alt_dictionary:			~/.en_dict.gz
	user_dictionary:		~/.user_dict
	keywords:				for		KeywordStyle\
							endfor	KeywordStyle\
							if		KeywordStyle\
							else	KeywordStyle\
							elseif	KeywordStyle\
							endif	KeywordStyle\
							while	KeywordStyle\
							endwhile	KeywordStyle\
							return	KeywordStyle\
							echo	KeywordStyle\
							switch	KeywordStyle\
							match	KeywordStyle\
							case	KeywordStyle\
							default	KeywordStyle\
							for		KeywordStyle\
							foreach	KeywordStyle\
							break	KeywordStyle\
							declare	KeywordStyle\
							require	KeywordStyle\
							include	KeywordStyle\
							header	KeywordStyle\
							function	KeywordStyle ClassStyle >\
							"<?php"	KeywordStyle\
							"?>"	KeywordStyle\
							[0-9]+	ConstantStyle\
							TRUE	ConstantStyle\
							FALSE	ConstantStyle\
							\$		KeywordStyle\
							\.		KeywordStyle\
							\*		KeywordStyle\
							\+		KeywordStyle\
							\++		KeywordStyle\
							->		KeywordStyle\
							=>		KeywordStyle\
							=		KeywordStyle\
							:		KeywordStyle\
							intdiv	LibraryStyle\
							isset	LibraryStyle\
							empty	LibraryStyle\
							exit	LibraryStyle\
							fopen	LibraryStyle\
							fclose	LibraryStyle\
							fwrite	LibraryStyle\
							fgets	LibraryStyle\
							print	LibraryStyle\
							trim	LibraryStyle\
							rtrim	LibraryStyle\
							substr	LibraryStyle\
							strpos	LibraryStyle\
							array_search	LibraryStyle\
							\$GLOBALS	QuoteStyle\
							\$_SERVER	QuoteStyle\
							\$_GET		QuoteStyle\
							\$_POST		QuoteStyle\
							\$_FILES	QuoteStyle\
							\$_REQUEST	QuoteStyle\
							\$_SESSION	QuoteStyle\
							\$_ENV		QuoteStyle\
							\$_COOKIE	QuoteStyle\
							\$argc		QuoteStyle\
							\$argv		QuoteStyle\
							\$php_errormsg			QuoteStyle\
							\$http_response_header	QuoteStyle

	keytable:		^M	new-line-indent\
					^I	expand-alias\
					$E{	find-opening-brace\
					$E}	find-closing-brace\
					$E[	find-opening-bracket\
					$E]	find-closing-bracket\
					$E(	find-opening-par\
					$E)	find-closing-par\
					$Ep	adjust-paragraph
}

defmode HTML {
	magic:					[^"]<[a-zA-Z][a-zA-Z]*>[^"]|[^"]<[a-zA-Z][a-zA-Z]* .*>[^"]
	word_delimiters:		!";:.,~}<>()[]=+-|@$%&?
	colour_delimiters:		!"';:.,~}<>()[]=+-|@$%&?
	line_comment:			"<!--"			"-->"		true	false	false	false
	keyword:				"<[a-zA-Z0-9/]"	">"			true	true	false	false
	cpp:					"&"				";"			true	false	false	false
	block_comment:			"<pre>"			"</pre>"	true	true	true	false
	block_comment_colour:	#ff5f5f
	block_comment_font:		mono	mono
	auto_spell_check:		true
	infer_language:			true
	paragraph_delimiters:	"</*li>"				par-ind\
							"<ul>"					par-ind\
							"<ol>"					par-ind\
							"</*[kib]>"				not-par\
							"</*tt>"				not-par\
							"</*pre>"				not-par\
							"<[/a-zA-Z][a-zA-Z]*>"	par-noind

	wrap_column:			79
	main_dictionary:		~/.fr_dict.gz
	alt_dictionary:			~/.en_dict.gz
	user_dictionary:		~/.user_dict

	alias:			tt	<tt>|*</tt>\
					kbd	<kbd>|*</kbd>\
					bd	<b>|*</b>\
					it	<i>|*</i>\
					ol	<ol>|+<li>|*</li>|-</ol>\
					ul	<ul>|+<li>|*</li>|-</ul>\
					img	<img src=|*>\
					cen	<center>|+|*|-</center>

	keytable:		^M	new-line-indent\
					^I	expand-alias\
					'	replace-char (eeEE'')\
					`	replace-char (eeEEaaAAuuUU``)\
					,	replace-string ("c", "", "", "c,", "C", "", "", "C,")\
					\^	replace-char (eeEEaaAAuuUUiiIIooOO)\
					\"	replace-char (eeaauuiiooEEAAUUIIOO)\
					\$	replace-char ($$)\
					<	replace-string ("<", "&lt;", "&lt;", "<")\
					>	replace-string (">", "&gt;", "&gt;", ">")\
					$E{	find-opening-brace\
					$E}	find-closing-brace\
					$E[	find-opening-bracket\
					$E]	find-closing-bracket\
					$E(	find-opening-par\
					$E)	find-closing-par\
					$Ep	adjust-paragraph
}

#
#	Mode adapt  l'dition de son .flwxrc
#

defmode FLWX {
	include_directive:	[ 	]*include \(.*\)|#[ 	]*style_import[ 	]*"\(.*\)"
	magic:				VerbatimStyle|[ 	]magic:[ 	]|^defmode|^defcmd
	word_delimiters:	\!";:.,~}*()[]=+-|@$%&?<>
	colour_delimiters:	\!";:.,~{}()*[]=+|@$%&?<>/
	line_comment:		"^[ 	]*#"	"$"		true	false	true	false
#
# attention: SwitchStyle est un alias de StringStyle et par dfaut
# string_submode est le mode Text o esc-c ne poppe pas la boite des couleurs!
#
	switch_submode:		FLWX
	if (ALT_DISPLAY) {
		constant_colour:	#0000e0	#0000e0
		switch_colour:		#00a000	#00a000
		variable_colour:	#a216ff	#800080
		value_colour:		#c00080 #c00080
		alias_st_colour:	#ff00c0 #ff00c0
	} else {
		constant_colour:	#df4aa7	#ffffff
		switch_colour:		#20a0c3	#ffffff
		variable_colour:	#d000d0	#800080
		value_colour:		#00d0d0 #c00080
		alias_st_colour:	#d84772 #ff00c0
	}
	argument_font:		mono	mono-bold

	keytable:	$Ef		insert-fontname\
				$Ec		insert-colour

	keywords:	||					KeywordStyle\
				&&					KeywordStyle\
				\+					KeywordStyle\
				|\+					KeywordStyle\
				|\-					KeywordStyle\
				|\*					KeywordStyle\
				==					KeywordStyle\
				!=					KeywordStyle\
				!					KeywordStyle\
				>=					KeywordStyle\
				<=					KeywordStyle\
				<					KeywordStyle\
				>					KeywordStyle\
#	mots clefs, constantes et variables testables.
				if					KeywordStyle\
				else				KeywordStyle\
				include				KeywordStyle\
				defcmd				KeywordStyle ConstantStyle >\
				defmode				KeywordStyle ClassStyle >\
				set					KeywordStyle VariableStyle >\
				$cst_names$			ConstantStyle\
				$var_names$			VariableStyle\
#	switches locaux  un mode.
				$loc_opts$			KeywordStyle\
#	switches globaux
				$glob_opts$			SwitchStyle\
#	fontes standard
				$std_fonts$			ValueStyle\
#	commandes.
				$commands$			CommandStyle\
#	arguments de commandes
				$cmd_args$			ArgumentStyle\
#	style des styles.
				$plain_styles$		StyleStyle\
#	style des alias de styles.
				$alias_styles$		AliasStStyle\
#	les dollar qqchose
				$list_parm$			VariableStyle\
#	constantes numriques, boolennes, couleurs, types de souligns, jump_type.
				$cst_values$		ValueStyle
}

#
#	Mode pour faire de jolies wall-charts.
#

defmode WallChart {
	magic:				mode wall
	word_delimiters:	\!";:.,~}*()[]=+-|@$%&?<>
	colour_delimiters:	\!";.,~{}()*[]=|@$%&?<>/
	argument:			" ([^ ,]"	"[)$]"	true	true	false	false
	argument_font:		serif			mono-bold
	argument_colour:	#d0d000			#800080
	value_colour:		#60ffff 		#c00080
	value_font:			serif-bold		serif-bold
	keyword_colour:		#f08000 		#000080
	keyword_font:		serif-italic	serif-italic

	keywords:	mode		ValueStyle ValueStyle <\
				wall		KeywordStyle\
				chart		KeywordStyle\
#	commandes.
				$commands$	CommandStyle
}

#
#	Pour diter des modles HSIM.
#

defmode Hsim : C {
	magic: 				geometry = [1-9][0-9]*:
	colour_delimiters:	\!";:.,~{}*()[]=+-|@$%&?<>/
	line_comment:		"//"	"$"		true	false	true	false

	alias:		molecule		molecule\
				metabolite		metabolite\
				membrane		membrane\
				species			species\
				sequence		sequence\
				maxlinks		maxlinks\
				speed			speed\
				diffusion		diffusion\
				compartment		compartment\
				display			display\
				init			init\
				hide			hide\
				geometry		geometry\
				asm				asm\
				cube			cube\
				surface			surface\
				title			title\
				count_only_free	count_only_free\
				constant		constant\
				true			true\
				size			size\
				false			false\
				/\*				/* |* */\
				/\*\*			/*|i *|*|i */\
				//				// |*.\
				#				#\
				#define			#define\
				#include		#include "|*.inc"\
				#ifdef			#ifdef\
				#undef			#undef\
				#ifndef			#ifndef\
				#endif			#endif\
				#else			#else\
				#elif			#elif


	keywords:	molecule		KeywordStyle\
				membrane		KeywordStyle\
				metabolite		KeywordStyle\
				species			KeywordStyle\
				base			KeywordStyle\
				hide			KeywordStyle\
				dna				KeywordStyle\
				sequence		KeywordStyle\
				compartment		KeywordStyle\
				diffusion		KeywordStyle\
				maxlinks		KeywordStyle\
				speed			KeywordStyle\
				geometry		KeywordStyle\
				display			KeywordStyle\
				init			KeywordStyle\
				inactive		KeywordStyle\
				asm				KeywordStyle\
				cube			KeywordStyle\
				surface			KeywordStyle\
				title			KeywordStyle\
				count_only_free	KeywordStyle\
				hide			KeywordStyle\
				true			LibraryStyle\
				false			LibraryStyle\
				size			KeywordStyle\
				constant		KeywordStyle\
				\+				KeywordStyle\
				\*				KeywordStyle\
				,				KeywordStyle\
				;				KeywordStyle\
				=				KeywordStyle\
				{				KeywordStyle\
				}				KeywordStyle\
				->				KeywordStyle\
				[0-9]+			ConstantStyle\
				defined			CppStyle\
				#				CppStyle CppStyle >\
				#define			CppStyle ConstantStyle >\
				#include			CppStyle\
				#undef			CppStyle\
				#ifdef			CppStyle ConstantStyle >\
				#if				CppStyle\
				#ifndef			CppStyle ConstantStyle >\
				#endif			CppStyle\
				#else			CppStyle\
				#elif			CppStyle
}

defmode Lisp {
	magic:		(defun|(if|(cond
	colour_delimiters:	!"';.,{}*()[]|@$%&?<>/
	block_comment:		";"	"[;$]"		false	false	true	false

	keywords:	defun	KeywordStyle LibraryStyle >\
				defmac	KeywordStyle CppStyle >\
				de		KeywordStyle LibraryStyle >\
				[0-9]+	ConstantStyle\
				'		KeywordStyle\
				if		KeywordStyle\
				>		KeywordStyle\
				>=		KeywordStyle\
				==		KeywordStyle\
				!=		KeywordStyle\
				<		KeywordStyle\
				<=		KeywordStyle\
				--		KeywordStyle\
				-		KeywordStyle\
				-=		KeywordStyle\
				=		KeywordStyle\
				\+		KeywordStyle\
				\+\+	KeywordStyle\
				\+=		KeywordStyle\
				while	KeywordStyle\
				list	KeywordStyle\
				cond	KeywordStyle\
				cons	KeywordStyle\
				null	KeywordStyle\
				numbp	KeywordStyle\
				atom	KeywordStyle\
				stringp	KeywordStyle\
				listp	KeywordStyle\
				and		KeywordStyle\
				or		KeywordStyle\
				eq		KeywordStyle\
				neq		KeywordStyle\
				t		KeywordStyle\
				nil		KeywordStyle\
				progn	KeywordStyle\
				print	KeywordStyle\
				terpri	KeywordStyle\
				lambda	KeywordStyle\
				lexpr	KeywordStyle\
				macro	KeywordStyle\
				quote	KeywordStyle\
				setq	KeywordStyle\
				eval	KeywordStyle\
				caar	KeywordStyle\
				cadr	KeywordStyle\
				cdar	KeywordStyle\
				cddr	KeywordStyle\
				car		KeywordStyle\
				cdr		KeywordStyle
}

#if (USER == "pa" || USER == "pamar" || USERNAME == "Patrick")
#	include ~/.flwxrc_spec-debug
