Diff for /gforth/gforth.el between versions 1.60 and 1.61

version 1.60, 2002/02/04 21:25:17 version 1.61, 2002/03/23 13:38:04
Line 94 Line 94
 ;; define `font-lock-constant-face' in XEmacs (just copy  ;; define `font-lock-constant-face' in XEmacs (just copy
 ;; `font-lock-preprocessor-face')  ;; `font-lock-preprocessor-face')
 (unless (boundp 'font-lock-constant-face)  (unless (boundp 'font-lock-constant-face)
   (copy-face font-lock-preprocessor-face 'font-lock-constant-face)    (copy-face font-lock-preprocessor-face 'font-lock-constant-face))
   (defvar font-lock-constant-face 'font-lock-comment-face))  
   
 ;; define `regexp-opt' in emacs versions prior to 20.1   ;; define `regexp-opt' in emacs versions prior to 20.1 
 ;; (this implementation is extremely inefficient, though)  ;; (this implementation is extremely inefficient, though)
Line 1068  exceeds 64 characters." Line 1068  exceeds 64 characters."
 (define-key forth-mode-map "\M-q" 'forth-fill-paragraph)  (define-key forth-mode-map "\M-q" 'forth-fill-paragraph)
 (define-key forth-mode-map "\e." 'forth-find-tag)  (define-key forth-mode-map "\e." 'forth-find-tag)
   
 ;setup for C-h C-i to work  ;; setup for C-h C-i to work
 (eval-and-compile (forth-require 'info-look))  (eval-and-compile (forth-require 'info-look))
 (when (memq 'info-look features)  (when (memq 'info-look features)
   ;; info-lookup-add-help not supported in XEmacs :-(    (defvar forth-info-lookup '(symbol (forth-mode "\\S-+" t 
   (defvar forth-info-lookup '(symbol (forth-mode "\\w+" t   
                                                   (("(gforth)Word Index"))                                                    (("(gforth)Word Index"))
                                                   "\\w+")))                                                    "\\S-+")))
   (unless (memq forth-info-lookup info-lookup-alist)    (unless (memq forth-info-lookup info-lookup-alist)
     (setq info-lookup-alist (cons forth-info-lookup info-lookup-alist))))      (setq info-lookup-alist (cons forth-info-lookup info-lookup-alist)))
     ;; in X-Emacs C-h C-i is by default bound to Info-query
     (define-key forth-mode-map "\C-h\C-i" 'info-lookup-symbol))
   
   
 ;;   (info-lookup-add-help  ;;   (info-lookup-add-help
 ;;    :topic 'symbol  ;;    :topic 'symbol
Line 1862  The region is sent terminated by a newli Line 1864  The region is sent terminated by a newli
 ;;; Forth menu  ;;; Forth menu
 ;;; Mikael Karlsson <qramika@eras70.ericsson.se>  ;;; Mikael Karlsson <qramika@eras70.ericsson.se>
   
 (cond ((string-match "XEmacs\\|Lucid" emacs-version)  ;; (dk) code commented out due to complaints of XEmacs users.  After
        (require 'func-menu)  ;; all, there's imenu/speedbar, which uses much smarter scanning
   ;; rules.
   (defconst fume-function-name-regexp-forth  
    "^\\(:\\)[ \t]+\\([^ \t]*\\)"  ;; (cond ((string-match "XEmacs\\|Lucid" emacs-version)
    "Expression to get word definitions in Forth.")  ;;        (require 'func-menu)
   
   (setq fume-function-name-regexp-alist  ;;   (defconst fume-function-name-regexp-forth
       (append '((forth-mode . fume-function-name-regexp-forth)   ;;    "^\\(:\\)[ \t]+\\([^ \t]*\\)"
              ) fume-function-name-regexp-alist))  ;;    "Expression to get word definitions in Forth.")
   
   ;; Find next forth word in the buffer  ;;   (setq fume-function-name-regexp-alist
   (defun fume-find-next-forth-function-name (buffer)  ;;       (append '((forth-mode . fume-function-name-regexp-forth) 
     "Searches for the next forth word in BUFFER."  ;;              ) fume-function-name-regexp-alist))
     (set-buffer buffer)  
     (if (re-search-forward fume-function-name-regexp nil t)  ;;   ;; Find next forth word in the buffer
       (let ((beg (match-beginning 2))  ;;   (defun fume-find-next-forth-function-name (buffer)
             (end (match-end 2)))  ;;     "Searches for the next forth word in BUFFER."
         (cons (buffer-substring beg end) beg))))  ;;     (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  ;;   (setq fume-find-function-name-method-alist
   (append '((forth-mode    . fume-find-next-forth-function-name))))  ;;   (append '((forth-mode    . fume-find-next-forth-function-name))))
   
   ))  ;;   ))
 ;;; End Forth menu  ;;; End Forth menu
   
 ;;; File folding of forth-files  ;;; File folding of forth-files
Line 1896  The region is sent terminated by a newli Line 1902  The region is sent terminated by a newli
 ;;; Works most of the times but loses sync with the cursor occasionally   ;;; Works most of the times but loses sync with the cursor occasionally 
 ;;; Could be improved by also folding on comments  ;;; Could be improved by also folding on comments
   
 (require 'outline)  ;; (dk) This code needs a rewrite; just too ugly and doesn't use the
   ;; newer and smarter scanning rules of `imenu'. Who needs it anyway??
   
 (defun f-outline-level ()  ;; (require 'outline)
   (cond ((looking-at "\\`\\\\")  
          0)  ;; (defun f-outline-level ()
         ((looking-at "\\\\ SEC")  ;;   (cond      ((looking-at "\\`\\\\")
          0)  ;;       0)
         ((looking-at "\\\\ \\\\ .*")  ;;      ((looking-at "\\\\ SEC")
          0)  ;;       0)
         ((looking-at "\\\\ DEFS")  ;;      ((looking-at "\\\\ \\\\ .*")
          1)  ;;       0)
         ((looking-at "\\/\\* ")  ;;      ((looking-at "\\\\ DEFS")
          1)  ;;       1)
         ((looking-at ": .*")  ;;      ((looking-at "\\/\\* ")
          1)  ;;       1)
         ((looking-at "\\\\G")  ;;      ((looking-at ": .*")
          2)  ;;       1)
         ((looking-at "[ \t]+\\\\")  ;;      ((looking-at "\\\\G")
          3)))  ;;       2)
   ;;      ((looking-at "[ \t]+\\\\")
   ;;       3)))
       
 (defun fold-f  ()  ;; (defun fold-f  ()
    (interactive)  ;;    (interactive)
    (add-hook 'outline-minor-mode-hook 'hide-body)  ;;    (add-hook 'outline-minor-mode-hook 'hide-body)
   
    ; outline mode header start, i.e. find word definitions  ;;    ; outline mode header start, i.e. find word definitions
 ;;;   (setq  outline-regexp  "^\\(:\\)[ \t]+\\([^ \t]*\\)")  ;; ;;;   (setq  outline-regexp  "^\\(:\\)[ \t]+\\([^ \t]*\\)")
    (setq  outline-regexp  "\\`\\\\\\|:\\|\\\\ SEC\\|\\\\G\\|[ \t]+\\\\\\|\\\\ DEFS\\|\\/\\*\\|\\\\ \\\\ .*")  ;;    (setq  outline-regexp  "\\`\\\\\\|:\\|\\\\ SEC\\|\\\\G\\|[ \t]+\\\\\\|\\\\ DEFS\\|\\/\\*\\|\\\\ \\\\ .*")
    (setq outline-level 'f-outline-level)  ;;    (setq outline-level 'f-outline-level)
   
    (outline-minor-mode)  ;;    (outline-minor-mode)
    (define-key outline-minor-mode-map '(shift up) 'hide-sublevels)  ;;    (define-key outline-minor-mode-map '(shift up) 'hide-sublevels)
    (define-key outline-minor-mode-map '(shift right) 'show-children)  ;;    (define-key outline-minor-mode-map '(shift right) 'show-children)
    (define-key outline-minor-mode-map '(shift left) 'hide-subtree)  ;;    (define-key outline-minor-mode-map '(shift left) 'hide-subtree)
    (define-key outline-minor-mode-map '(shift down) 'show-subtree))  ;;    (define-key outline-minor-mode-map '(shift down) 'show-subtree))
   
   
 ;;(define-key global-map '(shift up) 'fold-f)  ;;(define-key global-map '(shift up) 'fold-f)
   
Line 1941  The region is sent terminated by a newli Line 1951  The region is sent terminated by a newli
 ;;; for all of the recognized languages.  Scanning the buffer takes some time,  ;;; for all of the recognized languages.  Scanning the buffer takes some time,
 ;;; but not much.  ;;; but not much.
 ;;;  ;;;
 (cond ((string-match "XEmacs\\|Lucid" emacs-version)  ;; (cond ((string-match "XEmacs\\|Lucid" emacs-version)
        (require 'func-menu)  ;;        (require 'func-menu)
 ;;       (define-key global-map 'f8 'function-menu)  ;; ;;       (define-key global-map 'f8 'function-menu)
        (add-hook 'find-fible-hooks 'fume-add-menubar-entry)  ;;        (add-hook 'find-fible-hooks 'fume-add-menubar-entry)
 ;       (define-key global-map "\C-cg" 'fume-prompt-function-goto)  ;; ;       (define-key global-map "\C-cg" 'fume-prompt-function-goto)
 ;       (define-key global-map '(shift button3) 'mouse-function-menu)  ;; ;       (define-key global-map '(shift button3) 'mouse-function-menu)
 ))  ;; ))
   
 (provide 'forth-mode)  (provide 'forth-mode)
   

Removed from v.1.60  
changed lines
  Added in v.1.61


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