diff --git a/extra/fuel/fuel.factor b/extra/fuel/fuel.factor index 35ca438f31..7f6af22df8 100644 --- a/extra/fuel/fuel.factor +++ b/extra/fuel/fuel.factor @@ -99,9 +99,7 @@ M: source-file fuel-pprint path>> fuel-pprint ; clone fuel-eval-result set-global ; inline : fuel-retort ( -- ) - error get - fuel-eval-result get-global - fuel-eval-output get-global + error get fuel-eval-result get-global fuel-eval-output get-global 3array fuel-pprint flush nl "<~FUEL~>" write nl flush ; : fuel-forget-error ( -- ) f error set-global ; inline diff --git a/misc/fuel/fuel-autodoc.el b/misc/fuel/fuel-autodoc.el index 96c47d2c69..a1c1d19b98 100644 --- a/misc/fuel/fuel-autodoc.el +++ b/misc/fuel/fuel-autodoc.el @@ -15,6 +15,7 @@ ;;; Code: (require 'fuel-eval) +(require 'fuel-font-lock) (require 'fuel-syntax) (require 'fuel-base) @@ -36,6 +37,7 @@ (defvar fuel-autodoc--font-lock-buffer (let ((buffer (get-buffer-create " *fuel help minibuffer messages*"))) (set-buffer buffer) + (set-syntax-table fuel-syntax--syntax-table) (fuel-font-lock--font-lock-setup) buffer)) @@ -51,8 +53,8 @@ (fuel-log--inhibit-p t)) (when word (let* ((cmd (if (fuel-syntax--in-using) - `(:fuel* (,word fuel-vocab-summary) t t) - `(:fuel* (((:quote ,word) synopsis :get)) t))) + `(:fuel* (,word fuel-vocab-summary) :in t) + `(:fuel* (((:quote ,word) synopsis :get)) :in))) (ret (fuel-eval--send/wait cmd 20)) (res (fuel-eval--retort-result ret))) (when (and ret (not (fuel-eval--retort-error ret)) (stringp res)) diff --git a/misc/fuel/fuel-eval.el b/misc/fuel/fuel-eval.el index 204e794925..078a7005f8 100644 --- a/misc/fuel/fuel-eval.el +++ b/misc/fuel/fuel-eval.el @@ -67,7 +67,7 @@ (cons :array (mapcar 'factor lst))) (defsubst factor--fuel-in (in) - (cond ((null in) :in) + (cond ((or (eq in :in) (null in)) :in) ((eq in 'f) 'f) ((eq in 't) "fuel-scratchpad") ((stringp in) in) diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index eeca09865d..8234f9fcc8 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -157,19 +157,26 @@ table)) (defconst fuel-syntax--syntactic-keywords - `(("\\_<\\(#?!\\) .*\\(\n\\)" (1 "<") (2 ">")) - ("\\_<\\(#?!\\)\\(\n\\)" (1 "<") (2 ">")) + `(;; Comments: + ("\\_<\\(#?!\\) .*\\(\n\\|$\\)" (1 "<") (2 ">")) + ("\\_<\\(#?!\\)\\(\n\\|$\\)" (1 "<") (2 ">")) + ;; CHARs: + ("CHAR: \\(.\\)\\( \\|$\\)" (1 "w")) + ;; Let and lambda: ("\\_<\\(!(\\) .* \\()\\)" (1 "<") (2 ">")) ("\\(\\[\\)\\(let\\|wlet\\|let\\*\\)\\( \\|$\\)" (1 "(]")) ("\\(\\[\\)\\(|\\) +[^|]* \\(|\\)" (1 "(]") (2 "(|") (3 ")|")) (" \\(|\\) " (1 "(|")) (" \\(|\\)$" (1 ")")) - ("CHAR: \\(\"\\)\\( \\|$\\)" (1 "w")) + ;; Opening brace words: (,(format "\\_<%s\\({\\)\\_>" (regexp-opt fuel-syntax--bracers)) (1 "(}")) ("\\_<\\({\\)\\_>" (1 "(}")) ("\\_<\\(}\\)\\_>" (1 "){")) + ;; Parenthesis: ("\\_<\\((\\)\\_>" (1 "()")) ("\\_<\\()\\)\\_>" (1 ")(")) + ;; Quotations: + ("\\_<'\\(\\[\\)\\_>" (1 "(]")) ; fried ("\\_<\\(\\[\\)\\_>" (1 "(]")) ("\\_<\\(\\]\\)\\_>" (1 ")["))))