=head1 NAME

Syntax::Kamelon::Diagnostics - Explore syntax definition XML files

=head1 SYNOPSIS

=head1 DESCRIPTION

=head1 OPTIONS

The constructor is called with a paired list or hash of options as parameters. You can use
the following options.

=over 4

=item B<indexer> => ref to instance of B<Syntax::Kamelon::Indexer>

Here you can specify your own instance of the indexer module you wish to use. If you
specify this option, all other options become meaningless.

=item B<indexfile> => filename

Specifies the filename where Kamelon stores information about available syntax definitions.

By default it points to 'indexrc' in the B<xmlfolder>. If the file does not exist Kamelon will 
load all xml files in the B<xmlfolder> and attempt to create the indexfile.

Once the indexfile has been created it becomes static. If you add a syntax definition 
XML file to the B<xmlfolder> it will no longer be recognized. Delete the indexfile and reload
Kamelon to fix that. 

See also B<Syntax::Kamelon::Indexer>

=item B<noindex> => boolean

By default 0. If you set this option Kamelon will ignore the existence of an indexfile
and manually build the index, without saving it. But it gives
you the liberty of adding and removing syntax highlight definition files.

=item B<xmlfolder> => folder

This is the place where Kamelon looks for syntax highlight definition XML files. By
default it searches @INC for 'Syntax/Kamelon/XML'. Here you find the
XML files used in the Kate text editor. They are specially crafted for this module.

See also B<Syntax::Kamelon::Indexer>

=back

=head1 USER METHODS

=over 4

=back

=head1 SYSTEM METHODS

=over 4

=item B<AttributeExists>

=item B<AvailableContextKeys>

=item B<AvailableLanguageKeys>

=item B<AvailableOperators>

=item B<AvailableRuleKeys>

=item B<AvailableSyntaxes>

=item B<CheckDuplicateAttributes>

=item B<CheckContextAttribute>

=item B<CheckListSizes>

=item B<Clear>

=item B<ContextExists>

=item B<ContextFilter>

=item B<CurContext>

=item B<CurRule>

=item B<CurSyntax>

=item B<CurXML>

=item B<Diagnoze>

=item B<Filter>

=item B<FilterContext>

=item B<FilterRule>

=item B<FilterSyntax>

=item B<FormatStringLength>

=item B<GetIndexer>

=item B<GetXMLObject>

=item B<IndentDown>

=item B<IndentUp>

=item B<IndentString>

=item B<OutCall>

=item B<PrintAnsi>

=item B<PrintClear>

=item B<PrintHash>

=item B<PrintLine>

=item B<PrintRelease>

=item B<PrintStyle>

=item B<RuleAnyChar>

=item B<RuleDefault>

=item B<RuleDetectChar>

=item B<RuleDetect2Chars>

=item B<RuleFilter>

=item B<RuleIncludeRules>

=item B<RuleInt>

=item B<RuleKeyword>

=item B<RuleLineContinue>

=item B<RuleRangeDetect>

=item B<RuleRegExpr>

=item B<RuleStringDetect>

=item B<RuleWordDetect>

=item B<ShowAttributes>

=item B<ShowContext>

=item B<ShowDetails>

=item B<ShowLists>

=item B<ShowRules>

=item B<SyntaxFilter>

=back

=head1 AUTHOR AND COPYRIGHT

This module is written and maintained by:

Hans Jeuken < hanje at cpan dot org >

Copyright (c) 2017 - 2023 by Hans Jeuken, all rights reserved.

Published under the same license as Perl.

=head1 SEE ALSO

L<Syntax::Kamelon>, L<Syntax::Kamelon::Builder>, L<Syntax::Kamelon::Debugger>,
L<Syntax::Kamelon::Indexer>, L<Syntax::Kamelon::XMLData>, B<Syntax::Kamelon::Format::Base>,
L<Syntax::Kamelon::Format::ANSI>, L<Syntax::Kamelon::Format:HTML4>

=cut
