(require 'sml-mode) (require 'sml-font) (load "sml-smlnj") (defun sml-feed-line () "Feeds the current line." (interactive) (save-excursion (beginning-of-line) (let ((start (point))) (end-of-line) (sml-send-region start (point))))) (defun sml-feed-paragraph () "Feeds the current paragraph." (interactive) (save-excursion (backward-paragraph) (let ((start (point))) (forward-paragraph) (sml-send-region start (point))))) (defun sml-feed-buffer () "Feeds the current buffer." (interactive) (sml-send-region (point-min) (point-max))) (define-key sml-mode-map (kbd "RET") 'reindent-then-newline-and-indent) (define-key sml-mode-map (kbd "C-c C-r") 'sml) (define-key sml-mode-map (kbd "M-r") 'sml-send-region) (define-key sml-mode-map (kbd "M-l") 'sml-feed-line) (define-key sml-mode-map (kbd "C-c C-p") 'sml-feed-paragraph) (define-key sml-mode-map (kbd "M-C-m") 'sml-feed-buffer) (provide 'my-sml-mode)