Files
RoslynBridge/AGENTS.md
AJ 0054386700 Fix build errors and update dependencies
- Add ProjectOperationsService.cs to project file compilation
- Update System.Text.Json from 8.0.0 to 8.0.5 to fix security vulnerabilities
- Fix .NET Framework 4.8 compatibility (remove entireProcessTree parameter from Process.Kill)
- Remove ExcludeAssets restriction from Microsoft.VisualStudio.SDK package
- Add project operation endpoints (NuGet, build, clean, restore, directory creation)
- Update AGENTS.md with MSBuild build instructions and warnings
- Replace roslyn-api skill with roslyn-bridge skill
- Update settings with additional auto-approvals

Build now completes successfully with MSBuild (0 errors, 34 warnings).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 12:43:06 -04:00

2.7 KiB
Raw Blame History

Repository Guidelines

Project Structure & Module Organization

  • RoslynBridge/ VSIX source (C#). Key folders: Server/ (HTTP host), Services/ (Roslyn queries, refactorings), Models/, Constants/.
  • Build artifacts: RoslynBridge/bin/ and RoslynBridge/obj/.
  • Claude skills: .claude/skills/roslyn-api/SKILL.md (HTTP query reference for local discovery/testing).

Build, Test, and Development Commands

  • IMPORTANT: This VSIX project MUST be built with MSBuild, NOT dotnet build. Using dotnet build will fail with missing namespace errors.
  • Build (CLI): msbuild RoslynBridge.sln /p:Configuration=Debug or with full path:
    & 'C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe' RoslynBridge.sln /t:Restore /t:Build /p:Configuration=Debug
    
  • Build (VS): Open RoslynBridge.sln, set RoslynBridge as startup, press F5 to launch the Experimental Instance.
  • Health check (server running in VS):
    • PowerShell: $b=@{queryType='getprojects'}|ConvertTo-Json; Invoke-RestMethod -Uri 'http://localhost:59123/query' -Method Post -Body $b -ContentType 'application/json'
    • curl (Windows): curl -X POST http://localhost:59123/query -H "Content-Type: application/json" -d "{\"queryType\":\"getprojects\"}"

Coding Style & Naming Conventions

  • Language: C# (net48 VSIX). Use 4space indentation; braces on new lines.
  • Naming: PascalCase for types/methods; camelCase for locals; private fields as _camelCase.
  • Prefer async/await, avoid blocking the UI thread; use JoinableTaskFactory when switching.
  • Keep nullable annotations consistent with project settings.
  • Run Format Document and Organize Usings before commits.

Testing Guidelines

  • No unit test project yet. Validate via HTTP endpoints (see SKILL.md): getprojects, getdiagnostics, getsolutionoverview, getsymbol, etc.
  • Expected response shape: { success, message, data, error } (JSON).
  • Lines are 1based; columns 0based. File paths in JSON require escaped backslashes.

Commit & Pull Request Guidelines

  • Commits: concise, imperative subject (e.g., "Add diagnostics endpoint"), with short body explaining rationale and scope.
  • PRs: include description, linked issues, sample requests/responses, and screenshots when UI/VS behavior is affected.
  • Checklist: builds clean, getdiagnostics shows no new errors, code formatted, usings organized.

Security & Configuration Tips

  • Server binds to http://localhost:59123/ and accepts only POST; CORS is permissive for local tooling. Do not expose externally.
  • Endpoints: /query (main), /health route exists but still requires POST.
  • Adjust port/paths in RoslynBridge/Constants/ServerConstants.cs if needed.