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