Сниппеты
Сниппет — параметризованный SQL-шаблон с плейсхолдерами для быстрой вставки. ide99 поставляется с базовым набором (типовые SELECT, EXPLAIN, миграции) и поддерживает пользовательские.
Открыть палитру
⌘+J — откроется командная палитра сниппетов поверх редактора.
Печатайте — список фильтруется по имени и тегам. ↑/↓ для навигации, Enter — вставить выбранный.
Плейсхолдеры
После вставки курсор автоматически становится на первый плейсхолдер. Tab — следующий, Shift+Tab — предыдущий.
Синтаксис плейсхолдеров:
| Шаблон |
Что значит |
${1:table_name} |
Плейсхолдер №1 со значением по умолчанию table_name |
${2:column} |
Плейсхолдер №2 |
$0 |
Конечная позиция курсора (после Tab сквозь все остальные) |
${1|orders,users|} |
Плейсхолдер с выпадающим списком |
Пример встроенного сниппета select-recent:
SELECT *
FROM ${1:table_name}
WHERE ${2:created_at} > now() - interval '${3:7 days}'
ORDER BY ${2:created_at} DESC
LIMIT ${4:100};$0
Встроенные сниппеты
Категории:
- select —
select-all, select-count, select-recent, select-where-jsonb
- explain —
explain-analyze, explain-analyze-buffers
- schema —
create-table, add-column, add-index-concurrently
- maintenance —
vacuum-analyze, reindex-concurrently, find-bloat
- jsonb —
jsonb-extract, jsonb-keys, jsonb-array-explode
- stats —
top-slow-queries, unused-indexes, cache-hit-ratio
Полный список — в палитре, фильтр по тегу: введите #explain или #maintenance.
Свои сниппеты
Настройки → Сниппеты → New. Форма:
- Name — отображается в палитре (например,
daily-revenue)
- Trigger — короткий префикс для быстрого поиска (например,
dr)
- Tags — список через запятую (
stats, daily)
- Body — SQL с плейсхолдерами
Пример: дневная выручка по стране:
SELECT
${1:c.country},
count(*) AS events,
sum(amount_cents) / 100.0 AS revenue
FROM ${2:events} e
JOIN ${3:customers} c ON c.id = e.customer_id
WHERE e.event_at > now() - interval '${4:1 day}'
GROUP BY 1
ORDER BY revenue DESC$0
Сохраняется в ~/Library/Application Support/ide99/snippets.json (или соответствующий путь под Windows / Linux). Файл — обычный JSON, можно править руками или коммитить в git и шарить с командой.
Импорт / экспорт
Настройки → Сниппеты → Export — сохранит ваши сниппеты в .ide99-snippets-файл. Import — загрузит чужой набор. Удобно делиться с командой через git или Slack.
См. также: Настройки приложения → Sharing.
Что дальше