forked from qt-creator/qt-creator
C++: Add star binding to TypePrettyPrinter
Now we can specify if we want to print a whitespace before and/or after '*'/'&' when printing pointer and reference types. Task-number: QTCREATORBUG-6169 Change-Id: Ida1b035aa4fd79be9108934b75f236db9f7238af Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
committed by
Erik Verbruggen
parent
b6a9d58f69
commit
8c3794f9d1
@@ -37,6 +37,16 @@
|
||||
|
||||
namespace CPlusPlus {
|
||||
|
||||
/*!
|
||||
\class Overview
|
||||
|
||||
\brief Converts a FullySpecifiedType and/or any qualified name,
|
||||
to its string representation.
|
||||
|
||||
The public data members (except the ones starting with "marked")
|
||||
determine what exactly and how to print.
|
||||
*/
|
||||
|
||||
class CPLUSPLUS_EXPORT Overview
|
||||
{
|
||||
Overview(const Overview &other);
|
||||
@@ -60,14 +70,57 @@ public:
|
||||
QString prettyType(const FullySpecifiedType &type, const QString &name) const;
|
||||
|
||||
public:
|
||||
unsigned markedArgument;
|
||||
int markedArgumentBegin;
|
||||
int markedArgumentEnd;
|
||||
/*!
|
||||
\enum Overview::StarBindFlag
|
||||
|
||||
The StarBindFlags describe how the '*' and '&' in pointers/references
|
||||
should be bound in the string representation.
|
||||
|
||||
This also applies to rvalue references ('&&'), but not to
|
||||
pointers to functions or arrays like in
|
||||
|
||||
void (*p)()
|
||||
void (*p)[]
|
||||
|
||||
since it seems to be quite uncommon to use spaces there.
|
||||
|
||||
See the examples below. These assume that exactly one
|
||||
flag is set. That is, it may look different with
|
||||
flag combinations.
|
||||
|
||||
\value BindToIdentifier
|
||||
e.g. "char *foo", but not "char * foo"
|
||||
\value BindToTypeName
|
||||
e.g. "char*", but not "char *"
|
||||
\value BindToLeftSpecifier
|
||||
e.g. "char * const* const", but not "char * const * const"
|
||||
\value BindToRightSpecifier
|
||||
e.g. "char *const", but not "char * const"
|
||||
*/
|
||||
enum StarBindFlag {
|
||||
BindToIdentifier = 0x1,
|
||||
BindToTypeName = 0x2,
|
||||
BindToLeftSpecifier = 0x4,
|
||||
BindToRightSpecifier = 0x8
|
||||
};
|
||||
Q_DECLARE_FLAGS(StarBindFlags, StarBindFlag)
|
||||
|
||||
StarBindFlags starBindFlags;
|
||||
bool showArgumentNames: 1;
|
||||
bool showReturnTypes: 1;
|
||||
bool showFunctionSignatures: 1;
|
||||
bool showDefaultArguments: 1;
|
||||
bool showTemplateParameters: 1;
|
||||
|
||||
/*!
|
||||
You can get the start and end position of a function argument
|
||||
in the resulting string. Set "markedArgument" to the desired
|
||||
argument. After processing, "markedArgumentBegin" and
|
||||
"markedArgumentEnd" will contain the positions.
|
||||
*/
|
||||
unsigned markedArgument;
|
||||
int markedArgumentBegin;
|
||||
int markedArgumentEnd;
|
||||
};
|
||||
|
||||
} // namespace CPlusPlus
|
||||
|
||||
Reference in New Issue
Block a user