GNU 缩进:它是否支持 C++
GNU indent: does it support C++
我用 indent 格式化了我的 C 代码,效果很好。
现在我正在使用 C++,但我仍然想使用缩进。但是,我发现它不能很好地支持 class 声明。这是一个例子:
class Test
{
public:
Test ();
void ttt ();
protected:
virtual void func ();
};
这是一个名为test.h
的头文件,使用这样的缩进后:export VERSION_CONTROL=never; indent -bli0 -blf -bls -nbfda -npsl -i4 -ts4 test.h
,它变成如下:
class Test
{
public:
Test ();
void ttt ();
protected:
virtual void func ();
};
如您所见,在public
和protected
之前,添加了两个空格并且virtual vodi func();
根本没有对齐。
所以缩进不支持 C++?
不,GNU indent
不支持 C++。
引用 GNU indent manual 的第 1.12 节:
While an attempt was made to get indent working for C++, it will not do a good job on any C++ source except the very simplest.
GNU indent
提供 非常 对 C++
代码的有限支持,
但是
clang-format 将支持 C++
和其他 langauges/code,例如 C/Java/JavaScript/JSON/Objective-C/Protobuf/C#
。
我用 indent 格式化了我的 C 代码,效果很好。
现在我正在使用 C++,但我仍然想使用缩进。但是,我发现它不能很好地支持 class 声明。这是一个例子:
class Test
{
public:
Test ();
void ttt ();
protected:
virtual void func ();
};
这是一个名为test.h
的头文件,使用这样的缩进后:export VERSION_CONTROL=never; indent -bli0 -blf -bls -nbfda -npsl -i4 -ts4 test.h
,它变成如下:
class Test
{
public:
Test ();
void ttt ();
protected:
virtual void func ();
};
如您所见,在public
和protected
之前,添加了两个空格并且virtual vodi func();
根本没有对齐。
所以缩进不支持 C++?
不,GNU indent
不支持 C++。
引用 GNU indent manual 的第 1.12 节:
While an attempt was made to get indent working for C++, it will not do a good job on any C++ source except the very simplest.
GNU indent
提供 非常 对 C++
代码的有限支持,
但是
clang-format 将支持 C++
和其他 langauges/code,例如 C/Java/JavaScript/JSON/Objective-C/Protobuf/C#
。