Проверка и форматирование кода
Улучшите свой процесс разработки, интегрировав популярные линтеры и форматтеры, такие как SQLFluff, sqlfmt, Black и Prettier. Используйте эти мощные инструменты прямо в dbt Cloud IDE, не прерывая процесс разработки.
Details
Что такое линтеры и форматтеры?
Линтеры анализируют код на наличие ошибок, багов и проблем со стилем, в то время как форматтеры исправляют правила стиля и форматирования. Подробнее о том, когда использовать линтеры или форматтеры, читайте в Часто задаваемых вопросах.В dbt Cloud IDE вы можете выполнять проверку, автоматическое исправление и форматирование для пяти различных типов файлов:
- SQL — Проверка и исправление с помощью SQLFluff, и форматирование с помощью sqlfmt
- YAML, Markdown и JSON — Форматирование с помощью Prettier
- Python — Форматирование с помощью Black
Каждый тип файла имеет свои уникальные правила проверки и форматирования. Вы можете настроить процесс проверки, чтобы добавить больше гибкости и улучшить обнаружение проблем и стиля.
По умолчанию IDE использует правила sqlfmt для форматирования вашего кода, что делает его удобным для использования сразу. Однако, если у вас есть файл с именем .sqlfluff
в корневом каталоге вашего проекта dbt, IDE будет использовать правила SQLFluff по умолчанию.
Проверка
С помощью dbt Cloud IDE вы можете без проблем использовать SQLFluff, настраиваемый SQL линтер, чтобы предупреждать вас о сложных функциях, синтаксических, форматных и компиляционных ошибках. Эта интеграция позволяет вам запускать проверки, исправлять и отображать любые ошибки кода прямо в Cloud IDE:
- Работает с Jinja и SQL,
- Имеет встроенные правила проверки. Вы также можете настроить свои собственные правила проверки.
- Позволяет вам включить проверку с такими опциями, как Lint (отображает ошибки проверки и рекомендует действия) или Fix (автоматически исправляет ошибки в IDE).
- Отображает вкладку Code Quality для просмотра ошибок кода, предоставляет видимость и управление качеством кода, а также отображает используемую версию SQLFluff.
Проверка не поддерживает эфемерные модели в dbt v1.5 и ниже. Обратитесь к Часто задаваемым вопросам для получения дополнительной информации.
Включение проверки
Проверка доступна на всех ветках, включая вашу защищенную основную ветку git. Поскольку dbt Cloud IDE предотвращает коммиты в защищенную ветку, она предлагает вам зафиксировать эти изменения в новой ветке.
- Чтобы включить проверку, откройте файл
.sql
и нажмите на вкладку Code Quality. - Нажмите на кнопку
</> Config
в правом нижнем углу раздела консоли, ниже Редактора файлов. - В всплывающем окне конфигурации инструмента качества кода у вас есть возможность выбрать sqlfluff или sqlfmt.
- Чтобы проверить ваш код, выберите радиокнопку sqlfluff. (Используйте sqlfmt для форматирования вашего кода)
- После того как вы выбрали радиокнопку sqlfluff, вернитесь в раздел консоли (ниже Редактора файлов), чтобы выбрать выпадающую кнопку Lint или Fix:
- Кнопка Lint — Отображает проблемы проверки в IDE в виде волнистых подчеркиваний в Редакторе файлов. Вы можете навести курсор на подчеркнутую проблему, чтобы отобразить детали и действия, включая опцию Quick Fix для исправления всех или конкретных проблем. После проверки вы увидите сообщение, подтверждающее результат. Проверка не выполняется повторно после сохранения. Нажмите Lint снова, чтобы повторно выполнить проверку.
- Кнопка Fix — Автоматически исправляет ошибки проверки в Редакторе файлов. Когда исправление завершено, вы увидите сообщение, подтверждающее результат.
- Используйте вкладку Code Quality для просмотра и отладки любых ошибок кода.
Настройка проверки
SQLFluff — это настраиваемый SQL линтер, что означает, что вы можете настроить свои собственные правила проверки вместо использования настроек проверки по умолчанию в IDE. Вы можете исключить файлы и каталоги, используя стандартный файл .sqlfluffignore
. Узнайте больше о синтаксисе в документации по синтаксису .sqlfluffignore.
Чтобы настроить свои собственные правила проверки:
- Создайте новый файл в корневом каталоге проекта (родительский или верхний уровень каталога для ваших файлов). Примечание: корневой каталог проекта — это каталог, в котором находится ваш файл
dbt_project.yml
. - Назовите файл
.sqlfluff
(убедитесь, что вы добавили.
передsqlfluff
). - Создайте и добавьте ваш собственный конфигурационный код.
- Сохраните и зафиксируйте ваши изменения.
- Перезапустите IDE.
- Проверьте и наслаждайтесь проверкой!
Обратитесь к файлу конфигурации SQLFluff для Jaffle shop для dbt-специфичных (или dbtonic) правил проверки, которые мы используем для наших собственных проектов:
Пример конфигурационного кода dbtonic, предоставленный dbt Labs
[sqlfluff]
templater = dbt
# Это изменение (с jinja на dbt templater) сделает проверку медленнее
# потому что проверка сначала скомпилирует dbt код в код для хранилища данных.
runaway_limit = 10
max_line_length = 80
indent_unit = space
[sqlfluff:indentation]
tab_space_size = 4
[sqlfluff:layout:type:comma]
spacing_before = touch
line_position = trailing
[sqlfluff:rules:capitalisation.keywords]
capitalisation_policy = lower
[sqlfluff:rules:aliasing.table]
aliasing = explicit
[sqlfluff:rules:aliasing.column]
aliasing = explicit
[sqlfluff:rules:aliasing.expression]
allow_scalar = False
[sqlfluff:rules:capitalisation.identifiers]
extended_capitalisation_policy = lower
[sqlfluff:rules:capitalisation.functions]
capitalisation_policy = lower
[sqlfluff:rules:capitalisation.literals]
capitalisation_policy = lower
[sqlfluff:rules:ambiguous.column_references] # Number in group by
group_by_and_order_by_style = implicit
Для получения дополнительной информации о лучших практиках стилизации обратитесь к Как мы стилизуем наш SQL.
Форматирование
В dbt Cloud IDE вы можете форматировать ваш код в соответствии с руководствами по стилю нажатием одной кнопки. IDE интегрируется с форматтерами, такими как sqlfmt, Prettier и Black, чтобы автоматически форматировать код для пяти различных типов файлов — SQL, YAML, Markdown, Python и JSON:
- SQL — Форматирование с помощью sqlfmt, который предоставляет один способ форматирования вашего dbt SQL и Jinja.
- YAML, Markdown и JSON — Форматирование с помощью Prettier.
- Python — Форматирование с помощью Black.
Интеграции форматирования в Cloud IDE берут на себя ручные задачи, такие как форматирование кода, позволяя вам сосредоточиться на создании качественных моделей данных, сотрудничестве и достижении значимых результатов.
Форматирование SQL
Чтобы форматировать ваш SQL-код, dbt Cloud интегрируется с sqlfmt, который является бескомпромиссным форматтером SQL-запросов, предоставляющим один способ форматирования SQL-запроса и Jinja.
По умолчанию IDE использует правила sqlfmt для форматирования вашего кода, делая кнопку Format доступной и удобной для использования сразу. Однако, если у вас есть файл с именем .sqlfluff в корневом каталоге вашего проекта dbt, IDE будет использовать правила SQLFluff по умолчанию.
Форматирование доступно на всех ветках, включая вашу защищенную основную ветку git. Поскольку dbt Cloud IDE предотвращает коммиты в защищенную ветку, она предлагает вам зафиксировать эти изменения в новой ветке.
- Откройте файл
.sql
и нажмите на вкладку Code Quality. - Нажмите на кнопку
</> Config
на правой стороне консоли. - В всплывающем окне конфигурации инструмента качества кода у вас есть возможность выбрать sqlfluff или sqlfmt.
- Чтобы форматировать ваш код, выберите радиокнопку sqlfmt. (Используйте sqlfluff для проверки вашего кода).
- После того как вы выбрали радиокнопку sqlfmt, перейдите в раздел консоли (расположенный ниже Редактора файлов), чтобы выбрать кнопку Format.
- Кнопка Format автоматически форматирует ваш код в Редакторе файлов. После автоматического форматирования вы увидите сообщение, подтверждающее результат.
Форматирование YAML, Markdown, JSON
Чтобы форматировать ваш YAML, Markdown или JSON код, dbt Cloud интегрируется с Prettier, который является мнениемным форматтером кода. Форматирование доступно на всех ветках, включая вашу защищенную основную ветку git. Поскольку dbt Cloud IDE предотвращает коммиты в защищенную ветку, она предлагает вам зафиксировать эти изменения в новой ветке.
- Откройте файл
.yml
,.md
или.json
. - В разделе консоли (расположенном ниже Редактора файлов) выберите кнопку Format, чтобы автоматически форматировать ваш код в Редакторе файлов. Используйте вкладку Code Quality для просмотра ошибок кода.
- После автоматического форматирования вы увидите сообщение, подтверждающее результат.
Вы можете добавить конфигурационный файл для настройки правил форматирования для файлов YAML, Markdown или JSON с помощью Prettier. IDE ищет конфигурационный файл на основе порядка приоритета. Например, сначала она проверяет наличие ключа "prettier" в вашем файле package.json
.
Для получения дополнительной информации о порядке приоритета и о том, как настраивать файлы, обратитесь к документации Prettier. Обратите внимание, что файлы .prettierrc.json5
, .prettierrc.js
и .prettierrc.toml
в настоящее время не поддерживаются.
Форматирование Python
Чтобы форматировать ваш Python-код, dbt Cloud интегрируется с Black, который является бескомпромиссным форматтером Python-кода. Форматирование доступно на всех ветках, включая вашу защищенную основную ветку git. Поскольку dbt Cloud IDE предотвращает коммиты в защищенную ветку, она предлагает вам зафиксировать эти изменения в новой ветке.
- Откройте файл
.py
. - В разделе консоли (расположенном ниже Редактора файлов) выберите кнопку Format, чтобы автоматически форматировать ваш код в Редакторе файлов.
- После автоматического форматирования вы увидите сообщение, подтверждающее результат.