jv@mh.nl (Johan Vromans) (06/30/90)
This patch upgrades perl-descr.el 1.3 to 1.4.
* added perl-mode-syntax-table (copied from perl-mode). This is copied
from perl-mode.el by bill@ksr.com (Bill Mann).
* added [ and whitespace to the list of post-symbol indicators
(suggested by Sebastian Kremer <sk@thp.Uni-Koeln.DE>). He also
suggests to add the following to your .emacs:
(autoload 'describe-perl-symbol "perl-descr" nil t)
(define-key help-map "p" 'describe-perl-symbol)
* allow symbol guessing to work at end of file
* corrected filename doc-file -> perl-doc-file to match the
declaration (first signalled by mdb@ESD.3Com.COM (Mark D. Baushke)).
*** perl-descr.el~ Sat Jun 30 00:54:18 1990
--- perl-descr.el Sat Jun 30 00:53:01 1990
***************
*** 1,1
! ;; @(#)@ perl-descr.el 1.3 - describe-perl-symbol
--- 1,1 -----
! ;; @(#)@ perl-descr.el 1.4 - describe-perl-symbol
***************
*** 9,14
(defvar perl-doc-file "~/elisp/perl-descr.txt"
"*Where the documentation file can be found.")
(defun perl-symbol-at-point ()
"Get the closest Perl symbol to point, but don't change your
position. Has a preference for looking backward when not
--- 9,38 -----
(defvar perl-doc-file "~/elisp/perl-descr.txt"
"*Where the documentation file can be found.")
+ (defvar perl-mode-syntax-table nil
+ "Syntax table in use in perl-mode buffers.")
+
+ (if perl-mode-syntax-table
+ ()
+ (setq perl-mode-syntax-table (make-syntax-table (standard-syntax-table)))
+ (modify-syntax-entry ?\n ">" perl-mode-syntax-table)
+ (modify-syntax-entry ?# "<" perl-mode-syntax-table)
+ (modify-syntax-entry ?$ "/" perl-mode-syntax-table)
+ (modify-syntax-entry ?% "." perl-mode-syntax-table)
+ (modify-syntax-entry ?& "." perl-mode-syntax-table)
+ (modify-syntax-entry ?\' "\"" perl-mode-syntax-table)
+ (modify-syntax-entry ?* "." perl-mode-syntax-table)
+ (modify-syntax-entry ?+ "." perl-mode-syntax-table)
+ (modify-syntax-entry ?- "." perl-mode-syntax-table)
+ (modify-syntax-entry ?/ "." perl-mode-syntax-table)
+ (modify-syntax-entry ?< "." perl-mode-syntax-table)
+ (modify-syntax-entry ?= "." perl-mode-syntax-table)
+ (modify-syntax-entry ?> "." perl-mode-syntax-table)
+ (modify-syntax-entry ?\\ "\\" perl-mode-syntax-table)
+ (modify-syntax-entry ?` "\"" perl-mode-syntax-table)
+ (modify-syntax-entry ?| "." perl-mode-syntax-table)
+ )
+
(defun perl-symbol-at-point ()
"Get the closest Perl symbol to point, but don't change your
position. Has a preference for looking backward when not
***************
*** 19,30
(save-excursion
;; first see if you're just past a symbol
! (if (looking-at "\\s-*[][{}()]+")
! (skip-chars-backward " \n\t\r({[]})")
!
! ;; else move forward one character, presumably either a \w or
! ;; a symbol
! (or (= (point) (point-max))
(forward-char 1)))
(if (eql (aref perl-mode-syntax-table (preceding-char)) 2)
--- 43,53 -----
(save-excursion
;; first see if you're just past a symbol
! (if (< (point) (point-max))
! (if (looking-at "[] \t\n[{}()]")
! (skip-chars-backward " \n\t\r({[]})")
! ;; else move forward one character, presumably either a \w or
! ;; a symbol
(forward-char 1)))
(if (eql (aref perl-mode-syntax-table (preceding-char)) 2)
***************
*** 70,83
(if (string= val "")
(setq val fn))
! (setq regexp (concat "^" (regexp-quote val) "[ \t(]"))
! (if (not (get-file-buffer doc-file))
(progn
(setq args-file
! (find-file-noselect doc-file))
(set-buffer args-file)
(rename-buffer "*PERL-DOC*")
(setq buffer-read-only t)))
! (set-buffer (get-file-buffer doc-file))
(goto-char (point-min))
(list (if (re-search-forward regexp (point-max) t)
(save-excursion
--- 93,106 -----
(if (string= val "")
(setq val fn))
! (setq regexp (concat "^" (regexp-quote val) "[ \t([]"))
! (if (not (get-file-buffer perl-doc-file))
(progn
(setq args-file
! (find-file-noselect perl-doc-file))
(set-buffer args-file)
(rename-buffer "*PERL-DOC*")
(setq buffer-read-only t)))
! (set-buffer (get-file-buffer perl-doc-file))
(goto-char (point-min))
(list (if (re-search-forward regexp (point-max) t)
(save-excursion
--
Johan Vromans jv@mh.nl via internet backbones
Multihouse Automatisering bv uucp: ..!{uunet,hp4nl}!mh.nl!jv
Doesburgweg 7, 2803 PL Gouda, The Netherlands phone/fax: +31 1820 62911/62500
------------------------ "Arms are made for hugging" -------------------------