23 repository-uri
Tools that parse code to identify structures and map them to tokens.
Distinguishing note: Focuses on the analysis aspect of the parsing engine.
Explore 23 awesome GitHub repositories matching software engineering & architecture · Static Code Analyzers. Refine with filters or upvote what's useful.
Awesome Copilot is a comprehensive framework for autonomous software development, providing the infrastructure to orchestrate multi-agent teams and automate complex coding workflows. It functions as a centralized platform for managing AI-driven development, enabling developers to deploy specialized agents that interact with local files, terminal commands, and external APIs to execute end-to-end software delivery tasks. The project distinguishes itself through its focus on governance and extensibility, offering a suite of security controls, policy-based execution guardrails, and audit trails t
Parses function signatures and type definitions to ensure generated code aligns with project logic.
YouCompleteMe is a completion engine and semantic code analyzer for the Vim editor. It provides an integrated suite of development tools, including a Language Server Protocol client and a semantic analyzer that utilizes Clang to offer context-aware symbols and type-based highlighting. The project distinguishes itself through specialized semantic completion for C-family languages and JavaScript, offering identifiers, snippets, and automatic imports. It provides advanced visual feedback such as inlay hints for type information and parameter names, as well as semantic highlighting based on the a
Utilizes Clang to perform deep static analysis of C-family source code for context-aware intelligence.
Highlight.js is a syntax highlighting library that automatically detects and applies color-coded styling to source code blocks within web pages. It functions as a language-agnostic formatting engine, utilizing a modular processor that applies consistent visual themes to diverse programming languages based on their specific grammatical rules. By decoupling the core parsing logic from language-specific definitions, the library provides a unified execution environment that operates without requiring internal knowledge of the target language. The project is distinguished by its modular architectu
Parses text input to identify programming language structures for improved readability.
Cheat Engine is a software reverse engineering suite and memory editor designed for the Windows environment. It functions as a comprehensive platform for inspecting, analyzing, and modifying the internal logic and data structures of running applications. The tool provides capabilities for real-time memory scanning and manipulation, allowing users to locate and alter specific values within a process's address space. It distinguishes itself through advanced debugging features, including hardware-assisted debugging, kernel-mode driver injection for bypassing memory protections, and dynamic binar
Dissects and inspects structures and methods within managed applications to facilitate targeted modifications.
This project is a static analysis framework and linting engine designed to inspect TypeScript codebases. It functions as a plugin suite that enables standard linting workflows to parse source code into abstract syntax trees, allowing for the automated enforcement of coding standards and the identification of potential bugs through a modular, rule-based visitor pattern. The engine distinguishes itself by integrating directly with the TypeScript compiler to perform type-aware analysis. By accessing compiler type information, it can identify complex errors and unsafe patterns that standard synta
Accesses the compiler type checker to identify nuanced bugs and best practice violations that require deep understanding of code structure.
Swift Evolution serves as the central governance and design platform for the Swift programming language. It provides a structured, collaborative framework for tracking, discussing, and managing the formal proposals and technical goals that define the language's syntax, semantics, and core features. By maintaining a comprehensive collection of design documentation, the project ensures the long-term stability and consistency of the language as it matures. The repository acts as the primary hub for the language's evolution, coordinating community feedback and technical decisions through a transp
Transforms raw syntax trees into fully checked representations to identify logical errors and validate type safety.
This project is a CommonJS module bundler and resolver designed to combine interdependent JavaScript files into a single script for execution in web browsers. It functions as a Node.js JavaScript bundler that emulates server-side core modules and resolves dependencies to ensure compatibility between server-side logic and browser environments. The system features an extensible bundling pipeline and a browser-side module resolver. It provides a plugin architecture for transforming source code and a source map generator to correlate bundled output back to original files for debugging. The proje
Allows specific dependencies to be excluded from the internal bundle to be loaded as separate external scripts.
Swag is a documentation tool for Go that generates standardized API specification files by parsing declarative annotations within source code. It functions by analyzing source files to extract metadata from comments and function signatures, transforming them into machine-readable formats such as JSON or YAML. This process ensures that technical documentation remains synchronized with the underlying code structure throughout the development lifecycle. The tool distinguishes itself through its ability to perform static source code parsing and type-system reflection, which allows it to map compl
Analyzes source code using abstract syntax trees to extract metadata without executing the application.
Nitro is a cross-platform server engine and JavaScript server framework designed to bundle backend code for deployment across diverse cloud providers, edge functions, and serverless environments. It functions as a platform-agnostic backend runtime that translates platform-specific event objects into a standardized request and response format. The project utilizes a file-system based router to map the physical directory structure of the server folder directly to URL endpoints. It employs a build process to generate platform-agnostic bundles, ensuring the same server logic can run across differ
Analyzes the dependency graph to separate shared logic from route-specific code to reduce final deployment size.
TypeResolver is a PHP namespace resolver and type parser designed to convert partial class and element names into fully qualified names. It functions as a utility for static code analysis, transforming complex type expressions and primitives into structured value objects. The project implements PSR-5 standards to ensure consistent type referencing. It manages the resolution of structural elements by tracking current namespaces and alias contexts to expand partial identifiers into their full definitions. The tool covers the parsing of compound type strings and the management of PHP imports an
Parses type expressions and compound strings into value objects for static analysis without execution.
Hatch is a unified tool for managing Python environments, building packages, scaffolding projects, and installing Python versions. It provides a single command-line interface for automating common development workflows, including running scripts, tests, and static analysis with automatic dependency resolution and configuration. The tool manages project settings, dependencies, and build instructions through a declarative TOML configuration file, ensuring reproducibility across environments. It creates and manages isolated virtual environments across all major shells, installs and manages multi
Analyzes code statically with Ruff using current, sensible default configurations.
TSLint is an extensible static analysis tool that checks TypeScript source files against a configurable set of lint rules. It scans code by walking the parsed TypeScript abstract syntax tree, applying rule objects to detect readability, maintainability, and functionality errors. The tool supports rule severity configuration, inline suppression through comment directives, and automatic attachment of fix objects for correcting violations. The project provides a framework for developing custom lint rules and formatters, allowing teams to enforce project-specific coding conventions beyond the bui
Scans TypeScript source code against configurable rules to catch errors and enforce coding standards.
Pylint is a static code analyzer for Python that scans source code for errors, coding standard violations, code smells, and type-related issues without executing the program. It functions as a plugin-based linter framework, allowing users to extend its analysis capabilities with custom or third-party checks for project-specific rules and framework support. The tool also includes a duplicate code detector that identifies identical or near-identical code blocks across a project to help reduce redundancy. Beyond its core linting functionality, Pylint can generate UML class and package diagrams f
Scans Python source code for errors, coding standard violations, and code smells without executing the program.
Pylint este un instrument de analiză statică a codului pentru Python care verifică codul sursă pentru erori, încălcări ale standardelor de codare și „code smells” fără a executa programul. Acesta parsează codul într-un arbore de sintaxă abstractă și parcurge arborele pentru a detecta probleme, impune reguli de stil configurabile și convenții de denumire și identifică blocuri de cod duplicate prin compararea secvențelor sursă tokenizate. Instrumentul include, de asemenea, un motor de inferență care deduce tipurile de variabile prin simularea căilor de cod, permițând o analiză mai profundă chiar și în codul netipizat. Ceea ce distinge Pylint este arhitectura sa de verificare bazată pe plugin-uri, care permite utilizatorilor să extindă analiza prin încărcarea de module Python externe care înregistrează verificatoare personalizate și reguli de inferență la runtime. Suportă stratificarea fișierelor de configurare, îmbinând setările din mai multe fișiere de configurare și argumente de linie de comandă, astfel încât valorile implicite la nivel de proiect să poată fi suprascrise de opțiuni locale sau specifice plugin-ului. Pylint urmărește, de asemenea, calitatea codului în timp prin compararea rezultatelor analizei curente cu un scor de referință stocat, raportând îmbunătățirea sau regresia în rulări succesive și poate genera diagrame UML de clasă și pachet din arborele de sintaxă abstractă în formatele Graphviz, PlantUML sau MermaidJS. Instrumentul se integrează în pipeline-uri de integrare continuă și hook-uri pre-commit pentru a rula automat verificări pe mai multe versiuni de interpretor Python. Poate fi instalat prin pip, conda sau un manager de pachete de sistem și oferă verificarea opțională a ortografiei identificatorilor de cod prin biblioteca enchant. Pylint oferă, de asemenea, integrare în editoare pentru medii precum Emacs și TextMate și include un vizualizator de explicații pentru mesaje care tipărește descrierea completă și contextul oricărui cod specific de avertizare sau eroare direct din linia de comandă.
Checks Python source code for errors, coding standard violations, and code smells without execution.
Credo este un instrument de analiză statică și linter pentru Elixir. Funcționează ca un analizor de calitate a codului care scanează codul sursă pentru a identifica inconsistențe stilistice, greșeli comune și potențiale vulnerabilități de securitate. Instrumentul oferă un framework personalizabil pentru definirea și testarea unor reguli specializate pentru a impune standarde de codare specifice proiectului. Identifică fragmentele de cod complexe și duplicarea pentru a evidenția oportunitățile de refactorizare și simplificare. Capabilitățile sale acoperă revizuiri automate ale codului, impunerea standardelor de codare Elixir și feedback în timp real pentru dezvoltatori prin integrări în editor.
Parses Elixir code to identify structures and map them to tokens for consistency and quality analysis.
gocode este un backend de server de limbaj și un daemon de autocompletare pentru limbajul Go. Acesta funcționează ca un analizor static de cod și un indexator de simboluri care oferă sugestii de identificatori și simboluri în timp real pentru editoarele de text. Proiectul utilizează o arhitectură daemon client-server pentru a menține un proces persistent în fundal, evitând overhead-ul reîncărcării metadatelor pachetelor pentru fiecare cerere. Utilizează un sistem de caching al metadatelor pe două niveluri și parsează binarele pachetelor compilate pentru a permite căutări rapide de simboluri și regăsirea declarațiilor. Sistemul acoperă domenii largi de capabilități, inclusiv autocompletarea sensibilă la context pentru câmpuri membre, semnături de funcții și variabile, precum și formatarea automată a codului. Gestionează urmărirea domeniului lexical și rezoluția recursivă a simbolurilor pentru a asigura completări precise de tipuri și variabile. Utilitarele administrative permit configurarea daemonului, controlul stării și un mod de depanare cu logare detaliată pentru a monitoriza procesul din fundal.
Tracks lexical scopes and resolves package imports to ensure accurate type and variable completions.
preact-cli is a command line tool for scaffolding, developing, and building applications using the Preact library. It provides a Webpack-based build pipeline to coordinate code transformation, asset optimization, and production compilation. The toolkit includes a static site prerenderer to convert application routes into static HTML files and a PWA development toolkit for generating service workers and offline asset caching. It also functions as a frontend development server featuring hot module replacement and a proxy for real-time application iteration. The project covers a broad range of
Implements automatic route-based code splitting to reduce the initial bundle size for faster page loads.
Vulture este un instrument de analiză statică și linter conceput pentru a găsi variabile, funcții și clase neutilizate în codul sursă Python. Operează ca un detector de cod mort și un instrument de căutare a codului neutilizat care scanează fișierele sursă pentru a identifica expresiile și importurile inaccesibile fără a executa codul. Instrumentul folosește un sistem de scorare euristic bazat pe încredere pentru a atribui valori de probabilitate detecțiilor, ajutând la distingerea simbolurilor cu adevărat neutilizate de potențialele alarme false. Asistă în continuare la eliminarea logicii moarte prin sortarea claselor și funcțiilor neutilizate detectate după numărul de linii, pentru a prioritiza eliminarea celor mai mari blocuri de cod. Suprafața de analiză include analiza accesibilității fluxului de control, urmărirea referințelor simbolurilor și capacitatea de a suprima alarmele false prin tipare de nume, decoratori sau comentarii de ignorare. Vulture suportă, de asemenea, generarea și gestionarea listelor albe (whitelists) prin module mock pentru a exclude anumite elemente din scanările ulterioare. Regulile de analiză la nivel de proiect și căile țintă pot fi gestionate prin fișiere de configurare, inclusiv suport pentru formatul TOML.
Scans source files for unreachable expressions and unused imports without executing the code.
Acest proiect este o referință tehnică și un ghid pentru optimizarea performanței aplicațiilor Angular. Oferă o listă de verificare cuprinzătoare pentru îmbunătățirea vitezei și eficienței, concentrându-se pe optimizarea bundle-urilor, bunele practici de randare și execuția la runtime. Ghidul acoperă o gamă largă de diferențiatori, inclusiv implementarea strategiilor de tip progressive web app prin service workers și caching offline. De asemenea, detaliază metode pentru îmbunătățirea timpilor de încărcare percepuți folosind randarea pe partea de server (SSR) și shell-uri de aplicație. Repository-ul oferă îndrumări privind domenii mai largi de capabilități, cum ar fi reglarea detecției schimbărilor (change detection), utilizarea web worker-ilor pentru descărcarea calculelor grele și gestionarea DOM-ului prin virtual scrolling. De asemenea, acoperă reducerea dimensiunii bundle-ului prin tree-shaking, minificare și lazy-loading module splitting.
Divides the application into smaller chunks that load only when specific routes are accessed.
after.js este un framework de randare pe partea de server (SSR) pentru aplicații React care se integrează cu React Router pentru a coordona încărcarea datelor, rutarea și hidratarea. Acesta funcționează atât ca un framework de randare, cât și ca un generator de site-uri statice, capabil să exporte pagini ca fișiere HTML și JSON statice pentru livrarea prin rețele de livrare a conținutului (CDN). Framework-ul oferă un strat de preluare a datelor pe partea de server care populează proprietățile componentelor în timpul procesului de randare. Gestionează navigarea printr-un sistem de redirecționări bazate pe coduri de stare și gestionarea dinamică a erorilor, permițând aplicației să declanșeze redirecționări sau pagini de eroare de rezervă înainte de începerea randării. Proiectul acoperă o suprafață largă de capabilități, inclusiv hidratarea pe partea de client, împărțirea codului bazată pe rută și preluarea datelor pentru a stoca informațiile despre rută înainte de navigare. De asemenea, permite personalizarea structurii documentului HTML de bază și implementarea unor motoare de randare personalizate pe partea de server.
Defines lazy-loaded routes to divide application bundles into smaller chunks, reducing initial load times.