Skip to main content

JavascriptPlugin

Struct JavascriptPlugin 

Source
pub struct JavascriptPlugin;
Expand description

The JavaScript language plugin (handles .js / .jsx / .mjs / .cjs).

Trait Implementations§

Source§

impl LanguagePlugin for JavascriptPlugin

Source§

fn name(&self) -> &str

Canonical name, e.g. "rust". Used by --plugin and recorded in the snapshot. Each plugin has exactly one name (js and ts are separate).
Source§

fn detect(&self, workspace: &Path, _input: &PluginInput) -> bool

Can this plugin parse workspace (honoring input)?
Source§

fn levels(&self) -> Vec<Level>

Levels this plugin can produce, each carrying its edge-kind / attribute / node-kind / cycle-kind semantics.
Source§

fn analyze( &self, workspace: &Path, _level: &str, input: &PluginInput, ) -> Result<Graph>

Parse the workspace into a graph AT level (by name). Structure only: nodes (with their structural attributes) + edges. Metrics are added downstream. When input.ignore_tests is set, the plugin must drop its own test files here (it knows the language’s conventions; see is_test_path).
Source§

fn metrics(&self, graph: &mut Graph) -> usize

Write this language’s per-file complexity metrics (cyclomatic, cognitive, Halstead, MI, LOC, …) onto the graph’s file nodes, in place. The plugin parses each of its own files (by node.id, an absolute path) with its own grammar and calls the matching code-ranker-complexity engine. Returns the number of file nodes annotated. Default: none (a plugin that ships no metric engine).
Source§

fn is_test_path(&self, rel_path: &str) -> bool

Does this workspace-relative path (forward-slashed, no leading ./) name a test file in this language? Used to drop tests during the walk when PluginInput::ignore_tests is set. Default: nothing is a test.
Source§

fn versions( &self, _workspace: &Path, _input: &PluginInput, ) -> Vec<(String, String)>

Toolchain versions to record in the snapshot, e.g. [("rustc", "1.88.0")].
Source§

fn roots(&self, _workspace: &Path) -> Vec<(String, String)>

Named external-path roots for this language, as (name, absolute_path) pairs, used to shorten node ids in the snapshot (a path under a root is rewritten to {name}/…). These are language-specific — e.g. Rust returns cargo / registry / rustup / rust-src; a Python plugin would return its virtualenv / site-packages; JS/TS would return node_modules. The orchestrator always adds the generic target root itself, so a plugin returns only its own toolchain/dependency locations. Default: none. Read more
Source§

fn presets(&self, defaults: Vec<Preset>, _input: &PluginInput) -> Vec<Preset>

Transform the orchestrator’s generic default presets for this language. Default: pass them through unchanged. A plugin may reword a prompt, change a sort_metric, drop a preset, or add language-specific ones.
Source§

fn metric_specs( &self, defaults: BTreeMap<String, AttributeSpec>, ) -> BTreeMap<String, AttributeSpec>

Transform the orchestrator’s language-neutral default complexity metric specs (key → AttributeSpec, from code-ranker-graph’s metric_specs) for this language. Default: pass them through unchanged. A plugin may reword a description to add language-specific nuance (e.g. Rust noting that sloc / lloc / cloc / blank exclude inline #[cfg(test)] items) — so the shared catalog stays neutral and each language refines only what differs.
Source§

fn thresholds(&self) -> BTreeMap<String, Thresholds>

Language-calibrated per-metric thresholds (attribute key → tiers). The orchestrator overlays these onto the attribute specs. Default: none.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.