Syntax highlighting for edg workload DSL files (.edg).
Features
- Syntax highlighting for
.edgfiles - 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,uniformetc. - 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`
}