Hi,
I only looke quickly at your document but thank you for so much effort.
Maybe this will help...
1) Read-only library view original source
Libraries in project\src\_micro-api-
readonly\libraries should be "linked" sources to the original library code. These are to make the source available for reference while writing project code.
2) Editable local libraries
Libraries in project\src\_micro-api\libraries are considered local project libraries. The source can be edited, new source code can be added to the library and the compiler will detect the changes during build.
3) new options - Shared C++ Projects to edit any library
Option 1) s useful for users who do not want to edit or change libraries but want to see the code while creating other code
Option 2) was a useful but confusing way to make editable libraries that are also local to the project
In recent releases of Visual Micro we make this much easier. We can now use standard Visual Studio C++ Shared Projects to host libraries that are located in ANY location.
This means you can edit the original of an Arduino library in sketchbook\libraries ide\libraries project\parent-folder\libraries or c:\foo\myLib
The checkbox you mentioned (Create project when adding libraries) on the Add Library menu is also new and will cause visual micro to create a C++ shared project for the selected library and add the project to the solution.
Creating a C++ shared project simply means creating a libName.vcxitems file in the selected library locatiuon
A file with a .vcxitems extension is a c++ shared project. Normal c++ projects have the .vcxproj extension.
When you add a shared library project in this way it can be added to the solution explorer and then the "References" node of the main project can be used to add the shared project as a reference to the main project.
Then you have a great environment to edit/debug any library from any location and you also have a much cleaner solution explorer where everything becomes more obvious and more standard.
Please take some time to review the draft documentation and to try a shared lib project. After you have created a shared library project you will find you can easily copy/move if you want to have a version that is unique to a project or a group of projects.
Create a shared library project The final note about shared c++ projects is that they are standard Visual Studio projects so we are working in a way that Visual Studio understands for intellisense, yet we are still working with normal arduino libraries and we no longer need to have files below the real project which is confusing (ie: no \src\_micro-api-readonly, no \src\_micro-api)
Does this make sense?