Improved library support - #40
Conversation
The library export used to export to the device folder and wiped out any files that had been exported with the normal export to files command. Now the export lib files land in a POUs folder beside the device folder so that they can be exported without collision.
This adds a new command that enables importing a codesys project library files (those that are underneath the POUs tab) back in from an export. Some files need to be ignored in the current project as they cannot be deleted as they are core to codesys.
|
While I have implemented this as a separate command, I would be interested in hearing your thoughts on merging the export/import lib and non lib commands, since they no longer clobber each other with these changes. |
|
I've also discovered I think the save as template function is not stripping out the library files. Since this adds support for library import/export i think save as template should also strip out the library files? Let me know what you think of this PR and how you may want to proceed, particularly if you want to consider merging the lib and non-lib import/export |
gsokoll
left a comment
There was a problem hiding this comment.
Thanks Alon. Your questions: keep the two import commands separate. Save As Template should not strip library files until Update From Template also reads the POUs folder; otherwise every root POU is lost. Three changes before merge:
- Name the folder
<project_name>.POUsso two projects in one directory do not overwrite each other. - Skip the generated Library Information objects on export and on import. Otherwise the import fails with a duplicate name after it has removed the other root objects.
- #38 adds a check that refuses library export on a project with a device. I will resolve that conflict when the second of the two PRs merges.
|
Thanks Alon for updating the folder name. There is still one open item: on a library with generated Library Information objects, the import removes the root objects and then stops with a duplicate-name error. Suggest you skip those objects on export and on import. |
This modifies the export lib to files function so that the destination is a new POUs directory. This means that running export lib to files and regular export to files do not clobber each other, and they are now both compatible in one project.
This also adds a new import lib from files command, which operates much like the import from files command, but for 'POUs' objects. This allows for better plaintext syncing of libraries/shared elements in a project.