Repository navigation
feat(tools): add conditional breakpoint support - #109
Merged
CalvinAllen merged 1 commit intoSep 15, 2026
Merged
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The EnvDTE hit-count call has incorrect parameter names, and enablement updates only the first matching breakpoint.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds conditional, hit-count, and enable/disable breakpoint support across the Visual Studio service, RPC layer, MCP tools, tests, and documentation.
Changes:
- Extends breakpoint creation and listing with conditions and hit-count rules.
- Adds the
breakpoint_enabletool. - Adds validation, tests, and documentation updates.
File summaries
| File | Summary |
|---|---|
src/CodingWithCalvin.MCPServer/Services/VisualStudioService.cs |
Implements breakpoint configuration and enablement. |
src/CodingWithCalvin.MCPServer/Services/RpcServer.cs |
Exposes updated breakpoint RPC methods. |
src/CodingWithCalvin.MCPServer/Services/IVisualStudioService.cs |
Extends the service contract. |
src/CodingWithCalvin.MCPServer.Tests/DebuggerBreakpointTests.cs |
Tests mappings and validation. |
src/CodingWithCalvin.MCPServer.Shared/RpcContracts.cs |
Extends shared RPC contracts. |
src/CodingWithCalvin.MCPServer.Shared/Models/DebuggerModels.cs |
Adds breakpoint condition and hit-count models. |
src/CodingWithCalvin.MCPServer.Server/Tools/DebuggerTools.cs |
Adds parameters, validation, and enablement tooling. |
src/CodingWithCalvin.MCPServer.Server/RpcClient.cs |
Forwards new breakpoint operations. |
README.md |
Documents the new tools. |
CLAUDE.md |
Updates debugger tool documentation. |
Review details
Suppressed comments (1)
src/CodingWithCalvin.MCPServer/Services/VisualStudioService.cs:1881
- This returns after updating only the first matching entry. Because callers can now add conditional or hit-count breakpoints at the same file/line, other matching entries can remain in their previous state while the tool reports success, and there is no condition/id selector to target a specific one. Update every matching breakpoint and return whether any match was found.
if (breakpoint.File != null && PathsEqual(breakpoint.File, file) && breakpoint.FileLine == line)
{
breakpoint.Enabled = enabled;
return true;
- Files reviewed: 10/10 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+1848
to
+1849
| HitCount: hitCount.GetValueOrDefault(), | ||
| HitCountType: ToDteHitCountType(hitCountType)); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
debugger_add_breakpointwith condition and hit-count optionsbreakpoint_enablefor enabling and disabling breakpointsCloses #78
Testing