This repository is a Visual Studio Code extension for developing, debugging, and simulating Apache Cordova and Ionic mobile applications. It provides a comprehensive debug adapter that supports launching and attaching to Android, iOS, browser, and simulated targets. The extension integrates with the Chrome DevTools Protocol (CDP) via a custom proxy to enable sourcemap rewriting and cross-platform debugging, and it offers IntelliSense for Cordova plugin APIs and Ionic framework components. It also includes commands for building, running, preparing, and cleaning Cordova/Ionic projects, as well as telemetry and localization support across 14 languages. The architecture is modular: the core debug session (`CordovaDebugSession`) delegates to platform-specific implementations (`AndroidPlatform`, `IosPlatform`, `BrowserPlatform`) that inherit from abstract base classes (`AbstractPlatform`, `AbstractMobilePlatform`). A CDP proxy layer (`CordovaCDPProxy`) intercepts and transforms messages between the debugger and the target runtime, with specialized message handlers for Chrome and Safari runtimes. Target management is handled by `MobileTargetManager` subclasses (`AndroidTargetManager`, `IOSTargetManager`) that enumerate devices and emulators. The extension also includes a plugin simulator (`PluginSimulator`) that serves the app via `cordova-simulate` and a Socket.IO connection. Key entry points include the extension activation (`src/extension/cordova-extension.ts`), the debug configuration provider (`src/extension/debugConfigurationProvider.ts`), and the debug session class (`src/debugger/cordovaDebugSession.ts`). External dependencies include the Cordova CLI, Ionic CLI, Android SDK, iOS toolchain (Xcode, ios-webkit-debug-proxy), and npm packages like `cordova-simulate`, `socket.io-client`, and `vscode-js-debug-browsers`. The codebase is written in TypeScript and uses Gulp and Webpack for building. While the extension is functionally complete and well-structured, it shows signs of technical drift: many dependencies are outdated (e.g., `applicationinsights` 0.15.6, `socket.io-client` 2.4.0), the Cordova ecosystem has declined in favor of Capacitor, and the large i18n file set (200+ files) adds maintenance overhead. The code contains some legacy patterns (e.g., `eval` for custom require, extensive use of `any` types) and hardcoded timeouts. Despite this, the core abstractions for platform handling and CDP message processing are well-designed and potentially reusable.
This VS Code extension replaces the built-in TypeScript version with the nightly build of TypeScript (`typescript@next`), providing the latest TypeScript and JavaScript IntelliSense features. It is a small, focused extension that contributes TextMate grammars for JavaScript, TypeScript, JSX, and TSX syntax highlighting, sourced from the Microsoft/TypeScript-TmLanguage repository. The extension is designed for advanced users who want to test upcoming TypeScript features before they are officially released. The codebase is minimal: a package.json defining the extension, a set of grammar JSON files, and build scripts for updating the grammar and version. The CI pipeline (Azure Pipelines) automates the process of pulling the latest TypeScript nightly and publishing the extension. The extension is currently in a maintained state but with reduced activity, as the CI scheduled trigger is disabled to avoid picking up TypeScript 7. The grammars are large, well-structured TextMate definitions that follow standard patterns and are reusable in other editors. The overall codebase is functional and straightforward, but lacks original craftsmanship beyond the grammar modularity.
ShaderlabVS is a Visual Studio Extension (VSIX) designed to enhance the development experience for Unity Shaderlab, CG, and HLSL files within the Visual Studio IDE. It provides core editor features including syntax highlighting, code completion, outlining, quick info tooltips, and signature help. The architecture is divided into a core extension project (`ShaderlabVS`) that integrates with the Visual Studio Editor API, a data library (`ShaderlabVS.Data`) that manages keyword and function definitions via a custom `.def` file format, and build tools (`ShaderlabVS.LexTools`) that generate lexer tables using `gplex.exe`. Despite the functionality, the project is effectively stale and superseded. The README explicitly states that ShaderlabVS has been upgraded to "Omni Shader Tools for Unity," which features a completely rewritten parser. The codebase targets Visual Studio 2013, 2015, and 2017, relying on .NET Framework 4.5 and older VSSDK APIs. This makes it incompatible with modern Visual Studio versions (2019/2022) without significant refactoring. While the code demonstrates solid engineering practices for its time (MEF usage, separation of data/logic, unit tests), it is no longer the recommended solution for Unity shader development in Visual Studio. The repository contains a custom lexer generator and a robust data parsing system that could serve as a reference for building language services, but the extension itself is legacy. Users seeking similar functionality should migrate to the Omni Shader Tools project mentioned in the README.