diff --git a/tools/clog-builder-projects.lisp b/tools/clog-builder-projects.lisp index 441ac47..c9029b9 100644 --- a/tools/clog-builder-projects.lisp +++ b/tools/clog-builder-projects.lisp @@ -25,13 +25,23 @@ (defun projects-list-local-systems () (if *no-quicklisp* - (last (pathname-directory (uiop:getcwd))) + (alexandria:flatten + (append + (mapcar (lambda (dir) + (mapcar (lambda (item) + (let ((sys (first (last (pathname-directory item))))) + (when (uiop:file-exists-p + (format nil "~A~A.asd" + item sys)) + (pushnew item asdf:*central-registry* :test #'equalp) + sys))) + (uiop:subdirectories dir))) + (projects-local-directories)) + (list *start-project*))) (funcall (read-from-string "ql:list-local-systems")))) (defun projects-local-directories () - (if *no-quicklisp* - (symbol-value (read-from-string "asdf:*central-registry*")) - (symbol-value (read-from-string "ql:*local-project-directories*")))) + (symbol-value (read-from-string "ql:*local-project-directories*"))) (defun projects-setup (panel) (let* ((app (connection-data-item panel "builder-app-data"))) diff --git a/tools/clog-builder.lisp b/tools/clog-builder.lisp index a1833d0..006f6e1 100644 --- a/tools/clog-builder.lisp +++ b/tools/clog-builder.lisp @@ -719,6 +719,14 @@ clog-builder window.") (format t "~%If browser does not start go to http://127.0.0.1:~A/builder~%~%" port) (open-browser :url (format nil "http://127.0.0.1:~A/builder" port)))) +#-quicklisp +(defpackage #:ql + (:use #:cl) + (:export :*local-project-directories*)) + +#-quicklisp +(defvar ql:*local-project-directories* (list (uiop:getcwd))) + #+(and windows quicklisp) (in-package #:quicklisp-client) diff --git a/tools/preferences.lisp.sample b/tools/preferences.lisp.sample index 8762417..007ef15 100644 --- a/tools/preferences.lisp.sample +++ b/tools/preferences.lisp.sample @@ -1,9 +1,11 @@ (in-package :clog-tools) -;; Add directories to use custom directoires for storing projects +;; Add directories to use custom directories for storing projects +;; when quicklisp not used (ocicl) this is emulated. ;; (pushnew #P"/path/of/projects" ql:*local-project-directories* :test #'equalp) -;; For non-quicklisp based systems -;; (pushnew #P"/path/of/projects" asdf:*central-registry* :test #'equalp) +;; +;; System to be available but not listed: +;; (pushnew #P"/path/to/a/projects" asdf:*central-registry* :test #'equalp) ;; Preferences loaded on next call to clog-tools:clog-builder or [Eval All] @@ -17,6 +19,8 @@ ;; ;; CLOG Plugins ;;------------- +;; Plugins should be added to your .asd project if used +;; ;; ACE editor ;; (ql:quickload :clog-ace/tools) ;;