edg DSL
Syntax highlighting for edg workload DSL files (.edg).
Features
- Syntax highlighting for
.edg files
- Embedded SQL highlighting in raw strings
- Bracket matching and auto-closing
- Comment toggling
Highlighting support
- Keywords:
let, object, ref, transaction, if, else, match, when, default, etc.
- Section blocks:
up, seed, deseed, down, init, run
- Built-in functions:
gen, uuid_v4, ref_rand, seq, timestamp, uniform etc.
- Strings, numbers, booleans, operators, and comments
- SQL keywords within raw strings (backtick-delimited)
- Placeholders:
$1, ?, __values__, __columns__
Example
let users = 100000
let batch_size = 10000
let fetch_limit = batch_size / 2
up {
create_users `CREATE TABLE IF NOT EXISTS users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email STRING NOT NULL
)`
}
seed {
populate_users(count: users, size: batch_size) `INSERT INTO users (email) __values__` (gen('email'))
fetch_users `SELECT id, email FROM users LIMIT $1` (fetch_limit)
}
run {
get_user `SELECT * FROM users WHERE id = $1::UUID` (ref_rand('fetch_users').id)
update_email `UPDATE users SET email = $2 WHERE id = $1::UUID` (
ref_rand('fetch_users').id,
gen('email')
)
}
deseed {
truncate_users `TRUNCATE TABLE users CASCADE`
}
down {
drop_users `DROP TABLE IF EXISTS users`
}
Links
| |