plcsense setup <client> schreibt .Zeugwerk/plcsense.json einmal, mit jedem Schalter vorhanden und auf seinem Standardwert, damit die Datei selbst zeigt, was sich ändern lässt, statt es im Code zu verstecken. Nichts darin ist geheim, Sie können sie also bedenkenlos zusammen mit der Solution einchecken.
{
"config_version": 4,
"managed_libraries": {
"root": "C:/TwinCAT/3.1/Components/Plc/Managed Libraries/"
},
"doc_sites": {
"ZCore": { "root_template": "https://doc.zeugwerk.dev/{channel}/" },
"AcmeSealingLib": { "root": "https://docs.acme.example/sealing/1.4/" }
},
"beckhoff_infosys": {
"enabled": true,
"cache_ttl_hours": 168,
"crawl_delay_ms": 10,
"extra_eligible_namespaces": []
},
"confluence": {
"enabled": false,
"base_url": "https://your-site.atlassian.net/wiki",
"spaces": [],
"library_namespaces": {}
},
"parser": { "backend": "TreeSitter" },
"libraries": {
"transitive_references": true,
"max_depth": 8,
"max_libraries": 250,
"wrapper_hint_names": ["ZPlatform", "ZAux"],
"hydration_profile": "signatures"
},
"validation": {
"semantic_checks": true,
"disabled_checks": []
},
"workspace": {
"solutions": []
}
}
config_version- Stempel des mitgelieferten Presets, keine Produktversion.
setup schreibt eine Datei nur neu, wenn ihr Stempel hinter dem aktuellen liegt, und fragt vorher nach, sofern nichts anderes eingestellt ist. managed_libraries.root- TwinCATs eigener Managed-Libraries-Ordner. Löst standardmäßig bereits
%TWINCAT3DIR% auf; nur setzen, wenn Ihre Bibliotheken anderswo liegen. doc_sites.<Namespace>- Wo die zkdoc-Ausgabe einer Bibliothek liegt, je Namespace, damit
get_plc_type_documentation die Version liest, die Ihr Projekt tatsächlich referenziert. root_template löst dafür einen Platzhalter {channel}/{version} auf; root ist eine feste URL für eine Seite, die ihre Doku nicht versioniert. beckhoff_infosys.*- Standardmäßig an, holt offizielle Beckhoff-Seiten für Beckhoff-Bibliotheken.
cache_ttl_hours und crawl_delay_ms sind Cache- und Höflichkeits-Schalter; extra_eligible_namespaces ist ein Notausgang für eine Bibliothek ohne Tc2_/Tc3_-Namen und ohne Herstellerkennung. confluence.*- Aus, bis Sie
enabled setzen. base_url und spaces grenzen die optionale Confluence-Cloud-Anbindung ein; das Token selbst ist eine Umgebungsvariable, nie eine Zeile in dieser Datei. parser.backend- Standardmäßig
TreeSitter; Antlr ist die Ausweich-Engine für die Grammatik. libraries.*- Wie weit die Bibliotheks-Hydration Referenzen folgt:
transitive_references, max_depth und max_libraries begrenzen den Durchlauf; wrapper_hint_names meldet einer Validierungsprüfung Ihre eigene Wrapper-Konvention; hydration_profile ist "signatures" (Standard, ohne Methodenrümpfe) oder "full" (Quell-Bibliotheken behalten auch ihre Rümpfe). validation.*semantic_checks schaltet die zusätzlichen Prüfungen ganz ab, wenn eine öfter falsch als richtig liegt; disabled_checks unterdrückt stattdessen nur einen einzelnen Regel-Code.workspace.solutions- Leer heißt: jede
.sln, die direkt in dem geöffneten Ordner liegt, wird gemeinsam als ein Workspace geladen. Zwei Solutions nebeneinander sind eine normale Maschine, kein Fehler. Tragen Sie hier Pfade ein, um auf die Solutions einzugrenzen, an denen Sie gerade arbeiten, oder um eine hinzuzunehmen, die außerhalb des Ordners liegt: nur so sucht plcsense dort überhaupt. Solutions in Unterordnern werden nie von selbst aufgegriffen, ein Repository mit einem Dutzend davon lädt also nicht ein Dutzend Kopien derselben SPS-Projekte.
Das alles funktioniert bereits ohne jede Änderung. doc_sites ist der Abschnitt, den die meisten von Hand anpassen, um plcsense auf die Dokumentation ihrer eigenen Bibliotheken zu zeigen.