Many programming languages have pre-processor variables, also known as pre-processor constants, or constants, or substitution variables. Often identified by the "#define" keyword, they tell the compiler to replace any occurrence of the variable with whatever text (including spaces) follows it. For example:
#define sunday 1
#define monday 2
#define true 1
#define beginning_of_time "01/01/1900"
My macro is a function called lookup_constants. It could be bound (binded?) to a key. In the language I use, pre-processor constants are enclosed in curly brackets, so I bound the left curly bracket to this function. The function reads the current edit buffer and collects all pre-processor constants. It sorts them and presents them in a Slick-Edit form (dialog box). There is a search field that lets the user filter the results. When the user double-clicks on one of the choices, the macro encloses it in curly brackets and inserts it into the edit buffer.
I have attached the Slick-C macro file and a PNG screen shot of the form.