fix: make library suggestions available in module files (#11373)

This PR makes the library suggestions extension state available when
importing from `module` files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Kim Morrison 2025-11-26 16:39:27 +11:00 committed by GitHub
parent 5ac0931c8f
commit e8d35a1d77
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 39 additions and 4 deletions

View file

@ -6,8 +6,8 @@ Authors: Kim Morrison
module
prelude
import Lean.LibrarySuggestions.Basic
public import Lean.LibrarySuggestions.Basic
import Lean.LibrarySuggestions.SymbolFrequency
import Lean.LibrarySuggestions.MePo
import Lean.LibrarySuggestions.SineQuaNon
import Lean.LibrarySuggestions.Default
public import Lean.LibrarySuggestions.SineQuaNon
public import Lean.LibrarySuggestions.Default

View file

@ -1,6 +1,5 @@
import Lean.LibrarySuggestions
import Lean.Meta.Basic
import Std.Data.ExtHashMap
/-!
# Test that library suggestions persist across file boundaries

View file

@ -0,0 +1,36 @@
module
import Lean
/-!
# Test that library suggestions persist across file boundaries
This test verifies that the default library suggestion engine set in
`Lean.LibrarySuggestions.Default` is correctly persisted when imported via `Lean.LibrarySuggestions`.
We do NOT call `set_library_suggestions` in this file - the selector should
already be set from importing Lean.LibrarySuggestions (which imports Default).
-/
/--
info: ✓ Selector found in imported state: (Term.open
"open"
(Command.openSimple [`Lean.LibrarySuggestions])
"in"
(Term.app `sineQuaNonSelector.filterGrindAnnotated.intersperse [`currentFile]))
---
info: ✓ Successfully retrieved selector using getSelector!
-/
#guard_msgs in
open Lean Lean.LibrarySuggestions in
run_cmd do
let stx? := librarySuggestionsExt.getState (← getEnv)
match stx? with
| none => Lean.logInfo "❌ No selector found in imported state!"
| some stx =>
Lean.logInfo s!"✓ Selector found in imported state: {stx}"
-- Try to retrieve the selector using getSelector
Elab.Command.liftTermElabM do
let selector? ← getSelector
match selector? with
| none => Lean.logInfo " ❌ getSelector returned none"
| some _ => Lean.logInfo " ✓ Successfully retrieved selector using getSelector!"