| Syntax-Highlight-Engine-Kate documentation | Contained in the Syntax-Highlight-Engine-Kate distribution. |
Syntax::Highlight::Engine::Kate::LDIF - a Plugin for LDIF syntax highlighting
require Syntax::Highlight::Engine::Kate::LDIF; my $sh = new Syntax::Highlight::Engine::Kate::LDIF([ ]);
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.
Hans Jeuken (haje <at> toneel <dot> demon <dot> nl)
Unknown. If you find any, please contact the author
| Syntax-Highlight-Engine-Kate documentation | Contained in the Syntax-Highlight-Engine-Kate distribution. |
# 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__