From 9e2fab61ef4bd0144f66d335d6ca546131e676f9 Mon Sep 17 00:00:00 2001 From: Dmitry Shubin Date: Thu, 13 May 2010 20:20:16 +0400 Subject: [PATCH 1/3] FUEL: syntax highlighting for DESTRUCTOR: and C-GLOBAL: --- misc/fuel/fuel-font-lock.el | 3 +++ misc/fuel/fuel-syntax.el | 15 +++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el index 8d3990fcd8..b9bd175dc5 100644 --- a/misc/fuel/fuel-font-lock.el +++ b/misc/fuel/fuel-font-lock.el @@ -111,6 +111,9 @@ (,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--c-global-regex (1 'factor-font-lock-type-name) + (2 'factor-font-lock-word) + (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) diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index 80010235b1..b2a8a57345 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -47,9 +47,9 @@ '(":" "::" ";" "&:" "<<" ">" "ABOUT:" "AFTER:" "ALIAS:" "ALIEN:" "ARTICLE:" "B" "BEFORE:" "BIN:" - "C:" "CALLBACK:" "ENUM:" "C-TYPE:" "CHAR:" "COM-INTERFACE:" "CONSTANT:" "CONSULT:" "call-next-method" - "DEFER:" - "EBNF:" ";EBNF" "ERROR:" "EXCLUDE:" + "C:" "CALLBACK:" "C-GLOBAL:" "C-TYPE:" "CHAR:" "COM-INTERFACE:" "CONSTANT:" "CONSULT:" "call-next-method" + "DEFER:" "DESTRUCTOR:" + "EBNF:" ";EBNF" "ENUM:" "ERROR:" "EXCLUDE:" "f" "FORGET:" "FROM:" "FUNCTION:" "GAME:" "GENERIC#" "GENERIC:" "GLSL-SHADER:" "GLSL-PROGRAM:" @@ -197,10 +197,10 @@ (defconst fuel-syntax--single-liner-regex (regexp-opt '("ABOUT:" "ALIAS:" - "CONSTANT:" "C:" "C-TYPE:" - "DEFER:" + "CONSTANT:" "C:" "C-GLOBAL:" "C-TYPE:" + "DEFER:" "DESTRUCTOR:" "FORGET:" - "GAME:" "GENERIC:" "GENERIC#" "GLSL-PROGRAM:" + "GAME:" "GENERIC:" "GENERIC#" "GLSL-PROGRAM:" "HEX:" "HOOK:" "IN:" "INSTANCE:" "LIBRARY:" @@ -242,6 +242,9 @@ (defconst fuel-syntax--typedef-regex "\\_ +\\(\\w+\\)\\( .*\\)?$") From d24ffe8346e28fe21695ca8c74408079dd325a0a Mon Sep 17 00:00:00 2001 From: Dmitry Shubin Date: Thu, 13 May 2010 22:50:26 +0400 Subject: [PATCH 2/3] FUEL: improve syntax highlighting: C-TYPE:, FUNCTION-ALIAS: and more --- misc/fuel/fuel-font-lock.el | 5 +++++ misc/fuel/fuel-syntax.el | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el index b9bd175dc5..8ccf50d0e0 100644 --- a/misc/fuel/fuel-font-lock.el +++ b/misc/fuel/fuel-font-lock.el @@ -101,6 +101,9 @@ (,fuel-syntax--brace-words-regex 1 'factor-font-lock-parsing-word) (,fuel-syntax--alien-function-regex (1 'factor-font-lock-type-name) (2 'factor-font-lock-word)) + (,fuel-syntax--alien-function-alias-regex (1 'factor-font-lock-word) + (2 'factor-font-lock-type-name) + (3 'factor-font-lock-word)) (,fuel-syntax--alien-callback-regex (1 'factor-font-lock-type-name) (2 'factor-font-lock-word)) (,fuel-syntax--vocab-ref-regexp 2 'factor-font-lock-vocabulary-name) @@ -114,6 +117,8 @@ (,fuel-syntax--c-global-regex (1 'factor-font-lock-type-name) (2 'factor-font-lock-word) (3 'factor-font-lock-invalid-syntax nil t)) + (,fuel-syntax--c-type-regex (1 'factor-font-lock-type-name) + (2 '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) diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index b2a8a57345..0d77d9cc13 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -50,7 +50,7 @@ "C:" "CALLBACK:" "C-GLOBAL:" "C-TYPE:" "CHAR:" "COM-INTERFACE:" "CONSTANT:" "CONSULT:" "call-next-method" "DEFER:" "DESTRUCTOR:" "EBNF:" ";EBNF" "ENUM:" "ERROR:" "EXCLUDE:" - "f" "FORGET:" "FROM:" "FUNCTION:" + "f" "FORGET:" "FROM:" "FUNCTION:" "FUNCTION-ALIAS:" "GAME:" "GENERIC#" "GENERIC:" "GLSL-SHADER:" "GLSL-PROGRAM:" "HELP:" "HEX:" "HOOK:" @@ -158,15 +158,18 @@ (defconst fuel-syntax--sub-vocab-regex "^<\\([^ \n]+\\) *$") (defconst fuel-syntax--alien-function-regex - "\\_ +\\(\\w+\\)\\( .*\\)?$") From 221fb87fae0da3e77e365c0782035fa427fb9cc9 Mon Sep 17 00:00:00 2001 From: Dmitry Shubin Date: Sat, 12 Jun 2010 06:42:58 +0400 Subject: [PATCH 3/3] FUEL: improve highlighting and indentation for ERROR: --- misc/fuel/fuel-font-lock.el | 2 ++ misc/fuel/fuel-syntax.el | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el index 8ccf50d0e0..d54b0cd337 100644 --- a/misc/fuel/fuel-font-lock.el +++ b/misc/fuel/fuel-font-lock.el @@ -59,6 +59,7 @@ (ratio constant "ratios") (declaration keyword "declaration words") (ebnf-form constant "EBNF: ... ;EBNF form") + (error-form warning "ERROR: ... ; form") (parsing-word keyword "parsing words") (postpone-body comment "postponed form") (setter-word function-name "setter words (>>foo)") @@ -132,6 +133,7 @@ (,fuel-syntax--float-regex . 'factor-font-lock-number) (,fuel-syntax--ratio-regex . 'factor-font-lock-ratio) (,fuel-syntax--type-definition-regex 2 'factor-font-lock-type-name) + (,fuel-syntax--error-regex 2 'factor-font-lock-error-form) (,fuel-syntax--method-definition-regex (1 'factor-font-lock-type-name) (2 'factor-font-lock-word)) (,fuel-syntax--before-definition-regex (1 'factor-font-lock-type-name) diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index 0d77d9cc13..e2db30db3d 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -135,6 +135,9 @@ (fuel-syntax--second-word-regex '("C-STRUCT:" "C-UNION:" "COM-INTERFACE:" "MIXIN:" "TUPLE:" "SINGLETON:" "SPECIALIZED-ARRAY:" "STRUCT:" "UNION:" "UNION-STRUCT:"))) +(defconst fuel-syntax--error-regex + (fuel-syntax--second-word-regex '("ERROR:"))) + (defconst fuel-syntax--tuple-decl-regex "^TUPLE: +\\([^ \n]+\\) +< +\\([^ \n]+\\)\\_>") @@ -168,7 +171,8 @@ (defconst fuel-syntax--indent-def-starts '("" ":" "AFTER" "BEFORE" - "ENUM" "COM-INTERFACE" "CONSULT" + "COM-INTERFACE" "CONSULT" + "ENUM" "ERROR" "FROM" "FUNCTION:" "FUNCTION-ALIAS:" "INTERSECTION:" "M" "M:" "MACRO" "MACRO:"