逆引きxyzzy lisp(パッケージ) - circleratio/xyzzy GitHub Wiki

目次

パッケージを定義する

下記の packagetest.l をロードパスが通っている場所に置く。

(provide "packagetest")
(defpackage "packagetest"
  (:use "lisp" "editor"))
(in-package "packagetest")
(export '(var-a var-b func))

(defvar var-a 1)
(defvar var-b 2)

(defun func ()
  (print "Test of packagetest"))

パッケージを使用する

変数・関数だけなら次のようにすればよい。

(require "packagetest")
(use-package "packagetest")

(func)

ただし、パッケージがマクロを含む場合は要注意。 明示的に指定しない限り、バイトコンパイル時にはパッケージが読み込まれない(パッケージを読み込むバイトコードが生成されるだけ)ので、パッケージ内で定義されているマクロは展開されない。

この場合は下記のようにすればよい。

(eval-when (:compile-toplevel :load-toplevel :execute)
  (require "packagetest")
  (use-package "packagetest"))
⚠️ **GitHub.com Fallback** ⚠️