Ich habe mich gefragt, ob es eine Möglichkeit gibt, Eclipse-Plugins in Clojure zu entwickeln. Um es klar zu sagen, die Frage besteht nicht darin, Eclipse zum Schreiben von Clojure-Code zu verwenden.
Sowohl Eclipse als auch Clojure laufen auf der JVM und ich denke, dass es einen Weg geben sollte, die Macht von Clojure (und seinen Bibliotheken) zu nutzen, um Plugins zu entwickeln. Ich habe speziell versucht, Korma zu verwenden, aber insgesamt würde ich gerne komplette Plug-ins verschieben, wenn es einen natürlichen Weg dazu gibt.
Gegen den Uhrzeigersinn, das Eclipse-Plugin für Clojure, ist in gemischten Java und Clojure geschrieben. Es verwendet clojure.osgi 1.2.10 noch.
Es ist also ein Live-Beweis für das Konzept, dass es möglich ist. Und AFAIK, Counterclockwise wird von Hunderten von Menschen erfolgreich eingesetzt.
Es gibt einige Einschränkungen, tho: Clojures Namensraum ist für einige "root classloader" "global". Z.B. Wenn Sie Clojure in ein Paket mit dem Namen myapp.clojure einpacken, haben Sie wahrscheinlich eine Reihe weiterer Pakete, für die myapp.clojure erforderlich ist. Sagen Sie zum Beispiel myapp.bundle1, myapp.bundle2. Wenn Sie dies tun und von jedem Bundle die Namespaces des Bundles laden (erfordern), wird jeder aus dem rechten ClassLoader geladen (die Namespaces von myapp.bundle1 werden in den Context Classloader von myapp.bundle1 geladen, und Namespaces von myapp.bundle2 werden in den Context Classloader von myapp.bundle2) geladen. Das ist großartig, weil es erlaubt, dass die Java-Interoperabilität in Ordnung ist.
Aber denken Sie daran, dass Namespaces, die von bundle1 & amp; bundle2 wird von der "globalen Namespace-Welt" im Bundle myapp.clojure gehalten.
Um ehrlich zu sein, hat dies für Counterclockwise noch kein Problem bewiesen. Da sich innerhalb des gleichen Features die Bundles eine einzige Clojure-Instanz teilen, ist das fast in Ordnung.
Die möglichen Nachteile sind:
Beachten Sie, dass diese Nachteile für ein Eclipse-RCP-Produkt im Gegensatz zu einem Eclipse-Plug-in verschwinden.
Wenn Sie sehen möchten, wie Counterclockwise clojure umgepackt hat und clojure.osgi verwendet, können Sie sich den Quellcode ansehen:
HTH,
- Laurent
Es scheint, dass es in Eclipse 3.x nicht verfügbar ist, aber für Eclipse 4 geplant ist, wie in Ссылка erwähnt.
Es gibt auch einen Beitrag auf Stack Overflow, in dem Sie nach der Entwicklung von Eclipse-Plugins in anderen Sprachen als Java gefragt werden , die möglicherweise mehr Informationen enthalten, die Sie nützlich finden würden.
Es ist durchaus möglich, Eclipse-Plugins in Groovy oder Scala . Da Clojure .class-Dateien erzeugt, sollte es nicht anders sein. Plugins werden normalerweise mit PDE Build exportiert, das standardmäßig nur mit Java arbeitet. Daher müssen Sie eine customCallback.xml
-Datei schreiben, die Clojure kompilieren kann (siehe Ссылка für Scala build).
Tags und Links eclipse clojure eclipse-plugin eclipse-pde