version 1.12, 2013/11/27 13:39:08 |
version 1.14, 2014/12/01 19:27:01 |
|
|
;; |
;; |
;; asir-mode.el -- asir mode |
;; asir-mode.el -- asir mode |
;; |
;; |
;; $OpenXM: OpenXM_contrib2/windows/post-msg-asirgui/asir-mode.el,v 1.11 2013/11/27 04:40:41 takayama Exp $ |
;; $OpenXM: OpenXM_contrib2/windows/post-msg-asirgui/asir-mode.el,v 1.13 2013/11/27 17:18:07 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 |
|
|
;; The following key binding can be used: |
;; The following key binding can be used: |
;; C-c s Asir starts up in another window. |
;; C-c s Asir starts up in another window. |
;; C-c t Asir terminates. |
;; C-c t Asir terminates. |
|
;; C-c a Abort current calculation. |
;; C-c l The current buffer is loaded to Asir as a file. |
;; C-c l The current buffer is loaded to Asir as a file. |
;; C-c r Selected region is loaded to Asir as a file. |
;; C-c r Selected region is loaded to Asir as a file. |
;; C-c p Selected region is pasted to Asir. |
;; C-c p Selected region is pasted to Asir. |
|
|
(require 'shell) |
(require 'shell) |
|
(require 'cl) |
|
|
;;;; AsirGUI for Windows |
;;;; AsirGUI for Windows |
(defvar asir-exec-path '("~/Desktop/asir/bin" "c:/Program Files/asir/bin" "c:/Program Files (x64)/asir/bin" "c:/asir/bin") |
(defvar asir-exec-path '("~/Desktop/asir/bin" "c:/Program Files/asir/bin" "c:/Program Files (x64)/asir/bin" "c:/asir/bin") |
|
|
(insert-buffer-substring buffer start end) |
(insert-buffer-substring buffer start end) |
(comint-send-input)))))) |
(comint-send-input)))))) |
|
|
|
(defun asir-abort () |
|
"Abort calculation on asir" |
|
(interactive) |
|
(if (eq system-type 'windows-nt) |
|
;; for Windows |
|
(let ((exec-path (asir-effective-exec-path))) |
|
(start-process "asir-proc-cmdasir" nil "cmdasir" "--abort")) |
|
;; for UNIX |
|
(save-excursion |
|
(if (get-buffer asir-cmd-buffer-name) |
|
(progn |
|
(set-buffer asir-cmd-buffer-name) |
|
(comint-kill-input) |
|
(comint-interrupt-subjob) |
|
(goto-char (point-max)) |
|
(insert "t\ny") |
|
(comint-send-input) |
|
))))) |
|
|
;;;; Extension for CC-mode. |
;;;; Extension for CC-mode. |
|
|
(require 'cc-mode) |
(require 'cc-mode) |
|
|
'("----" |
'("----" |
["Start Asir" asir-start t] |
["Start Asir" asir-start t] |
["Terminate Asir" asir-terminate t] |
["Terminate Asir" asir-terminate t] |
|
["Abort calcuration on Asir" asir-abort 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] |
["Paste Region to Asir" asir-paste-region mark-active] |
Line 226 Each list item should be a regexp matching a single id |
|
Line 248 Each list item should be a regexp matching a single id |
|
;; Key binding for asir-mode |
;; Key binding for asir-mode |
(define-key asir-mode-map (kbd "C-c s") 'asir-start) |
(define-key asir-mode-map (kbd "C-c s") 'asir-start) |
(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 a") 'asir-abort) |
(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) |
(define-key asir-mode-map (kbd "C-c p") 'asir-paste-region) |