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
19 20 21 |
# File 'lib/rigor/analysis/project_scan.rb', line 19 def dependency_source_index @dependency_source_index end |
#plugin_prepare_diagnostics ⇒ Object (readonly)
Returns the value of attribute plugin_prepare_diagnostics
19 20 21 |
# File 'lib/rigor/analysis/project_scan.rb', line 19 def plugin_prepare_diagnostics @plugin_prepare_diagnostics end |
#plugin_registry ⇒ Object (readonly)
Returns the value of attribute plugin_registry
19 20 21 |
# File 'lib/rigor/analysis/project_scan.rb', line 19 def plugin_registry @plugin_registry end |
#pre_eval_diagnostics ⇒ Object (readonly)
Returns the value of attribute pre_eval_diagnostics
19 20 21 |
# File 'lib/rigor/analysis/project_scan.rb', line 19 def pre_eval_diagnostics @pre_eval_diagnostics end |
#project_patched_methods ⇒ Object (readonly)
Returns the value of attribute project_patched_methods
19 20 21 |
# File 'lib/rigor/analysis/project_scan.rb', line 19 def project_patched_methods @project_patched_methods end |
#synthetic_method_index ⇒ Object (readonly)
Returns the value of attribute synthetic_method_index
19 20 21 |
# File 'lib/rigor/analysis/project_scan.rb', line 19 def synthetic_method_index @synthetic_method_index end |