Last active
December 29, 2015 23:09
-
-
Save laurentpetit/7741081 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns lein-script-test | |
(:require [ccw.util.e4.dsl :refer :all] | |
[ccw.util.eclipse :as e] | |
[ccw.leiningen.generic-launch :as l])) | |
(defn greet [context] | |
(e/info-dialog "Hello world" "This popup provided to you from a user script")) | |
(defn launch [context] (l/generic-launch nil)) | |
;; deffragment collecte les fragments de modèle créés par les defcommand | |
;; ici, le fragment n'a pas de nom, il est donc implicitement nommé | |
;; d'après le nom du namespace : "lein-script-test" | |
;; les éléments de modèle sont taggués avec ce nom de fragment et avec le tag "ccw" | |
;; Les objets créés / modifiés dans le modèle sont collectés | |
;; Une requête est lancée sur le modèle sur tous les objets ayant le tag "ccw" et le tag du fragment | |
;; tous les objets retournés qui ne font pas partie des objets créés/modifiés sont supprimés | |
;; ENFIN, le nom du fragment est ajouté à la variable globale *fragments* | |
;; => à la fin du démarrage d'Eclipse, une requête est lancée sur le modèle sur tous les objets ayant le tag "ccw" | |
;; => tous les objets n'appartenant à aucun fragment de la variable globale *fragments* sont supprimés | |
(deffragment | |
(defcommand greeter "Hello from CCW" | |
:handler greet) | |
(defcommand launch-lein-generic "Launch generic leiningen popup" | |
:handler launch)) | |
;;; Evolution future possible si des problèmes de perf en utilisation REPL se manifestent: | |
(deffragment nom-fragment-1 | |
(defpart ...) | |
(defcommand ...) | |
(defcommand ...)) | |
(deffragment nom-fragment-2 | |
(defpart ...) | |
(defcommand ...) | |
(defcommand ...)) | |
;;; Pour les cas simples, peut-on se passer de l'encapsulation dans (deffragment ....) sans trop compliquer l'implémentation ? | |
(defcommand ...) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment