watch

watch

3.6k Downloads

This addon is a development addon that lets you display contents of variables and continually updates the result.

Features

  • Continuous colored output of values, tables, selected functions/methods, and ui objects
  • Left-click any line in a table to open a new watcher watching for this key - unless it's a function
    • Calling (whitelisted) functions on tables
  • Try /rewatch after reloading your ui, you'll love it
  • Use your scrollwheel...
  • Right-Click the title bars for a dropdown menu
  • The green-ish area in the lower right corner of a watcher window is actually a resize-handle... sorry for the odd texture. Window sizes are saved through sessions
  • Zero dependencies, zero libraries. Perfect for testing add-on deployment.

Slash-Commands

/watch [expression]
Watches defined expression, if you skip the expression part, it will watch for "nil" wich is quite useless though.
/unwatch <id>
Removes a watcher with <id>, ID's are shown in the watcher window title as a number between ((double parentheses)).
/unwatch ALL
Removes ... all watchers! (the argument is case-sensitive! so "all" or "All" and not even "aLL" will work).
/rewatch
Restores watchers from the last session. This might yield unexpected results if called more than once ...

Useful info

  • You can watch for invalid expressions that might become valid sometime (or never, though that's not really useful), like MyAddonTable.frameindex:GetTop() might throw an error normally if the frame does not exist. This error will even be printed in the watcher frame, but if you create it during your session, the watcher will print the correct value.
  • Syntax errors should be detected when executing the slash command and should prevent generating a watcher.
  • Your expression will result in parsing a code like "return {expression}" (the curly braces are really there)

Stuff that is planned

  • Show/Hide unsafe functions - Often you actually don't care about table values that contain functions, especially those that are not listed as safe methods, so I'd like to add an option to the dropdown to hide/show those
  • Change expression - Just a dropdown menu item to change the expression
  • Highlight lines that change (I already know how to do it, just can't decide on the color... :D)
  • Key combination to force evaluation of method
  • Marking lines (+ Showing only marked lines)
  • Hide unsafe lines
  • Drill-down for anonymous code (structures that can not be reached from global environment)