2 ;;; $Id: init.lisp,v 1.36 2007/03/04 19:08:11 piso Exp $
4 ;;; ~/.j/init.lisp (if it exists) is loaded automatically when j starts up.
7 (jstatic "getProperty" "java.lang.System" "java.version"))
9 (defun adjust-appearance ()
10 (when (member (subseq (java-version) 0 5)
11 '("1.4.0" "1.4.1" "1.4.2" "1.5.0" "1.6.0" "1.7.0")
13 (set-global-property "adjustAscent" -
2)
14 (set-global-property "adjustLeading" -
2)
20 ;; Turn off the remove-trailing-whitespace preference for files in the
21 ;; directory ~/gcl/ansi-tests.
22 (defun my-open-file-hook (buf)
23 (let ((pathname (buffer-pathname buf
)))
25 (string= (directory-namestring pathname
)
26 "/home/peter/gcl/ansi-tests/"))
27 (set-buffer-property "removeTrailingWhitespace" nil
))))
29 (add-hook 'open-file-hook
'my-open-file-hook
)
31 ;; Helper function for MY-BUFFER-ACTIVATED-HOOK.
32 (defun sub-p (namestring dirname
)
33 "Returns T if NAMESTRING is in DIRNAME or one of its subdirectories"
34 (let ((dirname-length (length dirname
)))
35 (and (> (length namestring
) dirname-length
)
36 (string= (subseq namestring
0 dirname-length
) dirname
))))
38 (defun my-buffer-activated-hook (buf)
39 (let ((pathname (buffer-pathname buf
)))
40 ;; PATHNAME might be NIL (not all buffers have associated files).
42 (let ((type (pathname-type pathname
)))
43 ;; We only care about Lisp and Java buffers.
44 (cond ((string= type
"el")
47 "/home/peter/emacs-21.3/lisp:/home/peter/emacs-21.3/lisp/emacs-lisp"))
48 ((member type
'("lisp" "lsp" "cl" "java") :test
'string
=)
49 (let* ((namestring (namestring pathname
))
51 (cond ((sub-p namestring
"/home/peter/cmucl/src/")
52 "/home/peter/cmucl/src/code:/home/peter/cmucl/src/compiler:/home/peter/cmucl/src/pcl")
53 ((sub-p namestring
"/home/peter/cl-bench/")
54 "/home/peter/cl-bench:/home/peter/cl-bench/files:/home/peter/depot/j/src/org/armedbear/lisp")
55 ((sub-p namestring
"/home/peter/gcl/ansi-tests/")
56 "/home/peter/gcl/ansi-tests:/home/peter/depot/j/src/org/armedbear/lisp")
57 ((sub-p namestring
"/home/peter/phemlock")
58 "/home/peter/phemlock/src/core:/home/peter/phemlock/src/user")
59 ((sub-p namestring
"/home/peter/sbcl")
60 "/home/peter/sbcl/src/code:/home/peter/sbcl/src/compiler")
61 (t ; default case: no change
63 ;; If we end up here with a non-NIL TAGPATH, use it to set the
64 ;; buffer-specific value of the TAG-PATH preference for the current
67 (set-buffer-property "tagPath" tagpath
)))))))))
69 ;; Install our hook function.
70 (add-hook 'buffer-activated-hook
'my-buffer-activated-hook
)
72 ;; Call ADJUST-APPEARANCE after saving ~/.j/prefs.
73 (defun my-after-save-hook (buf)
74 (let ((pathname (buffer-pathname buf
)))
75 (when (equal pathname
#p
"/home/peter/.j/prefs")
76 (adjust-appearance))))
78 (add-hook 'after-save-hook
'my-after-save-hook
)
80 (defun reset-incoming-filters ()
81 (jstatic "resetIncomingFilters" "org.armedbear.j.mail.IncomingFilter"))
83 (defun add-incoming-filter (mailbox pattern action parameter
)
84 (jstatic "addIncomingFilter" "org.armedbear.j.mail.IncomingFilter"
85 mailbox pattern action parameter
))
87 (add-hook 'mailbox-mode-hook
89 (reset-incoming-filters)
90 (add-incoming-filter "inbox"
94 (add-incoming-filter "inbox"
99 (defun maybe-load (pathname)
100 (when (probe-file pathname
)
103 (maybe-load "/home/peter/.j/key-pressed.lisp")
104 (maybe-load "/home/peter/.j/update-check-enabled.lisp")
106 (maybe-load #+windows
"c:/cygwin/home/peter/j/build-abcl.lisp"
107 #-windows
"/home/peter/j/build-abcl.lisp")
109 (map-key-for-mode ")" "electricCloseParen" "Lisp Shell")
111 (map-key-for-mode "[" "insertParentheses" "Lisp")
112 (map-key-for-mode "]" "movePastCloseAndReindent" "Lisp")