axelson
Elixir hexdocs doesn't find expected results for some searches
I’ve been working on some code using macros today and I’ve come across a few searches on the elixir hexdocs that feel like they really should have results instead of their current no results pages.
Here are the searches and what I think they should point to:
“__using__”
- search results: Search — Elixir v1.20.2
- should return (or eventually link to): Kernel — Elixir v1.20.2
“after_compile”
- search results: Search — Elixir v1.20.2
- should return: Module — Elixir v1.20.2
I searched on the current 1.17.1 docs. Here are the screenshots:
It’s pretty frustrating knowing these concepts exist but not being able to find the specifics in the docs. Are there any previous examples of updating the docs to make specific searches like these possible?
Marked As Solved
josevalim
@axelson all of those issues are related to the search engine. The search engine would tokenize by splitting on _ and -, which means __using__ is simply using. I have fixed that issue and the one by @Nicd.
After compile works if you search it as @after_compile, I will try to see if we can make it work as after_compile only.
Also Liked
Nicd
Now that you opened the discussion, there’s one issue that I just haven’t bothered filing a bug for yet. If you access a search URL directly or just press enter when writing a Module.function type search, like https://hexdocs.pm/elixir/search.html?q=Process.monitor (clickable link), it will show you no results. But if you click on the search bar, the autocomplete will show the results you wanted. It seems the autocomplete is smarter than the actual search engine.
Edit: Well, decided to file that issue: Search page shows no results even though autocomplete finds them · Issue #1930 · elixir-lang/ex_doc · GitHub
D4no0
Topics related to metaprogramming in general are divided into different sections and are hard to find even to this day.
I would personally recommend reading the book Metaprogramming Elixir by Chris McCord, you will find there a lot of things you were missing before, I always find myself returning to it because honestly I cannot find stuff on hexdocs just as you pointed out.
A simple example of hidden things is the @external_resource attribute that can recompile the source file based on an external file change, quite useful even for some generic use-cases that are not leaning heavily into metaprogramming.
axelson
Thanks Jose! That’s a great improvement!
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance










