| | |
| | | |
| | | # MathCoach IDE API |
| | | |
| | | In diesem Paket ist die öffentliche Schnittstelle zur MathCoach Entwicklungsumgebung (IDE) |
| | | definiert. Sowohl die IDE selbst, als auch alle externen Werkzeuge, die |
| | | mit der IDE interagieren sollen, müssen diese Schnittstelle verwenden: |
| | | definiert. Mithilfe dieser Schnittstelle können externe Werkzeuge (z.B. Editoren) erstellt werden. |
| | | Für den Anwender stehen diese Werkzeuge dann komfortabel - in die IDE integriert - zur Verfügung. |
| | | |
| | | - Die IDE implementiert die API Schnittstellen und stellt eine Bibliothek (`ide-lib.js`) bereit |
| | | - Externe Werkzeuge können diese Bibliothek einbinden und so auf Features der IDE zugreifen |
| | |  |
| | | |
| | | |
| | | ## Entwicklung externer Werkzeuge |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | ## Entwicklung externer Werkzeuge |
| | | - Externe Werkzeuge müssen unter der Domain von MathCoach erreichbar sein. Zur Entwicklungszeit legt |
| | | man das Werkzeug dazu im www-Verzeichnis ab. |
| | | - Die von der IDE bereitgestellte Bibliothek muss eingebunden werden |
| | |
| | | Für kleiner Werkzeuge bietet es sich an im WWW-Verzeichnis zu entwickeln (z.B. |
| | | `myTool/tool.html` und `myTool/tool.js`). Die MathCoach-IDE stellt Autovervollständigung beim |
| | | Editieren der `tool.js`-Datei zur Verfügung. Da es sich um eine JavaScript-Datei handelt, |
| | | ist keine Typsicherheit gegeben. |
| | | ist keine Typsicherheit gegeben. Das Werkzeug muss lokal in die IDE integriert werden, siehe |
| | | weiter unten. |
| | | |
| | |  |
| | | |
| | | #### Größere Werkzeuge |
| | | Für größere Werkzeuge sollte ein Build-System wie [webpack](https://webpack.js.org/) |
| | | oder [PARCEL](https://parceljs.org/) in Kombination mit |
| | | [TypeScript](https://www.typescriptlang.org/) verwendet werden. |
| | | [TypeScript](https://www.typescriptlang.org/) verwendet werden. Das Werkzeug muss nach dem |
| | | Build-Prozess in das WWW-Verzeichnis kopiert und ebenfalls lokal in die IDE integriert werden, siehe |
| | | weiter unten. |
| | | |
| | | |
| | | Die MathCoach-API kann auch als npm-Package eingebunden werden, sodass eine typsichere |
| | |
| | | { |
| | | ... |
| | | "devDependencies": { |
| | | "@mathcoach/ide-api": "git+https://newton.htwsaar.de/gitblit/r/mathcoach/mathcoach-ide-api.git#1.0.0" |
| | | "@mathcoach/ide-api": "git+https://newton.htwsaar.de/gitblit/r/mathcoach/mathcoach-ide-api.git#1.1.0" |
| | | }, |
| | | ... |
| | | } |
| | |
| | | Wie man der Git-Repo URL ansieht, werden Git-Tags verwendet um eine |
| | | Versionierung [(Semantic Versioning)](https://semver.org/lang/de/) |
| | | der API zu erreichen. Lässt man die Versionierung weg, wird die |
| | | aktuellste Version verwendet. |
| | | aktuellste Version verwendet. (Siehe Gitblit um verfügbare Versionen |
| | | einzusehen) |
| | | |
| | | |
| | | Zertifikat von Newton hinzufügen, damit npm auf das Repository zugreifen kann. |
| | |
| | | Dateien mit dem Werkzeug geöffnet werden und erstellt werden (siehe Kontext-Menüs im IDE-Explorer). |
| | | Eine Freischaltung des Werkzeugs für alle Autoren erfolgt durch einen Administrator. |
| | | |
| | | ### Lokal (Nur für den Entwickler des Werkzeugs) |
| | | ### Lokal (Nur für den Entwickler des Werkzeugs) |
| | | In der IDE muss eine Werkzeug-Definition angelegt werden, dazu muss die Datei `ide-settings.json` editiert werden: |
| | | |
| | | { |