Handle schema annotations after function names#197
Merged
tsmacdonald merged 1 commit intoclj-commons:masterfrom Mar 14, 2026
Merged
Handle schema annotations after function names#197tsmacdonald merged 1 commit intoclj-commons:masterfrom
tsmacdonald merged 1 commit intoclj-commons:masterfrom
Conversation
Fixes clj-commons#133. Both Plumatic Schema and Malli can annotate functions with a return schema using syntax like `(def fn-name :- Type "docstring" ...)`. Marginalia previously did not recognize those docstrings, therefore they were not extracted to the left-hand prose document, nor removed from the right-hand view of the code. This PR checks for the `:-` marker that both schema libraries use, and skips over it to locate and extract the docstring correctly. The `:- Type` is preserved in the code view.
Collaborator
|
Looks great, thanks Braden! |
Collaborator
|
I fixed CI in #198 but didn't have the right permissions to rebase Braden's branch in situ. I thought about either cherry-picking it into my own branch/PR (but that muddies the Github history) or asking Braden to do it (which would delay this even more) and decided it was low-risk enough to YOLO-merge it and just make sure the build on |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #133.
Both Plumatic Schema and Malli can annotate functions with a return schema using syntax like
(def fn-name :- Type "docstring" ...).Marginalia previously did not recognize those docstrings, therefore they were not extracted to the left-hand prose document, nor removed from the right-hand view of the code.
This PR checks for the
:-marker that both schema libraries use, and skips over it to locate and extract the docstring correctly. The:- Typeis preserved in the code view.There are some test cases in the repo, plus I checked it against some Metabase code that uses Malli-powered
mu/defnand it works beautifully.