[英]How to do multiline strings in QBS?
目前,我正在使用一个非常丑陋的解决方案:
codeblock(x, "cpp", (function() {/*
union Seed;
union Feed
{
int operator+( Feed & ) { return 0 ; };
QString operator+( Seed & ) { return "feed"; };
};
union Seed
{
int operator+( Feed & ) { return 1 ; }
QString operator+( Seed & ) { return "seed"; }
};
template<typename T0, typename T1> auto sneed() {
T0 p;
T1 q;
return p + q;
}
*/}).toString()
);
这对 api 来说不是个好兆头。
我曾尝试使用锐器,但它们会产生错误: Unexpected token
并且使用换行符不会保留换行符:
codeblock(x, "cpp", '\
union Seed;\
union Feed\
{\
int operator+( Feed & ) { return 0 ; };\
QString operator+( Seed & ) { return "feed"; };\
};\
union Seed\
{\
int operator+( Feed & ) { return 1 ; }\
QString operator+( Seed & ) { return "seed"; }\
};\
template<typename T0, typename T1> auto sneed() {\
T0 p;\
T1 q;\
return p + q;\
}\
'
);
生产:
union Seed;union Feed{ int operator+( Feed & ) { return 0 ; }; QString operator+( Seed & ) { return "feed"; };};union Seed{ int operator+( Feed & ) { return 1 ; } QString operator+( Seed & ) { return "seed"; }};template<typename T0, typename T1> auto sneed() { T0 p; T1 q; return p + q;}
Qbs 现在使用旧版本的 Javascript,并且也是基于 QML。 我浏览了文档,但没有找到任何多行字符串。 我的目标是尽可能编写最干净的代码,并且宁愿不必依赖黑客解决方案或到处都是丑陋的逃逸。
谢谢。
转义换行符的传统 JavaScript 方式是目前要走的路。 Qbs 将来可能会切换到新的 JS 后端,这将提供新的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.