1" DTML syntax file 2" Language: Zope's Dynamic Template Markup Language 3" Maintainer: Jean Jordaan <jean@upfrontsystems.co.za> (njj) 4" Last change: 2001 Sep 02 5 6" These are used with Claudio Fleiner's html.vim in the standard distribution. 7" 8" Still very hackish. The 'dtml attributes' and 'dtml methods' have been 9" hacked out of the Zope Quick Reference in case someone finds something 10" sensible to do with them. I certainly haven't. 11 12" For version 5.x: Clear all syntax items 13" For version 6.x: Quit when a syntax file was already loaded 14if version < 600 15 syntax clear 16elseif exists("b:current_syntax") 17 finish 18endif 19 20" First load the HTML syntax 21if version < 600 22 source <sfile>:p:h/html.vim 23else 24 runtime! syntax/html.vim 25endif 26 27syn case match 28 29" This doesn't have any effect. Does it need to be moved to above/ 30" if !exists("main_syntax") 31" let main_syntax = 'dtml' 32" endif 33 34" dtml attributes 35syn keyword dtmlAttribute ac_inherited_permissions access_debug_info contained 36syn keyword dtmlAttribute acquiredRolesAreUsedBy all_meta_types assume_children AUTH_TYPE contained 37syn keyword dtmlAttribute AUTHENTICATED_USER AUTHENTICATION_PATH BASE0 batch-end-index batch-size contained 38syn keyword dtmlAttribute batch-start-index bobobase_modification_time boundary branches contained 39syn keyword dtmlAttribute branches_expr capitalize cb_dataItems cb_dataValid cb_isCopyable contained 40syn keyword dtmlAttribute cb_isMoveable changeClassId classDefinedAndInheritedPermissions contained 41syn keyword dtmlAttribute classDefinedPermissions classInheritedPermissions collapse-all column contained 42syn keyword dtmlAttribute connected connectionIsValid CONTENT_LENGTH CONTENT_TYPE cook cookies contained 43syn keyword dtmlAttribute COPY count- createInObjectManager da_has_single_argument dav__allprop contained 44syn keyword dtmlAttribute dav__init dav__propnames dav__propstat dav__validate default contained 45syn keyword dtmlAttribute delClassAttr DELETE Destination DestinationURL digits discard contained 46syn keyword dtmlAttribute disposition document_src e encode enter etc expand-all expr File contained 47syn keyword dtmlAttribute filtered_manage_options filtered_meta_types first- fmt footer form contained 48syn keyword dtmlAttribute GATEWAY_INTERFACE get_local_roles get_local_roles_for_userid contained 49syn keyword dtmlAttribute get_request_var_or_attr get_size get_size get_valid_userids getAttribute contained 50syn keyword dtmlAttribute getAttributeNode getAttributes getChildNodes getClassAttr getContentType contained 51syn keyword dtmlAttribute getData getDocType getDocumentElement getElementsByTagName getFirstChild contained 52syn keyword dtmlAttribute getImplementation getLastChild getLength getName getNextSibling contained 53syn keyword dtmlAttribute getNodeName getNodeType getNodeValue getOwnerDocument getParentNode contained 54syn keyword dtmlAttribute getPreviousSibling getProperty getPropertyType getSize getSize getSize contained 55syn keyword dtmlAttribute get_size getTagName getUser getUserName getUserNames getUsers contained 56syn keyword dtmlAttribute has_local_roles hasChildNodes hasProperty HEAD header hexdigits HTML contained 57syn keyword dtmlAttribute html_quote HTMLFile id index_html index_objects indexes contained 58syn keyword dtmlAttribute inheritedAttribute items last- leave leave_another leaves letters LOCK contained 59syn keyword dtmlAttribute locked_in_version lower lowercase mailfrom mailhost mailhost_list mailto contained 60syn keyword dtmlAttribute manage manage_ methods manage_access manage_acquiredPermissions contained 61syn keyword dtmlAttribute manage_addConferaTopic manage_addDocument manage_addDTMLDocument contained 62syn keyword dtmlAttribute manage_addDTMLMethod manage_addFile manage_addFolder manage_addImage contained 63syn keyword dtmlAttribute manage_addLocalRoles manage_addMailHost manage_addPermission contained 64syn keyword dtmlAttribute manage_addPrincipiaFactory manage_addProduct manage_addProperty contained 65syn keyword dtmlAttribute manage_addUserFolder manage_addZClass manage_addZGadflyConnection contained 66syn keyword dtmlAttribute manage_addZGadflyConnectionForm manage_advanced manage_afterAdd contained 67syn keyword dtmlAttribute manage_afterClone manage_beforeDelete manage_changePermissions contained 68syn keyword dtmlAttribute manage_changeProperties manage_clone manage_CopyContainerFirstItem contained 69syn keyword dtmlAttribute manage_copyObjects manage_cutObjects manage_defined_roles contained 70syn keyword dtmlAttribute manage_delLocalRoles manage_delObjects manage_delProperties contained 71syn keyword dtmlAttribute manage_distribute manage_edit manage_editedDialog manage_editProperties contained 72syn keyword dtmlAttribute manage_editRoles manage_exportObject manage_FTPget manage_FTPlist contained 73syn keyword dtmlAttribute manage_FTPstat manage_get_product_readme__ manage_getPermissionMapping contained 74syn keyword dtmlAttribute manage_haveProxy manage_help manage_importObject manage_listLocalRoles contained 75syn keyword dtmlAttribute manage_options manage_pasteObjects manage_permission contained 76syn keyword dtmlAttribute manage_propertiesForm manage_proxy manage_renameObject manage_role contained 77syn keyword dtmlAttribute manage_setLocalRoles manage_setPermissionMapping contained 78syn keyword dtmlAttribute manage_subclassableClassNames manage_test manage_testForm contained 79syn keyword dtmlAttribute manage_undo_transactions manage_upload manage_users manage_workspace contained 80syn keyword dtmlAttribute management_interface mapping math max- mean- median- meta_type min- contained 81syn keyword dtmlAttribute MKCOL modified_in_version MOVE multiple name navigate_filter new_version contained 82syn keyword dtmlAttribute newline_to_br next next-batches next-sequence next-sequence-end-index contained 83syn keyword dtmlAttribute next-sequence-size next-sequence-start-index no manage_access None contained 84syn keyword dtmlAttribute nonempty normalize nowrap null Object Manager objectIds objectItems contained 85syn keyword dtmlAttribute objectMap objectValues octdigits only optional OPTIONS orphan overlap contained 86syn keyword dtmlAttribute PARENTS PATH_INFO PATH_TRANSLATED permission_settings contained 87syn keyword dtmlAttribute permissionMappingPossibleValues permissionsOfRole pi port contained 88syn keyword dtmlAttribute possible_permissions previous previous-batches previous-sequence contained 89syn keyword dtmlAttribute previous-sequence-end-index previous-sequence-size contained 90syn keyword dtmlAttribute previous-sequence-start-index PrincipiaFind PrincipiaSearchSource contained 91syn keyword dtmlAttribute propdict propertyIds propertyItems propertyLabel propertyMap propertyMap contained 92syn keyword dtmlAttribute propertyValues PROPFIND PROPPATCH PUT query_day query_month QUERY_STRING contained 93syn keyword dtmlAttribute query_year quoted_input quoted_report raise_standardErrorMessage random contained 94syn keyword dtmlAttribute read read_raw REMOTE_ADDR REMOTE_HOST REMOTE_IDENT REMOTE_USER REQUEST contained 95syn keyword dtmlAttribute REQUESTED_METHOD required RESPONSE reverse rolesOfPermission save schema contained 96syn keyword dtmlAttribute SCRIPT_NAME sequence-end sequence-even sequence-index contained 97syn keyword dtmlAttribute sequence-index-var- sequence-item sequence-key sequence-Letter contained 98syn keyword dtmlAttribute sequence-letter sequence-number sequence-odd sequence-query contained 99syn keyword dtmlAttribute sequence-roman sequence-Roman sequence-start sequence-step-end-index contained 100syn keyword dtmlAttribute sequence-step-size sequence-step-start-index sequence-var- SERVER_NAME contained 101syn keyword dtmlAttribute SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE setClassAttr setName single contained 102syn keyword dtmlAttribute size skip_unauthorized smtphost sort spacify sql_quote SQLConnectionIDs contained 103syn keyword dtmlAttribute standard-deviation- standard-deviation-n- standard_html_footer contained 104syn keyword dtmlAttribute standard_html_header start String string subject SubTemplate superValues contained 105syn keyword dtmlAttribute tabs_path_info tag test_url_ text_content this thousands_commas title contained 106syn keyword dtmlAttribute title_and_id title_or_id total- tpURL tpValues TRACE translate tree-c contained 107syn keyword dtmlAttribute tree-colspan tree-e tree-item-expanded tree-item-url tree-level contained 108syn keyword dtmlAttribute tree-root-url tree-s tree-state type undoable_transactions UNLOCK contained 109syn keyword dtmlAttribute update_data upper uppercase url url_quote URLn user_names contained 110syn keyword dtmlAttribute userdefined_roles valid_property_id valid_roles validate_roles contained 111syn keyword dtmlAttribute validClipData validRoles values variance- variance-n- view_image_or_file contained 112syn keyword dtmlAttribute where whitespace whrandom xml_namespace zclass_candidate_view_actions contained 113syn keyword dtmlAttribute ZClassBaseClassNames ziconImage ZopeFind ZQueryIds contained 114 115syn keyword dtmlMethod abs absolute_url ac_inherited_permissions aCommon contained 116syn keyword dtmlMethod aCommonZ acos acquiredRolesAreUsedBy aDay addPropertySheet aMonth AMPM contained 117syn keyword dtmlMethod ampm AMPMMinutes appendChild appendData appendHeader asin atan atan2 contained 118syn keyword dtmlMethod atof atoi betavariate capatilize capwords catalog_object ceil center contained 119syn keyword dtmlMethod choice chr cloneNode COPY cos cosh count createInObjectManager contained 120syn keyword dtmlMethod createSQLInput cunifvariate Date DateTime Day day dayOfYear dd default contained 121syn keyword dtmlMethod DELETE deleteData delPropertySheet divmod document_id document_title dow contained 122syn keyword dtmlMethod earliestTime enter equalTo exp expireCookie expovariate fabs fCommon contained 123syn keyword dtmlMethod fCommonZ filtered_manage_options filtered_meta_types find float floor contained 124syn keyword dtmlMethod fmod frexp gamma gauss get get_local_roles_for_userid get_size getattr contained 125syn keyword dtmlMethod getAttribute getAttributeNode getClassAttr getDomains contained 126syn keyword dtmlMethod getElementsByTagName getHeader getitem getNamedItem getobject contained 127syn keyword dtmlMethod getObjectsInfo getpath getProperty getRoles getStatus getUser contained 128syn keyword dtmlMethod getUserName greaterThan greaterThanEqualTo h_12 h_24 has_key contained 129syn keyword dtmlMethod has_permission has_role hasattr hasFeature hash hasProperty HEAD hex contained 130syn keyword dtmlMethod hour hypot index index_html inheritedAttribute insertBefore insertData contained 131syn keyword dtmlMethod int isCurrentDay isCurrentHour isCurrentMinute isCurrentMonth contained 132syn keyword dtmlMethod isCurrentYear isFuture isLeadYear isPast item join latestTime ldexp contained 133syn keyword dtmlMethod leave leave_another len lessThan lessThanEqualTo ljust log log10 contained 134syn keyword dtmlMethod lognormvariate lower lstrip maketrans manage manage_access contained 135syn keyword dtmlMethod manage_acquiredPermissions manage_addColumn manage_addDocument contained 136syn keyword dtmlMethod manage_addDTMLDocument manage_addDTMLMethod manage_addFile contained 137syn keyword dtmlMethod manage_addFolder manage_addImage manage_addIndex manage_addLocalRoles contained 138syn keyword dtmlMethod manage_addMailHost manage_addPermission manage_addPrincipiaFactory contained 139syn keyword dtmlMethod manage_addProduct manage_addProperty manage_addPropertySheet contained 140syn keyword dtmlMethod manage_addUserFolder manage_addZCatalog manage_addZClass contained 141syn keyword dtmlMethod manage_addZGadflyConnection manage_addZGadflyConnectionForm contained 142syn keyword dtmlMethod manage_advanced manage_catalogClear manage_catalogFoundItems contained 143syn keyword dtmlMethod manage_catalogObject manage_catalogReindex manage_changePermissions contained 144syn keyword dtmlMethod manage_changeProperties manage_clone manage_CopyContainerFirstItem contained 145syn keyword dtmlMethod manage_copyObjects manage_createEditor manage_createView contained 146syn keyword dtmlMethod manage_cutObjects manage_defined_roles manage_delColumns contained 147syn keyword dtmlMethod manage_delIndexes manage_delLocalRoles manage_delObjects contained 148syn keyword dtmlMethod manage_delProperties manage_Discard__draft__ manage_distribute contained 149syn keyword dtmlMethod manage_edit manage_edit manage_editedDialog manage_editProperties contained 150syn keyword dtmlMethod manage_editRoles manage_exportObject manage_importObject contained 151syn keyword dtmlMethod manage_makeChanges manage_pasteObjects manage_permission contained 152syn keyword dtmlMethod manage_propertiesForm manage_proxy manage_renameObject manage_role contained 153syn keyword dtmlMethod manage_Save__draft__ manage_setLocalRoles manage_setPermissionMapping contained 154syn keyword dtmlMethod manage_test manage_testForm manage_uncatalogObject contained 155syn keyword dtmlMethod manage_undo_transactions manage_upload manage_users manage_workspace contained 156syn keyword dtmlMethod mange_createWizard max min minute MKCOL mm modf month Month MOVE contained 157syn keyword dtmlMethod namespace new_version nextObject normalvariate notEqualTo objectIds contained 158syn keyword dtmlMethod objectItems objectValues oct OPTIONS ord paretovariate parts pCommon contained 159syn keyword dtmlMethod pCommonZ pDay permissionsOfRole pMonth pow PreciseAMPM PreciseTime contained 160syn keyword dtmlMethod previousObject propertyInfo propertyLabel PROPFIND PROPPATCH PUT quit contained 161syn keyword dtmlMethod raise_standardErrorMessage randint random read read_raw redirect contained 162syn keyword dtmlMethod removeAttribute removeAttributeNode removeChild replace replaceChild contained 163syn keyword dtmlMethod replaceData rfc822 rfind rindex rjust rolesOfPermission round rstrip contained 164syn keyword dtmlMethod save searchResults second seed set setAttribute setAttributeNode setBase contained 165syn keyword dtmlMethod setCookie setHeader setStatus sin sinh split splitText sqrt str strip contained 166syn keyword dtmlMethod substringData superValues swapcase tabs_path_info tan tanh Time contained 167syn keyword dtmlMethod TimeMinutes timeTime timezone title title_and_id title_or_id toXML contained 168syn keyword dtmlMethod toZone uncatalog_object undoable_transactions uniform uniqueValuesFor contained 169syn keyword dtmlMethod update_data upper valid_property_id validate_roles vonmisesvariate contained 170syn keyword dtmlMethod weibullvariate year yy zfill ZopeFind contained 171 172" DTML tags 173syn keyword dtmlTagName var if elif else unless in with let call raise try except tag comment tree sqlvar sqltest sqlgroup sendmail mime transparent contained 174 175syn keyword dtmlEndTagName if unless in with let raise try tree sendmail transparent contained 176 177" Own additions 178syn keyword dtmlTODO TODO FIXME contained 179 180syn region dtmlComment start=+<dtml-comment>+ end=+</dtml-comment>+ contains=dtmlTODO 181 182" All dtmlTagNames are contained by dtmlIsTag. 183syn match dtmlIsTag "dtml-[A-Za-z]\+" contains=dtmlTagName 184 185" 'var' tag entity syntax: &dtml-variableName; 186" - with attributes: &dtml.attribute1[.attribute2]...-variableName; 187syn match dtmlSpecialChar "&dtml[.0-9A-Za-z_]\{-}-[0-9A-Za-z_.]\+;" 188 189" Redefine to allow inclusion of DTML within HTML strings. 190syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc 191syn region htmlLink start="<a\>[^>]*href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc 192syn region htmlHead start="<head\>" end="</head>"me=e-7 end="<body\>"me=e-5 end="<h[1-6]\>"me=e-3 contains=htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc 193syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc 194syn region htmlString contained start=+"+ end=+"+ contains=dtmlSpecialChar,htmlSpecialChar,javaScriptExpression,dtmlIsTag,dtmlAttribute,dtmlMethod,@htmlPreproc 195syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,dtmlIsTag,dtmlAttribute,dtmlMethod,@htmlTagNameCluster 196syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,dtmlIsTag,dtmlAttribute,dtmlMethod,@htmlTagNameCluster 197 198" Define the default highlighting. 199" For version 5.7 and earlier: only when not done already 200" For version 5.8 and later: only when an item doesn't have highlighting yet 201if version >= 508 || !exists("did_dtml_syntax_inits") 202 if version < 508 203 let did_dtml_syntax_inits = 1 204 command -nargs=+ HiLink hi link <args> 205 else 206 command -nargs=+ HiLink hi def link <args> 207 endif 208 209 HiLink dtmlIsTag PreProc 210 HiLink dtmlAttribute Identifier 211 HiLink dtmlMethod Function 212 HiLink dtmlComment Comment 213 HiLink dtmlTODO Todo 214 HiLink dtmlSpecialChar Special 215 216 delcommand HiLink 217endif 218 219let b:current_syntax = "dtml" 220 221" if main_syntax == 'dtml' 222" unlet main_syntax 223" endif 224 225" vim: ts=4 226