slime-edit-definition from within of (defpackage )

Pascal Bourguignon pjb at informatimago.com
Fri Sep 2 08:29:28 UTC 2022



> On 2 Sep 2022, at 04:42, Anton Vodonosov <avodonosov at yandex.ru> wrote:
> 
> Hello.
>  
> People may want to open package.lisp of some library to study the public API,
> and quickly navigate to definition of any symbol from the :export list,
> in order to read the docstring.
>  
> I use slime-edit-definition (with the M-. shortcut) for navigation to docstrings.
>  
> But that usually does not work from within of (defpackage ) form,
> because slime determines the current package based on the (in-package)
> at the top of the file and usually package files have
>  
>    (in-package :cl-user)
> 
>    (defpackage :some-lib
>       (:export #:some-function
>                     #:another-function
>                      ...))
>  
>  
> So when cursor stays on #:some-function and M-. is pressed
> slime says "No known definition for: #:some-function (in :cl-user)"
>  
> As a workaround I temporarily insert (in-pakcage :some-lib) above the (defpackage ).
>  
> But it would be convenient if slime understood that the within the :export
> option of defpackage the symbols belong to the package being defined
> and not to the closest (in-package ).
>  
> So that the proposal for consideration of the slime maintainers.

And slightly more difficult, but it would be nice too, to consider making M-. work from documentation files.

It’s a good idea to start from the package export list to browse a package, but I never did it, notably because the export list loses the kind of definition the symbols name. (Agreed, it’s often obvious, but there are a lot of cases where multiple definitions of different kinds exist).

From the documentation, the symbols are usually tagged, with a prefix or suffix [macro] or [function] or [class] etc…. The identification of the package may be more difficult since it’s often more informal, (just a title).


-- 
__Pascal J. Bourguignon__




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


More information about the slime-devel mailing list