Policies/Kdelibs Coding Style/fi: Difference between revisions
Centerlink (talk | contribs) (Created page with "Esimerkki:") |
(Updating to match new version of source page) |
||
(33 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<languages /> | |||
Tämä dokumentti kuvaa kdelibs-koodin suositellun koodaustyylin. Kukaan ei pakota käyttämään tätä tyyliä, mutta on suositeltavaa käyttää muodoltaan yhtenäisiä lähdekooditiedostoja. | |||
'''In short: Kdelibs coding style follows the Qt | '''In short: Kdelibs coding style follows the [http://wiki.qt.io/Qt_Coding_Style Qt coding style], with one main difference: using curly braces even when the body of a conditional statement contains only one line.''' | ||
== | == Sisennys == | ||
* | * Ei sarkainmerkkejä | ||
* 4 | * 4 välilyöntiä yhden sarkainmerkin sijasta | ||
== | == Muuttujaesittely == | ||
* | * Jokainen muuttujaesittely uudella rivillä | ||
* | * Jokainen uusi sana muuttujanimessä alkaa isolla kirjaimelle (niin kutsuttu kamelityyli) | ||
* | * Vältä lyhennyksiä | ||
* | * Käytä hyödyllisiä nimiä. Ei lyhyitä nimiä, paitsi: | ||
** | ** Yksimerkkiset muutujanimet voivat ilmaista laskureita ja tilapäisiä muuttujia, joiden tarkoitus on ilmeinen | ||
** | ** Muuttujat ja funktiot (metodit) alkavat pienellä kirjaimella | ||
Esimerkki: | Esimerkki: | ||
Line 27: | Line 28: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | |||
* | == Tyhjemerkki == | ||
* | * Käytä tyhjiä rivejä ryhmälauseissa | ||
* | * Käytä vain yhtä tyhjää riviä | ||
* | * Käytä yhtä välilyöntiä jokaisen avainsanan jälkeen | ||
* | * Käytä yhtä välilyöntiä ennen osoitin- ja viitemerkkejä '*' tai '&', mutta ei niiden jälkeen | ||
* Ei välilyöntiä tyyppimuunnoksen jälkeen | |||
Esimerkki: | Esimerkki: | ||
Line 47: | Line 49: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Aaltosulkeet == | ||
Perussääntönä vasen aaltosulje tulee samalle riville kuin lauseen alku. | |||
Esimerkki: | Esimerkki: | ||
Line 62: | Line 64: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Poikkeus: Funktiototeutuksissa, luokka-, struct-rakenne- ja nimiavaruusesittelyissä on aina avaava aaltosulje aloitusrivillä. | |||
Esimerkki: | Esimerkki: | ||
Line 76: | Line 78: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Käytä aaltosulkeita jopa silloin kun ehdollisen lauseen runko sisältää vain yhden rivin. | |||
Esimerkki: | Esimerkki: | ||
<syntaxhighlight lang="cpp-qt"> | <syntaxhighlight lang="cpp-qt"> | ||
// | / / Väärin | ||
if (true) | if (true) | ||
return true; | return true; | ||
Line 87: | Line 89: | ||
qDebug("%i", i); | qDebug("%i", i); | ||
// | / / Oikein | ||
if (true) { | if (true) { | ||
return true; | return true; | ||
Line 97: | Line 99: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Switch | == Switch-lausekkeet == | ||
Case | Case-nimiöt ovat samassa sarakkeessa kuin switch-lause | ||
Esimerkki: | |||
<syntaxhighlight lang="cpp-qt"> | <syntaxhighlight lang="cpp-qt"> | ||
switch (myEnum) { | switch (myEnum) { | ||
Line 115: | Line 117: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Yritä pitää rivit lyhyempinä kuin 100 merkkiä lisäämällä rivinvaihtoja tarvittaessa. | |||
== Qt | == Qt includes-lauseet == | ||
* | * Jos lisäät #includes-rivin Qt-luokkiin, käytä sekä moduulinimeä että luokkanimeä. Tämä sallii sovellusten käyttää kirjastokoodia ilman liiallisia kääntäjän include-polkuja. | ||
Esimerkki: | |||
<syntaxhighlight lang="cpp-qt"> | <syntaxhighlight lang="cpp-qt"> | ||
// | / / Väärin | ||
#include <QString> | #include <QString> | ||
// | / / Oikein | ||
#include <QtCore/QString> | #include <QtCore/QString> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Artistic | == Artistic-tyylinen (astyle) automaattinen koodimuotoilu == | ||
Voit käyttää [http://astyle.sourceforge.net/ astyle] (>=1.23) koodin muotoiluun tai sen testaamiseen, että olet noudattanut tätä dokumenttia. Suorita seuraava komento: | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
astyle --indent=spaces=4 --brackets=linux \ | astyle --indent=spaces=4 --brackets=linux \ | ||
--indent-labels --pad | --indent-labels --pad=oper --unpad=paren \ | ||
--one-line=keep-statements --convert-tabs \ | --one-line=keep-statements --convert-tabs \ | ||
--indent-preprocessor \ | --indent-preprocessor \ | ||
`find -type f -name '*.cpp' | `find -type f -name '*.cpp'-or -name '*.cc' -or -name '*.h'` | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Käyttäessäsi astyle (>=2.01) -muotoilua sinun on suoritettava seuraava komento: | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
astyle --indent=spaces=4 --brackets=linux \ | astyle --indent=spaces=4 --brackets=linux \ | ||
--indent-labels --pad-oper --unpad-paren \ | --indent-labels --pad-oper --unpad-paren --pad-header \ | ||
--keep-one-line-statements --convert-tabs \ | --keep-one-line-statements --convert-tabs \ | ||
--indent-preprocessor \ | --indent-preprocessor \ | ||
`find -type f -name '*.cpp' | `find -type f -name '*.cpp' -or -name '*.cc' -or -name '*.h'` | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Note: With more recent astyle --brackets has become --style, so change --brackets=linux to --style=linux. | |||
You can find a shell script to run this command in: | |||
* [https://projects.kde.org/projects/kde/kdesdk/kde-dev-scripts/repository/revisions/master/raw/astyle-kdelibs kde-dev-scripts/astyle-kdelibs] (POSIX) | |||
* [https://projects.kde.org/projects/kde/kdesdk/kde-dev-scripts/repository/revisions/master/raw/astyle-kdelibs.bat kde-dev-scripts/astyle-kdelibs.bat] (Windows) | |||
== Emacs and Vim scripts == | == Emacs and Vim scripts == | ||
The | The [https://projects.kde.org/projects/kde/kdesdk/kde-dev-scripts/repository/revisions/master/show kde-dev-scripts] directory in the kdesdk module contains, among other useful things, some useful additions to the Emacs and Vim text editors that make it easier to edit KDE code with them. | ||
=== Emacs === | === Emacs === | ||
The [ | The [https://projects.kde.org/projects/kde/kdesdk/kde-dev-scripts/repository/revisions/master/show/kde-emacs kde-emacs] directory contains a set of key bindings, macros and general useful code. It is compatible with both GNU Emacs and XEmacs. | ||
Kde-emacs -käytön aloittamiseksi lisää seuraava .emacs-tiedostoosi: | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
Line 164: | Line 170: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Monia asetuksia voidaan muuttaa muokkaamalla "kde-emacs"-ryhmää <tt>M-x customize-group</tt> -kautta. | |||
Tarkista lisätietoja varten, mukaanlukien mitä ovat näppäinsidokset ja mitä lisäasetuksia voisit lisätä .emacs-tiedostoosi, itse tiedosto <tt>kde-emacs.el</tt>. | |||
=== Vim === | === Vim === | ||
You can find a vim script in [ | You can find a vim script in [https://projects.kde.org/projects/kde/kdesdk/kde-dev-scripts/repository/revisions/master/raw/kde-devel-vim.vim kde-devel-vim.vim] that helps you to keep the coding style correct. In addition to defaulting to the kdelibs coding style it will automatically use the correct style for Solid and kdepim code. If you want to add rules for other projects feel free to add them in the SetCodingStyle function. | ||
Skriptin käyttämiseksi sisällytä se {{path|~/.vimrc}}-tiedostoosi kuten tämä: | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
source /path/to/kde/sources/kdesdk/scripts/kde-devel-vim.vim | source /path/to/kde/sources/kdesdk/scripts/kde-devel-vim.vim | ||
Line 177: | Line 183: | ||
Urs Wolfer aloitti dokumentin. Joitakin tämän dokumentin osia on otettu Zack Rusinin lähettämästä Qt-koodaustyylidokumentista kohteesta kde-core-devel. | |||
[[Category:Policies]] [[Category:C++]] | [[Category:Policies]] [[Category:C++]] |
Latest revision as of 10:25, 11 March 2016
Tämä dokumentti kuvaa kdelibs-koodin suositellun koodaustyylin. Kukaan ei pakota käyttämään tätä tyyliä, mutta on suositeltavaa käyttää muodoltaan yhtenäisiä lähdekooditiedostoja.
In short: Kdelibs coding style follows the Qt coding style, with one main difference: using curly braces even when the body of a conditional statement contains only one line.
Sisennys
- Ei sarkainmerkkejä
- 4 välilyöntiä yhden sarkainmerkin sijasta
Muuttujaesittely
- Jokainen muuttujaesittely uudella rivillä
- Jokainen uusi sana muuttujanimessä alkaa isolla kirjaimelle (niin kutsuttu kamelityyli)
- Vältä lyhennyksiä
- Käytä hyödyllisiä nimiä. Ei lyhyitä nimiä, paitsi:
- Yksimerkkiset muutujanimet voivat ilmaista laskureita ja tilapäisiä muuttujia, joiden tarkoitus on ilmeinen
- Muuttujat ja funktiot (metodit) alkavat pienellä kirjaimella
Esimerkki:
/ / Väärin
KProgressBar *prbar;
QString prtxt, errstr;
/ / Oikein
KProgressBar *downloadProgressBar;
QString progressText;
QString errorString;
Tyhjemerkki
- Käytä tyhjiä rivejä ryhmälauseissa
- Käytä vain yhtä tyhjää riviä
- Käytä yhtä välilyöntiä jokaisen avainsanan jälkeen
- Käytä yhtä välilyöntiä ennen osoitin- ja viitemerkkejä '*' tai '&', mutta ei niiden jälkeen
- Ei välilyöntiä tyyppimuunnoksen jälkeen
Esimerkki:
/ / Väärin
QString* myString;
if(true){
}
/ / Oikein
QString *myString;
if (true) {
}
Aaltosulkeet
Perussääntönä vasen aaltosulje tulee samalle riville kuin lauseen alku.
Esimerkki:
/ / Väärin
if (true)
{
}
/ / Oikein
if (true) {
}
Poikkeus: Funktiototeutuksissa, luokka-, struct-rakenne- ja nimiavaruusesittelyissä on aina avaava aaltosulje aloitusrivillä.
Esimerkki:
void debug(int i)
{
qDebug("foo: %i", i);
}
class Debug
{
};
Käytä aaltosulkeita jopa silloin kun ehdollisen lauseen runko sisältää vain yhden rivin.
Esimerkki:
/ / Väärin
if (true)
return true;
for (int i = 0; i < 10; ++i)
qDebug("%i", i);
/ / Oikein
if (true) {
return true;
}
for (int i = 0; i < 10; ++i) {
qDebug("%i", i);
}
Switch-lausekkeet
Case-nimiöt ovat samassa sarakkeessa kuin switch-lause
Esimerkki:
switch (myEnum) {
case Value1:
doSomething();
break;
case Value2:
doSomethingElse();
// fall through
default:
defaultHandling();
break;
}
Yritä pitää rivit lyhyempinä kuin 100 merkkiä lisäämällä rivinvaihtoja tarvittaessa.
Qt includes-lauseet
- Jos lisäät #includes-rivin Qt-luokkiin, käytä sekä moduulinimeä että luokkanimeä. Tämä sallii sovellusten käyttää kirjastokoodia ilman liiallisia kääntäjän include-polkuja.
Esimerkki:
/ / Väärin
#include <QString>
/ / Oikein
#include <QtCore/QString>
Artistic-tyylinen (astyle) automaattinen koodimuotoilu
Voit käyttää astyle (>=1.23) koodin muotoiluun tai sen testaamiseen, että olet noudattanut tätä dokumenttia. Suorita seuraava komento:
astyle --indent=spaces=4 --brackets=linux \
--indent-labels --pad=oper --unpad=paren \
--one-line=keep-statements --convert-tabs \
--indent-preprocessor \
`find -type f -name '*.cpp'-or -name '*.cc' -or -name '*.h'`
Käyttäessäsi astyle (>=2.01) -muotoilua sinun on suoritettava seuraava komento:
astyle --indent=spaces=4 --brackets=linux \
--indent-labels --pad-oper --unpad-paren --pad-header \
--keep-one-line-statements --convert-tabs \
--indent-preprocessor \
`find -type f -name '*.cpp' -or -name '*.cc' -or -name '*.h'`
Note: With more recent astyle --brackets has become --style, so change --brackets=linux to --style=linux.
You can find a shell script to run this command in:
- kde-dev-scripts/astyle-kdelibs (POSIX)
- kde-dev-scripts/astyle-kdelibs.bat (Windows)
Emacs and Vim scripts
The kde-dev-scripts directory in the kdesdk module contains, among other useful things, some useful additions to the Emacs and Vim text editors that make it easier to edit KDE code with them.
Emacs
The kde-emacs directory contains a set of key bindings, macros and general useful code. It is compatible with both GNU Emacs and XEmacs.
Kde-emacs -käytön aloittamiseksi lisää seuraava .emacs-tiedostoosi:
(add-to-list 'load-path "/path/to/kde-emacs")
(require 'kde-emacs)
Monia asetuksia voidaan muuttaa muokkaamalla "kde-emacs"-ryhmää M-x customize-group -kautta.
Tarkista lisätietoja varten, mukaanlukien mitä ovat näppäinsidokset ja mitä lisäasetuksia voisit lisätä .emacs-tiedostoosi, itse tiedosto kde-emacs.el.
Vim
You can find a vim script in kde-devel-vim.vim that helps you to keep the coding style correct. In addition to defaulting to the kdelibs coding style it will automatically use the correct style for Solid and kdepim code. If you want to add rules for other projects feel free to add them in the SetCodingStyle function.
Skriptin käyttämiseksi sisällytä se ~/.vimrc-tiedostoosi kuten tämä:
source /path/to/kde/sources/kdesdk/scripts/kde-devel-vim.vim
Urs Wolfer aloitti dokumentin. Joitakin tämän dokumentin osia on otettu Zack Rusinin lähettämästä Qt-koodaustyylidokumentista kohteesta kde-core-devel.