# FSharp.Refactor

Офлайновый анализатор F#-кода, убирает лишние скобки, меняет медленные конструкции на быстрые и делает явным то, что агент или старый код спрятал за шумом.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 16
- Автор: Thorium
- Лицензия: Unlicense · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Thorium/fsharp-refactor
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/mcp/fsharprefactor

## Что делает

Инструмент работает через CLI: `fsharp-refactor Your.fsproj --dry-run --api-changes` печатает все правки с указанием файла и позиции, `fsharp-refactor Your.fsproj --api-changes` применяет их. Без флага `--api-changes` публичные методы остаются нетронутыми. Внутри — полтораста правил: заменяет `new FileStream` на `use`, строковый `Contains "x"` на символьный `Contains 'x'`, `match b with | true -> 1 | false -> 0` на `if b then 1 else 0`, убирает `new` перед `StringBuilder()` и `Attribute` в конце атрибутов.

Требует проект, который компилируется: если исходник сломан, запуск не начнётся, если правка ломает сборку — остановится с ошибкой. Поставляется как глобальный dotnet-инструмент, VS Code-расширение, плагин для Visual Studio 2022–2026 и NuGet-пакет анализаторов. MCP-поддержка встроена в CLI-версию. Лицензия Unlicense.

## Установка

### Claude Code (родная платформа)

**Установка**
- Команды запуска нет в реестре MCP — смотрите README репозитория

## Когда брать
- убрать скобки и ключевое слово `new` там, где они не нужны
- заменить `raise (Exception "текст")` на `failwith "текст"`
- передвинуть `Seq.toList` за `Seq.map`, чтобы не копировать всю последовательность до маппинга
- заменить `match` на булевом значении на `if`
- добавить в `failwith` интерполяцию с переменными, которые помогут понять, где упало

## Примеры запросов агенту
- Запусти `fsharp-refactor src/Main.fsproj --dry-run`, покажи, что изменится
- Примени все правки в `Core.fsproj` командой `fsharp-refactor Core.fsproj --api-changes`
- Прогони рефакторинг по всем проектам в `src/`, не трогая публичные сигнатуры

## Похожие
- [Front-End Checklist](https://affpapa.org/nevibecode/mcp/front-end-checklist.md) — MCP-сервер · ★ 74559
- [Codebase Memory](https://affpapa.org/nevibecode/mcp/codebase-memory.md) — MCP-сервер · ★ 47392
- [Serena MCP: the IDE for your agent](https://affpapa.org/nevibecode/mcp/serena-mcp-the-ide-for-your-agent.md) — MCP-сервер · ★ 30677
- [Repomix](https://affpapa.org/nevibecode/mcp/repomix.md) — MCP-сервер · ★ 29027
- [Repowise](https://affpapa.org/nevibecode/mcp/repowise.md) — MCP-сервер · ★ 7891
- [sem](https://affpapa.org/nevibecode/mcp/sem.md) — MCP-сервер · ★ 3422

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
