|
1 | | -# Debugalizers |
| 1 | +<p align="center"> |
| 2 | + <img src="https://raw.githubusercontent.com/CodingWithCalvin/VS-Debugalizers/main/resources/logo.png" alt="Debugalizers Logo" width="128" /> |
| 3 | +</p> |
2 | 4 |
|
3 | | -A Visual Studio extension providing custom debug visualizers with formatting, syntax highlighting, and specialized views for common string data types. |
| 5 | +<h1 align="center">🔍 Debugalizers</h1> |
4 | 6 |
|
5 | | -[](https://github.com/CodingWithCalvin/VS-Debugalizers/actions/workflows/build.yml) |
6 | | -[](https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.Debugalizers) |
| 7 | +<p align="center"> |
| 8 | + <a href="https://visualstudio.microsoft.com/"><img src="https://img.shields.io/badge/Visual%20Studio-2022%20%7C%202026-purple?style=for-the-badge&logo=visualstudio&logoColor=white" alt="Visual Studio 2022"></a> |
| 9 | + <a href="https://dotnet.microsoft.com/"><img src="https://img.shields.io/badge/.NET%20Framework-4.8-blue?style=for-the-badge&logo=dotnet" alt=".NET Framework"></a> |
| 10 | + <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge" alt="License: MIT"></a> |
| 11 | +</p> |
7 | 12 |
|
8 | | -## Features |
| 13 | +<p align="center"> |
| 14 | + <a href="https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.Debugalizers"><img src="https://img.shields.io/visual-studio-marketplace/v/CodingWithCalvin.Debugalizers?style=for-the-badge&label=Marketplace" alt="Marketplace Version"></a> |
| 15 | + <a href="https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.Debugalizers"><img src="https://img.shields.io/visual-studio-marketplace/i/CodingWithCalvin.Debugalizers?style=for-the-badge&label=Installs" alt="Marketplace Installs"></a> |
| 16 | + <a href="https://github.com/CodingWithCalvin/VS-Debugalizers/actions/workflows/build.yml"><img src="https://img.shields.io/github/actions/workflow/status/CodingWithCalvin/VS-Debugalizers/build.yml?style=for-the-badge&label=Build" alt="Build Status"></a> |
| 17 | +</p> |
9 | 18 |
|
10 | | -Debugalizers provides specialized debug visualizers for various string content types, making it easier to inspect and understand data during debugging. |
| 19 | +--- |
11 | 20 |
|
12 | | -### Data Formats |
| 21 | +A **powerful collection** of debug visualizers for Visual Studio, providing beautiful formatting, syntax highlighting, and specialized views for common string data types. Stop squinting at raw JSON in the debugger! 🎯✨ |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +## 🚀 Features |
| 26 | + |
| 27 | +- 🎨 **30+ Visualizers** — JSON, XML, JWT, Base64, images, and many more |
| 28 | +- 🌳 **Multiple Views** — Raw, Formatted, Tree, Table, Hex, Rendered, and Image |
| 29 | +- 🖌️ **Syntax Highlighting** — Beautiful code highlighting via AvalonEdit |
| 30 | +- 🔎 **Search** — Find text within large content (Ctrl+F) |
| 31 | +- 📋 **Copy & Export** — Copy raw/formatted content or export to file |
| 32 | +- 🖥️ **Multi-Architecture** — Supports both x64 and ARM64 systems |
| 33 | + |
| 34 | +--- |
| 35 | + |
| 36 | +## 📦 Visualizer Catalog |
| 37 | + |
| 38 | +### 📄 Data Formats |
13 | 39 |
|
14 | 40 | | Visualizer | Description | Views | |
15 | 41 | |------------|-------------|-------| |
16 | | -| **JSON** | API responses, config files | Formatted, Tree, Raw | |
17 | | -| **XML** | SOAP, config, SVG | Formatted, Tree, Raw | |
18 | | -| **HTML** | Web content, email templates | Formatted, Rendered, Tree, Raw | |
19 | | -| **YAML** | Docker, K8s, CI/CD configs | Formatted, Tree, Raw | |
20 | | -| **TOML** | Rust configs, pyproject.toml | Formatted, Tree, Raw | |
21 | | -| **CSV/TSV** | Tabular data exports | Table, Raw | |
22 | | -| **INI** | Legacy config files | Formatted, Table, Raw | |
23 | | -| **Markdown** | Documentation strings | Rendered, Raw | |
24 | | -| **SQL** | Database queries | Formatted, Syntax Highlighted, Raw | |
25 | | -| **GraphQL** | API queries | Formatted, Syntax Highlighted, Raw | |
26 | | - |
27 | | -### Encoded Data |
| 42 | +| 📋 **JSON** | API responses, config files | Formatted, Tree, Raw | |
| 43 | +| 📰 **XML** | SOAP, config, SVG | Formatted, Tree, Raw | |
| 44 | +| 🌐 **HTML** | Web content, email templates | Formatted, Rendered, Tree, Raw | |
| 45 | +| ⚙️ **YAML** | Docker, K8s, CI/CD configs | Formatted, Tree, Raw | |
| 46 | +| 🔧 **TOML** | Rust configs, pyproject.toml | Formatted, Tree, Raw | |
| 47 | +| 📊 **CSV/TSV** | Tabular data exports | Table, Raw | |
| 48 | +| 📝 **INI** | Legacy config files | Formatted, Table, Raw | |
| 49 | +| 📖 **Markdown** | Documentation strings | Rendered, Raw | |
| 50 | +| 🗃️ **SQL** | Database queries | Formatted, Syntax Highlighted, Raw | |
| 51 | +| 🔗 **GraphQL** | API queries | Formatted, Syntax Highlighted, Raw | |
| 52 | + |
| 53 | +### 🔐 Encoded Data |
28 | 54 |
|
29 | 55 | | Visualizer | Description | Views | |
30 | 56 | |------------|-------------|-------| |
31 | | -| **Base64** | Decode text from Base64 | Decoded, Hex, Raw | |
32 | | -| **Base64 Image** | Embedded images (data:image/...) | Image Preview, Raw | |
33 | | -| **URL Encoded** | Query strings, form data | Decoded, Raw | |
34 | | -| **HTML Entities** | `&` to `&`, `<` to `<` | Decoded, Raw | |
35 | | -| **Unicode Escape** | `\u0041` to `A` | Decoded, Raw | |
36 | | -| **Hex String** | `48656C6C6F` to `Hello` | Decoded, Hex, Raw | |
37 | | -| **GZip/Deflate** | Compressed payloads | Decompressed, Raw | |
| 57 | +| 🔤 **Base64** | Decode text from Base64 | Decoded, Hex, Raw | |
| 58 | +| 🖼️ **Base64 Image** | Embedded images (data:image/...) | Image Preview, Raw | |
| 59 | +| 🔗 **URL Encoded** | Query strings, form data | Decoded, Raw | |
| 60 | +| 🏷️ **HTML Entities** | `&` → `&`, `<` → `<` | Decoded, Raw | |
| 61 | +| 🔡 **Unicode Escape** | `\u0041` → `A` | Decoded, Raw | |
| 62 | +| 🔢 **Hex String** | `48656C6C6F` → `Hello` | Decoded, Hex, Raw | |
| 63 | +| 📦 **GZip/Deflate** | Compressed payloads | Decompressed, Raw | |
38 | 64 |
|
39 | | -### Security/Auth Tokens |
| 65 | +### 🛡️ Security & Auth Tokens |
40 | 66 |
|
41 | 67 | | Visualizer | Description | Views | |
42 | 68 | |------------|-------------|-------| |
43 | | -| **JWT** | Decode header, payload, expiry | Claims Table, Decoded, Raw | |
44 | | -| **SAML** | Decode assertions | XML Tree, Claims, Raw | |
45 | | -| **X.509 Certificate** | PEM/DER certificates | Details Table, Raw | |
| 69 | +| 🎫 **JWT** | Decode header, payload, expiry | Claims Table, Decoded, Raw | |
| 70 | +| 🔑 **SAML** | Decode assertions | XML Tree, Claims, Raw | |
| 71 | +| 📜 **X.509 Certificate** | PEM/DER certificates | Details Table, Raw | |
46 | 72 |
|
47 | | -### Structured Strings |
| 73 | +### 🔗 Structured Strings |
48 | 74 |
|
49 | 75 | | Visualizer | Description | Views | |
50 | 76 | |------------|-------------|-------| |
51 | | -| **Connection String** | DB/service connections | Parsed Table, Raw | |
52 | | -| **URI/URL** | Full URL parsing | Parsed Parts, Query Params Table | |
53 | | -| **Query String** | `?foo=bar&baz=qux` | Key-Value Table, Raw | |
54 | | -| **Regex** | Pattern visualization | Pattern Breakdown, Raw | |
55 | | -| **Cron Expression** | Schedule expressions | Human Readable, Next Runs | |
| 77 | +| 🔌 **Connection String** | DB/service connections | Parsed Table, Raw | |
| 78 | +| 🌍 **URI/URL** | Full URL parsing | Parsed Parts, Query Params Table | |
| 79 | +| ❓ **Query String** | `?foo=bar&baz=qux` | Key-Value Table, Raw | |
| 80 | +| 🎯 **Regex** | Pattern visualization | Pattern Breakdown, Raw | |
| 81 | +| ⏰ **Cron Expression** | Schedule expressions | Human Readable, Next Runs | |
56 | 82 |
|
57 | | -### Binary/Low-Level |
| 83 | +### 💾 Binary & Low-Level |
58 | 84 |
|
59 | 85 | | Visualizer | Description | Views | |
60 | 86 | |------------|-------------|-------| |
61 | | -| **Hex Dump** | Binary data as hex | Hex + ASCII | |
62 | | -| **GUID/UUID** | Format and version info | Formatted, Details | |
63 | | -| **Timestamp** | Unix epoch conversion | Human Readable, UTC/Local | |
64 | | -| **IP Address** | IPv4/IPv6 details | Formatted, CIDR Info | |
| 87 | +| 🔢 **Hex Dump** | Binary data as hex | Hex + ASCII | |
| 88 | +| 🆔 **GUID/UUID** | Format and version info | Formatted, Details | |
| 89 | +| 🕐 **Timestamp** | Unix epoch conversion | Human Readable, UTC/Local | |
| 90 | +| 🌐 **IP Address** | IPv4/IPv6 details | Formatted, CIDR Info | |
| 91 | + |
| 92 | +--- |
| 93 | + |
| 94 | +## 📥 Installation |
65 | 95 |
|
66 | | -## Installation |
| 96 | +### From Visual Studio Marketplace |
67 | 97 |
|
68 | | -### Visual Studio Marketplace |
| 98 | +[](https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.Debugalizers) |
69 | 99 |
|
70 | 100 | 1. Open Visual Studio 2022 |
71 | | -2. Go to **Extensions** > **Manage Extensions** |
72 | | -3. Search for "Debugalizers" |
| 101 | +2. Go to **Extensions** → **Manage Extensions** |
| 102 | +3. Search for "**Debugalizers**" |
73 | 103 | 4. Click **Download** and restart Visual Studio |
74 | 104 |
|
75 | | -### Manual Installation |
| 105 | +### From Source |
76 | 106 |
|
77 | | -1. Download the latest `.vsix` from [Releases](https://github.com/CodingWithCalvin/VS-Debugalizers/releases) |
78 | | -2. Double-click the `.vsix` file to install |
79 | | -3. Restart Visual Studio |
| 107 | +```bash |
| 108 | +# 1. Clone the repository |
| 109 | +git clone https://github.com/CodingWithCalvin/VS-Debugalizers.git |
80 | 110 |
|
81 | | -## Usage |
| 111 | +# 2. Build the solution |
| 112 | +dotnet build src/CodingWithCalvin.Debugalizers.slnx |
82 | 113 |
|
83 | | -1. Set a breakpoint in your code where a string variable is in scope |
84 | | -2. When the debugger hits the breakpoint, hover over the string variable |
85 | | -3. Click the magnifying glass icon in the DataTip |
86 | | -4. Select the appropriate visualizer from the list (e.g., "Debugalizers: JSON") |
87 | | -5. The visualizer window opens with your content formatted and viewable |
| 114 | +# 3. Run tests |
| 115 | +dotnet test src/CodingWithCalvin.Debugalizers.slnx |
88 | 116 |
|
89 | | -### Keyboard Shortcuts |
| 117 | +# 4. VSIX will be created in bin/Debug or bin/Release |
| 118 | +``` |
90 | 119 |
|
91 | | -- **Ctrl+F** - Search within content |
92 | | -- **Escape** - Close visualizer window |
| 120 | +--- |
93 | 121 |
|
94 | | -### Toolbar Actions |
| 122 | +## 🚀 Usage |
95 | 123 |
|
96 | | -- **Copy** - Copy raw content to clipboard |
97 | | -- **Copy Formatted** - Copy formatted content to clipboard |
98 | | -- **Export** - Save content to a file |
99 | | -- **Word Wrap** - Toggle word wrapping |
| 124 | +1. 🔴 Set a breakpoint where a string variable is in scope |
| 125 | +2. ⏸️ When the debugger hits the breakpoint, hover over the variable |
| 126 | +3. 🔍 Click the **magnifying glass** icon in the DataTip |
| 127 | +4. 📋 Select the appropriate visualizer (e.g., "**Debugalizers: JSON**") |
| 128 | +5. ✨ The visualizer window opens with beautifully formatted content! |
100 | 129 |
|
101 | | -## Requirements |
| 130 | +### ⌨️ Keyboard Shortcuts |
102 | 131 |
|
103 | | -- Visual Studio 2022 (17.0 or later) |
104 | | -- .NET Framework 4.8 |
| 132 | +| Shortcut | Action | |
| 133 | +|----------|--------| |
| 134 | +| `Ctrl+F` | 🔎 Search within content | |
| 135 | +| `Escape` | ❌ Close visualizer window | |
105 | 136 |
|
106 | | -## Building from Source |
| 137 | +### 🛠️ Toolbar Actions |
107 | 138 |
|
108 | | -```bash |
109 | | -# Clone the repository |
110 | | -git clone https://github.com/CodingWithCalvin/VS-Debugalizers.git |
111 | | -cd VS-Debugalizers |
| 139 | +| Button | Action | |
| 140 | +|--------|--------| |
| 141 | +| 📋 **Copy** | Copy raw content to clipboard | |
| 142 | +| 📝 **Copy Formatted** | Copy formatted content to clipboard | |
| 143 | +| 💾 **Export** | Save content to a file | |
| 144 | +| ↩️ **Word Wrap** | Toggle word wrapping | |
112 | 145 |
|
113 | | -# Build |
114 | | -dotnet build src/CodingWithCalvin.Debugalizers.slnx |
| 146 | +--- |
115 | 147 |
|
116 | | -# Run tests |
117 | | -dotnet test src/CodingWithCalvin.Debugalizers.slnx |
| 148 | +## 📋 Requirements |
118 | 149 |
|
119 | | -# Build Release |
120 | | -dotnet build src/CodingWithCalvin.Debugalizers.slnx --configuration Release |
121 | | -``` |
| 150 | +- 💻 Visual Studio 2022 (17.8) or later |
| 151 | +- 🔧 .NET Framework 4.8 |
| 152 | + |
| 153 | +--- |
| 154 | + |
| 155 | +## 🛠️ Technology Stack |
| 156 | + |
| 157 | +| Component | Technology | |
| 158 | +|-----------|------------| |
| 159 | +| 🎨 Syntax Highlighting | AvalonEdit | |
| 160 | +| 📊 JSON Parsing | Newtonsoft.Json | |
| 161 | +| 📄 YAML Parsing | YamlDotNet | |
| 162 | +| 🔧 TOML Parsing | Tomlyn | |
| 163 | +| 🎫 JWT Decoding | System.IdentityModel.Tokens.Jwt | |
| 164 | +| 📖 Markdown Rendering | Markdig | |
| 165 | +| ⏰ Cron Parsing | NCrontab | |
| 166 | +| 📊 CSV Parsing | CsvHelper | |
| 167 | + |
| 168 | +--- |
| 169 | + |
| 170 | +## 🤝 Contributing |
| 171 | + |
| 172 | +Contributions are welcome! Feel free to submit issues and pull requests. 💪 |
| 173 | + |
| 174 | +1. 🍴 Fork the repository |
| 175 | +2. 🌿 Create a feature branch (`git checkout -b feat/amazing-feature`) |
| 176 | +3. 💾 Commit your changes (`git commit -m 'feat: add amazing feature'`) |
| 177 | +4. 📤 Push to the branch (`git push origin feat/amazing-feature`) |
| 178 | +5. 🎉 Open a Pull Request |
| 179 | + |
| 180 | +For building locally, install the [Extensibility Essentials 2022](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.ExtensibilityEssentials2022) extension. |
| 181 | + |
| 182 | +--- |
| 183 | + |
| 184 | +## 📄 License |
| 185 | + |
| 186 | +This project is licensed under the **MIT License** — see the [LICENSE](LICENSE) file for details. |
122 | 187 |
|
123 | | -The VSIX package will be in `src/CodingWithCalvin.Debugalizers/bin/Release/`. |
| 188 | +--- |
124 | 189 |
|
125 | | -## Contributing |
| 190 | +## 👥 Contributors |
126 | 191 |
|
127 | | -Contributions are welcome! Please read the following guidelines: |
| 192 | +<!-- readme: contributors -start --> |
| 193 | +<!-- readme: contributors -end --> |
128 | 194 |
|
129 | | -1. Fork the repository |
130 | | -2. Create a feature branch: `git checkout -b feat/your-feature` |
131 | | -3. Use [Conventional Commits](https://www.conventionalcommits.org/) for commit messages |
132 | | -4. Submit a pull request |
| 195 | +--- |
133 | 196 |
|
134 | | -## License |
| 197 | +<div align="center"> |
135 | 198 |
|
136 | | -This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
| 199 | +### ⭐ If you find Debugalizers useful, please consider giving it a star! ⭐ |
137 | 200 |
|
138 | | -## Contributors |
| 201 | +*Made with ❤️ for the Visual Studio community from Coding With Calvin* |
139 | 202 |
|
140 | | -<!-- readme: collaborators,contributors -start --> |
141 | | -<!-- readme: collaborators,contributors -end --> |
| 203 | +</div> |
0 commit comments