Skip to content

Commit 6d1593e

Browse files
authored
Merge pull request #29 from swarit-stepsecurity/swarit/feat/windows-ide-support
feat(windows): ide support
2 parents eab8f68 + b7eef8d commit 6d1593e

16 files changed

Lines changed: 1604 additions & 89 deletions

File tree

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
See [VERSIONING.md](VERSIONING.md) for why the version starts at 1.8.1.
99

10+
## [Unreleased]
11+
12+
### Added
13+
14+
- **Glob-based Windows path matching**: `detectWindows` supports wildcard patterns in `WinPaths` for JetBrains IDEs that embed version numbers in folder names. Picks the newest installation when multiple versions are present.
15+
- **`product-info.json` version extraction**: Reads JetBrains `product-info.json` for accurate marketing version numbers on Windows (avoids registry build numbers).
16+
- **`.eclipseproduct` version extraction**: Reads Eclipse's `.eclipseproduct` properties file for version detection on Windows.
17+
- **JetBrains plugin detection enhancements**: Reads `productVendor` from `product-info.json` for correct config paths (handles Android Studio's `Google` vendor). Checks `idea.plugins.path` override in `idea.properties`.
18+
19+
### Fixed
20+
21+
- **Windows project package scanning**: Added `RunInDir` to Executor interface to bypass `cmd.exe` quote escaping issues. Fixes project-level NPM packages not being collected on Windows.
22+
1023
## [1.10.0] - 2026-04-20
1124

1225
### Added

SCAN_COVERAGE.md

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,28 @@ This document catalogs everything Dev Machine Guard detects. Contributions to ex
44

55
## IDEs & AI Desktop Apps
66

7-
| Application | Vendor | Detection Method | Version Extraction |
8-
|-----------------------|-----------|-----------------------------|---------------------------------|
9-
| Visual Studio Code | Microsoft | `/Applications/Visual Studio Code.app` | Binary `--version` |
10-
| Cursor | Cursor | `/Applications/Cursor.app` | Binary `--version` |
11-
| Windsurf | Codeium | `/Applications/Windsurf.app`| Binary `--version` |
12-
| Antigravity | Google | `/Applications/Antigravity.app` | Binary `--version` |
13-
| Zed | Zed | `/Applications/Zed.app` | `Info.plist` |
14-
| Claude Desktop | Anthropic | `/Applications/Claude.app` | `Info.plist` |
15-
| Microsoft Copilot | Microsoft | `/Applications/Copilot.app` | `Info.plist` |
7+
| Application | Vendor | macOS Detection | Windows Detection | Version Extraction |
8+
|-----------------------|-------------------|------------------------------------------|----------------------------------------------------------|-------------------------------------|
9+
| Visual Studio Code | Microsoft | `/Applications/Visual Studio Code.app` | `%PROGRAMFILES%\Microsoft VS Code` | Binary `--version` |
10+
| Cursor | Cursor | `/Applications/Cursor.app` | `%LOCALAPPDATA%\Programs\cursor` | Binary `--version` |
11+
| Windsurf | Codeium | `/Applications/Windsurf.app` | `%LOCALAPPDATA%\Programs\Windsurf` | Binary `--version` |
12+
| Antigravity | Google | `/Applications/Antigravity.app` | `%LOCALAPPDATA%\Programs\Antigravity` | Binary `--version` |
13+
| Zed | Zed | `/Applications/Zed.app` | `%LOCALAPPDATA%\Zed` | `Info.plist` |
14+
| Claude Desktop | Anthropic | `/Applications/Claude.app` | `%LOCALAPPDATA%\Programs\Claude` | `Info.plist` / Registry |
15+
| Microsoft Copilot | Microsoft | `/Applications/Copilot.app` | `%LOCALAPPDATA%\Programs\Copilot` | `Info.plist` / Registry |
16+
| IntelliJ IDEA Ultimate| JetBrains | `/Applications/IntelliJ IDEA.app` | `%PROGRAMFILES%\JetBrains\IntelliJ IDEA <ver>` | `product-info.json` / `Info.plist` |
17+
| IntelliJ IDEA CE | JetBrains | `/Applications/IntelliJ IDEA CE.app` | `%PROGRAMFILES%\JetBrains\IntelliJ IDEA Community Edition <ver>` | `product-info.json` / `Info.plist` |
18+
| PyCharm Professional | JetBrains | `/Applications/PyCharm.app` | `%PROGRAMFILES%\JetBrains\PyCharm <ver>` | `product-info.json` / `Info.plist` |
19+
| PyCharm CE | JetBrains | `/Applications/PyCharm CE.app` | `%PROGRAMFILES%\JetBrains\PyCharm Community Edition <ver>` | `product-info.json` / `Info.plist` |
20+
| WebStorm | JetBrains | `/Applications/WebStorm.app` | `%PROGRAMFILES%\JetBrains\WebStorm <ver>` | `product-info.json` / `Info.plist` |
21+
| GoLand | JetBrains | `/Applications/GoLand.app` | `%PROGRAMFILES%\JetBrains\GoLand <ver>` | `product-info.json` / `Info.plist` |
22+
| PhpStorm | JetBrains | `/Applications/PhpStorm.app` | `%PROGRAMFILES%\JetBrains\PhpStorm <ver>` | `product-info.json` / `Info.plist` |
23+
| CLion | JetBrains | `/Applications/CLion.app` | `%PROGRAMFILES%\JetBrains\CLion <ver>` | `product-info.json` / `Info.plist` |
24+
| Rider | JetBrains | `/Applications/Rider.app` | `%PROGRAMFILES%\JetBrains\JetBrains Rider <ver>` | `product-info.json` / `Info.plist` |
25+
| RubyMine | JetBrains | `/Applications/RubyMine.app` | `%PROGRAMFILES%\JetBrains\RubyMine <ver>` | `product-info.json` / `Info.plist` |
26+
| DataGrip | JetBrains | `/Applications/DataGrip.app` | `%PROGRAMFILES%\JetBrains\DataGrip <ver>` | `product-info.json` / `Info.plist` |
27+
| Android Studio | Google | `/Applications/Android Studio.app` | `%PROGRAMFILES%\Android\Android Studio` | `product-info.json` / `Info.plist` |
28+
| Eclipse IDE | Eclipse Foundation| `/Applications/Eclipse.app` | `%PROGRAMFILES%\eclipse`, `C:\eclipse`, `%USERPROFILE%\eclipse\*\eclipse` | `.eclipseproduct` / `Info.plist` |
1629

1730
## AI CLI Tools
1831

@@ -60,12 +73,16 @@ This document catalogs everything Dev Machine Guard detects. Contributions to ex
6073
| Open Interpreter | `~/.config/open-interpreter/config.yaml` | OpenSource|
6174
| Codex | `~/.codex/config.toml` | OpenAI |
6275

63-
## IDE Extensions
76+
## IDE Extensions & Plugins
77+
78+
| IDE | Extensions/Plugins Directory | Format |
79+
|------------------|-------------------------------------------------------------------------------|-------------------------------|
80+
| VS Code | `~/.vscode/extensions` | `publisher.name-version` |
81+
| Cursor | `~/.cursor/extensions` | `publisher.name-version` |
82+
| JetBrains IDEs | macOS: `~/Library/Application Support/JetBrains/<dataDir>/plugins/` | `<name>/lib/<name>-version.jar` |
83+
| | Windows: `%APPDATA%\JetBrains\<dataDir>\plugins\` | |
6484

65-
| IDE | Extensions Directory | Format |
66-
|-------------|--------------------------------|-------------------------------|
67-
| VS Code | `~/.vscode/extensions` | `publisher.name-version` |
68-
| Cursor | `~/.cursor/extensions` | `publisher.name-version` |
85+
JetBrains plugin detection reads `product-info.json` from the IDE install path to resolve the `dataDirectoryName` (e.g., `GoLand2025.1`), then scans user-installed plugins. Only user-installed plugins are reported (bundled plugins in the install directory are excluded).
6986

7087
## Node.js Package Scanning (Optional)
7188

0 commit comments

Comments
 (0)