source: branches/event-ide/ccl/cocoa-ide/compile-hemlock.lisp @ 7993

Last change on this file since 7993 was 7993, checked in by gz, 13 years ago

Various:

Implement prompt-for-key, the last of the prompting suite of functions.

Keep last-command around, not just last-key-event, though ended up not using it.

Stop using pty's for listener input, as they wedge the cocoa thread when the
listener is busy. Use a specialized stream using direct queues, as for output.

With above change, no longer use pty's at all, so stop loading PTY module.

Rearrange recursive setup so view activation happens outside of modifying-buffer-storage.

Fix so with-buffer-bindings doesn't get confused if already wound (can't wait
til I get rid of this whole winding thing!)

make c-n/c-p with numarg at least move to end of range when not enough lines.

API tweaks:

Get rid of *invoke-hook* since not usable in current setup anyway.
Make last-key-event-typed read-only.
Move cocoa-specific part of keysym-defs to cocoa-editor.lisp
Move everything out of hemock-ext, make hemlock-ext be strictly the external support API.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1(in-package "CCL")
2
3(defparameter *hemlock-src-dir-pathname* "ccl:cocoa-ide;hemlock;src;")
4
5(defparameter *hemlock-binary-dir-pathname* "ccl:cocoa-ide;hemlock;bin;openmcl;")
6
7(defparameter *hemlock-binary-file-extension*
8  (pathname-type (compile-file-pathname "foo.lisp")))
9
10(defun hemlock-source-pathname (name)
11  (make-pathname :name name
12                 :type "lisp"
13                 :defaults *hemlock-src-dir-pathname*))
14
15(defun hemlock-binary-pathname (name)
16  (make-pathname :name name
17                 :type *hemlock-binary-file-extension*
18                 :defaults *hemlock-binary-dir-pathname*))
19
20(defun compile-and-load-hemlock-file (name &optional force)
21  (let* ((source-pathname (hemlock-source-pathname name))
22         (binary-pathname (hemlock-binary-pathname name)))
23    (when (or force
24              (not (probe-file binary-pathname))
25              (> (file-write-date source-pathname)
26                 (file-write-date binary-pathname)))
27      (compile-file source-pathname :output-file binary-pathname :verbose t))
28    (load binary-pathname :verbose t)))
29
30
31(defparameter *hemlock-files*
32  '("package"
33
34    "hemlock-ext"                     
35               
36    "decls"                             ;early declarations of functions and stuff
37               
38    "struct"
39    "charmacs"
40    "key-event" 
41    "keysym-defs"
42    "cocoa-hemlock"
43    "rompsite"
44
45    "macros"
46
47    "views"
48    "line"
49    "ring"
50    "vars"
51    "interp"
52    "syntax"
53    "htext1"
54    "buffer" 
55    "htext2"
56    "htext3"
57    "htext4"
58    "files"
59    "search1"
60    "search2"
61    "table"
62    "modeline"
63    "pop-up-stream"
64    "font"
65    "streams"
66    "main"
67    "echo"
68    "echocoms"
69    "command"
70    "indent"
71    ;; moved     "comments"
72    "morecoms"
73    "undo"
74    "killcoms"
75    "searchcoms"
76    "isearchcoms"
77    "filecoms"
78    "doccoms"
79    "fill"
80    "text"
81    "lispmode"
82    "listener"
83    "comments"
84    "icom"
85    "defsyn"
86    "edit-defs"
87    "register"
88    "completion"
89    "symbol-completion"
90    "bindings"
91    "bindings-gb"                       ;Gilbert's bindings
92    )) 
93
94(defun compile-hemlock (&optional force)
95  (with-compilation-unit ()
96    (dolist (name *hemlock-files*)
97      (compile-and-load-hemlock-file name force)))
98  (fasl-concatenate "ccl:cocoa-ide;hemlock"
99                    (mapcar #'hemlock-binary-pathname *hemlock-files*)
100                    :if-exists :supersede)
101  (provide "HEMLOCK")
102  )
103
104
105(provide "COMPILE-HEMLOCK")
Note: See TracBrowser for help on using the repository browser.