source: tags/0.12.0/j/examples/init.lisp

Last change on this file was 11185, checked in by piso, 17 years ago

work in progress

File size: 4.6 KB
Line 
1;;; init.lisp
2;;; $Id: init.lisp,v 1.36 2007-03-04 19:08:11 piso Exp $
3
4;;; ~/.j/init.lisp (if it exists) is loaded automatically when j starts up.
5
6(defun java-version ()
7  (jstatic "getProperty" "java.lang.System" "java.version"))
8
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")
12                :test #'string=)
13    (set-global-property "adjustAscent" -2)
14    (set-global-property "adjustLeading" -2)
15    (reset-display)))
16
17;; Do it now!
18(adjust-appearance)
19
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)))
24    (when (and pathname
25               (string= (directory-namestring pathname)
26                        "/home/peter/gcl/ansi-tests/"))
27      (set-buffer-property "removeTrailingWhitespace" nil))))
28
29(add-hook 'open-file-hook 'my-open-file-hook)
30
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))))
37
38(defun my-buffer-activated-hook (buf)
39  (let ((pathname (buffer-pathname buf)))
40    ;; PATHNAME might be NIL (not all buffers have associated files).
41    (when pathname
42      (let ((type (pathname-type pathname)))
43        ;; We only care about Lisp and Java buffers.
44        (cond ((string= type "el")
45               (set-buffer-property
46                "tagPath"
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))
50                      (tagpath
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
62                              nil))))
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
65                 ;; buffer.
66                 (when tagpath
67                   (set-buffer-property "tagPath" tagpath)))))))))
68
69;; Install our hook function.
70(add-hook 'buffer-activated-hook 'my-buffer-activated-hook)
71
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))))
77
78(add-hook 'after-save-hook 'my-after-save-hook)
79
80(defun reset-incoming-filters ()
81  (jstatic "resetIncomingFilters" "org.armedbear.j.mail.IncomingFilter"))
82
83(defun add-incoming-filter (mailbox pattern action parameter)
84  (jstatic "addIncomingFilter" "org.armedbear.j.mail.IncomingFilter"
85           mailbox pattern action parameter))
86
87(add-hook 'mailbox-mode-hook
88          (lambda ()
89            (reset-incoming-filters)
90            (add-incoming-filter "inbox"
91                                 "~C linux-kernel"
92                                 "move"
93                                 "mail/linux-kernel")
94            (add-incoming-filter "inbox"
95                                 "~C ix.netcom.com"
96                                 "move"
97                                 "mail/netcom")))
98
99(defun maybe-load (pathname)
100  (when (probe-file pathname)
101    (load pathname)))
102
103(maybe-load "/home/peter/.j/key-pressed.lisp")
104(maybe-load "/home/peter/.j/update-check-enabled.lisp")
105
106(maybe-load #+windows "c:/cygwin/home/peter/j/build-abcl.lisp"
107            #-windows "/home/peter/j/build-abcl.lisp")
108
109(map-key-for-mode ")" "electricCloseParen" "Lisp Shell")
110
111(map-key-for-mode "[" "insertParentheses" "Lisp")
112(map-key-for-mode "]" "movePastCloseAndReindent" "Lisp")
Note: See TracBrowser for help on using the repository browser.