В этом релизе основное внимание уделено улучшению инструментов и отзывчивости, которую вы почувствуете в своей повседневной работе. От более интеллектуального сервера анализа до новых возможностей клиентской части и улучшенной поддержки ИИ — Dart 3.11 создан для того, чтобы вы всегда оставались в рабочем потоке. Читайте дальше, чтобы узнать больше.

Анонс Dart 3.11
Анонс Dart 3.11

Обновления языка

В этом релизе Dart новых обновлений языка нет.

Обновления инструментов

Поддержка Dart MCP для ИИ: чтение package URI

Мы продолжаем совершенствовать сервер MCP для Dart и Flutter , чтобы лучше поддерживать системы искусственного интеллекта для программирования.

Мы добавили новый инструмент read_package_urisна сервер MCP. Этот инструмент позволяет агентам ИИ (таким как Cursor, Gemini или Copilot) считывать URI пакетов из ваших проектов и добавлять их в свой контекст. Это гарантирует, что ваш ИИ-помощник сможет корректно считывать, разрешать и использовать зависимости при генерации кода.

Сервер анализа

В этом релизе внесены многочисленные улучшения производительности в сервере анализа Dart. Теперь сервер использует «детальные зависимости», что делает его более интеллектуальным в определении того, какой код необходимо повторно проанализировать во время сеансов IDE.

Мы также улучшили производительность анализа в конкретных ситуациях, например, при анализе кода с циклами в структуре каталогов, вызванными символическими ссылками, или глубоких деревьев из множества константных объектов.

Теперь сервер кэширует точки входа скомпилированного плагина анализатора, что приводит к ускорению запуска в сессиях IDE и выполнения команд dart analyzeflutter 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 . Как всегда, мы будем рады услышать ваши отзывы!