Comments (5)
My main question is if I made a function that edits the source code (which I'm already 90% done with), would it be considered as an addition to this package? I also have a preference for explicit over implicit/magic, in general.
Feel free to create a PR if you're already that far along implementing and we can weigh up the pros/cons of the approach with something concrete.
Requirements for inclusion in the package would be zero-dependencies outside of Base
and general enough to handle any valid Julia syntax that can be documented.
from docstringextensions.jl.
from docstringextensions.jl.
On second thought, with how normal it is for julia devs to work in the repl, maybe I can skip the CLI and it just becomes a function people can access from within julia? Same functionality, just a different interface. Also saves an unnecessary dependency.
from docstringextensions.jl.
On second thought, with how normal it is for julia devs to work in the repl, maybe I can skip the CLI and it just becomes a function people can access from within julia? Same functionality, just a different interface. Also saves an unnecessary dependency.
Yes, just a function-based interface is what would be more useful. (A separate CLI could always be added, but given the precompilation time required in many cases with dev'd packages I doubt many people would use it.)
Another approach that may work better than actually editing the source in that way could be an @autodoc
macro that users can just place at the end of their module definition which checks for undocumented bindings and creates an auto-generated docstring for each. A very draft version of how you could go about doing it:
function autodoc(mod::Module)
docs = Docs.meta(mod)
for name in names(mod; all = true)
if isdefined(mod, name)
binding = Docs.Binding(mod, name)
if !haskey(docs, binding)
@eval mod begin
@doc """
*auto-generated docs*
""" $name
end
end
end
end
end
macro autodoc()
:(autodoc(@__MODULE__))
end
Has the benefit of not needing the user to run code that changes their source code directly, only an @autodoc
call is added to the end of their module.
from docstringextensions.jl.
Very interesting approach! Impressive. Being new to julia, I skipped the section on macros, so I have no idea how this works. The whole macro thing seemed like way too much magic for me anyway, but maybe after a few months I'll see the light.
My main question is if I made a function that edits the source code (which I'm already 90% done with), would it be considered as an addition to this package? I also have a preference for explicit over implicit/magic, in general.
from docstringextensions.jl.
Related Issues (20)
- MODULES key not found for `@template` HOT 1
- Doctest failures
- Format docstrings HOT 4
- Examples of how to use all of the functionality HOT 5
- expected test failure from the incoming `Core.Compiler` changes HOT 3
- Cannot get source for generated functions
- feature request: non-api doc marker HOT 3
- How to show default values and types of keyword arguments? HOT 1
- Update docs to latest version of Documenter HOT 5
- different abbreviations for concrete and abstract types HOT 1
- FUNCTIONNAME inside a function that generates the docstring HOT 7
- Would it be possible to add a TYPEDMETHODLIST abbreviation HOT 2
- Internal errors when (ab)using `@template` HOT 1
- New SUBTYPES exported key
- FIELDS / TYPEDFIELDS fail on const fields of mutable struct HOT 1
- TYPEDSIGNATURES error with @generated functions HOT 3
- Feature request: option to override template in specific case HOT 4
- Feature request: TYPEDSIGNATURES without output type HOT 1
- Format for all docstrings for a particular function
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from docstringextensions.jl.