Arduino code opmaken

IDE gerelateerde berichten
Berichten: 163
Geregistreerd: 15 Dec 2012, 21:02
Woonplaats: Delfzijl

Arduino code opmaken

Berichtdoor FPCUser » 20 Okt 2016, 17:41

Zo af en toe kom je op dit forum oproepen tegen om de code die je bij een bericht bijvoegd,
netjes op te maken.
Dt kan heel eenvoudig door in je Arduino IDE door menukeuze Hulpmddelen-Automatische opmaak
te kiezen, of door sneltoets ctrl+T.
Valt je tekst niet automatisch op te maken, d.w.z. komt er een foutmelding dan is er gegarandeerd iets
niet goed in je code. (accolade's of puntcomma's zjn bekende boosdoeners)

Als je dan deze tekst selecteert en kopieert tussen de haken code2=cpp en /code2 op dit forum,
dan doe je iedereen daar veel plezier mee, en zeker de goeroe's nicoverduin, shooter en Koepel.

Echter, niet iederen is tevreden over de manier van automatische opmaak.
En dat betreft dan meestal de plaats van de openings- en slot accolade's {}.
Gelukkig is dit eenvoudig aan te passen. Arduino maakt n.l. gebruik van Astyle, een heel bekend
en veel gebruikt code opmaak programma, dat ook als plug-in voor veel editors beschikbaar is.
Dit programma heeft een configuratie bestand "formatter.conf" dat te vinden is in de map
<arduinomap>/lib

Er staat in dit bestand dat je het echter NIET moet aanpassen, maar een extra bestand met
dezelfde naam formatter.conf met aanpassingen kunt maken en plaats dat dan in dezelfde map
als waar het bestand preferences.txt ook staat.


En nu de praktijk:
Standaard opmaak is blijkbaar de java manier, d.w.z. openingshaak functie op dezelfde regel
als de functiedefinitie, en de openingshaak voor de blokstatements die volgen op if, else, while of for
ook op dezelfde regel.

cpp code
void setup() {
// put your setup code here, to run once:
}

void loop() {
// put your main code here, to run repeatedly:
while(true) {
// doe dit
// en doe dat
}
}


De orignele opmaak volgens het C handboek van Brian Kernnghan & Dennis M.Ritchie is anders.
De openingshaak komt bij een functie daarvoor op een nieuwe regel.

Voor deze opmaak heb ik de volgende formatter.conf gemaakt en geplaatst in de map:
/home/henk/.arduino15/
Deze map is dus voor iedereen verschillend. Kijk voor jezelf waar de preferences.txt staat:
Bestand-Voorkeuren en dan onderaan.

Code: Alles selecteren
# Aanvullng op originele formatter.conf

# opmaak volgens Kerninghan &  Ritchie
style=kr


Je krijgt dan de volgende code:

cpp code
void setup()
{
// put your setup code here, to run once:
}

void loop()
{
// put your main code here, to run repeatedly:
while(true) {
// doe dit
// en doe dat
}
}


Er zij er ook die alle openingshaken op een nieuwe regel willen hebben,
een voorbeeld is opmaak volgens allman

De extra formatter.conf is dan:

Code: Alles selecteren
# Aanvullng op originele formatter.conf

# opmaak volgens allman
style=allman


En je krijgt dan:

cpp code
void setup()
{
// put your setup code here, to run once:
}

void loop()
{
// put your main code here, to run repeatedly:
while(true)
{
// doe dit
// en doe dat
}
}



Ben je nog niet tevreden? Dan is er nog stroustrup, whitesmith, gnu, linux, google, enz
Ook andere dingen kun je aanpassen en in het confguratiebestand zetten.
Zoek naar Astyle, documentatie.

Veel succes.

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Arduino code opmaken

Berichtdoor Koepel » 20 Okt 2016, 19:45

Dankjewel :D weer wat geleerd 8-)
Het werkt, ik heb nu "allman".

De code2=cpp gebruik ik liever niet. De links komen verkeerd te staan, en de rechtkantlijn van de hele webpagina gaat de mist in.
Ik zet graag in de sketch een link neer naar het forum topic waarvoor de sketch is, en links naar Arduino referenties. Die gaan allemaal mis :(

Kan Astyle ook spaties doen ?
Ik heb me een stijl met spaties aangeleerd die me erg bevalt:
Code: Alles selecteren
if( a == b)
{
  pinMode( 13, HIGH);
}

Berichten: 163
Geregistreerd: 15 Dec 2012, 21:02
Woonplaats: Delfzijl

Re: Arduino code opmaken

Berichtdoor FPCUser » 20 Okt 2016, 22:19

Dat met die spaties, ik denk het wel.
Ik heb het zelf (nog) niet geprobeerd, maar een stukje uit de documentatie:

--indent=spaces / --indent=spaces=# / -s#
Indent using # spaces per indent (e.g. -s3 --indent=spaces=3 ). # must be between 2 and 20.
Not specifying # will result in a default of 4 spaces per indent.

Je kan een poging wagen. :)

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Arduino code opmaken

Berichtdoor Koepel » 21 Okt 2016, 00:46

Natuurlijk had ik de indents meteen al als 2 spaties gezet (van het oorspronkelijke configuratiebestand overgenomen).
En er is "pad-paren-in", maar die zet ook een spatie aan de binnenkant van ')' acheraan. Dus mijn stijl (de beste stijl :lol: ) zit er niet tussen :(

Berichten: 77
Geregistreerd: 06 Okt 2012, 10:57

Re: Arduino code opmaken

Berichtdoor Beamer » 22 Okt 2016, 18:50

Ik kan in OSX 10.11 wel de map Arduino 15 vinden, maar niet formatter.conf. Iemand een idee waar die staat? De enige die ik op de HD tegenkom staat onder Blynk :shock:

Berichten: 163
Geregistreerd: 15 Dec 2012, 21:02
Woonplaats: Delfzijl

Re: Arduino code opmaken

Berichtdoor FPCUser » 22 Okt 2016, 20:16

In de Arduino installatiemap staan een aantal submappen, waaronder examples, hardware, java, libraries,
reference enz. En ook een map 'lib'.
En in deze map zit het configuratie bestand voor Astyle.

(Tenminste bij mij onder Linux Mint, en Windows 7.)

Terug naar Arduino IDE

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten