我在c ++上编写web项目。在我的c ++代码中必须插入html,例如
void CPage::putBaseFooter() {
if(m_canRender) {
HTML(
<!++
</main>
<footer>
<f++ composePageFooter(); ++f>
</footer>
</body>
</html>
++!>);
}
}
这就是整个html代码介于<!++
和++!>
之间(在将自己的预处理器编译为字符串之前处理代码)
只需拥有自己的宏预处理器,例如
<f++ composeHead(); ++f>
<v++ ts.tm_year + 1900++v>
<paged_list++ [day_tasks_control] [/tasks/list] [taskListRenderer]>
...
<++paged_list>
<labeled_control++ [Description] [taskDescription]>
<textarea></textarea>
<++labeled_control>
请告诉我,我如何能够将html关键字和自己的宏标记到qt-creator代码编辑器中?我试图为Kate写一个higlite-xml(继承c ++ highlite),但可能是我不明白的东西,因为背光不起作用。
以下是我的草图语法突出显示
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd"
[
<!ENTITY space " ">
<!ENTITY separators ",;">
<!ENTITY ns_punctuators "!%&space;&()+-/.*<=>?[]{|}~^&separators;">
]>
<!--
Copyright (c) 2012 by Alex Turbov (i.zaufi@gmail.com)
-->
<language
name="C++"
section="Sources"
version="1.0"
kateversion="2.4"
indenter="cstyle"
style="C++"
mimetype="text/x-c++src;text/x-c++hdr;text/x-chdr"
extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;*.moc"
author="Sheridan (gorlov.maxim@gmail.com)"
license="LGPL"
priority="11"
>
<highlighting>
<list name="InplaceHTML">
<item> form </item>
<item> table </item>
<item> div </item>
<item> td </item>
<item> tr </item>
<item> th </item>
<item> span </item>
<item> input </item>
<item> textarea </item>
<item> label </item>
<item> a </item>
<item> head </item>
<item> link </item>
<item> script </item>
</list>
<contexts>
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
<IncludeRules context="##C++" />
<IncludeRules context="DetectInplaceHTML" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="DetectInplaceHTML">
<keyword attribute="Inplace HTML" context="#stay" String="InplaceHTML" />
</context>
</contexts>
<itemDatas>
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
<itemData name="Inplace HTML" defStyleNum="dsKeyword" color="#0095ff" selColor="#ffffff" bold="1" italic="0" spellChecking="false" />
</itemDatas>
</highlighting>
</language>
答案 0 :(得分:0)
在Qt Creator中没有使用Kate C ++突出显示,更改/扩展Kate配置文件不会产生任何影响。您可以尝试注册一个单独的mime类型,其中不被Qt Creator识别为C或C ++,并为此编写一个Kate荧光笔,但我不知道这是否有效
答案 1 :(得分:0)
实际上你可能只有很少的荧光笔用于同一种语言,但具有不同的优先级!
看一下语法文件:ISO C++
和C++
(纯C ++语法和Qt4插件)。另外here is alternative C ++高亮显示器,其中C ++是纯 C ++语法,而C++/Qt4
是次要的。可以使用配置设置根据需要更改优先级。我个人更喜欢纯粹的C ++而不是“默认”C++/Qt4
。
因此,您可以尝试添加自己的C++/Custom
语法并提升其优先级。看看C++/Qt4
,了解如何“重用”纯C ++ 语法。
最后,考虑到您的示例语法,您最好在落入继承的C ++上下文之前检测扩展。