Skip to content

Latest commit

 

History

History
20 lines (20 loc) · 1.56 KB

File metadata and controls

20 lines (20 loc) · 1.56 KB

FsAutoComplete Agent Guide

  • For background/context review .github/copilot-instructions.md; no Cursor rules exist.
  • Restore tools before anything: dotnet tool restore.
  • Build everything: dotnet build.
  • Run whole test suite: dotnet test.
  • Run LSP tests: dotnet test -f net8.0 ./test/FsAutoComplete.Tests.Lsp/FsAutoComplete.Tests.Lsp.fsproj.
  • Run single test: dotnet test -f net8.0 ./test/FsAutoComplete.Tests.Lsp/FsAutoComplete.Tests.Lsp.fsproj --filter "FullyQualifiedName~Name".
  • Format code before commits: dotnet fantomas src/ test/.
  • Use Paket for deps; edit paket.dependencies plus per-project paket.references.
  • Prefer dotnet fsi build.fsx -- -p ScaffoldCodeFix Name for new code fixes.
  • Code style follows F# community conventions and repository .editorconfig.
  • Keep modules focused; pair public APIs with .fsi files.
  • Order open statements deterministically, group by namespace depth, no unused imports.
  • Favor immutable values, descriptive identifiers (PascalCase types/modules, camelCase values/functions).
  • Add explicit types when readability benefits or API surface is exposed.
  • Handle errors with Result/Async<Result<_,_>>, railway helpers, and specific error DU cases over exceptions.
  • Async work should honor cancellation tokens provided by LSP context.
  • Keep LSP handlers non-blocking; push IO or long CPU work onto async workflows.
  • Logging uses Serilog via FsAutoComplete.Logging; include actionable context, respect levels.
  • Tests live beside feature directories; keep cases focused and realistic, no deleting existing coverage.