anchor.diff:  
     /// Compile shader.
     void compile() {
  -    button.labelfont = fl.COURIER;
  -    button.labelcolor = fl.BLACK;
  -    button.label = 'Recompile';
  -    button.redraw();
  -
       lastShader = buffer.text;
       canvas.updateShaders(defaultVertexShader, lastShader);
       canvas.redraw();
     }
  +
  +  /// Set status label.
  +  void setStatus(String text, bool error) {
  +    if (error) {
  +      status.labelfont = fl.COURIER_BOLD_ITALIC;
  +      status.labelcolor = fl.RED;
  +      status.label = text;
  +    } else {
  +      status.labelfont = fl.COURIER;
  +      status.labelcolor = fl.DARK_GREEN;
  +      status.label = text;
  +    }
  +
  +    status.redraw();
  +  }
   }
   
   int main(List<String> args) {
  
positive.code:     // Setup buffer.
      buffer = new fl.TextBuffer();
      buffer.onModify.listen((data) {
        if (data.nInserted > 0 || data.nDeleted > 0) {
          if (buffer.text == lastShader) {
            button.labelfont = fl.COURIER;
            button.labelcolor = fl.BLACK;
            button.label = 'Recompile';
          } else {
            button.labelfont = fl.COURIER_BOLD_ITALIC;
            button.labelcolor = fl.DARK_GREEN;
            button.label = 'Recompile!';
          }
  
          button.redraw();
        }
      });
  
  
negative.code:           new File('$scriptDir/shaders/default.frag').readAsStringSync();
      }
  
      resizable = new fl.Widget(0, status.h(), width, height - status.h());
      end();
  
      // Update shaders.
  