Diff for /gforth/gforth.el between versions 1.79 and 1.85

version 1.79, 2010/08/20 20:17:28 version 1.85, 2011/08/13 09:47:08
Line 1 Line 1
 ;;; gforth.el --- major mode for editing (G)Forth sources  ;;; gforth.el --- major mode for editing (G)Forth sources
   
 ;; Copyright (C) 1995,1996,1997,1998,2000,2001,2003,2004,2007,2008 Free Software Foundation, Inc.  ;; Copyright (C) 1995,1996,1997,1998,2000,2001,2003,2004,2007,2008,2010 Free Software Foundation, Inc.
   
 ;; This file is part of Gforth.  ;; This file is part of Gforth.
   
Line 256  PARSED-TYPE specifies what kind of text Line 256  PARSED-TYPE specifies what kind of text
          "[ \t\n]" t string (font-lock-string-face . 1))           "[ \t\n]" t string (font-lock-string-face . 1))
         (("char") non-immediate (font-lock-keyword-face . 1)          (("char") non-immediate (font-lock-keyword-face . 1)
          "[ \t\n]" t string (font-lock-string-face . 1))           "[ \t\n]" t string (font-lock-string-face . 1))
         (("s\"" "c\"") immediate (font-lock-string-face . 1)          ("'.'?" non-immediate (font-lock-string-face . 1))
           (("s\"" "c\"" "s\\\"") immediate (font-lock-string-face . 1)
          "[\"\n]" nil string (font-lock-string-face . 1))           "[\"\n]" nil string (font-lock-string-face . 1))
         ((".\"") compile-only (font-lock-string-face . 1)          ((".\"" ".\\\"") compile-only (font-lock-string-face . 1)
          "[\"\n]" nil string (font-lock-string-face . 1))           "[\"\n]" nil string (font-lock-string-face . 1))
         (("abort\"") compile-only (font-lock-keyword-face . 1)          (("abort\"") compile-only (font-lock-keyword-face . 1)
          "[\"\n]" nil string (font-lock-string-face . 1))           "[\"\n]" nil string (font-lock-string-face . 1))
Line 306  PARSED-TYPE specifies what kind of text Line 307  PARSED-TYPE specifies what kind of text
   
         (("create" "variable" "constant" "2variable" "2constant" "fvariable"          (("create" "variable" "constant" "2variable" "2constant" "fvariable"
           "fconstant" "value" "field" "user" "vocabulary"             "fconstant" "value" "field" "user" "vocabulary" 
           "create-interpret/compile")            "create-interpret/compile" "interpret/compile:")
          non-immediate (font-lock-type-face . 2)           non-immediate (font-lock-type-face . 2)
          "[ \t\n]" t name (font-lock-variable-name-face . 3))           "[ \t\n]" t name (font-lock-variable-name-face . 3))
         ("\\S-+%" non-immediate (font-lock-type-face . 2))          ("\\S-+%" non-immediate (font-lock-type-face . 2))
Line 315  PARSED-TYPE specifies what kind of text Line 316  PARSED-TYPE specifies what kind of text
          "[ \t\n]" t name (font-lock-function-name-face . 3))           "[ \t\n]" t name (font-lock-function-name-face . 3))
         (("end-struct") non-immediate (font-lock-keyword-face . 2)          (("end-struct") non-immediate (font-lock-keyword-face . 2)
          "[ \t\n]" t name (font-lock-type-face . 3))           "[ \t\n]" t name (font-lock-type-face . 3))
         (("struct") non-immediate (font-lock-keyword-face . 2))          (("struct" "end-c-library" "c-library-name") 
            non-immediate (font-lock-keyword-face . 2))
           (("c-library") non-immediate (font-lock-keyword-face . 2)
            "[ \t\n]" t name (font-lock-variable-name-face . 3))
           (("c-variable") non-immediate (font-lock-type-face . 1)
            "[ \t\n]" t name (font-lock-function-name-face . 3)
            "[ \t\n]" t name (font-lock-function-name-face . 3))
           (("c-function" "c-value") non-immediate (font-lock-type-face . 1)
            "[ \t\n]" t name (font-lock-function-name-face . 3)
            "[ \t\n]" t name (font-lock-function-name-face . 3)
            "[\n]" nil comment (font-lock-variable-name-face . 3))
           (("\\c") non-immediate (font-lock-keyword-face . 1)
            "[\n]" nil string (font-lock-string-face . 1))
         ("-?[0-9]+\\(\\.[0-9]*e\\(-?[0-9]+\\)?\\|\\.?[0-9a-f]*\\)"           ("-?[0-9]+\\(\\.[0-9]*e\\(-?[0-9]+\\)?\\|\\.?[0-9a-f]*\\)" 
          immediate (font-lock-constant-face . 3))           immediate (font-lock-constant-face . 3))
         ("-?\\([&#][0-9]+\\|\\(0x\\|\\$\\)[0-9a-f]+\\|%[01]+\\)"          ("-?\\([&#][0-9]+\\|\\(0x\\|\\$\\)[0-9a-f]+\\|%[01]+\\)"
Line 428  INDENT1 and INDENT2 are indentation spec Line 441  INDENT1 and INDENT2 are indentation spec
           "[if]" "[ifdef]" "[ifundef]" "[begin]" "[for]" "[do]" "[?do]")            "[if]" "[ifdef]" "[ifundef]" "[begin]" "[for]" "[do]" "[?do]")
          (0 . 2) (0 . 2))           (0 . 2) (0 . 2))
         ((":" ":noname" "code" "abi-code" "struct" "m:" ":m" "class"           ((":" ":noname" "code" "abi-code" "struct" "m:" ":m" "class" 
           "interface")            "interface" "c-library" "c-library-name")
          (0 . 2) (0 . 2) non-immediate)           (0 . 2) (0 . 2) non-immediate)
         ("\\S-+%$" (0 . 2) (0 . 0) non-immediate)          ("\\S-+%$" (0 . 2) (0 . 0) non-immediate)
         ((";" ";m") (-2 . 0) (0 . -2))          ((";" ";m") (-2 . 0) (0 . -2))
