====== Arduino Code Completion Directories ======
===== The directories =====
==== How to use these lists ====
* If your IDE lets you configure custom toolsets and you've configured an Arduino toolset, you can add the directories to the Arduino toolset's list of directories checked for code completion if it lets you.((This is the approach I use with [[https://netbeans.org|NetBeans]].))
* If your IDE is organized around workspaces and you use separate workspaces for Arduino development, add these to the list of the workspace's additional directories to check for code completion.((This works well with [[http://codelite.org/|CodeLite]] for me.))
* If you use your IDE onlyfor Arduino development, you can add the list to your IDE's global list of of additional directories for code completion---which means the directories will be parsed for //every// project, not just Arduino ones.
* Most IDEs let you add a list of additional directories to check for code completion to the IDE's project. This is the approach you'll want to take for adding project-specific libraries. If you take this approach for default libraries (or if it's your only option), then you'll have to repeat this for every Arduino project you create.
==== Directories to include by default ====
The following is a list of known directories to add to your IDE for effective code completion using AVR-based Arduinos (version 1.6.*).
{path-to-arduino}/hardware/arduino/avr/cores/arduino/
{path-to-arduino}/hardware/arduino/avr/libraries/EEPROM/
{path-to-arduino}/hardware/arduino/avr/libraries/HID/
{path-to-arduino}/hardware/arduino/avr/libraries/SPI/
{path-to-arduino}/hardware/arduino/avr/libraries/SoftwareSerial/
{path-to-arduino}/hardware/arduino/avr/libraries/Wire/
{path-to-arduino}/hardware/tools/avr/avr/include/
{path-to-arduino}/hardware/tools/avr/avr/include/avr/
{path-to-arduino}/hardware/tools/avr/avr/include/compat/
{path-to-arduino}/hardware/tools/avr/avr/include/util/
{path-to-arduino}/hardware/tools/avr/lib/gcc/avr/4.*.*/include/
{path-to-arduino}/hardware/tools/avr/lib/gcc/avr/4.*.*/include-fixed/
==== Including official libraries ====
Add any of the following libraries that ship with Ardunio to your IDE project's list of additional directories for code completion only if your project uses the library:
{path-to-arduino}/libraries/Bridge/src/
{path-to-arduino}/libraries/Esplora/src/
{path-to-arduino}/libraries/Ethernet/src/
{path-to-arduino}/libraries/Firmata/src/
{path-to-arduino}/libraries/GSM/src/
{path-to-arduino}/libraries/LiquidCrystal/src/
{path-to-arduino}/libraries/Robot_Control/src/
{path-to-arduino}/libraries/RobotIRremote/src/
{path-to-arduino}/libraries/Robot_Motor/src/
{path-to-arduino}/libraries/SD/src/
{path-to-arduino}/libraries/Servo/src/
{path-to-arduino}/libraries/SpacebrewYun/src/
{path-to-arduino}/libraries/Stepper/src/
{path-to-arduino}/libraries/Temboo/src/
{path-to-arduino}/libraries/TFT/src/
{path-to-arduino}/libraries/WiFi/src/
You can add //all// of these to the default configuration, but giving your IDE more directories to parse will slow it down.
==== Including third-party libraries ====
In addition to the above, you should add any libraries you've downloaded into your ''{Arduino-install-directory}/libraries'' and used by your project to the IDE project's list of additional directories for code completion. These will typically be of the form:
../libraries/{name-of-library}