Path: utzoo!attcan!uunet!tut.cis.ohio-state.edu!ucbvax!pasteur!hws@icsi.Berkeley.EDU From: hws@icsi.Berkeley.EDU (Heinz Schmidt) Newsgroups: comp.lang.eiffel Subject: Re: Bug in ARGUMENTS specification and other problems Message-ID: <21892@pasteur.Berkeley.EDU> Date: 8 Feb 90 06:10:45 GMT References: <1777@novavax.UUCP> Sender: news@pasteur.Berkeley.EDU Reply-To: hws@icsi.Berkeley.EDU (Heinz Schmidt) Organization: International Computer Science Institute, Berkeley Lines: 63 In article <1777@novavax.UUCP>, weiner@novavax.UUCP (Bob Weiner) writes: > conventions so when I produce class specs with 'short', I don't want it > to fill these lines. ... > problem is that the single option '-m' > both fills comments and italicizes identifiers. Two separate options > are desperately needed Yes. Also I'd like that short and flat go through the SDF file so we can get a quick overview of what's available and how it is called this time (as compared to other OO libraries). Moreover it would be nice to have some kind of apropos command (which probably should be independent of the indexing stuff in Eiffel to make it less dependent of special-purpose language features). Short, flat and apropos should use same defaults as ec and friends do. > into different directories but ec provides no way to compile the class > from the directory in which it resides if the SDF is not also in the > same directory. Also True. For an Emacs 'single button' ec I include this from my Eiffel mode extension, maybe it helps for some time. (defvar run-ec-args "" "") (defun class-compile (ARG) "Calls ec (Eiffel compile). By default, ec is called on the file associated to the current buffer. With numeric argument 0 prompts for explicit command line arguments. Other numeric arguments allow you to insert options or further class names to go with ec of the current file." (interactive "P") (let* ((ec-output (get-buffer-create "*ec-output*")) (ec-process (get-buffer-process ec-output)) (ec-args nil) (curr-buffer (current-buffer)) (curr-name (buffer-file-name curr-buffer))) (if ec-process (if (y-or-n-p "Kill current ec process? ") (delete-process ec-process) (error "Can't ec concurrently."))) (if (and (buffer-modified-p curr-buffer) (y-or-n-p (format "Save file %s? " curr-name))) (progn (save-buffer) (message ""))) ;; maybe prompt for args and dispatch according to numeric ARG (setq run-ec-args (if ARG (read-input "ec args: " run-ec-args) "")) (setq ec-args (if (and ARG (zerop ARG)) run-ec-args (concat run-ec-args " " curr-name))) ;; switch to shell buffer and run ec (set-buffer ec-output) (erase-buffer) (insert "ec " ec-args "\n" ) (set-buffer curr-buffer) (display-buffer ec-output) (eval (append '(start-process "ec" ec-output "ec") (str2argv ec-args))))) (define-key eiffel-mode-map "\C-c\C-e" 'class-compile) -- hws ------------------------------------------------------------------------------- Heinz W. Schmidt hws@icsi.berkeley.edu International Computer Science Institute (415) 643-9153 x175 1947 Center Street, Ste. 600 /\/\|;; CLOS saves time and Berkeley, CA 94704 \/\/|-- Eiffel is faster