Repository navigation
Releases: mrpmorris/Roslynk
Releases · mrpmorris/Roslynk
Release list
2.2.0
What's Changed
- 66/pm crash on invalid reference by @mrpmorris in #75
- Expose Solution load diagnostics by @mrpmorris in #76
- Dedupe get_members (Fixes #67) by @mrpmorris in #77
- apply_patch gives a misleading error when the path isn't relative to the solution folder (multi-targeted projects) (Fixes #74) by @mrpmorris in #78
- Run source gen by @mrpmorris in #79
- Show partial implementations (Fixes #70) by @mrpmorris in #80
- Add a quoted YourKit open-source acknowledgment by @mrpmorris with @Copilot in #84
- Resolve bare generic names when unique and accept backtick names in name lookup (Fixes #72) by @mrpmorris in #86
- get_diagnostics filters: projectName, filePath, ids, maxResults, summaryOnly (Fixes #73) by @mrpmorris in #85
- A server-wide response budget, enforced within slots, plus get_symbol_body paging (Fixes #71) by @mrpmorris in #87
- get_callers: report compiler-inserted calls, drop the Dispose false positive, resolve operators (Fixes #62) by @mrpmorris in #89
- Resolve generator-declared symbols by name in every tool; refuse editing generator-only symbols (Fixes #81) by @mrpmorris in #90
- search_symbols finds source-generated declarations (Fixes #82) by @mrpmorris in #91
- Echo names from the best-bound copy of a merged declaration (Fixes #83) by @mrpmorris in #92
- multi_sync improved paging (Fixes #96) by @mrpmorris in #98
- Skills update (Fixes #99) (Fixes #100) by @mrpmorris in #102
Full Changelog: 2.1.0...2.2.0
2.1.0
What's Changed
- Better handling of renaming a symbol that is used in a .razor file (Fixes #59)
- New
get_calleestool (Fixes #58) - Add Antigravity setup instructions to README by @jburman
- Improve razor speed (Fixes #64)
New Contributors
Full Changelog: 2.0.0...2.1.0
2.0.0
Important
Tell your agent
Reimport SKILL.md and tools.md for Roslynk from https://github.com/mrpmorris/Roslynk/tree/07b64a6eaaf1b3af946ba1b3b8d92c1978168b96/skills/roslynk
Changes
- Breaking:
apply_code_fixnow requireslineandcolumn(1-based, asget_diagnosticsprints them) and fixes the diagnostic at that position, instead of the first occurrence of the id in the file. No diagnostic with that id at the position →error=NotFound. In.razor/.cshtmlthe position is in the Razor file;CS8019/IDE0005remove the unnecessary@usingon that line (Fixes #53) rename_symbolno longer overwrites edits made while it was computing: only the documents it changed are replayed onto the latest model, edits to other files are kept, and a changed file it touches, or a file changed on disk, returnserror=Stalewith astale=path instead oferror=Faulted. The tool can now be cancelled (Fixes #54)apply_code_fixno longer picks one fix arbitrarily when a diagnostic has several (e.g.CS0535implement vs implement explicitly,CS0246add using vs generate type): it writes nothing and returnserror=Conflictwith acandidate=<actionId>,Fix,<diagnosticId> <title>header per distinct fix, to be applied withapply_code_action(Fixes #53)get_code_actionslists the individual fixes and refactorings inside a grouped action (such as the choices under a "Generate type" group) instead of the group itself, which produced no changes when applied- New
find_readsandfind_writestools: semantic reads/writes of a field, property or parameter (addressed asNamespace.Type.Member:parameter), each location taggedread,assign,compound,increment,ref,outorinit. Dual read/write accesses (compound,increment,ref) appear in both tools. Output followsfind_referenceswith one location per leaf. Available inmulti_query(Fixes #27) - New
get_expression_infotool: position-based compiler facts about an expression in a.cs,.razoror.cshtmlfile — its type and converted type, the symbol it binds to (with the overload selected, generic/extension instantiation, and candidates when unresolved), nullable annotation and flow state, constant value, implicit conversion kind, source/metadata origin and XML-doc summary. Unavailable facts are reported asnone; a position on a declared name (local, parameter, field, member, type) reports the declared symbol and its type like an editor hover; a keyword, punctuation, comment or whitespace iserror=NotFound. Available inmulti_query(Fixes #26) - New
rename_parametertool: rename one parameter of a method, constructor or indexer overload via Roslyn rename, updating named arguments and<paramref>docs and cascading across override/interface groups; reports related declarations left unchanged, and refuses on name conflicts (Fixes #44) - Fully-qualified names now resolve explicitly declared constructors, written
Namespace.Type.Type(...) rename_symbolreports overlapping edits aserror=Conflictinstead of faulting- New
extract_methodtool: extract a selection of statements or an expression into a method or local function via Roslyn's Extract Method refactoring, with optional naming and preview; refuses without writing when Roslyn cannot extract the selection, flags a behavior change, or the result would add compile errors (Fixes #46) change_signaturesupports methods declared in.razor/.cshtml@codeblocks and call sites in Razor markup: edits are mapped back through#linedirectives and written to the Razor source. Previously they were reported as applied but never written to disk. Unmappable edits are refused without writing, and stale files returnerror=Staleget_code_actions,apply_code_action,apply_code_fix,extract_methodandremove_unused_usingswork on.razorand.cshtmlfiles: positions are given in the Razor file, Roslyn runs on the generated C#, and the result is written back to the Razor source in the file's own indentation. Edits to generated scaffolding with no Razor source are refused (error=NotSupported) with nothing writtenremove_unused_usings(andapply_code_fixwithCS8019/IDE0005) removes unnecessary@usinglines from.razor/.cshtmlfiles, including in a whole-solution run;_Imports.razor/_ViewImports.cshtmlare never edited because other files share themextract_methodin a.cshtmlview where Roslyn cannot add a new method suggestsasLocalFunction=trueapply_code_action,apply_code_fixandremove_unused_usingsreport a file edited on disk since load aserror=Staleinstead of faulting- Local functions can be named:
Namespace.Type.Method.local, orNamespace.Type.Method.outer.innerfor one declared inside another, through any nesting of classes. Any segment may carry a parameter list to pick an overload (Namespace.Type.Method(int).local). Supported by every name-based tool (get_symbol,get_symbol_body,find_references,get_callers,rename_symbol,rename_parameter,change_signature, and the same operations inmulti_query). Tools emit the fully signed form, andAmbiguouscandidates for overloaded containers round-trip rename_parameterandchange_signatureaccept local functionssearch_symbolsfinds local functions; outlines report them as kindlocalfunction, nested under their containing member, insearch_symbols,get_callersandfind_references, andfind_definitionreturns their full nameextract_methodreports the extracted method's full name in a newsymbolNameheaderget_memberslists each member's local functions nested beneath it, including local functions declared inside other local functions- Write pipeline can guard a precomputed update against an intervening edit to the same documents, without reverting unrelated intervening edits
1.2.0
What's Changed
- docs: add manual mcp.json setup and clarify required stdio argument #12
- docs: add agent configuration section to README by @dariogriffo in #13
- Make defaulted tool parameters genuinely omittable (Fixes #30) by @mrpmorris in #32
- Fix analyzer diagnostics through the code-fix path (Fixes #9) by @mrpmorris in #33
- get_symbol_body (Fixes #14) by @mrpmorris in #35
- Ambiguous requests (Fixes #34) by @mrpmorris in #36
- Multi query (Closes #31) by @mrpmorris in #38
- Impact analysis tool (Fixes #22) by @mrpmorris in #41
- Split Skills/Tools (Fixes #42) by @mrpmorris in #43
New Contributors
- @dariogriffo made their first contribution in #13
Full Changelog: 1.1.0...1.2.0
1.1.0
1.0.0
What's Changed
- Cross-platform hosting: stdio bridge with daemon auto-start, dnx/NuGet tool publishing by @StevenTCramer in #1
- ci: publish NuGet package to GitHub Packages by @StevenTCramer in #2
- ci: publish to nuget.org with SemVer tags (no v prefix) by @StevenTCramer in #3
- fix: unblock CI publish (diagnostics + Razor tests) by @StevenTCramer in #4
- ci: hardcode nuget.org username mrpmorris for Trusted Publishing by @StevenTCramer in #5
- docs: add roslynk skill teaching AI agents effective use of the MCP tools by @StevenTCramer in #6
New Contributors
- @StevenTCramer made their first contribution in #1
Full Changelog: https://github.com/mrpmorris/Roslynk/commits/1.0.0