Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 81ba4bf343258487e94981efc55c34a7 > files > 84

emacs-common-ess-5.14-1.fc14.noarch.rpm

Name completion (for R and S-plus):
----------------

Want to keep an up-to-date list of S object names, on which we can
complete.
  Additionally, list-component completion "x$a<TAB>" also work,
  as does slot completion on S4 objects "ob@<TAB>".

Historically, for S and S-plus, we had made an effort to only reread
the objects of database entries in search() ``when needed''.
In particular, for "non-compressed" directories, one had looked at their
"modification time" and kept as timestamp. And they were only re-read (by
listing the *files* inside !) when the time changed.
For R, this is not available and for newer versions of S-plus, with
"compiled" (or "compressed") directories this isn't relevant either.
...........

I (MM) think R does never re-read things as long as search() is not
changed by  library(), attach(), detach(), source(),..
These calls are, BTW, given by  ess-change-sp-regexp in ../lisp/ess-cust.el
(initialized by dialect specific ess-<dialect>-sp-regexp  "defcustom"s).

How are things working in ../lisp/ess-inf.el currently :

o) ess-search-path-tracker is added to `comint-input-filter-functions' hook;
   it just sets	  `ess-sp-change' to true  when the above regexp triggers.

o) Main user functions

  ess-complete-object-name	and
  +
  ess-resynch			{also sets ess-object-list to nil ..}
  |				call the "main work horse"
  |
  |-> ess-get-object-list	either uses
      |
      |--> [V] ess-object-list	or all the following
      |
      |-> ess-get-modtime-list	{when one of the following var.s "says so"}:
      |
      |--> [V] ess-sp-change
      |--> [V] ess-sl-modtime-alist
      |
      \-> ess-extract-onames-from-alist
          |
          |-> ess-dir-modtime
	  |
	  \-> ess-object-names
	      |
	      |-> <directory-fussing>
	      |-> [V] ess-object-name-db
	      |
	      |-> [V] inferior-ess-object-command
	      \-> ess-get-words-from-vector
	          |
	          \-> ess-command
		      |
		      |-> [V] ess-cmd-delay
		      |
		      \-> ess-prompt-wait