В этом релизе основное внимание уделено улучшению инструментов и отзывчивости, которую вы почувствуете в своей повседневной работе. От более интеллектуального сервера анализа до новых возможностей клиентской части и улучшенной поддержки ИИ — Dart 3.11 создан для того, чтобы вы всегда оставались в рабочем потоке. Читайте дальше, чтобы узнать больше.
Обновления языка
В этом релизе Dart новых обновлений языка нет.
Обновления инструментов
Поддержка Dart MCP для ИИ: чтение package URI
Мы продолжаем совершенствовать сервер MCP для Dart и Flutter , чтобы лучше поддерживать системы искусственного интеллекта для программирования.
Мы добавили новый инструмент read_package_urisна сервер MCP. Этот инструмент позволяет агентам ИИ (таким как Cursor, Gemini или Copilot) считывать URI пакетов из ваших проектов и добавлять их в свой контекст. Это гарантирует, что ваш ИИ-помощник сможет корректно считывать, разрешать и использовать зависимости при генерации кода.
Сервер анализа
В этом релизе внесены многочисленные улучшения производительности в сервере анализа Dart. Теперь сервер использует «детальные зависимости», что делает его более интеллектуальным в определении того, какой код необходимо повторно проана��изировать во время сеансов IDE.
Мы также улучшили производительность анализа в конкретных ситуациях, например, при анализе кода с циклами в структуре каталогов, вызванными символическими ссылками, или глубоких деревьев из множества константных объектов.
Теперь сервер кэширует точки входа скомпилированного плагина анализатора, что приводит к ускорению запуска в сессиях IDE и выполнения команд dart analyze, flutter analyze.
Наконец, мы улучшили поддержку «точечных сокращений» во многих функциях сервера анализа, особенно в части автозавершения кода, быстрых исправлений и быстрых подсказок.
Обновления паба
Поддержка Glob в рабочих зонах пабов
В рабочих областях Pub теперь поддерживается объявление пакетов с использованием шаблонов (glob). Это позволяет легко включать все пакеты в каталоге в рабочей области Pub, не перечисляя их все:
# Before
name: workspace
environment:
sdk: ^3.10.0
workspace:
- pkg/a
- pkg/b
- pkg/c
# After
name: workspace
environment:
sdk: ^3.11.0
workspace:
- pkg/* # Adds all packages inside pkg.
Примечание: Для использования этой функции pubspec.yamlнеобходима версия Dart 3.11 или выше.
Pub cache gc
Pub всегда хранил пакеты в одном глобальном кэше PUB_CACHE, гарантируя, что вы никогда не скачаете один и тот же пакет дважды. Однако, поскольку Pub не отслеживал, какие проекты используют этот кэш, не было возможности узнать, какие пакеты устарели, что приводило к накоплению версий пакетов с течением времени. До сих пор единственным решением было очистить весь кэш и начать все заново.
Начиная с Dart 3.9, pub getпуть к разрешенному проекту хранился в кэше. Теперь в Dart 3.11 мы вводим команду pub cache gc, которая перебирает все «живые» проекты, помечает все версии пакетов, от которых они зависят, и удаляет остальные. Это может помочь вам освободить ценное дисковое пространство.
> dart pub cache gc
Found 3 active projects:
* /home/yourusername/projects/pub
* /home/yourusername/projects/pub-dev
* /home/yourusername/projects/pana
All other projects will need to run `dart pub get` again to work correctly.
Will recover 2 GB.
Are you sure you want to continue? (y/N)? y
Deleting unused cache entries... (4.5s)
>
Заключение
На этом всё о Dart 3.11! В этом релизе всё внимание уделено деталям, которые существенно влияют на вашу повседневную разработку.
Полный список изменений смотрите в журнале изменений Dart SDK . Как всегда, мы будем рады услышать ваши отзывы!
Автор: lil_master


