Project Help wanted: AutoComplete in DrPython

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Hallo, ich möchte grundsätzlich fragen, ob so etwas eher verpönt ist oder nicht. Ich habe nicht genug Kenntnisse oder Zeit, um ein gutes CodeComplete Plugin zu schreiben, und zwar für DrPython. Ich habe mir als Beispiele angesehen: Editra, Boa Constructor und Pycurst (das wx.py package). Alle drei sind recht gut, nur das von DrPython ist, nun ja, sagen wir mal, nicht gut. Grundsätzlich wird ja "steal Code" gerade in Python empfohlen, aber das ist ja in diesem Fall auch nicht so leicht, da das sehr umfangreich ist.

(Das ganze gilt auch für CallTips)

Bei Py package: Pycrust ist eine interaktive python shell, hat also die Objekte im Namespace drin, und braucht im Prinzip nur ein dir(object) probieren (vereinfacht gesagt) und die ergebnisliste an das stc AutoComp weiterreichen. PyAlaMode scannt das Dokument (update namespace) und versucht so herauszubekommen, welche member ein Objekt hat. das ganze erfolgt im introspect modul.

Der Boa Constructor hat ein sehr aufwendiges Filescanning, also es wird anscheinend nicht der Namespace selbst upgedated, sondern versucht, module zu importieren und wenn das nicht geht, im eigenen Dokument die klasse und die members zu finden.

Editra verwendet auch introspect für Calltips und hat ebenfalls eine eigene, aufwendige Implementierung, die AutoComp member eines Objektes zu finden. Cody Precord hat eine eigene "Factory", in der er noch css und html completer sucht.

Wer könnte helfen? Wenn die Frage erlaubt ist? Oder gibt es irgendwo einen guten Code, der einfach zu portieren ist? Selber will ich das Rad, das sicher noch öfters als die drei vorigen Beispiele erfunden worden ist, nicht nochmals neu erfinden. Obwohl das sicher auch für diejenigen interessant ist, die sich besser auskennen und die Implementierungen vergleichen können.

Dass das als Plugin in DrPython implementiert werden soll, hört sich vielleicht komplizierter an, als es dann ist. es geht im Prinzip darum, mit styled text ctrl mittels der aktuelle Cursorposition festzustellen, was das objekt ist, oder was das vor dem '.' darstellt (zb. ein Modul wie os), und dann im Namespace des importierten Module (systemweit oder auch in der Anwendung selbst) oder die Objekte selbst festzustellen, aus welcher Klasse sie definiert wurden. Mir ist schon bewusst, dass Codecompletion genau genommen weniger Sinn macht, weil sich der Typ des Objekts ändern kann. Aber wer macht schon so was öfters und wozu. Zu 95% wird sich das nicht ändern, denke ich mir.
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Bevor sich noch jmd. Gedanken macht (Resonanz war ja eh nicht besonders hoch :lol: ); ich habe mir Cody Precords Editra vorgenommen und versuche hier, die Code Completion zu übernehmen. Auch wenns ein "Konkurrenz open source" Produkt von Drpython ist (da gibt es mehere ähnliche wie spe, ulipad, pype, boa könnte man hinzuzählen), muss ich ihm eins lassen. Ein toller Editor, und sehr schön programmiert, da kann der DrPython nicht mithalten. Die Codecompletion ist doch nicht so einfach zu übernehmen (eher tue ich mich recht schwierig), aber sie funktioniert sehr gut und das ist wichtig.
Antworten