in src/arduino/exampleManager.ts [24:80]
public async loadExamples() {
const examples = [];
// load Built-in Examples from examples folder under arduino installation directory.
examples.push({
name: "Built-in Examples",
path: this._settings.defaultExamplePath,
children: this.parseExamples(this._settings.defaultExamplePath),
});
// load Examples from default libraries under arduino installation directory.
const examplesFromDefaultLibraries = await this.parseExamplesFromLibrary(this._settings.defaultLibPath, true);
if (examplesFromDefaultLibraries.length) {
examples.push({
name: "Examples for any board",
path: this._settings.defaultLibPath,
children: examplesFromDefaultLibraries,
});
}
// load Examples from current board's firmware package directory.
if (this._arduinoApp.boardManager.currentBoard) {
const currentBoard = this._arduinoApp.boardManager.currentBoard;
const currentBoardLibrariesPath = path.join(currentBoard.platform.rootBoardPath, "libraries");
const examplesFromCurrentBoard = await this.parseExamplesFromLibrary(currentBoardLibrariesPath, false);
if (examplesFromCurrentBoard.length) {
examples.push({
name: `Examples for ${currentBoard.name}`,
path: currentBoardLibrariesPath,
children: examplesFromCurrentBoard,
});
}
}
// load Examples from Custom Libraries
const customLibrariesPath = path.join(this._settings.sketchbookPath, "libraries");
const examplesFromCustomLibraries = await this.parseExamplesFromLibrary(customLibrariesPath, true, true);
if (examplesFromCustomLibraries.length) {
examples.push({
name: "Examples from Custom Libraries",
path: customLibrariesPath,
children: examplesFromCustomLibraries,
});
}
// load Examples from user's workspace
const sketchesPath = path.join(this._settings.sketchbookPath, "sketches");
const examplesFromSketches = await this.parseExamples(sketchesPath);
if (examplesFromSketches.length) {
examples.push({
name: "Workspace",
path: sketchesPath,
children: examplesFromSketches,
});
}
return examples;
}