Line 437  INDENT1 and INDENT2 are indentation spec Line 450  INDENT1 and INDENT2 are indentation spec
           "[until]" "[again]" "loop")            "[until]" "[again]" "loop")
          (-2 . 0) (0 . -2))           (-2 . 0) (0 . -2))
         (("end-code" "end-class" "end-interface" "end-class-noname"           (("end-code" "end-class" "end-interface" "end-class-noname" 
           "end-interface-noname" "end-struct" "class;")            "end-interface-noname" "end-struct" "class;" "end-c-library")
          (-2 . 0) (0 . -2) non-immediate)           (-2 . 0) (0 . -2) non-immediate)
         (("protected" "public" "how:") (-1 . 1) (0 . 0) non-immediate)          (("protected" "public" "how:") (-1 . 1) (0 . 0) non-immediate)
         (("+loop" "-loop" "until") (-2 . 0) (-2 . 0))          (("+loop" "-loop" "until") (-2 . 0) (-2 . 0))
Line 748  End:\" construct).") Line 761  End:\" construct).")
 (defvar forth-defining-words   (defvar forth-defining-words 
   '("VARIABLE" "CONSTANT" "2VARIABLE" "2CONSTANT" "FVARIABLE" "FCONSTANT"    '("VARIABLE" "CONSTANT" "2VARIABLE" "2CONSTANT" "FVARIABLE" "FCONSTANT"
    "USER" "VALUE" "field" "end-struct" "VOCABULARY" "CREATE" ":" "CODE"     "USER" "VALUE" "field" "end-struct" "VOCABULARY" "CREATE" ":" "CODE"
    "DEFER" "ALIAS")     "DEFER" "ALIAS" "interpret/compile:")
   "List of words, that define the following word.    "List of words, that define the following word.
 Used for imenu index generation.")  Used for imenu index generation.")
   
Line 1103  exceeds 64 characters." Line 1116  exceeds 64 characters."
 (define-key forth-mode-map "\C-x\\" 'comment-region)  (define-key forth-mode-map "\C-x\\" 'comment-region)
 (define-key forth-mode-map "\C-x~" 'forth-remove-tracers)  (define-key forth-mode-map "\C-x~" 'forth-remove-tracers)
 (define-key forth-mode-map "\C-x\C-m" 'forth-split)  (define-key forth-mode-map "\C-x\C-m" 'forth-split)
 (define-key forth-mode-map "\e " 'forth-reload)  
 (define-key forth-mode-map "\t" 'forth-indent-command)  (define-key forth-mode-map "\t" 'forth-indent-command)
 (define-key forth-mode-map "\C-m" 'forth-reindent-then-newline-and-indent)  (define-key forth-mode-map "\C-m" 'forth-reindent-then-newline-and-indent)
 (define-key forth-mode-map "\M-q" 'forth-fill-paragraph)  (define-key forth-mode-map "\M-q" 'forth-fill-paragraph)
Line 1376  programmers who tend to fill code won't Line 1388  programmers who tend to fill code won't
 (defun forth-remove-tracers ()  (defun forth-remove-tracers ()
   "Remove tracers of the form `~~ '. Queries the user for each occurrence."    "Remove tracers of the form `~~ '. Queries the user for each occurrence."
   (interactive)    (interactive)
   (query-replace-regexp "\\(~~ \\| ~~$\\)" "" nil))    (query-replace-regexp "\\(~~[ \t]\\|[ \t]~~$\\)" "" nil))
   
 (define-key forth-mode-map "\C-x\C-e" 'compile)  (define-key forth-mode-map "\C-x\C-e" 'compile)
 (define-key forth-mode-map "\C-x\C-n" 'next-error)  (define-key forth-mode-map "\C-x\C-n" 'next-error)

Removed from v.1.79  
changed lines
  Added in v.1.85


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>