casl.el revision bea89873971a7a988b345c84f5b10c7ad6b5d602
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich(defun casl-mode-directory-fn ()
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich "Used to find casl-mode directory"
c10df434f8e16b46ccf703bf2e38b799f7bcb38bHeng Jiang (let ((curdir
c10df434f8e16b46ccf703bf2e38b799f7bcb38bHeng Jiang (or
c10df434f8e16b46ccf703bf2e38b799f7bcb38bHeng Jiang (and load-in-progress (file-name-directory load-file-name))
c10df434f8e16b46ccf703bf2e38b799f7bcb38bHeng Jiang (file-name-directory (buffer-file-name)))))
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich (file-name-directory curdir))
c10df434f8e16b46ccf703bf2e38b799f7bcb38bHeng Jiang)
c10df434f8e16b46ccf703bf2e38b799f7bcb38bHeng Jiang
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich(setq casl-mode-directory (casl-mode-directory-fn))
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich(let ((hets-base-dir (expand-file-name
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich (concat casl-mode-directory "/../.."))))
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich (if (file-executable-p (concat hets-base-dir "/hets"))
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich (setq hets-program (concat hets-base-dir "/hets"))
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich (progn
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich (if (file-executable-p (concat hets-base-dir "/bin/hets"))
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich (setq hets-program (concat hets-base-dir "/bin/hets"))
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich (progn
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich (message (concat "no hets found in " hets-base-dir)))
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich )
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich )
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich )
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich)
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich
bea89873971a7a988b345c84f5b10c7ad6b5d602Klaus Luettich(add-to-list 'load-path casl-mode-directory)
dd7c739b90110aeb5cb3bc91922e95131014d948Heng Jiang;; Files whose extension is .casl or .het will be edited in CASL mode
dd7c739b90110aeb5cb3bc91922e95131014d948Heng Jiang(setq auto-mode-alist
dd7c739b90110aeb5cb3bc91922e95131014d948Heng Jiang (append
dd7c739b90110aeb5cb3bc91922e95131014d948Heng Jiang '(("\\.casl\\'" . casl-mode))
dd7c739b90110aeb5cb3bc91922e95131014d948Heng Jiang '(("\\.het\\'" . casl-mode))
dd7c739b90110aeb5cb3bc91922e95131014d948Heng Jiang auto-mode-alist))
b4fc5ea5cb085d38694cab93648e4d20451cd9dcKlaus Luettich(autoload 'casl-mode "casl-mode" "Entering CASL mode..." t)
b4fc5ea5cb085d38694cab93648e4d20451cd9dcKlaus Luettich(add-hook 'casl-mode-hook 'turn-on-casl-indent)