Skip to content

.md skill added to get fsharp-diagnostics (like IDE does, via FsharpChecker)#19263

Open
T-Gro wants to merge 2 commits intomainfrom
feature/langserver-skill
Open

.md skill added to get fsharp-diagnostics (like IDE does, via FsharpChecker)#19263
T-Gro wants to merge 2 commits intomainfrom
feature/langserver-skill

Conversation

@T-Gro
Copy link
Member

@T-Gro T-Gro commented Feb 8, 2026

The idea of this is skill is to provide much faster syntax and semantical errors, as opposed to agent always doing dotnet build or build script.
In sessions with multiple change-fix iterations, this pays off.
In the happy path, this does add overhead since separate compilation needs to happen afterwards anyway.

A working language-agnostic LLM2LSP solves this and is conceptually much better, so this is (hopefully) very ephemeral and tailored to this repo only, until a generic mechanism works everywhere.

(but do feel free to copy it, experiment and provide feedback even for your project - the number of hardcoded assumptions is low and easily re-vibe-code-able.)

Warmup (clean project)

┌────────┬───────────────────────────┐
│ Metric │ Value                     │
├────────┼───────────────────────────┤
│ Result │ OK (0 errors, 0 warnings) │
├────────┼───────────────────────────┤
│ Time   │ 73s                       │
├────────┼───────────────────────────┤
│ RAM    │ 2,058 MB                  │
└────────┴───────────────────────────┘

Parse-only (3 files, after warmup)

┌──────────────────┬──────┬───────────────────┐
│ File             │ Time │ Result            │
├──────────────────┼──────┼───────────────────┤
│ CheckBasics.fs   │ 70ms │ OK                │
├──────────────────┼──────┼───────────────────┤
│ CheckPatterns.fs │ 78ms │ OK                │
├──────────────────┼──────┼───────────────────┤
│ LowerCalls.fs    │ 72ms │ 2 syntax errors ✓ │
└──────────────────┴──────┴───────────────────┘

Full typecheck (change 3 files, but rest stays cached)

┌──────────────────┬───────┬──────────────────────────────┐
│ File             │ Time  │ Result                       │
├──────────────────┼───────┼──────────────────────────────┤
│ CheckBasics.fs   │ 395ms │ ERROR FS0001 type mismatch ✓ │
├──────────────────┼───────┼──────────────────────────────┤
│ CheckPatterns.fs │ 404ms │ ERROR FS0039 undefined ✓     │
├──────────────────┼───────┼──────────────────────────────┤
│ LowerCalls.fs    │ 425ms │ 2 parse errors ✓             │
└──────────────────┴───────┴──────────────────────────────┘

Full project (after individual checks)

┌──────────────┬─────────────────────────┐
│ Metric       │ Value                   │
├──────────────┼─────────────────────────┤
│ Time         │ 1.1s                    │
├──────────────┼─────────────────────────┤
│ Errors found │ 3 files, 5 errors total │
├──────────────┼─────────────────────────┤
│ RAM          │ 3,254 MB                │
└──────────────┴─────────────────────────┘

@github-actions
Copy link
Contributor

github-actions bot commented Feb 8, 2026

✅ No release notes required

@T-Gro T-Gro marked this pull request as ready for review February 9, 2026 08:53
@T-Gro T-Gro requested a review from a team as a code owner February 9, 2026 08:53
;;
-*)
echo "Usage: get-fsharp-errors [--parse-only] <file.fs>" >&2
echo " get-fsharp-errors --check-project <project.fsproj>" >&2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This claims you can pass a project with --check-project, but Server.fs hardcodes FSharp.Compiler.Service

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah redone, you just do --check-project and that's it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

2 participants