;(setq *error-output* (make-buffer-stream (create-new-buffer "*Stack Trace*")))
;(setq si:*trace-on-error* t)
(toggle-trace-on-error)
;(setq *hyperspec-root* "C:\\Program Files\\xyzzy\\HyperSpec")
(add-hook '*lisp-mode-hook*
#'(lambda ()
(make-local-variable 'keyword-hash-table)
(setf keyword-hash-table (load-keyword-file "lisp"))
(make-local-variable 'regexp-keyword-list)
(setf regexp-keyword-list
(compile-regexp-keyword-list
'(("(" t (:color 14))
(")" t (:color 14)))))))
(add-hook '*lisp-interaction-mode-hook*
#'(lambda ()
(make-local-variable 'keyword-hash-table)
(setf keyword-hash-table (load-keyword-file "lisp"))
(make-local-variable 'regexp-keyword-list)
; (with-output-to-temp-buffer ("*ResultLisp*" 2));by nagata
; (switch-to-buffer-other-window (window-buffer (selected-window)) nil) ;nagata
(setf regexp-keyword-list
(compile-regexp-keyword-list
'(("(" t (:color 14))
(")" t (:color 14)))))))
;以下のコードはlispキーワード
;http://hie.s64.xrea.com/xyzzy/note/major_mode.htmlをコピぺ
;コードアシストは"esc tab" と "c-."の2つに割り当てている。
(in-package "editor")
(defvar *lisp-keyword-hash-table* nil)
(defun use-lisp-keyword ()
"キーワード色付け"
(if (null *lisp-keyword-hash-table*)
(setq *lisp-keyword-hash-table*
(load-keyword-file "lisp")))
(when *lisp-keyword-hash-table*
(make-local-variable 'keyword-hash-table)
(setq keyword-hash-table *lisp-keyword-hash-table*)))
(add-hook '*lisp-mode-hook*
#'(lambda ()
(use-lisp-keyword)
(define-key *lisp-mode-map* #\C-. 'lisp-complete-symbol)))
(add-hook '*lisp-interaction-mode-hook*
#'(lambda ()
(use-lisp-keyword)
(define-key *lisp-interaction-mode-map* #\C-. 'lisp-complete-symbol)))
(in-package "user")
;TAB で indent と同時に補完
;http://hie.s64.xrea.com/xyzzy/note/edit.html#lisp-indent-line-and-complete-symboljをコピペ
(defun lisp-indent-line-and-complete-symbol ()
(interactive)
(lisp-indent-line)
(if (looking-at "\\_>")
(lisp-complete-symbol)))
(define-key ed::*lisp-mode-map*
#\TAB 'lisp-indent-line-and-complete-symbol)
(define-key ed::*lisp-interaction-mode-map*
#\TAB 'lisp-indent-line-and-complete-symbol)
;NetInstaller用設定
(require "ni/setup")
;; 自動設定を利用する
(ni-autoload)
;; PROXYを通す場合
;(setq ni::*http-proxy-host* "proxy.host") ; PROXY のホスト
;(setq ni::*http-proxy-port* 8080) ; PROXY のポート
;(load-library "Gates")
;Ruby用設定
(load-library "ruby-mode")
(push '("\\.rb$" . ruby-mode) *auto-mode-alist*)
; インデント量を変える。nilの時はタブを挿入
(setq *ruby-indent-column* 3)
;以下はhttp://plaza.umin.ac.jp/~takeshou/xyzzy/#sec08からのtips
(require "isearch")
(set-default-directory "~")
(require "dabbrev")
;バックアップディレクトリ設定
(require "backup")
(setq *backup-directory* "C:/xyzzy/backup")
(setq *hierarchic-backup-directory* t)
; C-c bでカレントバッファをバイトコンパイルし、ダンプファイルを削除します。
(defun compile-and-delete-dump-file ()
(interactive)
(and (find-buffer "siteinit.l")
(eval-buffer "siteinit.l"))
(byte-compile-file
(concat (si:system-root) "site-lisp/siteinit.l"))
(let ((dumpfile "xyzzy.wxp"))
; (concat (si:system-root) "xyzzy."
; (case (os-platform)
; (whistler "wxp")
; (windows-2000 "w2k")
; (windows-nt "wnt")
; (windows-me "wme")
; (windows-98 "w98")
; (windows-95 "w95")
; (win32s "32s")
; (t "nt")))))
(and (file-exist-p dumpfile)
(delete-file dumpfile))))
(defun other-window-backward (&optional n)
"Select the previous window."
(interactive "p")
(other-window (- (if n n 1))))
;lisp-interaction-mode
(push '("\\.xyzzy$" . lisp-interaction-mode) *auto-mode-alist*)
(push '("\\.l$" . lisp-interaction-mode) *auto-mode-alist*)
;lisp-reference
(require "info-modoki-mode")
(define-key ed::*lisp-mode-map* #\F1 'imm-refer-selection)
(define-key ed::*lisp-interaction-mode-map* #\F1 'imm-refer-selection)
(global-set-key '(#\C-c #\b) 'compile-and-delete-dump-file)
(global-set-key #\C-o 'find-file)
(global-set-key '(#\C-x #\C-o) 'other-window-backward)
;;NetInstallerの公開されているサイトをそうどりしてくるサイト
(defun ni::add-site-from-wiki ()
(interactive)
(let ((s (ni::http-get-url "http://xyzzy.s53.xrea.com/wiki/index.php?cmd=source&page=NetInstaller%2F%C7%DB%C9%DB%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8%B0%EC%CD%F7")))
(ni::load-site-data)
(mapcar
(lambda (x) (ni::site-add x))
(set-difference
(remove-if
'null
(mapcar (lambda (i)
(and (string-match "^:[^|]+|\\(http:.*\\)$" i)
(apply #'concat
(mapcar (lambda (x)
(let ((tmp (split-string x #\;)))
(if (equal (car tmp) "amp")
(apply #'concat "&" (cdr tmp))
(car tmp))))
(split-string (match-string 1) #\&)))))
(let (out)
(while
(ignore-errors
(push (read-line s) out) t))
(nreverse out))))
(mapcar (lambda (x) (cdr (assoc "src" x :test 'equal))) ni::*site-data*)
:test 'equal))) t)
;;ここがキーバインド
(define-key ni::*site-map* #\N 'ni::add-site-from-wiki)
;;;www-mode
(autoload 'www "www/www" t)
(autoload 'www-open-url "www/www" t)
(autoload 'www-open-local-file "www/www" t)
(autoload 'www-open-current-buffer "www/www" t)
;(setq si:*trace-on-error* t)
(toggle-trace-on-error)
;(setq *hyperspec-root* "C:\\Program Files\\xyzzy\\HyperSpec")
(add-hook '*lisp-mode-hook*
#'(lambda ()
(make-local-variable 'keyword-hash-table)
(setf keyword-hash-table (load-keyword-file "lisp"))
(make-local-variable 'regexp-keyword-list)
(setf regexp-keyword-list
(compile-regexp-keyword-list
'(("(" t (:color 14))
(")" t (:color 14)))))))
(add-hook '*lisp-interaction-mode-hook*
#'(lambda ()
(make-local-variable 'keyword-hash-table)
(setf keyword-hash-table (load-keyword-file "lisp"))
(make-local-variable 'regexp-keyword-list)
; (with-output-to-temp-buffer ("*ResultLisp*" 2));by nagata
; (switch-to-buffer-other-window (window-buffer (selected-window)) nil) ;nagata
(setf regexp-keyword-list
(compile-regexp-keyword-list
'(("(" t (:color 14))
(")" t (:color 14)))))))
;以下のコードはlispキーワード
;http://hie.s64.xrea.com/xyzzy/note/major_mode.htmlをコピぺ
;コードアシストは"esc tab" と "c-."の2つに割り当てている。
(in-package "editor")
(defvar *lisp-keyword-hash-table* nil)
(defun use-lisp-keyword ()
"キーワード色付け"
(if (null *lisp-keyword-hash-table*)
(setq *lisp-keyword-hash-table*
(load-keyword-file "lisp")))
(when *lisp-keyword-hash-table*
(make-local-variable 'keyword-hash-table)
(setq keyword-hash-table *lisp-keyword-hash-table*)))
(add-hook '*lisp-mode-hook*
#'(lambda ()
(use-lisp-keyword)
(define-key *lisp-mode-map* #\C-. 'lisp-complete-symbol)))
(add-hook '*lisp-interaction-mode-hook*
#'(lambda ()
(use-lisp-keyword)
(define-key *lisp-interaction-mode-map* #\C-. 'lisp-complete-symbol)))
(in-package "user")
;TAB で indent と同時に補完
;http://hie.s64.xrea.com/xyzzy/note/edit.html#lisp-indent-line-and-complete-symboljをコピペ
(defun lisp-indent-line-and-complete-symbol ()
(interactive)
(lisp-indent-line)
(if (looking-at "\\_>")
(lisp-complete-symbol)))
(define-key ed::*lisp-mode-map*
#\TAB 'lisp-indent-line-and-complete-symbol)
(define-key ed::*lisp-interaction-mode-map*
#\TAB 'lisp-indent-line-and-complete-symbol)
;NetInstaller用設定
(require "ni/setup")
;; 自動設定を利用する
(ni-autoload)
;; PROXYを通す場合
;(setq ni::*http-proxy-host* "proxy.host") ; PROXY のホスト
;(setq ni::*http-proxy-port* 8080) ; PROXY のポート
;(load-library "Gates")
;Ruby用設定
(load-library "ruby-mode")
(push '("\\.rb$" . ruby-mode) *auto-mode-alist*)
; インデント量を変える。nilの時はタブを挿入
(setq *ruby-indent-column* 3)
;以下はhttp://plaza.umin.ac.jp/~takeshou/xyzzy/#sec08からのtips
(require "isearch")
(set-default-directory "~")
(require "dabbrev")
;バックアップディレクトリ設定
(require "backup")
(setq *backup-directory* "C:/xyzzy/backup")
(setq *hierarchic-backup-directory* t)
; C-c bでカレントバッファをバイトコンパイルし、ダンプファイルを削除します。
(defun compile-and-delete-dump-file ()
(interactive)
(and (find-buffer "siteinit.l")
(eval-buffer "siteinit.l"))
(byte-compile-file
(concat (si:system-root) "site-lisp/siteinit.l"))
(let ((dumpfile "xyzzy.wxp"))
; (concat (si:system-root) "xyzzy."
; (case (os-platform)
; (whistler "wxp")
; (windows-2000 "w2k")
; (windows-nt "wnt")
; (windows-me "wme")
; (windows-98 "w98")
; (windows-95 "w95")
; (win32s "32s")
; (t "nt")))))
(and (file-exist-p dumpfile)
(delete-file dumpfile))))
(defun other-window-backward (&optional n)
"Select the previous window."
(interactive "p")
(other-window (- (if n n 1))))
;lisp-interaction-mode
(push '("\\.xyzzy$" . lisp-interaction-mode) *auto-mode-alist*)
(push '("\\.l$" . lisp-interaction-mode) *auto-mode-alist*)
;lisp-reference
(require "info-modoki-mode")
(define-key ed::*lisp-mode-map* #\F1 'imm-refer-selection)
(define-key ed::*lisp-interaction-mode-map* #\F1 'imm-refer-selection)
(global-set-key '(#\C-c #\b) 'compile-and-delete-dump-file)
(global-set-key #\C-o 'find-file)
(global-set-key '(#\C-x #\C-o) 'other-window-backward)
;;NetInstallerの公開されているサイトをそうどりしてくるサイト
(defun ni::add-site-from-wiki ()
(interactive)
(let ((s (ni::http-get-url "http://xyzzy.s53.xrea.com/wiki/index.php?cmd=source&page=NetInstaller%2F%C7%DB%C9%DB%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8%B0%EC%CD%F7")))
(ni::load-site-data)
(mapcar
(lambda (x) (ni::site-add x))
(set-difference
(remove-if
'null
(mapcar (lambda (i)
(and (string-match "^:[^|]+|\\(http:.*\\)$" i)
(apply #'concat
(mapcar (lambda (x)
(let ((tmp (split-string x #\;)))
(if (equal (car tmp) "amp")
(apply #'concat "&" (cdr tmp))
(car tmp))))
(split-string (match-string 1) #\&)))))
(let (out)
(while
(ignore-errors
(push (read-line s) out) t))
(nreverse out))))
(mapcar (lambda (x) (cdr (assoc "src" x :test 'equal))) ni::*site-data*)
:test 'equal))) t)
;;ここがキーバインド
(define-key ni::*site-map* #\N 'ni::add-site-from-wiki)
;;;www-mode
(autoload 'www "www/www" t)
(autoload 'www-open-url "www/www" t)
(autoload 'www-open-local-file "www/www" t)
(autoload 'www-open-current-buffer "www/www" t)