Julia macros to surf the web from the comfort of your REPL.
To install BrowserMacros, open the Julia REPL and run
julia> ]add BrowserMacros
BrowserMacros currently requires Julia โฅ1.7 and is in early development, so there will be a lot of edge-cases to iron out.
The highlight of this package is the macro @wwwhich
("world-wide-which").
It is almost identical to @which
, but will open a new GitHub tab in your browser,
showing the the exact line of code that is run:
@wwwhich sqrt(2.0)
This also works with code from external packages!
Since @wwwhich
opens a permalink, it is perfectly suited for sharing code.
The @issue
macro will open an issue draft including the project dependencies
and the Julia version info:
using Distributions
@issue Normal()
Several search engines can be queried from your REPL:
@google "How to write macros in Julia"
For each macro, a corresponding function is also exported. The search engines currently include:
Name | Macro |
---|---|
arXiv | @arxiv |
Baidu | @baidu |
Bing | @bing |
Brave | @brave |
ChatGPT | @chatgpt |
DuckDuckGo | @ddg |
Ecosia | @ecosia |
GitHub | @github |
Goodreads | @goodreads |
@google |
|
Google Scholar | @scholar |
JuliaHub | @juliahub |
Julia Discourse | @discourse |
Julia Zulip | @zulip |
Qwant | @qwant |
Stack Overflow | @stackoverflow |
Web Archive | @webarchive |
Wikipedia | @wikipedia |
Wolfram Alpha | @wolframalpha |
Yahoo | @yahoo |
Yandex | @yandex |
YouTube | @youtube |
Please open an issue if your favorite search engine is missing!
BrowserMacros constructs URLs and opens them using DefaultApplication.jl.
@wwwhich
works by
- finding the corresponding method using InteractiveUtils'
which
- determining the UUID and the version of the module containing the method
- looking up the UUID in the reachable registries to find the matching GitHub repository
- constructing a permalink to the relevant line of code
- Support for packages hosted on GitLab, SourceHut & Co.
Contributions are more than welcome!