Frage

Ich habe den offensichtlichen Weg in meinem Haustier Open-Source-Projekt versucht RevitPythonShell (ein Plugin für die Gebäudemodellierungssoftware Autodesk Revit Architecture 2010): code.interact() mit dem Motor Ironpython einrichten .NET verwenden Streams für STDIN und STDOUT. Diese ich umleiten dann auf eine TextBox Kontrolle. Es irgendwie funktioniert, aber wirklich nur eine hässliche Hack.

Das Hauptproblem ist die ganze Schale Sachen an die Arbeit: Pfeil nach oben und Pfeil nach unten für Geschichte, Bearbeiten, Kopieren und Einfügen, EOF, Syntaxhervorhebung, Tooltips usw. Es braucht viel Arbeit erhalte dieses Recht , und es ist nicht wirklich das Problem ich versuche zu lösen (ich versuche, eine interaktive Shell in Revit gehostet zu bekommen, nicht die perfekte Schale GUI machen).

Wenn dieses Projekt kein .NET wäre, würde ich wahrscheinlich Blick in die Wiederverwendung von PyCrust / PyWrap , aber ich bin nicht sicher, ob das aus einem WinForms-Projekt erfolgen. Gibt es etwas ähnliches für .NET?

Hat jemand schon einmal die IConsole Schnittstelle implementiert und ein Beispiel zeigen kann, was ich brauchen würde, zu tun? Es scheint, dies wäre der richtige Weg zu gehen (im Gegensatz zu mit dem code Modul gegen), sondern für das Leben von mir, ich kann es nicht herausgefunden. Ironpython-Quellcode hat keine Kommentare zu löschen.

UPDATE: Nach ein paar Sachen ausprobiert, ich schließlich auf die hervorragende siedelt IronLab Code . Es enthält ein Beispiel Schale mit Syntaxhervorhebung und alle. Der Code war schön und einfach zu integrieren. Überprüfen Sie den Code RevitPythonShell auf Hinweise, wie es einzubetten.

War es hilfreich?

Lösung

Ich war auf der Suche nach einer ähnlichen Sache und ich entdecken, dass das IronLab Projekt eine schöne Ironpython-Konsole enthält. Der Quellcode finden Sie hier https://github.com/rwg0/ironlab/tree/ Master / IronPythonConsole .

[Bearbeiten auf 25/10/2016] festgelegt gebrochen url

Andere Tipps

Ok, dann habe ich zwei mögliche Antworten. Ein in dem Kommentar oben .... und andere viel einfacher (keine Intellisense, keine Syntax-Hervorhebung):

http://www.codeproject.com/KB/edit/irontextbox2.aspx

Es ist von JoeSox, und es ist für Ironpython 2, nicht 2.6. Allerdings war ich in der Lage zu aktualisieren es mit 2,6 in etwa fünf Minuten um richtig zu arbeiten. Wenn Sie interessiert sind kann ich einen Weg finden Sie eine Diff-Datei oder schlagen die aktualisierte Projekt irgendwo zu senden (es wurde unter einer MIT-Lizenz veröffentlicht).

Genießen Sie!

David

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top