--- /dev/null
+# Copyright (c) 2005 - 2006 Hans Jeuken. All rights reserved.
+# This program is free software; you can redistribute it and/or
+# modify it under the same terms as Perl itself.
+
+# This file was generated from the 'ldif.xml' file of the syntax highlight
+# engine of the kate text editor (http://www.kate-editor.org
+
+#kate xml version 1.02
+#kate version 2.4
+#kate author Andreas Hochsteger (e9625392@student.tuwien.ac.at)
+#generated: Sun Feb 3 22:02:05 2008, localtime
+
+package Syntax::Highlight::Engine::Kate::LDIF;
+
+our $VERSION = '0.06';
+
+use strict;
+use warnings;
+use base('Syntax::Highlight::Engine::Kate::Template');
+
+sub new {
+ my $proto = shift;
+ my $class = ref($proto) || $proto;
+ my $self = $class->SUPER::new(@_);
+ $self->attributes({
+ 'AttributeType' => 'DataType',
+ 'Comment' => 'Comment',
+ 'Description Keyword' => 'Keyword',
+ 'Normal Text' => 'Normal',
+ 'ObjectClass' => 'Reserved',
+ 'Value (Encoded)' => 'BString',
+ 'Value (Encrypted)' => 'BaseN',
+ 'Value (Keyword)' => 'Float',
+ 'Value (Standard)' => 'String',
+ 'Value (URL)' => 'Others',
+ });
+ $self->listAdd('attributetypes',
+ 'IPPhone',
+ 'URL',
+ 'aRecord',
+ 'aliasedEntryName',
+ 'aliasedObjectName',
+ 'associatedDomain',
+ 'associatedName',
+ 'audio',
+ 'authorityRevocationList',
+ 'bootFile',
+ 'bootParameter',
+ 'buildingName',
+ 'businessCategory',
+ 'c',
+ 'cACertificate',
+ 'cNAMERecord',
+ 'certificateRevocationList',
+ 'cn',
+ 'comment',
+ 'commonName',
+ 'conferenceInformation',
+ 'corbaContainer',
+ 'corbaRepositoryId',
+ 'countryName',
+ 'crossCertificatePair',
+ 'custom1',
+ 'custom2',
+ 'custom3',
+ 'custom4',
+ 'dITRedirect',
+ 'dSAQuality',
+ 'dc',
+ 'deltaRevocationList',
+ 'description',
+ 'destinationIndicator',
+ 'distinguishedName',
+ 'dmdName',
+ 'dnQualifier',
+ 'documentAuthor',
+ 'documentIdentifier',
+ 'documentLocation',
+ 'documentPublisher',
+ 'documentTitle',
+ 'documentVersion',
+ 'domainComponent',
+ 'enhancedSearchGuide',
+ 'facsimileTelephoneNumber',
+ 'fax',
+ 'gecos',
+ 'generationQualifier',
+ 'gidNumber',
+ 'givenName',
+ 'gn',
+ 'homeDirectory',
+ 'homePostalAddress',
+ 'homeUrl',
+ 'host',
+ 'houseIdentifier',
+ 'info',
+ 'initials',
+ 'internationaliSDNNumber',
+ 'ipHostNumber',
+ 'ipNetmaskNumber',
+ 'ipNetworkNumber',
+ 'ipProtocolNumber',
+ 'ipServicePort',
+ 'ipServiceProtocol',
+ 'janetMailbox',
+ 'javaClassNames',
+ 'javaCodebase',
+ 'javaContainer',
+ 'javaDoc',
+ 'javaFactory',
+ 'javaReferenceAddress',
+ 'javaSerializedData',
+ 'knowledgeInformation',
+ 'l',
+ 'labeledURI',
+ 'lastModifiedBy',
+ 'lastModifiedTime',
+ 'lmpassword',
+ 'localityName',
+ 'loginShell',
+ 'mDRecord',
+ 'mXRecord',
+ 'macAddress',
+ 'mail',
+ 'manager',
+ 'member',
+ 'memberNisNetgroup',
+ 'memberUid',
+ 'mozillaHomeCountryName',
+ 'mozillaHomeFriendlyCountryName',
+ 'mozillaHomeLocalityName',
+ 'mozillaHomePostalAddress2',
+ 'mozillaHomePostalCode',
+ 'mozillaHomeState',
+ 'mozillaPostalAddress2',
+ 'mozillaSecondemail',
+ 'nSRecord',
+ 'name',
+ 'nisMapEntry',
+ 'nisMapName',
+ 'nisNetgroupTriple',
+ 'ntpasswd',
+ 'o',
+ 'objectClass',
+ 'oncRpcNumber',
+ 'organizationName',
+ 'organizationalStatus',
+ 'organizationalUnitName',
+ 'otherFacsimiletelephoneNumber',
+ 'otherMailbox',
+ 'ou',
+ 'owner',
+ 'personalSignature',
+ 'personalTitle',
+ 'photo',
+ 'physicalDeliveryOfficeName',
+ 'postOfficeBox',
+ 'postalAddress',
+ 'postalCode',
+ 'preferredDeliveryMethod',
+ 'presentationAddress',
+ 'protocolInformation',
+ 'rdn',
+ 'registeredAddress',
+ 'reports',
+ 'rfc822Mailbox',
+ 'roleOccupant',
+ 'roomNumber',
+ 'sOARecord',
+ 'searchGuide',
+ 'secretary',
+ 'seeAlso',
+ 'serialNumber',
+ 'shadowExpire',
+ 'shadowFlag',
+ 'shadowInactive',
+ 'shadowLastChange',
+ 'shadowMax',
+ 'shadowMin',
+ 'shadowWarning',
+ 'singleLevelQuality',
+ 'sn',
+ 'st',
+ 'stateOrProvinceName',
+ 'street',
+ 'streetAddress',
+ 'subtreeMaximumQuality',
+ 'subtreeMinimumQuality',
+ 'supportedAlgorithms',
+ 'supportedApplicationContext',
+ 'surname',
+ 'telephoneNumber',
+ 'teletexTerminalIdentifier',
+ 'telexNumber',
+ 'textEncodedORAddress',
+ 'title',
+ 'uid',
+ 'uidNumber',
+ 'uniqueIdentifier',
+ 'uniqueMember',
+ 'userCertificate',
+ 'userClass',
+ 'userPassword',
+ 'userid',
+ 'workUrl',
+ 'x121Address',
+ 'x500UniqueIdentifier',
+ 'xmozillaNickname',
+ 'xmozillaUseHtmlMail',
+ 'xmozillanickname',
+ 'xmozillausehtmlmail',
+ );
+ $self->listAdd('objectclasses',
+ 'RFC822localPart',
+ 'SUP',
+ 'account',
+ 'alias',
+ 'applicationEntity',
+ 'applicationProcess',
+ 'bootableDevice',
+ 'cRLDistributionPoint',
+ 'certificationAuthority',
+ 'certificationAuthority-V2',
+ 'corbaObject',
+ 'corbaObjectReference',
+ 'country',
+ 'dNSDomain',
+ 'dSA',
+ 'dcObject',
+ 'deltaCRL',
+ 'device',
+ 'dmd',
+ 'document',
+ 'documentSeries',
+ 'domain',
+ 'domainRelatedObject',
+ 'friendlyCountry',
+ 'groupOfNames',
+ 'groupOfUniqueNames',
+ 'ieee802Device',
+ 'inetOrgPerson',
+ 'ipHost',
+ 'ipNetwork',
+ 'ipProtocol',
+ 'ipService',
+ 'javaClassName',
+ 'javaMarshalledObject',
+ 'javaNamingReference',
+ 'javaObject',
+ 'javaSerializedObject',
+ 'labeledURIObject',
+ 'locality',
+ 'mozillaAbPersonObsolete',
+ 'nisMap',
+ 'nisNetgroup',
+ 'nisObject',
+ 'officePerson',
+ 'oncRpc',
+ 'organization',
+ 'organizationalPerson',
+ 'organizationalRole',
+ 'organizationalUnit',
+ 'pager',
+ 'pagerTelephoneNumber',
+ 'person',
+ 'pilotDSA',
+ 'pilotObject',
+ 'pilotOrganization',
+ 'pkiCA',
+ 'pkiUser',
+ 'posixAccount',
+ 'posixGroup',
+ 'qualityLabelledData',
+ 'residentialPerson',
+ 'rid',
+ 'room',
+ 'sambaAccount',
+ 'shadowAccount',
+ 'simpleSecurityObject',
+ 'strongAuthenticationUser',
+ 'telephoneNumber',
+ 'top',
+ 'uid',
+ 'uidNumber',
+ 'uidObject',
+ 'userSecurityInformation',
+ 'userid',
+ 'xmozillaanyphone',
+ 'zillaPerson',
+ );
+ $self->contextdata({
+ 'ctxEncoded' => {
+ callback => \&parsectxEncoded,
+ attribute => 'Value (Encoded)',
+ },
+ 'ctxEncrypted' => {
+ callback => \&parsectxEncrypted,
+ attribute => 'Value (Encrypted)',
+ },
+ 'ctxStandard' => {
+ callback => \&parsectxStandard,
+ attribute => 'Value (Standard)',
+ },
+ 'ctxStart' => {
+ callback => \&parsectxStart,
+ attribute => 'Value (Standard)',
+ },
+ 'ctxURL' => {
+ callback => \&parsectxURL,
+ attribute => 'Value (URL)',
+ },
+ });
+ $self->deliminators('\\s||\\.|\\(|\\)|:|\\!|\\+|,|-|<|=|>|\\%|\\&|\\*|\\/|;|\\?|\\[|\\]|\\^|\\{|\\||\\}|\\~|\\\\');
+ $self->basecontext('ctxStart');
+ $self->keywordscase(1);
+ $self->initialize;
+ bless ($self, $class);
+ return $self;
+}
+
+sub language {
+ return 'LDIF';
+}
+
+sub parsectxEncoded {
+ my ($self, $text) = @_;
+ # String => '#.*$'
+ # attribute => 'Comment'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
+ return 1
+ }
+ # String => '\s.*$'
+ # attribute => 'Value (Encoded)'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '\\s.*$', 0, 0, 0, undef, 0, '#stay', 'Value (Encoded)')) {
+ return 1
+ }
+ # String => '[\w\-]+((;[\w\-]+)+)?:'
+ # attribute => 'Description Keyword'
+ # column => '0'
+ # context => '#pop'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '[\\w\\-]+((;[\\w\\-]+)+)?:', 0, 0, 0, 0, 0, '#pop', 'Description Keyword')) {
+ return 1
+ }
+ return 0;
+};
+
+sub parsectxEncrypted {
+ my ($self, $text) = @_;
+ # String => '#.*$'
+ # attribute => 'Comment'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
+ return 1
+ }
+ # String => '\s.*$'
+ # attribute => 'Value (Encrypted)'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '\\s.*$', 0, 0, 0, undef, 0, '#stay', 'Value (Encrypted)')) {
+ return 1
+ }
+ # String => '[\w\-]+((;[\w\-]+)+)?:'
+ # attribute => 'Description Keyword'
+ # column => '0'
+ # context => '#pop#pop'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '[\\w\\-]+((;[\\w\\-]+)+)?:', 0, 0, 0, 0, 0, '#pop#pop', 'Description Keyword')) {
+ return 1
+ }
+ return 0;
+};
+
+sub parsectxStandard {
+ my ($self, $text) = @_;
+ # String => '#.*$'
+ # attribute => 'Comment'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
+ return 1
+ }
+ # String => '\{\w+\}.*$'
+ # attribute => 'Value (Encrypted)'
+ # context => 'ctxEncrypted'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '\\{\\w+\\}.*$', 0, 0, 0, undef, 0, 'ctxEncrypted', 'Value (Encrypted)')) {
+ return 1
+ }
+ # String => 'attributetypes'
+ # attribute => 'AttributeType'
+ # context => '#stay'
+ # type => 'keyword'
+ if ($self->testKeyword($text, 'attributetypes', 0, undef, 0, '#stay', 'AttributeType')) {
+ return 1
+ }
+ # String => 'objectclasses'
+ # attribute => 'ObjectClass'
+ # context => '#stay'
+ # type => 'keyword'
+ if ($self->testKeyword($text, 'objectclasses', 0, undef, 0, '#stay', 'ObjectClass')) {
+ return 1
+ }
+ # String => '[\w\-]+((;[\w\-]+)+)?:'
+ # attribute => 'Description Keyword'
+ # column => '0'
+ # context => '#pop'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '[\\w\\-]+((;[\\w\\-]+)+)?:', 0, 0, 0, 0, 0, '#pop', 'Description Keyword')) {
+ return 1
+ }
+ # String => '[a-zA-Z0-9\-]+='
+ # attribute => 'Value (Keyword)'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '[a-zA-Z0-9\\-]+=', 0, 0, 0, undef, 0, '#stay', 'Value (Keyword)')) {
+ return 1
+ }
+ return 0;
+};
+
+sub parsectxStart {
+ my ($self, $text) = @_;
+ # String => '#.*$'
+ # attribute => 'Comment'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
+ return 1
+ }
+ # attribute => 'Description Keyword'
+ # char => ':'
+ # context => 'ctxEncoded'
+ # type => 'DetectChar'
+ if ($self->testDetectChar($text, ':', 0, 0, 0, undef, 0, 'ctxEncoded', 'Description Keyword')) {
+ return 1
+ }
+ # attribute => 'Description Keyword'
+ # char => '<'
+ # context => 'ctxURL'
+ # type => 'DetectChar'
+ if ($self->testDetectChar($text, '<', 0, 0, 0, undef, 0, 'ctxURL', 'Description Keyword')) {
+ return 1
+ }
+ # String => '[^:<]'
+ # attribute => 'Value (Standard)'
+ # context => 'ctxStandard'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '[^:<]', 0, 0, 0, undef, 0, 'ctxStandard', 'Value (Standard)')) {
+ return 1
+ }
+ # String => '[\w\-]+((;[\w\-]+)+)?:'
+ # attribute => 'Description Keyword'
+ # column => '0'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '[\\w\\-]+((;[\\w\\-]+)+)?:', 0, 0, 0, 0, 0, '#stay', 'Description Keyword')) {
+ return 1
+ }
+ return 0;
+};
+
+sub parsectxURL {
+ my ($self, $text) = @_;
+ # String => '#.*$'
+ # attribute => 'Comment'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '#.*$', 0, 0, 0, undef, 0, '#stay', 'Comment')) {
+ return 1
+ }
+ # String => '\s+[\w]+://[\w/.]+'
+ # attribute => 'Value (URL)'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '\\s+[\\w]+://[\\w/.]+', 0, 0, 0, undef, 0, '#stay', 'Value (URL)')) {
+ return 1
+ }
+ # String => '\s.*$'
+ # attribute => 'Value (URL)'
+ # context => '#stay'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '\\s.*$', 0, 0, 0, undef, 0, '#stay', 'Value (URL)')) {
+ return 1
+ }
+ # String => '[\w\-]+((;[\w\-]+)+)?:'
+ # attribute => 'Description Keyword'
+ # column => '0'
+ # context => '#pop'
+ # type => 'RegExpr'
+ if ($self->testRegExpr($text, '[\\w\\-]+((;[\\w\\-]+)+)?:', 0, 0, 0, 0, 0, '#pop', 'Description Keyword')) {
+ return 1
+ }
+ return 0;
+};
+
+
+1;
+
+__END__
+
+=head1 NAME
+
+Syntax::Highlight::Engine::Kate::LDIF - a Plugin for LDIF syntax highlighting
+
+=head1 SYNOPSIS
+
+ require Syntax::Highlight::Engine::Kate::LDIF;
+ my $sh = new Syntax::Highlight::Engine::Kate::LDIF([
+ ]);
+
+=head1 DESCRIPTION
+
+Syntax::Highlight::Engine::Kate::LDIF is a plugin module that provides syntax highlighting
+for LDIF to the Syntax::Haghlight::Engine::Kate highlighting engine.
+
+This code is generated from the syntax definition files used
+by the Kate project.
+It works quite fine, but can use refinement and optimization.
+
+It inherits Syntax::Higlight::Engine::Kate::Template. See also there.
+
+=cut
+
+=head1 AUTHOR
+
+Hans Jeuken (haje <at> toneel <dot> demon <dot> nl)
+
+=cut
+
+=head1 BUGS
+
+Unknown. If you find any, please contact the author
+
+=cut
+