From 618a2a7e78214d6610b40cd991382a77462a82eb Mon Sep 17 00:00:00 2001 From: "Jose A. Ortega Ruiz" Date: Tue, 23 Dec 2008 00:34:43 +0100 Subject: [PATCH] FUEL: Small fixes. --- misc/fuel/fuel-base.el | 2 +- misc/fuel/fuel-debug.el | 19 +++++++++++-------- misc/fuel/fuel-listener.el | 1 + misc/fuel/fuel-mode.el | 24 +++++++++++++----------- misc/fuel/fuel-syntax.el | 12 +++++------- 5 files changed, 31 insertions(+), 27 deletions(-) diff --git a/misc/fuel/fuel-base.el b/misc/fuel/fuel-base.el index 219f821daa..f168cdf9b8 100644 --- a/misc/fuel/fuel-base.el +++ b/misc/fuel/fuel-base.el @@ -87,7 +87,7 @@ (defun fuel--string-prefix-p (prefix str) (and (>= (length str) (length prefix)) - (string= (substring-no-properties 0 (length prefix) str) + (string= (substring-no-properties str 0 (length prefix)) (substring-no-properties prefix)))) (defun fuel--respecting-message (format &rest format-args) diff --git a/misc/fuel/fuel-debug.el b/misc/fuel/fuel-debug.el index cac4834f3b..9786590514 100644 --- a/misc/fuel/fuel-debug.el +++ b/misc/fuel/fuel-debug.el @@ -92,7 +92,14 @@ (make-variable-buffer-local (defvar fuel-debug--file nil)) -(defun fuel-debug--display-retort (ret &optional success-msg no-pop file) +(defun fuel-debug--prepare-compilation (file msg) + (let ((inhibit-read-only t)) + (with-current-buffer (fuel-debug--buffer) + (erase-buffer) + (insert msg) + (setq fuel-debug--file file)))) + +(defun fuel-debug--display-retort (ret &optional success-msg no-pop) (let ((err (fuel-eval--retort-error ret)) (inhibit-read-only t)) (with-current-buffer (fuel-debug--buffer) @@ -107,12 +114,11 @@ (fuel-debug--display-restarts err) (delete-blank-lines) (newline)) - (let ((hstr (fuel-debug--help-string err file))) + (let ((hstr (fuel-debug--help-string err fuel-debug--file))) (if fuel-debug-show-short-help (insert "-----------\n" hstr "\n") (message "%s" hstr))) (setq fuel-debug--last-ret ret) - (setq fuel-debug--file file) (goto-char (point-max)) (font-lock-fontify-buffer) (when (and err (not no-pop)) (fuel-popup--display)) @@ -219,11 +225,8 @@ (unless (re-search-forward (format "^%s" info) nil t) (error "%s information not available" info)) (message "Retrieving %s info ..." info) - (unless (fuel-debug--display-retort (fuel-eval--send/wait - `(:fuel ((:factor ,info)))) - "" - nil - (fuel-debug--buffer-file)) + (unless (fuel-debug--display-retort + (fuel-eval--send/wait `(:fuel ((:factor ,info)))) "") (error "Sorry, no %s info available" info)))) diff --git a/misc/fuel/fuel-listener.el b/misc/fuel/fuel-listener.el index 2c3e46695d..eb159eb56e 100644 --- a/misc/fuel/fuel-listener.el +++ b/misc/fuel/fuel-listener.el @@ -105,6 +105,7 @@ buffer." (defun fuel-listener-nuke () (interactive) + (comint-redirect-cleanup) (fuel-con--setup-connection fuel-listener--buffer)) diff --git a/misc/fuel/fuel-mode.el b/misc/fuel/fuel-mode.el index 608072c87a..1b46b2bc91 100644 --- a/misc/fuel/fuel-mode.el +++ b/misc/fuel/fuel-mode.el @@ -68,15 +68,14 @@ With prefix argument, ask for the file to run." (buffer (cdr f/b))) (when buffer (with-current-buffer buffer - (message "Compiling %s ..." file) - (fuel-eval--send `(:fuel (,file fuel-run-file)) - `(lambda (r) (fuel--run-file-cont r ,file))))))) + (let ((msg (format "Compiling %s ..." file))) + (fuel-debug--prepare-compilation file msg) + (message msg) + (fuel-eval--send `(:fuel (,file fuel-run-file)) + `(lambda (r) (fuel--run-file-cont r ,file)))))))) (defun fuel--run-file-cont (ret file) - (if (fuel-debug--display-retort ret - (format "%s successfully compiled" file) - nil - file) + (if (fuel-debug--display-retort ret (format "%s successfully compiled" file)) (message "Compiling %s ... OK!" file) (message ""))) @@ -86,17 +85,20 @@ With prefix argument, ask for the file to run." Unless called with a prefix, switches to the compilation results buffer in case of errors." (interactive "r\nP") - (let* ((lines (split-string (buffer-substring-no-properties begin end) - "[\f\n\r\v]+" t)) + (let* ((rstr (buffer-substring begin end)) + (lines (split-string (substring-no-properties rstr) + "[\f\n\r\v]+" + t)) (cmd `(:fuel (,(mapcar (lambda (l) `(:factor ,l)) lines)))) (cv (fuel-syntax--current-vocab))) + (fuel-debug--prepare-compilation (buffer-file-name) + (format "Evaluating:\n\n%s" rstr)) (fuel-debug--display-retort (fuel-eval--send/wait cmd 10000) (format "%s%s" (if cv (format "IN: %s " cv) "") (fuel--shorten-region begin end 70)) - arg - (buffer-file-name)))) + arg))) (defun fuel-eval-extended-region (begin end &optional arg) "Sends region, extended outwards to nearest definition, diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index d78fbf36c2..04cf0e615c 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -156,18 +156,16 @@ table)) -(defconst fuel-syntax--skw-obrx - (format "\\_<%s\\({\\)\\_>" (regexp-opt fuel-syntax--bracers))) - (defconst fuel-syntax--syntactic-keywords - `(("\\(#!\\) .*\\(\n\\)" (1 "<") (2 ">")) - ("\\( \\|^\\)\\(!\\) .*\\(\n\\)" (2 "<") (3 ">")) - ("\\(!(\\) .* \\()\\)" (1 "<") (2 ">")) + `(("\\_<\\(#?!\\) .*\\(\n\\)" (1 "<") (2 ">")) + ("\\_<\\(#?!\\)\\(\n\\)" (1 "<") (2 ">")) + ("\\_<\\(!(\\) .* \\()\\)" (1 "<") (2 ">")) ("\\(\\[\\)\\(let\\|wlet\\|let\\*\\)\\( \\|$\\)" (1 "(]")) ("\\(\\[\\)\\(|\\) +[^|]* \\(|\\)" (1 "(]") (2 "(|") (3 ")|")) (" \\(|\\) " (1 "(|")) (" \\(|\\)$" (1 ")")) - (,fuel-syntax--skw-obrx (1 "(}")) + ("CHAR: \\(\"\\)\\( \\|$\\)" (1 "w")) + (,(format "\\_<%s\\({\\)\\_>" (regexp-opt fuel-syntax--bracers)) (1 "(}")) ("\\_<\\({\\)\\_>" (1 "(}")) ("\\_<\\(}\\)\\_>" (1 "){")) ("\\_<\\((\\)\\_>" (1 "()"))