8083: Track source file IDs in source mapping of Attrs r=jonas-schievink a=Veykril
Fixes the panics/incorrect injection highlighting of outline module declarations until we figure out a nicer source mapping strategy for attributes.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
8093: Record custom derive helpers in `DefMap` r=jonas-schievink a=jonas-schievink
Also clean up proc macro attribute parsing a bit
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8088: Store an `AstId` for procedural macros r=jonas-schievink a=jonas-schievink
Point `HasSource` to the `ast::Fn`, and go to it in `TryToNav`.
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8087: Make MacroDefId's `AstId` mandatory when possible r=jonas-schievink a=jonas-schievink
This makes it clearer (in the type definition) which macros have or don't have an `AstId`
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8085: Create AstId for builtin_derive macro in tests r=jonas-schievink a=jonas-schievink
This moves them closer to the builtin_macro tests
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8080: Change ItemTree API to accomodate creating an ItemTree per block expression r=jonas-schievink a=jonas-schievink
...which won't go through salsa because the AST is already cached anyways
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8073: Improve diagnostic when including nonexistent file r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8072: Fix "unset `OUT_DIR`" diagnostic when using it in item position r=jonas-schievink a=jonas-schievink
"load out dirs from check" is enabled by default now, but better late than never I guess.
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8067: Check whether cursor is on and not between intra doc links in goto_definition r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
8065: Better handling of block doc comments r=Veykril a=Veykril
Moves doc string processing to `Attrs::docs`, as we need the indent info from all comments before being able to know how much to strip
Closes#7774
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>