From 037ba93c1ce06c4fc4f5f21488d11426c34c6dc3 Mon Sep 17 00:00:00 2001 From: "Jose A. Ortega Ruiz" Date: Fri, 16 Jan 2009 22:07:14 +0100 Subject: [PATCH 1/4] FUEL: Correctly detect vocabs when M-. in a USING:/USE: form. --- misc/fuel/fuel-edit.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/misc/fuel/fuel-edit.el b/misc/fuel/fuel-edit.el index 20e1f1eb01..b0756826f1 100644 --- a/misc/fuel/fuel-edit.el +++ b/misc/fuel/fuel-edit.el @@ -33,6 +33,11 @@ ;;; Auxiliar functions: +(defun fuel-edit--looking-at-vocab () + (save-excursion + (fuel-syntax--beginning-of-defun) + (looking-at "USING:\\|USE:"))) + (defun fuel-edit--try-edit (ret) (let* ((err (fuel-eval--retort-error ret)) (loc (fuel-eval--retort-result ret))) @@ -92,9 +97,9 @@ With prefix, asks for the word to edit." (fuel-completion--read-word "Edit word: "))) (cmd `(:fuel* ((:quote ,word) fuel-get-edit-location))) (marker (and (not arg) (point-marker)))) - (condition-case nil - (fuel-edit--try-edit (fuel-eval--send/wait cmd)) - (error (fuel-edit-vocabulary nil word))) + (if (and (not arg) (fuel-edit--looking-at-vocab)) + (fuel-edit-vocabulary nil word) + (fuel-edit--try-edit (fuel-eval--send/wait cmd))) (when marker (ring-insert find-tag-marker-ring marker)))) (defun fuel-edit-word-doc-at-point (&optional arg word) From 8d18fc10aa98fe8553d29f8b9276c98218ba56ef Mon Sep 17 00:00:00 2001 From: "Jose A. Ortega Ruiz" Date: Fri, 16 Jan 2009 22:20:40 +0100 Subject: [PATCH 2/4] FUEL: C: font lock fix. --- misc/fuel/fuel-font-lock.el | 3 +++ misc/fuel/fuel-syntax.el | 3 +++ 2 files changed, 6 insertions(+) diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el index 10561ded68..1dee0326ae 100644 --- a/misc/fuel/fuel-font-lock.el +++ b/misc/fuel/fuel-font-lock.el @@ -88,6 +88,9 @@ `((,fuel-syntax--stack-effect-regex . 'factor-font-lock-stack-effect) (,fuel-syntax--brace-words-regex 1 'factor-font-lock-parsing-word) (,fuel-syntax--vocab-ref-regexp 2 'factor-font-lock-vocabulary-name) + (,fuel-syntax--constructor-regex (1 'factor-font-lock-word) + (2 'factor-font-lock-type-name) + (3 'factor-font-lock-invalid-syntax nil t)) (,fuel-syntax--declaration-words-regex . 'factor-font-lock-declaration) (,fuel-syntax--word-definition-regex 2 'factor-font-lock-word) (,fuel-syntax--alias-definition-regex (1 'factor-font-lock-word) diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index 4112e3507d..c2b7391383 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -208,6 +208,9 @@ (format ":[^ ]* [^ ]+\\(%s\\)*" fuel-syntax--stack-effect-regex) "M[^:]*: [^ ]+ [^ ]+")) +(defconst fuel-syntax--constructor-regex + "\\_ Date: Sat, 17 Jan 2009 00:17:02 +0100 Subject: [PATCH 3/4] FUEL: TYPEDEF: font lock. --- misc/fuel/fuel-font-lock.el | 3 +++ misc/fuel/fuel-syntax.el | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el index 1dee0326ae..2d1b5b2de4 100644 --- a/misc/fuel/fuel-font-lock.el +++ b/misc/fuel/fuel-font-lock.el @@ -91,6 +91,9 @@ (,fuel-syntax--constructor-regex (1 'factor-font-lock-word) (2 'factor-font-lock-type-name) (3 'factor-font-lock-invalid-syntax nil t)) + (,fuel-syntax--typedef-regex (1 'factor-font-lock-type-name) + (2 'factor-font-lock-type-name) + (3 'factor-font-lock-invalid-syntax nil t)) (,fuel-syntax--declaration-words-regex . 'factor-font-lock-declaration) (,fuel-syntax--word-definition-regex 2 'factor-font-lock-word) (,fuel-syntax--alias-definition-regex (1 'factor-font-lock-word) diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index c2b7391383..2e7ca493ec 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -187,6 +187,7 @@ "QUALIFIED-WITH:" "QUALIFIED:" "RENAME:" "SINGLETON:" "SLOT:" "SYMBOL:" + "TYPEDEF:" "USE:" "VAR:"))) @@ -211,6 +212,9 @@ (defconst fuel-syntax--constructor-regex "\\_ Date: Sat, 17 Jan 2009 00:33:14 +0100 Subject: [PATCH 4/4] FUEL: RENAME: font lock. --- misc/fuel/fuel-font-lock.el | 4 ++++ misc/fuel/fuel-syntax.el | 3 +++ 2 files changed, 7 insertions(+) diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el index 2d1b5b2de4..4b5520b8f9 100644 --- a/misc/fuel/fuel-font-lock.el +++ b/misc/fuel/fuel-font-lock.el @@ -94,6 +94,10 @@ (,fuel-syntax--typedef-regex (1 'factor-font-lock-type-name) (2 'factor-font-lock-type-name) (3 'factor-font-lock-invalid-syntax nil t)) + (,fuel-syntax--rename-regex (1 'factor-font-lock-word) + (2 'factor-font-lock-vocabulary-name) + (3 'factor-font-lock-word) + (4 'factor-font-lock-invalid-syntax nil t)) (,fuel-syntax--declaration-words-regex . 'factor-font-lock-declaration) (,fuel-syntax--word-definition-regex 2 'factor-font-lock-word) (,fuel-syntax--alias-definition-regex (1 'factor-font-lock-word) diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index 2e7ca493ec..ca247cf8f0 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -215,6 +215,9 @@ (defconst fuel-syntax--typedef-regex "\\_ +\\(\\w+\\)\\( .*\\)?$") + ;;; Factor syntax table