Quesstion about Alt-. navigation to function definitions

Jeffrey Cunningham jeffrey at jkcunningham.com
Wed Oct 30 23:47:09 UTC 2013


On 10/30/2013 04:06 PM, Zach Beane wrote:
>
> That code should go in test2.asd:
>
>      ;;;; test2.asd
>
>      (asdf:defsystem #:test2
>        :depends-on (#:cl-ppcre)
>        :serial t
>        :components ((:file "package")
>                     (:file "test2")))
>
> Then you have package.lisp:
>
>      (defpackage #:test2
>        (:use #:cl)
>        (:export #:my-great-test))
>
> Then you can put this in test2.lisp:
>
>     ;;;; test2.lisp
>
>     (in-package #:test2)
>
>     (defun my-great-test ()
>       (describe 'cl-ppcre:regex-apropos))
>
> Put those files somewhere ASDF knows about. I like to put it in
> something like ~/quicklisp/local-projects/test2/, so you can, from the
> repl, use this:
>
>      (ql:quickload "test2")
>
> Then you should be able to evaluate, in the REPL:
>
>      (test2:my-great-test)
>
> Many people automate the process of setting up project directories,
> system files, and initial sources. My automation of it is the
> quickproject utility; there are several others.
>
> I don't recommend putting calls to code-loading functions directly in
> source files, most of the time.
>
> Zach
Thank you, Zach.

But what about the very common (for me, at least) case where I want to 
experiment around with some code that is not intended to go in a 
package. It's experimental code - say I have some data I'm want to read 
and process. I'm in the data directory when I start lisp. Its not in an 
ASDF path and don't really want to modify that search tree everytime I 
write a one-off piece of code.

I can  quickload cl-fad, say, cl-ppcre, and all kinds of packages and 
write code in the REPL and it works fine. But I don't want to have to 
retype all this code everytime I revisit the data. I want to be able to 
type it in a local file, say, test.lisp" and C-c C-c on the lines again 
tomorrow if I want to run them again.  Or maybe C-c, k the whole file 
and run it that way. So in this context how can I load packages as lines 
in this file without losing the ability to navigate within their 
functions? Are you saying that I either have to enter each package load 
and subsequent commands in the REPL or build a formal package with an 
.asd and package file, and tell ASD about it?

I've been writing code like this for years - it's only recently that it 
started behaving differently.

Regards,
--Jeff


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/slime-devel/attachments/20131030/347d844f/attachment.html>


More information about the slime-devel mailing list