FUEL: Fixes for POSTPONE: forms font-lock.
							parent
							
								
									cb6f59ff5b
								
							
						
					
					
						commit
						5c6bc3f85e
					
				| 
						 | 
				
			
			@ -60,6 +60,7 @@
 | 
			
		|||
  (declaration keyword "declaration words")
 | 
			
		||||
  (ebnf-form constant "EBNF: ... ;EBNF form")
 | 
			
		||||
  (parsing-word keyword  "parsing words")
 | 
			
		||||
  (postpone-body comment "postponed form")
 | 
			
		||||
  (setter-word function-name "setter words (>>foo)")
 | 
			
		||||
  (getter-word function-name "getter words (foo>>)")
 | 
			
		||||
  (stack-effect comment "stack effect specifications")
 | 
			
		||||
| 
						 | 
				
			
			@ -76,20 +77,19 @@
 | 
			
		|||
(defun fuel-font-lock--syntactic-face (state)
 | 
			
		||||
  (if (nth 3 state) 'factor-font-lock-string
 | 
			
		||||
    (let ((c (char-after (nth 8 state))))
 | 
			
		||||
      (cond ((or (char-equal c ?\ )
 | 
			
		||||
                 (char-equal c ?\n)
 | 
			
		||||
                 (char-equal c ?E))
 | 
			
		||||
      (cond ((memq c '(?\  ?\n ?E ?P))
 | 
			
		||||
             (save-excursion
 | 
			
		||||
               (goto-char (nth 8 state))
 | 
			
		||||
               (beginning-of-line)
 | 
			
		||||
               (cond ((looking-at-p "USING: ")
 | 
			
		||||
               (cond ((looking-at "E") 'factor-font-lock-ebnf-form)
 | 
			
		||||
                     ((looking-at "P") 'factor-font-lock-postpone-body)
 | 
			
		||||
                     ((looking-at-p "USING: ")
 | 
			
		||||
                      'factor-font-lock-vocabulary-name)
 | 
			
		||||
                     ((looking-at-p "\\(TUPLE\\|SYMBOLS\\|VARS\\|SINGLETONS\\):")
 | 
			
		||||
                     ((looking-at-p
 | 
			
		||||
                       "\\(TUPLE\\|SYMBOLS\\|VARS\\|SINGLETONS\\):")
 | 
			
		||||
                      'factor-font-lock-symbol)
 | 
			
		||||
                     ((looking-at-p "C-ENUM:\\( \\|\n\\)")
 | 
			
		||||
                      'factor-font-lock-constant)
 | 
			
		||||
                     ((looking-at-p "E")
 | 
			
		||||
                      'factor-font-lock-ebnf-form)
 | 
			
		||||
                     (t 'default))))
 | 
			
		||||
            ((or (char-equal c ?U) (char-equal c ?C))
 | 
			
		||||
             'factor-font-lock-parsing-word)
 | 
			
		||||
| 
						 | 
				
			
			@ -102,9 +102,10 @@
 | 
			
		|||
    (,fuel-syntax--alien-function-regex (1 'factor-font-lock-type-name)
 | 
			
		||||
                                        (2 'factor-font-lock-word))
 | 
			
		||||
    (,fuel-syntax--vocab-ref-regexp  2 'factor-font-lock-vocabulary-name)
 | 
			
		||||
    (,fuel-syntax--constructor-decl-regex (1 'factor-font-lock-word)
 | 
			
		||||
                                          (2 'factor-font-lock-type-name)
 | 
			
		||||
                                          (3 'factor-font-lock-invalid-syntax nil t))
 | 
			
		||||
    (,fuel-syntax--constructor-decl-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))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -247,12 +247,14 @@
 | 
			
		|||
    ;; Strings and chars
 | 
			
		||||
    ("CHAR: \\(\"\\) [^\\\"]*?\\(\"\\)\\([^\\\"]\\|\\\\.\\)*?\\(\"\\)"
 | 
			
		||||
     (1 "w") (2 "\"") (4 "\""))
 | 
			
		||||
    ("\\(CHAR:\\|POSTPONE:\\|\\\\\\) \\(.\\)\\( \\|$\\)" (2 "w"))
 | 
			
		||||
    ("\\(CHAR:\\|\\\\\\) \\(.\\)\\( \\|$\\)" (2 "w"))
 | 
			
		||||
    ("\\( \\|^\\)\\(DLL\\|P\\|SBUF\\)\\(\"\\)\\([^\n\r\f\\\"]\\|\\\\.\\)*?\\(\"\\)"
 | 
			
		||||
     (3 "\"") (5 "\""))
 | 
			
		||||
    ("\\_<\\(\"\\)\\([^\n\r\f\\\"]\\|\\\\.\\)*?\\(\"\\)" (1 "\"") (3 "\""))
 | 
			
		||||
    ("\\_<<\\(\"\\)\\_>" (1 "<b"))
 | 
			
		||||
    ("\\_<\\(\"\\)>\\_>" (1 ">b"))
 | 
			
		||||
    ;; postpone
 | 
			
		||||
    ("\\_<POSTPONE:\\( \\).*\\(\n\\)" (1 "<b") (2 ">b"))
 | 
			
		||||
    ;; Multiline constructs
 | 
			
		||||
    ("\\_<\\(E\\)BNF:\\( \\|\n\\)" (1 "<b"))
 | 
			
		||||
    ("\\_<;EBN\\(F\\)\\_>" (1 ">b"))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue