mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-05-09 00:30:14 +02:00
1.7 KiB
1.7 KiB
ket
ket is the configuration language of tek. it's based on edn but without all the features.
usage
with tek_output
this is a tek_output
view layout defined using ket:
(bsp/s (fixed/y 2 :toolbar)
(fill/x (align/c (bsp/w :pool
(bsp/s :outputs (bsp/s :inputs (bsp/s :tracks :scenes)))))))
with tek_input
this is a tek_input
keymap defined using ket:
(@u undo 1)
(@shift-u redo 1)
(@e editor show :pool-clip)
(@ctrl-a scene add)
(@ctrl-t track add)
(@tab pool toggle)
tokens
ket has 5 "types":
- nil
- numeric literal
- symbol
- key
- group
nil
this does nothing.
numeric literal
numbers are passed through as is. only non-negative integers are supported.
0
123456
keys
keys are the names of available operations. they look like this:
simple-key
multi-part/key
keys are implemented by the underlying subsystem:
- in
tek_output
, keys are names of layout primitives - in
tek_input
, keys are names of commands
symbols
symbols that start with :
represent the names of variables
provided by the Context
trait - such as command parameters,
or entire layout components:
:symbol-name
symbols that start with @
represent keybindings.
they are parsed in tek_tui
and look like this:
@ctrl-alt-shift-space
groups
groups represent things like expressions or configuration statements, and look like this:
(some-key :symbol (some/other-key @another-symbol 123) 456)
goals
- const parse
- live reload
- serialize modified code back to original indentation