diff --git a/el/sclang-interp.el b/el/sclang-interp.el index 5360409..600bb77 100644 --- a/el/sclang-interp.el +++ b/el/sclang-interp.el @@ -342,6 +342,13 @@ If EOB-P is non-nil, positions cursor at end of buffer." (sclang-kill) (sclang-release-command-fifo)) +(defun sclang-recompile () + "Recompile class library." + (interactive) + (when (sclang-get-process) + (process-send-string sclang-process "\x18") + )) + ;; ===================================================================== ;; command process ;; ===================================================================== diff --git a/el/sclang-mode.el b/el/sclang-mode.el index 0cf2683..0537e71 100644 --- a/el/sclang-mode.el +++ b/el/sclang-mode.el @@ -74,6 +74,7 @@ '( ["Start Interpreter" sclang-start :included (not (sclang-library-initialized-p))] ["Restart Interpreter" sclang-start :included (sclang-library-initialized-p)] + ["Recompile Class Library" sclang-recompile :included (sclang-library-initialized-p)] ["Stop Interpreter" sclang-stop :included (sclang-get-process)] ["Kill Interpreter" sclang-kill :included (sclang-get-process)] "-" @@ -107,7 +108,8 @@ (defun sclang-fill-mode-map (map) ;; process control - (define-key map "\C-c\C-l" 'sclang-start) + (define-key map "\C-c\C-l" 'sclang-recompile) + (define-key map "\C-c\C-o" 'sclang-start) ;; post buffer control (define-key map "\C-c<" 'sclang-clear-post-buffer) (define-key map "\C-c>" 'sclang-show-post-buffer) diff --git a/sc/extPlatform.sc b/sc/extPlatform.sc index bd9cd18..8e0a173 100644 --- a/sc/extPlatform.sc +++ b/sc/extPlatform.sc @@ -4,4 +4,12 @@ Emacs.evalLispExpression( "(sclang-start)" ); }; } -} \ No newline at end of file +} + ++ LinuxPlatform { + recompile{ + if ( this.hasFeature( \emacs ) ) { + Emacs.evalLispExpression( "(sclang-recompile)" ); + }; + } +}