Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7k
Use clang-format for auto-format (replaces libastyle)#11543
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:master
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Still missing installation of clang-format binaries via build.xml
Being a plugin Tool is not mandatory and, in this case, it just makesthings more complicated without any evident benefit.
The old name was a legacy leftover.
… supportThe places checked for a valid config are:- the sketch folder- the global data folder (behind preferences.txt)- the Arduino IDE app dirThe default config is copied in the Arduino IDE app dir
ArduinoBot commentedMay 21, 2021
✅ Build completed. Please test this code using one of the following: ⬇️https://downloads.arduino.cc/javaide/pull_requests/arduino-PR-11543-BUILD-997-linux32.tar.xz ℹ️ The |
ladyada commentedMay 21, 2021
yay! |
| //menu.add(createToolMenuItem("processing.app.tools.CreateFont")); | ||
| //menu.add(createToolMenuItem("processing.app.tools.ColorSelector")); |
silvanocerzaMay 21, 2021 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Can't we just remove these comments?
ubidefeo commentedMay 27, 2021
Good one, it also taught me a lesson when it comes to one-liner loops 😬 |
ubidefeo commentedMay 27, 2021
@ladyada |
ladyada commentedMay 28, 2021
hey00 we use https://github.com/adafruit/ci-arduino/blob/master/actions_install.sh#L8 |
| editor.statusNotice(tr("Auto Format finished.")); | ||
| }catch (IOException |InterruptedExceptione) { | ||
| editor.statusError("Auto format error: " +e.getMessage()); | ||
| e.printStackTrace(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Care to removeee.printStackTrace();?
per1234 commentedAug 8, 2022 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Hi@ladyada. Thanks so much for this advice. It caused me to give more attention to the need to carefully evaluate the impact of updates to the version ofClangFormat on the output of the Arduino IDE's "Auto Format" feature. If the recent development history is any indication, it is likely Arduino will continue to update to new versions of ClangFormat periodically. We have created a system for efficiently and reliably validating these updates: https://github.com/arduino/tooling-project-assets/tree/main/other/clang-format-configuration This system allows for updates to the ClangFormat version in use while ensuring consistent results for the Arduino IDE users. The system is focused on the maintenance ofArduino's customClangFormat configuration file, whereas from a quick look at a few random repos it appears Adafruit is using the default configuration, so you may have slightly different considerations. However, Arduino IDE 2.x is currently usingClangFormat 14.0.0. Even though there was an astonishing number of changes to the configuration options since the 11.0.1 version used at the time Arduino's custom configuration was developed, backwards compatibility with the old configuration was retained and the diff between the output of the two versions was restricted to code using a few newer C++ language features. |
ladyada commentedAug 10, 2022
sounds good - yes one day we will probably update to -11, but of course it could require a big sweep to assure that we can go through and fix all the libraries to pass. mostly clang-format really helps keep PRs reasonable - we would get a lot of PRs with tons of whitespace changes and clangformatting at least keeps the formatting consistant so we can review PRs without noise :) |
Uh oh!
There was an error while loading.Please reload this page.
As per the subject,
clang-formatis used instead ofAStyle.The
clang-formatformatting style cannot match the currentAStyleformatting style becauseclang-formathas much stricter formatting rules thanAStyleand is not possible to provide a configuration that is 100% matching between the two.clang-formatis a mature and maintained tool and it's used in the Arduino IDE 2.0 too.The "Arduino" clang-format configuration is bundled within the IDE and it's used by default. It may be customized by the user by:
.clang-formatconfiguration file in the sketch folder (so the new style is applied only to the sketch)or
.clang-formatconfiguration file in the data directory, the same directory as thepreferences.txtfile (in this case the style is applied globally)