FUEL: Small fixes.

db4
Jose A. Ortega Ruiz 2008-12-23 00:34:43 +01:00
parent b78df6148f
commit 618a2a7e78
5 changed files with 31 additions and 27 deletions

View File

@ -87,7 +87,7 @@
(defun fuel--string-prefix-p (prefix str) (defun fuel--string-prefix-p (prefix str)
(and (>= (length str) (length prefix)) (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)))) (substring-no-properties prefix))))
(defun fuel--respecting-message (format &rest format-args) (defun fuel--respecting-message (format &rest format-args)

View File

@ -92,7 +92,14 @@
(make-variable-buffer-local (make-variable-buffer-local
(defvar fuel-debug--file nil)) (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)) (let ((err (fuel-eval--retort-error ret))
(inhibit-read-only t)) (inhibit-read-only t))
(with-current-buffer (fuel-debug--buffer) (with-current-buffer (fuel-debug--buffer)
@ -107,12 +114,11 @@
(fuel-debug--display-restarts err) (fuel-debug--display-restarts err)
(delete-blank-lines) (delete-blank-lines)
(newline)) (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 (if fuel-debug-show-short-help
(insert "-----------\n" hstr "\n") (insert "-----------\n" hstr "\n")
(message "%s" hstr))) (message "%s" hstr)))
(setq fuel-debug--last-ret ret) (setq fuel-debug--last-ret ret)
(setq fuel-debug--file file)
(goto-char (point-max)) (goto-char (point-max))
(font-lock-fontify-buffer) (font-lock-fontify-buffer)
(when (and err (not no-pop)) (fuel-popup--display)) (when (and err (not no-pop)) (fuel-popup--display))
@ -219,11 +225,8 @@
(unless (re-search-forward (format "^%s" info) nil t) (unless (re-search-forward (format "^%s" info) nil t)
(error "%s information not available" info)) (error "%s information not available" info))
(message "Retrieving %s info ..." info) (message "Retrieving %s info ..." info)
(unless (fuel-debug--display-retort (fuel-eval--send/wait (unless (fuel-debug--display-retort
`(:fuel ((:factor ,info)))) (fuel-eval--send/wait `(:fuel ((:factor ,info)))) "")
""
nil
(fuel-debug--buffer-file))
(error "Sorry, no %s info available" info)))) (error "Sorry, no %s info available" info))))

View File

@ -105,6 +105,7 @@ buffer."
(defun fuel-listener-nuke () (defun fuel-listener-nuke ()
(interactive) (interactive)
(comint-redirect-cleanup)
(fuel-con--setup-connection fuel-listener--buffer)) (fuel-con--setup-connection fuel-listener--buffer))

View File

@ -68,15 +68,14 @@ With prefix argument, ask for the file to run."
(buffer (cdr f/b))) (buffer (cdr f/b)))
(when buffer (when buffer
(with-current-buffer buffer (with-current-buffer buffer
(message "Compiling %s ..." file) (let ((msg (format "Compiling %s ..." file)))
(fuel-eval--send `(:fuel (,file fuel-run-file)) (fuel-debug--prepare-compilation file msg)
`(lambda (r) (fuel--run-file-cont r ,file))))))) (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) (defun fuel--run-file-cont (ret file)
(if (fuel-debug--display-retort ret (if (fuel-debug--display-retort ret (format "%s successfully compiled" file))
(format "%s successfully compiled" file)
nil
file)
(message "Compiling %s ... OK!" file) (message "Compiling %s ... OK!" file)
(message ""))) (message "")))
@ -86,17 +85,20 @@ With prefix argument, ask for the file to run."
Unless called with a prefix, switches to the compilation results Unless called with a prefix, switches to the compilation results
buffer in case of errors." buffer in case of errors."
(interactive "r\nP") (interactive "r\nP")
(let* ((lines (split-string (buffer-substring-no-properties begin end) (let* ((rstr (buffer-substring begin end))
"[\f\n\r\v]+" t)) (lines (split-string (substring-no-properties rstr)
"[\f\n\r\v]+"
t))
(cmd `(:fuel (,(mapcar (lambda (l) `(:factor ,l)) lines)))) (cmd `(:fuel (,(mapcar (lambda (l) `(:factor ,l)) lines))))
(cv (fuel-syntax--current-vocab))) (cv (fuel-syntax--current-vocab)))
(fuel-debug--prepare-compilation (buffer-file-name)
(format "Evaluating:\n\n%s" rstr))
(fuel-debug--display-retort (fuel-debug--display-retort
(fuel-eval--send/wait cmd 10000) (fuel-eval--send/wait cmd 10000)
(format "%s%s" (format "%s%s"
(if cv (format "IN: %s " cv) "") (if cv (format "IN: %s " cv) "")
(fuel--shorten-region begin end 70)) (fuel--shorten-region begin end 70))
arg arg)))
(buffer-file-name))))
(defun fuel-eval-extended-region (begin end &optional arg) (defun fuel-eval-extended-region (begin end &optional arg)
"Sends region, extended outwards to nearest definition, "Sends region, extended outwards to nearest definition,

View File

@ -156,18 +156,16 @@
table)) table))
(defconst fuel-syntax--skw-obrx
(format "\\_<%s\\({\\)\\_>" (regexp-opt fuel-syntax--bracers)))
(defconst fuel-syntax--syntactic-keywords (defconst fuel-syntax--syntactic-keywords
`(("\\(#!\\) .*\\(\n\\)" (1 "<") (2 ">")) `(("\\_<\\(#?!\\) .*\\(\n\\)" (1 "<") (2 ">"))
("\\( \\|^\\)\\(!\\) .*\\(\n\\)" (2 "<") (3 ">")) ("\\_<\\(#?!\\)\\(\n\\)" (1 "<") (2 ">"))
("\\(!(\\) .* \\()\\)" (1 "<") (2 ">")) ("\\_<\\(!(\\) .* \\()\\)" (1 "<") (2 ">"))
("\\(\\[\\)\\(let\\|wlet\\|let\\*\\)\\( \\|$\\)" (1 "(]")) ("\\(\\[\\)\\(let\\|wlet\\|let\\*\\)\\( \\|$\\)" (1 "(]"))
("\\(\\[\\)\\(|\\) +[^|]* \\(|\\)" (1 "(]") (2 "(|") (3 ")|")) ("\\(\\[\\)\\(|\\) +[^|]* \\(|\\)" (1 "(]") (2 "(|") (3 ")|"))
(" \\(|\\) " (1 "(|")) (" \\(|\\) " (1 "(|"))
(" \\(|\\)$" (1 ")")) (" \\(|\\)$" (1 ")"))
(,fuel-syntax--skw-obrx (1 "(}")) ("CHAR: \\(\"\\)\\( \\|$\\)" (1 "w"))
(,(format "\\_<%s\\({\\)\\_>" (regexp-opt fuel-syntax--bracers)) (1 "(}"))
("\\_<\\({\\)\\_>" (1 "(}")) ("\\_<\\({\\)\\_>" (1 "(}"))
("\\_<\\(}\\)\\_>" (1 "){")) ("\\_<\\(}\\)\\_>" (1 "){"))
("\\_<\\((\\)\\_>" (1 "()")) ("\\_<\\((\\)\\_>" (1 "()"))