xyzzy
Version 0.01
;;; -*- Mode: Lisp; Package: EDITOR -*-
;;;
;;; This file is part of xyzzy.
;;;
(provide "wsf-mode")
(in-package "editor")
(export '(wsf-mode wsf-insert-template
wsf-insert-object-tag wsf-insert-reference-tag
wsf-execute-script *wsf-template*
))
(defvar-local wsf-mode nil)
(defvar *wsf-mode-map*
(let ((keymap (make-sparse-keymap)))
(define-key keymap '(#\C-/ #\C-t) 'wsf-insert-template)
(define-key keymap '(#\C-/ #\C-o) 'wsf-insert-object-tag)
(define-key keymap '(#\C-/ #\C-r) 'wsf-insert-reference-tag)
(define-key keymap '(#\C-/ #\C-x) 'wsf-execute-script)
(define-key keymap '(#\C-/ #\C-h) 'wsf-insert-runtime-tag)
(define-key keymap '(#\C-/ #\C-d) 'wsf-insert-description-tag)
keymap))
(defvar *wsf-template* nil)
(setq *wsf-template*
"<?xml version=\"1.0\" encoding=\"Shift_JIS\" standalone=\"yes\"?>
<package>
\t<job>
\t\t<?job debug=\"true\"?>
\t\t<script language=\"JScript\"><![CDATA[
\t\t\tWScript.Echo(\"Not Implementation\");
\t\t]]></script>
\t</job>
</package>
")
;;; wsf テンプレートの挿入
(defun wsf-insert-template nil
(interactive)
(insert *wsf-template*))
;;; object-tagの挿入
(defun wsf-insert-object-tag (id classId)
(interactive "sID: \nsClassID: ")
(if (and (equal id "")
(equal classId ""))
(message-box "パラメータを入力してください")
(insert (format nil "\t\t<object id=\"~A\" classid=\"~A\" />\n" id classId))))
;;; reference-tagの挿入
(defun wsf-insert-reference-tag (id classId)
(interactive "sID: \nsClassID: ")
(if (and (equal id "")
(equal classId ""))
(message-box "パラメータを入力してください")
(insert (format nil "\t\t<reference id=\"~A\" classid=\"~A\" />\n" id classId))))
;;; runtime-tagの挿入
(defun wsf-insert-runtime-tag nil
(interactive)
(insert (format nil "\t\t<runtime>\n\n\t\t</runtime>")))
;;; description-tagの挿入
(defun wsf-insert-description-tag (description)
(interactive "sDescription: ")
(insert (format nil "\t\t\t<description>~A</description>\n" description)))
;;; example-tagの挿入
(defun wsf-insert-example-tag (example)
(interactive "sexample: ")
(insert (format nil "\t\t\t<example>~A</example>\n" example)))
;;; scriptの実行
(defun wsf-execute-script nil
(interactive)
(if (setq file-name (get-buffer-file-name (selected-buffer)))
(call-process (format nil "wscript ~A" file-name))
(message-box "ファイルを保存してから行ってください")))
(defun wsf-mode (&optional (arg nil sv))
(interactive "p")
(toggle-mode 'wsf-mode arg sv)
(if wsf-mode
(set-minor-mode-map *wsf-mode-map*)
(unset-minor-mode-map *wsf-mode-map*))
(update-mode-line t))
(pushnew '(wsf-mode . "wsf") *minor-mode-alist* :key #'car)
(global-set-key '(#\C-/ #\C-t) 'wsf-insert-template)
(global-set-key '(#\C-/ #\C-o) 'wsf-insert-object-tag)
(global-set-key '(#\C-/ #\C-r) 'wsf-insert-reference-tag)
(global-set-key '(#\C-/ #\C-x) 'wsf-execute-script)
(global-set-key '(#\C-/ #\C-h) 'wsf-insert-runtime-tag)
(global-set-key '(#\C-/ #\C-d) 'wsf-insert-description-tag)
edit
最新の20件
2020-11-14
2011-02-12
2006-09-22
2006-05-08
2006-04-22
2006-04-21
2006-04-17
2006-04-05
2006-03-23
2006-03-22
2006-03-21
2006-03-15
2006-01-26
2006-01-23
2005-10-21
2005-10-17