{HighlightingKind::EnumConstant, "EnumConstant"},
{HighlightingKind::Field, "Field"},
{HighlightingKind::Method, "Method"},
- {HighlightingKind::TemplateParameter, "TemplateParameter"}};
+ {HighlightingKind::TemplateParameter, "TemplateParameter"},
+ {HighlightingKind::Primitive, "Primitive"}};
std::vector<HighlightingToken> ExpectedTokens;
for (const auto &KindString : KindToString) {
std::vector<HighlightingToken> Toks = makeHighlightingTokens(
const char *TestCases[] = {
R"cpp(
struct $Class[[AS]] {
- double $Field[[SomeMember]];
+ $Primitive[[double]] $Field[[SomeMember]];
};
struct {
} $Variable[[S]];
- void $Function[[foo]](int $Variable[[A]], $Class[[AS]] $Variable[[As]]) {
+ $Primitive[[void]] $Function[[foo]]($Primitive[[int]] $Variable[[A]], $Class[[AS]] $Variable[[As]]) {
auto $Variable[[VeryLongVariableName]] = 12312;
$Class[[AS]] $Variable[[AA]];
auto $Variable[[L]] = $Variable[[AA]].$Field[[SomeMember]] + $Variable[[A]];
- auto $Variable[[FN]] = [ $Variable[[AA]]](int $Variable[[A]]) -> void {};
+ auto $Variable[[FN]] = [ $Variable[[AA]]]($Primitive[[int]] $Variable[[A]]) -> $Primitive[[void]] {};
$Variable[[FN]](12312);
}
)cpp",
R"cpp(
- void $Function[[foo]](int);
- void $Function[[Gah]]();
- void $Function[[foo]]() {
+ $Primitive[[void]] $Function[[foo]]($Primitive[[int]]);
+ $Primitive[[void]] $Function[[Gah]]();
+ $Primitive[[void]] $Function[[foo]]() {
auto $Variable[[Bou]] = $Function[[Gah]];
}
struct $Class[[A]] {
- void $Method[[abc]]();
+ $Primitive[[void]] $Method[[abc]]();
};
)cpp",
R"cpp(
struct $Class[[C]] : $Namespace[[abc]]::$Class[[A]]<$TemplateParameter[[T]]> {
typename $TemplateParameter[[T]]::A* $Field[[D]];
};
- $Namespace[[abc]]::$Class[[A]]<int> $Variable[[AA]];
- typedef $Namespace[[abc]]::$Class[[A]]<int> $Class[[AAA]];
+ $Namespace[[abc]]::$Class[[A]]<$Primitive[[int]]> $Variable[[AA]];
+ typedef $Namespace[[abc]]::$Class[[A]]<$Primitive[[int]]> $Class[[AAA]];
struct $Class[[B]] {
$Class[[B]]();
~$Class[[B]]();
- void operator<<($Class[[B]]);
+ $Primitive[[void]] operator<<($Class[[B]]);
$Class[[AAA]] $Field[[AA]];
};
$Class[[B]]::$Class[[B]]() {}
$Class[[B]]::~$Class[[B]]() {}
- void $Function[[f]] () {
+ $Primitive[[void]] $Function[[f]] () {
$Class[[B]] $Variable[[BB]] = $Class[[B]]();
$Variable[[BB]].~$Class[[B]]();
$Class[[B]]();
$Enum[[E]] $Field[[EEE]];
$Enum[[EE]] $Field[[EEEE]];
};
- int $Variable[[I]] = $EnumConstant[[Hi]];
+ $Primitive[[int]] $Variable[[I]] = $EnumConstant[[Hi]];
$Enum[[E]] $Variable[[L]] = $Enum[[E]]::$EnumConstant[[B]];
)cpp",
R"cpp(
)cpp",
R"cpp(
struct $Class[[D]] {
- double $Field[[C]];
+ $Primitive[[double]] $Field[[C]];
};
struct $Class[[A]] {
- double $Field[[B]];
+ $Primitive[[double]] $Field[[B]];
$Class[[D]] $Field[[E]];
- static double $Variable[[S]];
- void $Method[[foo]]() {
+ static $Primitive[[double]] $Variable[[S]];
+ $Primitive[[void]] $Method[[foo]]() {
$Field[[B]] = 123;
this->$Field[[B]] = 156;
this->$Method[[foo]]();
$Variable[[S]] = 90.1;
}
};
- void $Function[[foo]]() {
+ $Primitive[[void]] $Function[[foo]]() {
$Class[[A]] $Variable[[AA]];
$Variable[[AA]].$Field[[B]] += 2;
$Variable[[AA]].$Method[[foo]]();
)cpp",
R"cpp(
struct $Class[[AA]] {
- int $Field[[A]];
+ $Primitive[[int]] $Field[[A]];
}
- int $Variable[[B]];
+ $Primitive[[int]] $Variable[[B]];
$Class[[AA]] $Variable[[A]]{$Variable[[B]]};
)cpp",
R"cpp(
namespace $Namespace[[a]] {
struct $Class[[A]] {};
+ typedef $Primitive[[char]] $Primitive[[C]];
}
typedef $Namespace[[a]]::$Class[[A]] $Class[[B]];
using $Class[[BB]] = $Namespace[[a]]::$Class[[A]];
using $Enum[[CD]] = $Enum[[CC]];
$Enum[[CC]] $Function[[f]]($Class[[B]]);
$Enum[[CD]] $Function[[f]]($Class[[BB]]);
+ typedef $Namespace[[a]]::$Primitive[[C]] $Primitive[[PC]];
+ typedef $Primitive[[float]] $Primitive[[F]];
)cpp",
R"cpp(
- template<typename $TemplateParameter[[T]], typename = void>
+ template<typename $TemplateParameter[[T]], typename = $Primitive[[void]]>
class $Class[[A]] {
$TemplateParameter[[T]] $Field[[AA]];
$TemplateParameter[[T]] $Method[[foo]]();
template<class $TemplateParameter[[TT]], class $TemplateParameter[[GG]]>
class $Class[[BB]] {};
template<class $TemplateParameter[[T]]>
- class $Class[[BB]]<$TemplateParameter[[T]], int> {};
+ class $Class[[BB]]<$TemplateParameter[[T]], $Primitive[[int]]> {};
template<class $TemplateParameter[[T]]>
class $Class[[BB]]<$TemplateParameter[[T]], $TemplateParameter[[T]]*> {};
class $Class[[Foo]] {};
template<typename $TemplateParameter[[T]]>
- void $Function[[foo]]($TemplateParameter[[T]] ...);
+ $Primitive[[void]] $Function[[foo]]($TemplateParameter[[T]] ...);
)cpp",
R"cpp(
template <class $TemplateParameter[[T]]>
struct $Class[[Tmpl]] {$TemplateParameter[[T]] $Field[[x]] = 0;};
- extern template struct $Class[[Tmpl]]<float>;
- template struct $Class[[Tmpl]]<double>;
+ extern template struct $Class[[Tmpl]]<$Primitive[[float]]>;
+ template struct $Class[[Tmpl]]<$Primitive[[double]]>;
)cpp",
// This test is to guard against highlightings disappearing when using
// conversion operators as their behaviour in the clang AST differ from
class $Class[[Foo]] {};
struct $Class[[Bar]] {
explicit operator $Class[[Foo]]*() const;
- explicit operator int() const;
+ explicit operator $Primitive[[int]]() const;
operator $Class[[Foo]]();
};
- void $Function[[f]]() {
+ $Primitive[[void]] $Function[[f]]() {
$Class[[Bar]] $Variable[[B]];
$Class[[Foo]] $Variable[[F]] = $Variable[[B]];
$Class[[Foo]] *$Variable[[FP]] = ($Class[[Foo]]*)$Variable[[B]];
- int $Variable[[I]] = (int)$Variable[[B]];
+ $Primitive[[int]] $Variable[[I]] = ($Primitive[[int]])$Variable[[B]];
}
)cpp"};
for (const auto &TestCase : TestCases) {