Repository navigation
fix(lsp): resolve authoring and hover quality issues - #4227
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThe PR centralizes language metadata, adds builtin type resolution, expands hover and completion behavior, adds extensive LSP regression coverage, and distinguishes missing playground configuration from other server failures in logs. ChangesShared language metadata and builtin resolution
LSP completion and hover enhancements
Playground exit classification
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
⏭️ Performance benchmarks were skippedPerf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to To run them on this PR, do any of the following, then push a commit (or re-run CI):
|
Binary size checks passed✅ 7 passed
Generated by |
6f0baa0 to
b0e2133
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 31a6007b34
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if let Some(info) = primitive_type_info(&token) { | ||
| return Some(info); |
There was a problem hiding this comment.
Resolve primitive-named symbols before showing primitive docs
When an ordinary declaration or member is named string, int, bool, etc., this unconditional early return reports the built-in primitive documentation instead of the symbol's actual type. For example, hovering either the declaration or use of class Row { string int } / row.string now displays “A UTF-8 encoded string” rather than string: int; primitive documentation needs to be restricted to type/static-primitive contexts or attempted after symbol/member resolution.
Useful? React with 👍 / 👎.
| let in_llm_body = item_data::function_llm_meta(db, loc).is_some() | ||
| && range_contains(source_map.span, offset); | ||
| on_declaration || in_llm_body |
There was a problem hiding this comment.
Verify LLM parameter references before applying the fallback
Inside a declarative LLM function, in_llm_body accepts every token whose text matches any parameter, without checking whether that occurrence resolves to the parameter. Thus, if parameter subject coexists with an expression such as email.subject, hovering the field returns the parameter's type instead of the inferred field type because this fallback runs before member_type_info_at; limit the fallback to bare parameter references or consult the token's inferred resolution.
Useful? React with 👍 / 👎.
b0e2133 to
d793ae2
Compare
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (2)
baml_language/crates/baml_lsp2_actions/src/completions.rs (1)
1157-1172: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider extracting the generic-specialization logic shared with
resolve_field_type.Lines 1158-1166 duplicate the
class_generic_params→bind_type_vars→resolve_class_fields→substitute_typipeline fromresolve_field_type(Lines 1043-1051). A small helper (e.g.specialized_class_fields(db, class_loc, type_args) -> Vec<(Name, Ty)>) would keep both paths from drifting.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@baml_language/crates/baml_lsp2_actions/src/completions.rs` around lines 1157 - 1172, The generic specialization pipeline is duplicated between the completion field loop and resolve_field_type. Extract it into a shared helper, such as specialized_class_fields, that binds class_generic_params, resolves class fields, substitutes each field type, and returns the specialized field name/type pairs; update both callers to use this helper while preserving existing field attributes and completion behavior.baml_language/crates/baml_lsp2_actions/src/type_info.rs (1)
672-673: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value
sort_by_keythen taking the first element can bemin_by_key.Same for
function_parameter_type_info_at(Lines 977-991) — only the minimum candidate is used, so a full sort isn't needed.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@baml_language/crates/baml_lsp2_actions/src/type_info.rs` around lines 672 - 673, Replace the full candidate sorting in the visible type-info selection logic with min_by_key, selecting the candidate with the smallest span length directly. Apply the same change in function_parameter_type_info_at, preserving the existing tuple destructuring and optional return behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@baml_language/crates/baml_lsp2_actions/src/type_info.rs`:
- Around line 443-444: The primitive_type_info and literal_type_info helpers
currently classify tokens by text alone, shadowing identifiers before type
resolution. Update both match paths to require the appropriate primitive or
literal SyntaxKind (or an equivalent type-reference context), including the arms
around the true/false/null cases, while preserving documentation for genuine
keyword literals and allowing WORD tokens to reach name resolution in type_at.
- Around line 935-938: Update the throws-clause construction in the interface
method signature renderer to default to " throws never", matching
render_function_data_signature. Preserve the existing formatted clause when
method.throws contains a type reference.
In `@baml_language/crates/bex_project/src/bex_lsp/multi_project/request.rs`:
- Around line 895-900: Track the client’s completion-item snippetSupport
capability during initialize, then update completion conversion around
item.insert_text_format to avoid emitting InsertTextFormat::SNIPPET when
unsupported. For clients without support, downgrade the snippet by removing or
sanitizing tabstops and ensure the resulting completion does not expose raw
snippet syntax.
---
Nitpick comments:
In `@baml_language/crates/baml_lsp2_actions/src/completions.rs`:
- Around line 1157-1172: The generic specialization pipeline is duplicated
between the completion field loop and resolve_field_type. Extract it into a
shared helper, such as specialized_class_fields, that binds
class_generic_params, resolves class fields, substitutes each field type, and
returns the specialized field name/type pairs; update both callers to use this
helper while preserving existing field attributes and completion behavior.
In `@baml_language/crates/baml_lsp2_actions/src/type_info.rs`:
- Around line 672-673: Replace the full candidate sorting in the visible
type-info selection logic with min_by_key, selecting the candidate with the
smallest span length directly. Apply the same change in
function_parameter_type_info_at, preserving the existing tuple destructuring and
optional return behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 6340bb9e-63ff-4dc2-8f5e-0582cd7ec92f
⛔ Files ignored due to path filters (2)
baml_language/crates/baml_lsp2_actions/src/snapshots/baml_lsp2_actions__describe_tests__describe_function.snapis excluded by!**/*.snapbaml_language/crates/baml_lsp2_actions/src/snapshots/baml_lsp2_actions__describe_tests__describe_function_with_enum_param.snapis excluded by!**/*.snap
📒 Files selected for processing (31)
baml_language/crates/baml_lsp2_actions/src/completions.rsbaml_language/crates/baml_lsp2_actions/src/describe.rsbaml_language/crates/baml_lsp2_actions/src/lib.rsbaml_language/crates/baml_lsp2_actions/src/type_info.rsbaml_language/crates/baml_lsp2_actions/src/type_info_tests.rsbaml_language/crates/baml_lsp2_actions_tests/src/lib.rsbaml_language/crates/baml_lsp2_actions_tests/src/lsp_issues_authoring.rsbaml_language/crates/baml_lsp2_actions_tests/src/lsp_issues_generic_hover.rsbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b966_template_interpolation_hover_highlight.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b967_config_block_hover_highlight.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b974_top_level_snippet_completion.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b976_type_attribute_hover_highlight.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_968_builtin_function.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_969_enum_variant.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_970_primitive_types.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_971_class_member_references.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_972_literal_values.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_973_llm_function_arguments.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_975_keywords.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_977_method_and_field_declarations.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_978_interface_method_parameters.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b979_interface_generics.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b980_generic_bounds.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b981_typevar_hover.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b983_item_access_shadowing.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b984_parameter_generics.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b985_narrowed_binding.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b986_implicit_throws_never.bamlbaml_language/crates/baml_lsp_server/src/lib.rsbaml_language/crates/baml_lsp_server/src/playground_server.rsbaml_language/crates/bex_project/src/bex_lsp/multi_project/request.rs
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
baml_language/crates/baml_lsp2_actions/src/type_info.rs (1)
757-775: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueDuplicate enum-variant declaration rendering. The
"{Enum}.{Variant}: {Enum}"format is built here and again inmember_type_info_at(Lines 1113-1121). Extracting a small helper (e.g.render_enum_variant_declaration(enum_data, variant_name)) keeps the two hover paths from drifting.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@baml_language/crates/baml_lsp2_actions/src/type_info.rs` around lines 757 - 775, Extract the duplicated enum-variant declaration formatting from the shown enum lookup and member_type_info_at into a shared helper such as render_enum_variant_declaration. Update both hover paths to call the helper while preserving the existing "{Enum}.{Variant}: {Enum}" output.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@baml_language/crates/baml_lsp2_actions/src/type_info.rs`:
- Around line 1500-1508: Update the parameter hover rendering in the
DefinitionSite::Parameter handling to look up the type from the PIR signature
list aligned with param_idx, rather than data.params from function_data.
Preserve arena-backed type rendering so generic arguments remain visible, and
keep the existing unknown fallback when no matching signature or type reference
exists.
---
Nitpick comments:
In `@baml_language/crates/baml_lsp2_actions/src/type_info.rs`:
- Around line 757-775: Extract the duplicated enum-variant declaration
formatting from the shown enum lookup and member_type_info_at into a shared
helper such as render_enum_variant_declaration. Update both hover paths to call
the helper while preserving the existing "{Enum}.{Variant}: {Enum}" output.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: db3a7dba-531b-40f4-8dd2-69c9d25e40ff
⛔ Files ignored due to path filters (2)
baml_language/crates/baml_lsp2_actions/src/snapshots/baml_lsp2_actions__describe_tests__describe_function.snapis excluded by!**/*.snapbaml_language/crates/baml_lsp2_actions/src/snapshots/baml_lsp2_actions__describe_tests__describe_function_with_enum_param.snapis excluded by!**/*.snap
📒 Files selected for processing (31)
baml_language/crates/baml_lsp2_actions/src/completions.rsbaml_language/crates/baml_lsp2_actions/src/describe.rsbaml_language/crates/baml_lsp2_actions/src/lib.rsbaml_language/crates/baml_lsp2_actions/src/type_info.rsbaml_language/crates/baml_lsp2_actions/src/type_info_tests.rsbaml_language/crates/baml_lsp2_actions_tests/src/lib.rsbaml_language/crates/baml_lsp2_actions_tests/src/lsp_issues_authoring.rsbaml_language/crates/baml_lsp2_actions_tests/src/lsp_issues_generic_hover.rsbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b966_template_interpolation_hover_highlight.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b967_config_block_hover_highlight.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b974_top_level_snippet_completion.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b976_type_attribute_hover_highlight.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_968_builtin_function.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_969_enum_variant.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_970_primitive_types.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_971_class_member_references.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_972_literal_values.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_973_llm_function_arguments.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_975_keywords.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_977_method_and_field_declarations.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_978_interface_method_parameters.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b979_interface_generics.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b980_generic_bounds.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b981_typevar_hover.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b983_item_access_shadowing.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b984_parameter_generics.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b985_narrowed_binding.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b986_implicit_throws_never.bamlbaml_language/crates/baml_lsp_server/src/lib.rsbaml_language/crates/baml_lsp_server/src/playground_server.rsbaml_language/crates/bex_project/src/bex_lsp/multi_project/request.rs
🚧 Files skipped from review as they are similar to previous changes (25)
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b983_item_access_shadowing.baml
- baml_language/crates/baml_lsp2_actions_tests/src/lsp_issues_authoring.rs
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_972_literal_values.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_978_interface_method_parameters.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b979_interface_generics.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b984_parameter_generics.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_975_keywords.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_968_builtin_function.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b974_top_level_snippet_completion.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b985_narrowed_binding.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b976_type_attribute_hover_highlight.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b981_typevar_hover.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_970_primitive_types.baml
- baml_language/crates/baml_lsp_server/src/lib.rs
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b986_implicit_throws_never.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_969_enum_variant.baml
- baml_language/crates/baml_lsp2_actions_tests/src/lsp_issues_generic_hover.rs
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_971_class_member_references.baml
- baml_language/crates/baml_lsp2_actions/src/type_info_tests.rs
- baml_language/crates/baml_lsp2_actions/src/describe.rs
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_973_llm_function_arguments.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_977_method_and_field_declarations.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b966_template_interpolation_hover_highlight.baml
- baml_language/crates/baml_lsp_server/src/playground_server.rs
- baml_language/crates/baml_lsp2_actions_tests/src/lib.rs
d793ae2 to
f50d022
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@baml_language/crates/baml_lsp2_actions/src/listing.rs`:
- Around line 139-149: Reject names containing empty path segments before the
split-and-resolve logic in the builtin target resolver, including trailing dots
such as "string."; preserve valid alias and member-path resolution. Add a Rust
regression unit test covering the rejected empty-segment input.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 0fd15a33-bf13-4bc8-a548-555ae6403ead
⛔ Files ignored due to path filters (3)
baml_language/Cargo.lockis excluded by!**/*.lockbaml_language/crates/baml_lsp2_actions/src/snapshots/baml_lsp2_actions__describe_tests__describe_function.snapis excluded by!**/*.snapbaml_language/crates/baml_lsp2_actions/src/snapshots/baml_lsp2_actions__describe_tests__describe_function_with_enum_param.snapis excluded by!**/*.snap
📒 Files selected for processing (46)
baml_language/crates/baml_base/src/language.rsbaml_language/crates/baml_base/src/lib.rsbaml_language/crates/baml_builtins2/Cargo.tomlbaml_language/crates/baml_builtins2/keyword_docs/baml_keywords.yamlbaml_language/crates/baml_builtins2/src/language_docs.rsbaml_language/crates/baml_builtins2/src/lib.rsbaml_language/crates/baml_cli/Cargo.tomlbaml_language/crates/baml_cli/src/describe_command.rsbaml_language/crates/baml_cli/src/describe_command_tests.rsbaml_language/crates/baml_compiler2_hir/src/builder.rsbaml_language/crates/baml_compiler2_tir/src/ty.rsbaml_language/crates/baml_lsp2_actions/Cargo.tomlbaml_language/crates/baml_lsp2_actions/src/completions.rsbaml_language/crates/baml_lsp2_actions/src/describe.rsbaml_language/crates/baml_lsp2_actions/src/lib.rsbaml_language/crates/baml_lsp2_actions/src/listing.rsbaml_language/crates/baml_lsp2_actions/src/type_info.rsbaml_language/crates/baml_lsp2_actions/src/type_info_tests.rsbaml_language/crates/baml_lsp2_actions_tests/src/lib.rsbaml_language/crates/baml_lsp2_actions_tests/src/lsp_issues_authoring.rsbaml_language/crates/baml_lsp2_actions_tests/src/lsp_issues_generic_hover.rsbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b966_template_interpolation_hover_highlight.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b967_config_block_hover_highlight.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b974_top_level_snippet_completion.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b976_type_attribute_hover_highlight.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_968_builtin_function.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_969_enum_variant.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_970_primitive_types.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_971_class_member_references.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_972_literal_values.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_973_llm_function_arguments.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_975_keywords.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_977_method_and_field_declarations.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_978_interface_method_parameters.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b979_interface_generics.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b980_generic_bounds.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b981_typevar_hover.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b983_item_access_shadowing.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b984_parameter_generics.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b985_narrowed_binding.bamlbaml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b986_implicit_throws_never.bamlbaml_language/crates/baml_lsp_server/src/lib.rsbaml_language/crates/baml_lsp_server/src/playground_server.rsbaml_language/crates/baml_type/src/names.rsbaml_language/crates/baml_type/src/primitive.rsbaml_language/crates/bex_project/src/bex_lsp/multi_project/request.rs
💤 Files with no reviewable changes (1)
- baml_language/crates/baml_cli/Cargo.toml
🚧 Files skipped from review as they are similar to previous changes (28)
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b976_type_attribute_hover_highlight.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b974_top_level_snippet_completion.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b986_implicit_throws_never.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_970_primitive_types.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_975_keywords.baml
- baml_language/crates/baml_lsp2_actions/src/lib.rs
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_969_enum_variant.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b981_typevar_hover.baml
- baml_language/crates/baml_lsp2_actions_tests/src/lsp_issues_authoring.rs
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b984_parameter_generics.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b967_config_block_hover_highlight.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_968_builtin_function.baml
- baml_language/crates/baml_lsp2_actions_tests/src/lsp_issues_generic_hover.rs
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_977_method_and_field_declarations.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b980_generic_bounds.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b979_interface_generics.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_972_literal_values.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_978_interface_method_parameters.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_973_llm_function_arguments.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_basic_hover/b_971_class_member_references.baml
- baml_language/crates/baml_lsp_server/src/playground_server.rs
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b985_narrowed_binding.baml
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_generic_hover/b983_item_access_shadowing.baml
- baml_language/crates/baml_lsp2_actions_tests/src/lib.rs
- baml_language/crates/baml_lsp2_actions_tests/test_files/lsp_issues_authoring/b966_template_interpolation_hover_highlight.baml
- baml_language/crates/bex_project/src/bex_lsp/multi_project/request.rs
- baml_language/crates/baml_lsp2_actions/src/completions.rs
- baml_language/crates/baml_lsp2_actions/src/type_info.rs
f50d022 to
6c3fe75
Compare
6c3fe75 to
b7cf351
Compare
b7cf351 to
e54cf6b
Compare
e54cf6b to
4980dad
Compare
4980dad to
c5eab17
Compare
c5eab17 to
b14f976
Compare
b14f976 to
9cd5697
Compare
9cd5697 to
670b3c0
Compare
Summary
throws neverbaml describe, includingbaml describe aliasINFOcondition while preservingERRORfor real playground failuresReproduction coverage
The new
baml_lsp2_actions_testsfixtures cover B-966 through B-986, including the cross-project B-972 issue. B-982 uses a direct action-level completion assertion because the fixture DSL only asserts completion labels. B-1001 is below the action boundary, so it has server unit coverage plus an exact process-level verification.No characterization-only assertions remain: every reproduced action issue is committed as a positive regression.
Validation
cargo fmt --all --checkcargo check -p baml_base -p baml_type -p baml_builtins2 -p baml_compiler2_hir -p baml_lsp2_actions -p baml_clicargo clippy -p baml_base -p baml_type -p baml_builtins2 -p baml_compiler2_hir -p baml_lsp2_actions --lib -- -D warningscargo test -p baml_type --libcargo test -p baml_builtins2 --libcargo test -p baml_lsp2_actions --libcargo test -p baml_lsp2_actions_tests --lib lsp_issues_basic_hovercargo test -p baml_cli --lib describe_command_testsbaml_testscoverage for duplicate attributes and attribute validationbaml-cli lspreproduction exits 0 and logs absent playground configuration atINFO, with no falseERRORTracks Linear B-1022 and its concrete LSP issue inventory.
Summary by CodeRabbit
throws neversignatures.Fixes B-1022