企业培训网站建设网站导航是做链接赚钱么
2026/4/10 13:51:48 网站建设 项目流程
企业培训网站建设,网站导航是做链接赚钱么,做网站的需要什么资质证明,网站可视化编辑提示:如果想写一个高亮语法文件,XMLCompletion插件可能会很有帮助. 这里概述了KDE4中高亮定义XML格式.基于如下,它将描述主要组成部分及其含义和用法. Kate高亮定义文件的主要部分 在language.dtd文件中也就是DTD,保存正式定义,应该在你的系统目录安装,即$KDEDIR/share/apps/ka…提示:如果想写一个高亮语法文件,XMLCompletion插件可能会很有帮助.这里概述了KDE4中高亮定义XML格式.基于如下,它将描述主要组成部分及其含义和用法.Kate高亮定义文件的主要部分在language.dtd文件中也就是DTD,保存正式定义,应该在你的系统目录安装,即$KDEDIR/share/apps/katepart/syntax里.如果未设置$KDEDIR,可用kde4-config--prefix查找.一例高亮文件包含一个设置XML版本和文档类型的头文件:?xml version1.0encodingUTF-8?!DOCTYPE language SYSTEMlanguage.dtd定义文件的根节点是语言元素.可用属性有:必选属性:1,名(name)设置语言名.它会出现在菜单和对话框中.2,节(section)指定了分类.3,扩展名(extensions)定义了文件扩展名,比如.cpp;.h.可选属性:1,MimeType关联基于Mime类型的文件.2,版本(version)指定定义文件的当前版本.3,kateversion指定了Kate最新支持的版本.4,大小写(casesensitive)相关定义了关键字是否区分大小写.5,优先级(priority),如果另一个高亮定义文件使用相同扩展名,则优先级是必要的.优先级更高的获胜.6,作者(author)包含作者姓名及其电邮地址.7,许可(license)包含许可,一般是LGPL,Artistic,GPL等.8,隐藏(hidden)定义了名字是否应该出现在Kate的菜单中.所以下一行可能如下:language nameCversion1.00kateversion2.4sectionSourcesextensions*.cpp;*.h接着是包含可选元素列表(list)及必选元素环境(contexts)和itemDatas的高亮元素.列表元素(list)包含关键字列表.此时关键字为类(class)和常(const).你可任意添加多个列表.环境元素(contexts)包含所有环境.第一个环境默认是高亮的起点.普通文本(Normal Text)环境中有两条规则,分别匹配叫某某的关键字列表,及一条检测引号并按串切换环境的规则.第三部分是itemDatas元素.它包含环境和规则要求的所有颜色和字体风格.这里,使用了普通文本的itemData,String和Keyword.highlightinglist namesomenameitemclass/itemitemconst/item/listcontextscontext attributeNormal TextlineEndContext#popnameNormal Textkeyword attributeKeywordcontext#stayStringsomename/DetectChar attributeStringcontextstringchar\//contextcontext attributeStringlineEndContext#staynamestringDetectChar attributeStringcontext#popchar\//context/contextsitemDatasitemData nameNormal TextdefStyleNumdsNormal/itemData nameKeyworddefStyleNumdsKeyword/itemData nameStringdefStyleNumdsString//itemDatas/highlighting高亮定义的最后部分是可选的通用(general)部分.它可能包含关键字,代码折叠,注释和缩进等信息.注释节定义了用什么串来引入单行注释的串.你也可用带结束(end)的额外属性的多行(multiLine)定义多行注释.当用户按下对应的快捷键来注释/取消注释时,会用它.关键字(keywords)节定义了关键字列表是否有大小写区分.generalcommentscomment namesingleLinestart#//commentskeywords casesensitive1//general/language详细介绍这里将描述所有环境,itemDatas,关键字,注释,代码折叠和缩进等可用属性.元素环境属于组环境.环境自身定义了,比如当高亮系统到达行尾时应怎样的环境特定的规则.可用属性有:1,名字name,环境名/标识.如果规则匹配,会用该名来指定要切换的环境.2,attribute,在当前环境中没有匹配规则时,将使用的默认项数据.3,lineEndContext定义了在到达行尾时,高亮系统切换到的环境.这可以是另一个环境名,#stay不切换环境(即闲着),或是#pop导致离开该环境.如可用#pop#pop#pop弹出三次.4,lineBeginContext定义,如果遇见某行起点时的环境.默认:#stay.5,直降(fallthrough)定义了如果没有规则匹配,高亮系统切换到直降环境指定的环境.默认:假.6,直降环境fallthroughContext指定如果没有规则匹配,则指定下个环境.7,动态dynamic如果为真,环境会记住由动态规则保存的串/占位符.如,HERE文档需要.默认:假.itemData元素在itemData组中.它定义了字体风格和颜色.因此,可自定义风格和颜色,但建议尽量坚持默认风格,这样用户在不同语言中总是能看到相同颜色.不过,有时没法,必须更改颜色和字体属性.属性名和defStyleNum是必需的,另一个是可选的.可用属性有:1,名字设置itemData名.环境和规则会在其属性中使用该名.2,属性(attribute),引用itemData.3,defStyleNum定义了要用哪种默认风格.4,颜色color定义了一个颜色.有效格式是#rrggbb或#rgb.5,selColor定义了选区颜色.6,italic,如果为真,则文字将为斜体.7,bold,如果是真,会加粗文字.8,underline,如果为真,则会下划线文本.9,strikeout,如果是真,则会划掉文字.10,spellChecking,如果为真,会拼写检查文本,否则在拼写检查时会忽略它.在一般组中,关键字元素定义了关键字属性.可用属性有:1,casesensitive大小写敏感可能是真也可能假.如果为真,所有关键字均为大小写敏感.默认:真.2,weakDeliminator弱分隔符是不按词语分隔符的符列表.如,点(.)是单词分隔符.假设列表中的关键字包含一个点,仅当指定该点为弱分隔符时,它才会匹配.3,AdditionalDeliminator定义了额外的分隔符.4,wordWrapDeliminator定义其之后可换行的符.默认分隔符和单词换行分隔符是符.():!,-%_/;?[]^{|}~_*,空格( )和制表符(\t).组注释中的元素注释定义了注释属性,注释工具和取消注释工具中使用他们.可用属性有:1,名字可以是单行或多行.2,如果选择单行,则可用可选的位置(position)属性.该属性默认在第0列插入单行注释串.如果你想让它出现在空白后面,就必须设置为空白后(afterwhitespace),比如:positionafterwhitespace.3,如果选择多行(multiLine),必须要有结束和区域(end和region)属性.4,开始start定义了开始注释的串.在C中,这表示/*.5,结束end定义结束注释的串.在C中,这表示为*/.6,区域region应为可折叠多行注释名.假设规则里面有beginRegionComment ... endRegionComment,你应用regionComment.这样即使你没有选择多行注释的所有文本,也能正常使用取消注释.光标只能在多行注释中.一般(general)组的折叠元素定义了代码折叠属性.可用属性有:1,indentationsensitive,如果为真,代码折叠标记将基于缩进,类似神算脚本语言中的缩进.一般你不需要设置它,因为它默认为假.一般组中的缩进元素,定义了将使用的缩进,但强烈建议省略该元素,因为一般在定义文件类型或在文本文件中添加模式行会设置它.但如果指定了indenter,你会给用户强制他可能根本不喜欢的特定缩进.可用属性有:1,模式是indenter名.当前可用的缩进器有:无(none),normal,cstyle,haskell,lilypond,lisp,python,Ruby和xml.可用默认风格默认风格是预定义的字体和颜色风格.为了方便,Kate提供了几种默认风格:1,dsNormal,针对普通文本.2,dsKeyword,针对关键字.3,dsDataType,针对数据类型.4,dsDecVal,针对十进制值.5,dsBaseN,针对基数非10的值.6,dsfloat,针对浮点值.7,dsChar,针对字符.8,dsString,针对串.9,dsComment,针对注释.10,dsOthers,针对其他用法.11,dsAlert,针对警告信息.12,dsFunction,针对调用函数.13,dsRegionMarker,针对区域标记.14,dsError,针对错误高亮和错误语法.高亮检测规则每条规则,可在其测试对象串开头匹配零个或多个符.如果规则匹配,会用规则定义的风格或属性赋予匹配的符,规则可能会要求切换当前环境.一条规则如下:属性标识按名匹配符要用的风格,环境则表示从此要使用的环境.可如下识别环境:1,标识,即另一个环境名/标识.2,order命令告诉引擎保持当前环境(#stay),或弹回串中使用的上个环境(#pop).要跟踪更多步骤,可重复#pop关键字:#pop#pop#pop.有些规则可以有子规则,仅当父规则匹配时才会求值它.会给完整匹配串赋予父规则定义的属性.带子规则的规则如下:RuleName(attributes)ChildRuleName(attributes)/.../RuleName规则相关的属性各不相同.常见属性所有规则有以下常见属性,并且只要出现(常见属性)即可使用.以下所有属性均为可选.1,属性映射至已定义的itemData.默认:目标环境中的属性2,环境指定了如果规则匹配,高亮系统将切换到的环境.默认:#stay3,beginRegion开始一个代码折叠块.默认:未设置.4,endRegion结束代码折叠块.默认:未设置.5,lookAhead,如果为真,高亮系统不会处理匹配时长.默认:假.6,firstNonSpace,如果为真,则规则只有在串是该行中第一个非空格时才匹配.默认:假.7,列column定义了列.仅当前列与给定规则匹配时,才匹配规则.默认:未设置.动态规则有些规则允许可选的默认为假类型为布尔的动态属性.如果动态为真,规则可用代表在串或符属性中切换到当前环境的正则式规则匹配的文本的占位符.在串中,%N占位符(N为数字),会用调用正则式中抓的相应N替代.在符中,占位符必须是数字N,并且会用调用正则式中对应抓N的第一个符替换它.只要规则允许该属性,它就会包含一个(动态属性).动态变量可以是真或假.默认:假.规则细节检测符DetectChar检测单个特定符.一般用来找引号串的尾.DetectCharchar(character)(common attributes)(dynamic)/符属性定义了匹配的符.检测2符Detect2Chars按定义顺序检测两个特定符.Detect2Charschar(character)char1(character)(common attributes)(dynamic)/符char属性定义第一个要匹配的符,char1定义第二个.AnyChar检测指定符集中的一个符.AnyChar String(string)(common attributes)/串属性定义符集合.检测串StringDetect检测精确的串.StringDetect String(string)[insensitivetrue|false](common attributes)(dynamic)/串(String)属性定义要匹配串.无关属性默认为假,并传递给比较串函数.如果为真,则使用(大小写)无关比较.WordDetect (KDE 4.5, Kate 3.5)检测精确的串,但还需要单词边界,比如点(.)或单词开头和结尾的空白.你可把\b\b理解为正则式.WordDetect String(string)[insensitivetrue|false](common attributes)(dynamic)/串(String)属性定义要匹配串.无关属性默认为假,并传递给比较串函数.如果为真,则使用(大小写)无关比较.RegExpr匹配正则式.RegExpr String(string)[insensitivetrue|false][minimaltrue|false](common attributes)(dynamic)/1,串属性定义了正则式.2,insensitive默认为假,并传递给正则式引擎.3,最小minimal默认为假,并传递给正则式引擎.因为规则总是匹配当前串的开头,光标开头的正则式(^)表示规则只应匹配行首.关键字(keyword)从指定列表中检测关键字.keyword String(list name)(common attributes)/串属性按名标识关键字列表.一定要有带该名列表.整Int检测整数.Int(common attributes)(dynamic)/这条规则没有具体属性.子规则一般用来检测数字后面的L和U组合,表示程序代码中的整数类型.实际上允许按子规则使用所有规则,不过DTD只允许StringDetect子规则.以下示例对应整数后接L符.Int attributeDecimalcontext#stayStringDetect attributeDecimalcontext#stayStringLinsensitivetrue//Int浮点检测到浮点数.Float(common attributes)/这条规则没有具体属性.按子规则允许使用AnyChar,一般用来检测组合.HlCOct检测八进制点数表示.HlCOct(common attributes)/这条规则没有具体属性.HlCHex检测十六进制数字表示.HlCHex(common attributes)/这条规则没有具体属性.HlCStringChar检测串符.HlCStringChar(common attributes)/这条规则没有具体属性.它匹配了程序代码中常用符的字面表示,如\n(换行)或\t(制表符).以下符如果后接反斜杠则匹配,(***):**abefnrtv?*.此外,转义的十六进制数如\xff和转义的八进制数,如\033也会匹配.HlCChar检测C符.HlCChar(common attributes)/这条规则没有具体属性.它匹配用勾号包装的C符(如:c).所以在勾里可是简单符,也可是转义符.RangeDetect检测定义开始和结尾符的串.RangeDetectchar(character)char1(character)(common attributes)/符定义开始区间的符,符1定义结束该区间的符.如,检测小引号串之类的很有用,但注意,因为高亮引擎一次只处理一行,因此无法找到跨行的串.行继续LineContinue与行尾的反斜杠(\)相匹配.LineContinue(common attributes)/这条规则没有具体属性.该规则对在行尾切换环境非常有用,如果最后符是反斜线(\).如,在C/C中,这需要继续宏或串.包含规则IncludeRules包含其他环境或语言/文件的规则.IncludeRules contextcontextlink[includeAttribtrue|false]/环境属性定义了要包含的环境.如果是简单串,则在当前环境中包含所有定义的规则,如:IncludeRules contextanotherContext/如果串以##开头,高亮系统会找用该名的其他语言定义,如:IncludeRules context##C/如果includeAttrib属性为真,则按源属性更改目标属性.如果包含环境匹配的文本的高亮与主机环境的不同,要使注释功能可用,这是必要的.DetectSpaces检测空白.DetectSpaces(common attributes)/这条规则没有具体属性.如果知道前面可能有多个空白,比如缩进行的开头,可用此规则.它会一次跳过所有空白,而不是测试多个规则后因为没有匹配而一次跳过一条规则.检测标识DetectIdentifier检测标识串(正则式表示:[a-zA-Z_][a-zA-Z0-9_]*).DetectIdentifier(common attributes)/这条规则没有具体属性.用该规则来一次跳过一串单词符,而不是用多个规则测试后因为没匹配而一次跳过一个.技巧与窍门一旦理解了切换环境的工作原理,写高亮定义就很容易了.正则式非常强大,但相比其他规则,它们的速度较慢.建议:1,如果只匹配两个符,使用Detect2Chars代替StringDetect.对DetectChar也是如此.2,正则式使用简单,但一般还有可更好的.考虑只想匹配#符,如果它是该行的第一个符.你可这样:DetectChar attributeMacrocontextmacrochar#firstNonSpacetrue/如果你想匹配正则式的^#,仍可用带列0属性的DetectChar.列属性是基于符的计数,所以制表符仍只是一个符.你可切换环境而不处理符.假设你想在遇见/*串时切换环境,但需要在下个环境中处理该串.以下规则将匹配,lookAhead属性会使高亮器保留匹配串以供下个环境使用.3,如果知道存在很多空白,可用DetectSpaces.4,使用DetectIdentifier代替正则式[a-zA-Z_]\w*.5,尽量使用默认风格.这样用户熟悉.6,看看其他XML文件,看看别人是怎么实现复杂的规则的.7,你可用xmllint --dtdvalid language.dtd mySyntax.xml命令验证每个XML文件.8,如果经常重复复杂正则式,可用ENTITIES.示例:].9,现在你可用myref;代替正则式.

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询