class

Detector::CSharp::Carter

Inherits Detector < Reference < Object

Constants

CARTER_MODULE = /\bI?CarterModule\b/

Detects Carter (https://github.com/CarterCommunity/Carter), a module library for ASP.NET Core minimal APIs. Carter projects are also ASP.NET Core projects, so the surrounding cs_aspnet_core_mvc detector fires too — Carter narrows the surface to ICarterModule.AddRoutes blocks tagged as cs_carter, and the analyzer skips files the MVC analyzer already owns.

Class methods

tech_name

The tech name without needing an instance, so the registry can be read off the classes themselves rather than from a parallel list.

Source

Instance methods

applicable?(filename : String) : Bool

Cheap filename-only filter the detector pass uses to skip detect on files the detector cannot possibly match. The default true preserves prior behavior (every detector runs on every file). Override with the same predicate the body of detect starts with — e.g., filename.ends_with?(".py") for a Python framework detector — so the detector loop avoids the detect dispatch on files outside the detector's language.

On large codebases (saleor's 4255 .py files) this lifts ~100 virtual detect calls per file out of the hot loop because most detectors' inner first-line is exactly this kind of cheap filename check.

Source
detect(filename : String, file_contents : String) : Bool
Source
set_name
Source