Class: Rigor::Analysis::ProjectScan
- Inherits:
-
Data
- Object
- Data
- Rigor::Analysis::ProjectScan
- Defined in:
- lib/rigor/analysis/project_scan.rb
Overview
Frozen snapshot of the project-wide state Runner consumes before per-file analysis fires: the loaded plugin registry (with ‘#prepare` already invoked), the dependency-source index, the synthetic-method and project-patched indexes produced by the pre-pass scanners, and the diagnostics those passes emitted.
Owners (‘Rigor::LanguageServer::ProjectContext`, future editor / sig-gen integrations) build a ProjectScan once per project-state generation via `Runner#prepare_project_scan` and pass it to `Runner.new(prebuilt: …)` so per-buffer publishes skip the scanner walks and `#prepare` re-runs. When watched project files change, the owner discards the ProjectScan and a fresh one builds on next read.
Editor mode v1 contract reminder: scanners observe the bytes that were on disk at scan time, NOT the in-flight buffer. Edits to a file that itself declares synthetic methods (or ‘pre_eval:`-listed patches) are NOT visible until the owner invalidates the scan — typically via `workspace/didChangeWatchedFiles`. This is the same trade-off the LSP made when slice 7 cached only the `Environment`; extending the cache to the pre-pass outputs preserves the contract.
Instance Attribute Summary collapse
-
#dependency_source_index ⇒ Object
readonly
Returns the value of attribute dependency_source_index.
-
#plugin_prepare_diagnostics ⇒ Object
readonly
Returns the value of attribute plugin_prepare_diagnostics.
-
#plugin_registry ⇒ Object
readonly
Returns the value of attribute plugin_registry.
-
#pre_eval_diagnostics ⇒ Object
readonly
Returns the value of attribute pre_eval_diagnostics.
-
#project_patched_methods ⇒ Object
readonly
Returns the value of attribute project_patched_methods.
-
#synthetic_method_index ⇒ Object
readonly
Returns the value of attribute synthetic_method_index.
Instance Attribute Details
#dependency_source_index ⇒ Object (readonly)
Returns the value of attribute dependency_source_index
30 31 32 |
# File 'lib/rigor/analysis/project_scan.rb', line 30 def dependency_source_index @dependency_source_index end |
#plugin_prepare_diagnostics ⇒ Object (readonly)
Returns the value of attribute plugin_prepare_diagnostics
30 31 32 |
# File 'lib/rigor/analysis/project_scan.rb', line 30 def plugin_prepare_diagnostics @plugin_prepare_diagnostics end |
#plugin_registry ⇒ Object (readonly)
Returns the value of attribute plugin_registry
30 31 32 |
# File 'lib/rigor/analysis/project_scan.rb', line 30 def plugin_registry @plugin_registry end |
#pre_eval_diagnostics ⇒ Object (readonly)
Returns the value of attribute pre_eval_diagnostics
30 31 32 |
# File 'lib/rigor/analysis/project_scan.rb', line 30 def pre_eval_diagnostics @pre_eval_diagnostics end |
#project_patched_methods ⇒ Object (readonly)
Returns the value of attribute project_patched_methods
30 31 32 |
# File 'lib/rigor/analysis/project_scan.rb', line 30 def project_patched_methods @project_patched_methods end |
#synthetic_method_index ⇒ Object (readonly)
Returns the value of attribute synthetic_method_index
30 31 32 |
# File 'lib/rigor/analysis/project_scan.rb', line 30 def synthetic_method_index @synthetic_method_index end |