bitty

Try it out

bitty is a code editor specifically developed for live coding performance. The design goals are:

Key bindings

The default keybindings are:

Syntax coloring

bitty tries to be as flexible as possible in enabling you to decide what parts of your syntax should be highlighted and how. bitty.rules contains a dictionary of regular expressions associated with syntax categories. Whenever a match for a rule is found, it is surrounded in a <span> element with a class set to the name bitty-yourCategoryName. For example, given the following rules:

bitty.rules = {
  numbers: /\b(\d+)/g 
}

… and the text 42 in the code editor, running the syntax coloring will produce: <span class="bitty-numbers">42</span>. You then define your own rules for the CSS selectors (e.g. bitty-numbers, bitty-keywords, bitty-comments etc.)

To “disable” syntax coloring, just don’t specify a value for bitty.rules. If you’re not comfortable using regular expressions, here is a great playground to explore.

To use

Call bitty.create(), maybe with some config options, to return a new bitty instance. If you name that instance b, call b.subscribe( 'run', callback ) to register your callback function to be called whenever code is executed.

Here’s the javascript demo:

const initialCode = 
`function hello( name ) {
  console.log( name )
}
 
hello( 'bitty' )`

window.onload = function() {
  const b = bitty.create({ 
    flashColor:'red',
    flashTime: 100,
    value: initialCode
  })

  // just eval the code that is passed to the callback
  b.subscribe( 'run', eval )
}

Config options

This project is in its early early days, more docs / demos to come.