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/6] 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/6] 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/6] 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/6] 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 From 923bd07ad45c3958c7eac35d252e752c65d2901a Mon Sep 17 00:00:00 2001 From: "Jose A. Ortega Ruiz" Date: Sat, 17 Jan 2009 05:35:16 +0100 Subject: [PATCH 5/6] FUEL: Kind of subtle bug in C-cC-eu caused by syntax table tweakings. --- misc/fuel/fuel-debug-uses.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/misc/fuel/fuel-debug-uses.el b/misc/fuel/fuel-debug-uses.el index af4f2ae60b..4842f960d1 100644 --- a/misc/fuel/fuel-debug-uses.el +++ b/misc/fuel/fuel-debug-uses.el @@ -47,7 +47,8 @@ (substring-no-properties (thing-at-point 'line))))) (when in-usings (setq line (concat "! " line))) (push line lines)) - (when (and in-usings (looking-at ".*\\_<;\\_>")) (setq in-usings nil)) + (when (and in-usings (looking-at "\\(^\\|.* \\);\\( \\|\n\\)")) + (setq in-usings nil)) (forward-line)) (reverse lines)))))) From c9829a1c089bf218764158ae9b7de36a5b593f1f Mon Sep 17 00:00:00 2001 From: "Jose A. Ortega Ruiz" Date: Sat, 17 Jan 2009 23:11:00 +0100 Subject: [PATCH 6/6] FUEL: Better font lock for empty USING: ; form (semicolon as parsing word). --- misc/fuel/fuel-font-lock.el | 2 ++ misc/fuel/fuel-syntax.el | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el index 4b5520b8f9..fe20024fcd 100644 --- a/misc/fuel/fuel-font-lock.el +++ b/misc/fuel/fuel-font-lock.el @@ -82,6 +82,8 @@ ((looking-at "\\(TUPLE\\|SYMBOLS\\|VARS\\): ") 'factor-font-lock-symbol) (t 'default)))) + ((char-equal (char-after (nth 8 state)) ?U) + 'factor-font-lock-parsing-word) (t 'factor-font-lock-comment))) (defconst fuel-font-lock--font-lock-keywords diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index ca247cf8f0..8d2948af58 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -249,10 +249,10 @@ ("\\_<<\\(\"\\)\\_>" (1 "\"")) ("\\_<\\(\"\\)>\\_>" (1 "\"")) ;; Multiline constructs - ("\\_b")) + ("\\_<\\(U\\)SING: \\(;\\)" (1 "b")) ("\\_\\)" (2 "\\)" (2 "" (1 ">b")) ;; Let and lambda: ("\\_<\\(!(\\) .* \\()\\)" (1 "<") (2 ">"))