KDevelop/CodingStyle: Difference between revisions

From KDE Community Wiki
No edit summary
m (Change location of coding style article)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The current KDevelop code base is very inconsistent when it comes to the coding style. So please adhere to the file's coding style you are working on / patching.
The current KDevelop code base is very inconsistent when it comes to the coding style. So please adhere to the file's coding style you are working on / patching.


For new files / projects / plugins, please use the [[Policies/Kdelibs_Coding_Style]] guidelines. Here are a few special additions:
For new files / projects / plugins, please use the [[Policies/Frameworks_Coding_Style]] guidelines. Here are a few special additions:
 
== QObject and Access Modifiers ==
 
<syntaxhighlight lang="cpp-qt">
// wrong
class Foo : public QObject {
Q_OBJECT
  public:
    Foo();
  private:
    int bla;
};
 
// correct foo.h
class Foo: public QObject
{
    Q_OBJECT
public:
    Foo();
private:
    int m_bla;
};
</syntaxhighlight>


== Class Initialization ==
== Class Initialization ==
Line 9: Line 32:
class Foo : public Bar {
class Foo : public Bar {
public:
public:
  Foo(int i, int j) : Bar(i), bla(j) {}
    Foo(int i, int j) : Bar(i), bla(j) { /* do stuff */ }
private:
private:
  int bla;
    int bla;
};
};


Line 18: Line 41:
{
{
public:
public:
  Foo(int i, int j);
    Foo(int i, int j);
private:
private:
  int m_bla;
    int m_bla;
};
};
// foo.cpp
// foo.cpp
Line 27: Line 50:
, m_bla(j)
, m_bla(j)
{
{
    // do stuff
}
}
</syntaxhighlight>
</syntaxhighlight>
== Using Namespaces ==
Never add a "using namespace ..." to a header. Do use that though in every .cpp file , esp. for the KDevelop namespace. Public API should always be in the KDevelop namespace.

Latest revision as of 09:50, 31 October 2019

The current KDevelop code base is very inconsistent when it comes to the coding style. So please adhere to the file's coding style you are working on / patching.

For new files / projects / plugins, please use the Policies/Frameworks_Coding_Style guidelines. Here are a few special additions:

QObject and Access Modifiers

// wrong
class Foo : public QObject {
Q_OBJECT
  public:
    Foo();
  private:
    int bla;
};

// correct foo.h
class Foo: public QObject
{
    Q_OBJECT
public:
    Foo();
private:
    int m_bla;
};

Class Initialization

// wrong foo.h
class Foo : public Bar {
public:
    Foo(int i, int j) : Bar(i), bla(j) { /* do stuff */ }
private:
    int bla;
};

// correct foo.h
class Foo: public Bar
{
public:
    Foo(int i, int j);
private:
    int m_bla;
};
// foo.cpp
Foo::Foo(int i, int j)
: Bar(i)
, m_bla(j)
{
    // do stuff
}

Using Namespaces

Never add a "using namespace ..." to a header. Do use that though in every .cpp file , esp. for the KDevelop namespace. Public API should always be in the KDevelop namespace.