Diff for /gforth/gforth.el between versions 1.8 and 1.12

version 1.8, 1994/08/25 15:25:26 version 1.12, 1995/08/27 19:56:30
Line 43  on the next line. Line 43  on the next line.
 OBS! All words in forth-positives must be surrounded by spaces.")  OBS! All words in forth-positives must be surrounded by spaces.")
   
 (defvar forth-negatives  (defvar forth-negatives
   " ; until repeat while +loop loop s+loop else then endif again endcase does> end-struct [then] [else] "    " ; until repeat while +loop loop s+loop else then endif again endcase does> end-struct [then] [else] [endif]"
   "Contains all words which will cause the indent-level to be decremented    "Contains all words which will cause the indent-level to be decremented
 on the current line.  on the current line.
 OBS! All words in forth-negatives must be surrounded by spaces.")  OBS! All words in forth-negatives must be surrounded by spaces.")
Line 71  OBS! All words in forth-negatives must b Line 71  OBS! All words in forth-negatives must b
 (global-set-key "\C-x\C-m" 'forth-split)  (global-set-key "\C-x\C-m" 'forth-split)
 (global-set-key "\e " 'forth-reload)  (global-set-key "\e " 'forth-reload)
   
 (define-key forth-mode-map "\M-\C-x" 'compile)  ;(define-key forth-mode-map "\M-\C-x" 'compile)
 (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|" 'uncomment-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 "\e\C-m" 'forth-send-paragraph)  (define-key forth-mode-map "\e\C-m" 'forth-send-paragraph)
 (define-key forth-mode-map "\eo" 'forth-send-buffer)  (define-key forth-mode-map "\eo" 'forth-send-buffer)
Line 143  OBS! All words in forth-negatives must b Line 142  OBS! All words in forth-negatives must b
 (defun forth-mode ()  (defun forth-mode ()
   "    "
 Major mode for editing Forth code. Tab indents for Forth code. Comments  Major mode for editing Forth code. Tab indents for Forth code. Comments
 are delimited with ( ). Paragraphs are separated by blank lines only.  are delimited with \\ and newline. Paragraphs are separated by blank lines
 Delete converts tabs to spaces as it moves back.  only. Delete converts tabs to spaces as it moves back.
 \\{forth-mode-map}  \\{forth-mode-map}
  Forth-split   Forth-split
     Positions the current buffer on top and a forth-interaction window      Positions the current buffer on top and a forth-interaction window
Line 216  Variables controling documentation searc Line 215  Variables controling documentation searc
   (run-hooks 'forth-mode-hook))    (run-hooks 'forth-mode-hook))
   
 (setq forth-mode-hook  (setq forth-mode-hook
       '(lambda () (setq compile-command "gforth ")))        '(lambda () 
            (make-local-variable 'compile-command)
            (setq compile-command "gforth ")))
   
 (defun forth-fill-paragraph ()   (defun forth-fill-paragraph () 
   "Fill comments (starting with '\'; do not fill code (block style    "Fill comments (starting with '\'; do not fill code (block style
 programmers who tend to fill code won't use emacs anyway:-)."  programmers who tend to fill code won't use emacs anyway:-)."
   ; currently only comments at the start of the line are    ; Currently only comments at the start of the line are filled.
   ; filled. something like lisp-fill-paragraph may be better    ; Something like lisp-fill-paragraph may be better.  We cannot use
     ; fill-paragraph, because it removes the \ from the first comment
     ; line. Therefore we have to look for the first line of the comment
     ; and use fill-region.
   (interactive)    (interactive)
   (save-excursion    (save-excursion
     (beginning-of-line)      (beginning-of-line)
     (if (looking-at "[ \t]*\\\\[ \t]+")      (while (and
         (progn (goto-char (match-end 0))               (= (forward-line -1) 0)
                (set-fill-prefix)               (looking-at "[ \t]*\\\\[ \t]+")))
                (fill-paragraph nil)))))      (if (not (looking-at "[ \t]*\\\\[ \t]+"))
           (forward-line 1))
       (let ((from (point))
             (to (save-excursion (forward-paragraph) (point))))
         (if (looking-at "[ \t]*\\\\[ \t]+")
             (progn (goto-char (match-end 0))
                    (set-fill-prefix)
                    (fill-region from to nil))))))
   
 (defun forth-comment-indent ()  (defun forth-comment-indent ()
   (save-excursion    (save-excursion
Line 431  When called, the current buffer will be Line 442  When called, the current buffer will be
 (defvar forth-signal-death-message nil  (defvar forth-signal-death-message nil
   "If non-nil, causes a message to be generated when the Forth process dies.")    "If non-nil, causes a message to be generated when the Forth process dies.")
   
 (defvar forth-percent-height 62  (defvar forth-percent-height 50
   "Tells run-forth how high the upper window should be in percent.")    "Tells run-forth how high the upper window should be in percent.")
   
 (defconst forth-runlight:input ?I  (defconst forth-runlight:input ?I
Line 840  The region is sent terminated by a newli Line 851  The region is sent terminated by a newli
     res))      res))
   
   
 (define-key forth-mode-map "\C-x\C-e" 'forth-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)
 (require 'compile "compile")  (require 'compile "compile")
   
 (defvar forth-compile-command "gforth ")  (defvar forth-compile-command "gforth ")
 (defvar forth-compilation-window-percent-height 30)  ;(defvar forth-compilation-window-percent-height 30)
   
 (defun forth-compile (command)  (defun forth-compile (command)
   (interactive (list (setq forth-compile-command (read-string "Compile command: " forth-compile-command))))    (interactive (list (setq forth-compile-command (read-string "Compile command: " forth-compile-command))))
Line 854  The region is sent terminated by a newli Line 865  The region is sent terminated by a newli
   (compile1 ctools-compile-command "No more errors"))    (compile1 ctools-compile-command "No more errors"))
   
   
   ;;; Forth menu
   ;;; Mikael Karlsson <qramika@eras70.ericsson.se>
   
   (cond ((string-match "XEmacs\\|Lucid" emacs-version)
          (require 'func-menu)
   
     (defconst fume-function-name-regexp-forth
      "^\\(:\\)[ \t]+\\([^ \t]*\\)"
      "Expression to get word definitions in Forth.")
   
     (setq fume-function-name-regexp-alist
         (append '((forth-mode . fume-function-name-regexp-forth) 
                ) fume-function-name-regexp-alist))
   
     ;; Find next forth word in the buffer
     (defun fume-find-next-forth-function-name (buffer)
       "Searches for the next forth word in BUFFER."
       (set-buffer buffer)
       (if (re-search-forward fume-function-name-regexp nil t)
         (let ((beg (match-beginning 2))
               (end (match-end 2)))
           (cons (buffer-substring beg end) beg))))
   
     (setq fume-find-function-name-method-alist
     (append '((forth-mode    . fume-find-next-forth-function-name))))
   
     ))
   ;;; End Forth menu
   
   ;;; File folding of forth-files
   ;;; uses outline
   ;;; Toggle activation with M-x fold-f (when editing a forth-file) 
   ;;; Use f9 to expand, f10 to hide, Or the menubar in xemacs
   ;;;
   ;;; Works most of the times but loses sync with the cursor occasionally 
   ;;; Could be improved by also folding on comments
   
   (require 'outline)
   
   ;;(define-key outline-minor-mode-map 'f9 'show-entry)
   ;;(define-key outline-minor-mode-map 'f10 'hide-entry)
   
   (defun fold-f  ()
      (interactive)
      (add-hook 'outline-minor-mode-hook 'hide-body)
   
      ; outline mode header start, i.e. find word definitions
      (setq  outline-regexp  "^\\(:\\)[ \t]+\\([^ \t]*\\)")
   
      (outline-minor-mode)
   )
   ;;; end file folding
   
   ;;; func-menu is a package that scans your source file for function definitions
   ;;; and makes a menubar entry that lets you jump to any particular function
   ;;; definition by selecting it from the menu.  The following code turns this on
   ;;; for all of the recognized languages.  Scanning the buffer takes some time,
   ;;; but not much.
   ;;;
   (cond ((string-match "XEmacs\\|Lucid" emacs-version)
          (require 'func-menu)
   ;;       (define-key global-map 'f8 'function-menu)
          (add-hook 'find-fible-hooks 'fume-add-menubar-entry)
          (define-key global-map "\C-cg" 'fume-prompt-function-goto)
          (define-key global-map '(shift button3) 'mouse-function-menu)
          ))

Removed from v.1.8  
changed lines
  Added in v.1.12


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