| version 1.3, 2013/09/19 19:57:32 |
version 1.4, 2013/09/21 03:52:05 |
|
|
| ;; |
;; |
| ;; asir-mode.el -- asir mode |
;; asir-mode.el -- asir mode |
| ;; |
;; |
| ;; $OpenXM: OpenXM_contrib2/windows/post-msg-asirgui/asir-mode.el,v 1.2 2013/08/29 17:39:29 ohara Exp $ |
;; $OpenXM: OpenXM_contrib2/windows/post-msg-asirgui/asir-mode.el,v 1.3 2013/09/19 19:57:32 ohara Exp $ |
| |
|
| ;; This program is free software: you can redistribute it and/or modify |
;; This program is free software: you can redistribute it and/or modify |
| ;; it under the terms of the GNU General Public License as published by |
;; it under the terms of the GNU General Public License as published by |
|
|
| (delete-frame asir-cmd-frame))))))) |
(delete-frame asir-cmd-frame))))))) |
| |
|
| (defun asir-execute-current-buffer () |
(defun asir-execute-current-buffer () |
| "Execute the current buffer on asir" |
"Execute current buffer on asir" |
| (interactive) |
(interactive) |
| (let ((exec-path (asir-effective-exec-path))) |
(let ((exec-path (asir-effective-exec-path))) |
| (asir-cmd-load (buffer-file-name)))) |
(asir-cmd-load (buffer-file-name)))) |
| |
|
| (defun asir-execute-region () |
(defun asir-execute-region () |
| "Execute the region on asir" |
"Execute region on asir" |
| (interactive) |
(interactive) |
| (save-excursion |
(save-excursion |
| (if mark-active |
(if mark-active |
|
|
| (kill-buffer temp-buffer) |
(kill-buffer temp-buffer) |
| (asir-cmd-load temp-file))))) |
(asir-cmd-load temp-file))))) |
| |
|
| |
(defun asir-paste-region () |
| |
"Paste region to asir" |
| |
(interactive) |
| |
(if mark-active |
| |
(save-excursion |
| |
(let ((buffer (current-buffer)) |
| |
(start (region-beginning)) |
| |
(end (region-end))) |
| |
(set-buffer asir-cmd-buffer-name) |
| |
(goto-char (point-max)) |
| |
(insert-buffer-substring buffer start end) |
| |
(comint-send-input))))) |
| |
|
| ;;;; Extension for CC-mode. |
;;;; Extension for CC-mode. |
| |
|
| (require 'cc-mode) |
(require 'cc-mode) |
|
|
| ["Terminate Asir" asir-terminate t] |
["Terminate Asir" asir-terminate t] |
| ["Execute Current Buffer on Asir" asir-execute-current-buffer (buffer-file-name)] |
["Execute Current Buffer on Asir" asir-execute-current-buffer (buffer-file-name)] |
| ["Execute Region on Asir" asir-execute-region mark-active] |
["Execute Region on Asir" asir-execute-region mark-active] |
| |
["Paste Region to Asir" asir-paste-region mark-active] |
| ))) |
))) |
| |
|
| (defvar asir-font-lock-extra-types nil |
(defvar asir-font-lock-extra-types nil |
| Line 174 Each list item should be a regexp matching a single id |
|
| Line 188 Each list item should be a regexp matching a single id |
|
| (define-key asir-mode-map (kbd "C-c t") 'asir-terminate) |
(define-key asir-mode-map (kbd "C-c t") 'asir-terminate) |
| (define-key asir-mode-map (kbd "C-c l") 'asir-execute-current-buffer) |
(define-key asir-mode-map (kbd "C-c l") 'asir-execute-current-buffer) |
| (define-key asir-mode-map (kbd "C-c r") 'asir-execute-region) |
(define-key asir-mode-map (kbd "C-c r") 'asir-execute-region) |
| |
(define-key asir-mode-map (kbd "C-c p") 'asir-paste-region) |
| |
|
| (easy-menu-define asir-menu asir-mode-map "asir Mode Commands" |
(easy-menu-define asir-menu asir-mode-map "asir Mode Commands" |
| ;; Can use `asir' as the language for `c-mode-menu' |
;; Can use `asir' as the language for `c-mode-menu' |