Oxlint apps_v1.59.0: Улучшения LSP, Новые Правила, Рост Производительности

Для получения полной информации, обратитесь к официальным примечаниям к выпуску OxC.

TL;DR

  • Oxlint LSP теперь по умолчанию показывает и исправляет безопасные предложения, оптимизируя рабочие процессы разработчиков.
  • Внедрено множество новых правил линтера для Unicorn, ESLint, React, Jest и Vitest для улучшения проверки качества кода.
  • Значительные улучшения производительности в парсере NAPI и плагинах линтера, ускоряющие анализ.

Key Changes

  • Критические изменения (Breaking Change): Значительная корректировка рабочего процесса: Oxlint LSP теперь по умолчанию показывает и автоматически применяет безопасные предложения (Show/fix safe suggestions by default). Это упрощает разработку, предлагая немедленные, не нарушающие работу улучшения кода непосредственно в редакторе, что потенциально сокращает время ручного рефакторинга.
  • Новые функции (Features): Этот выпуск представляет множество новых правил линтера, разработанных для повышения качества и согласованности кода. Для unicorn правила prefer-import-meta-properties и no-useless-iterator-to-array способствуют современным практикам JavaScript. eslint получает no-restricted-exports и object-shorthand, помогая обеспечивать границы модулей и лаконичный синтаксис. Разработчики React получат выгоду от hook-use-state и prefer-function-component для улучшения структуры компонентов. Пользователи Jest и Vitest увидят padding-around-after-all-blocks и prefer-snapshot-hint, улучшающие читаемость и поддерживаемость тестов. Несколько правил, включая consistent-return и no-unnecessary-type-conversion, перешли из категории nursery в более стабильные категории (suspicious или style), что указывает на их надежность. LSP также получает важный тип действия с кодом source.fixAllDangerous.oxc, предлагающий более мощные автоматические исправления, и улучшенные диагностические заметки для более четкого объяснения проблем.
  • Исправления ошибок (Bug Fixes): Было устранено множество проблем, что повысило точность и надежность Oxlint. Ложные срабатывания были исправлены в правилах, таких как prefer-array-flat-map (Unicorn), no-unused-private-class-members, и no-array-index-key, что снижает разочарование разработчиков. Исправления также включают улучшенную обработку node_modules и вложенных конфигураций в LSP, обеспечивая правильную область линтинга. Важные исправления стабильности, такие как экспорт package.json для oxlint и oxfmt и распространение ошибок записи файлов в oxfmt, способствуют созданию более надежного инструмента.
  • Улучшения производительности (Performance Enhancements): Значительные внутренние оптимизации направлены на парсер NAPI и плагины линтера. Эти улучшения сосредоточены на ускорении декодирования строк UTF-8 и десериализации raw полей, особенно для источников, не содержащих ASCII символов. Эти изменения напрямую приводят к сокращению времени анализа кода, обеспечивая более быструю обратную связь для разработчиков и повышая общую эффективность.

Impact for QA Teams

Команды QA получают выгоду от этих обновлений за счет улучшения качества кода на ранних этапах разработки. Новые правила линтера могут выявлять больше потенциальных проблем раньше в цикле разработки, сокращая количество дефектов, достигающих тестирования. Увеличение производительности означает более быструю обратную связь для разработчиков, что потенциально приводит к более быстрому устранению ошибок и более стабильным сборкам для QA.

FAQ

  • Q: Каково основное изменение для разработчиков в этом обновлении Oxlint? A: LSP теперь по умолчанию показывает и исправляет безопасные предложения, предлагая более немедленные варианты улучшения кода.
  • Q: Как новые правила линтера влияют на качество кода? A: Новые правила позволяют Oxlint обнаруживать более широкий спектр потенциальных проблем, обеспечивая лучшие практики кодирования и уменьшая количество распространенных ошибок.
  • Q: Повлияет ли это обновление на скорость работы Oxlint? A: Да, оптимизации производительности в парсере и плагинах предназначены для ускорения анализа кода.