Page 1 of 1

A real switch to turn off system globals

Posted: Wed Feb 29, 2012 3:26 pm
by dunbarx
This issue has popped up a couple of times.

When debugging, a long list of system globals appears in the variable pane above ones own variables. The ability to hide these is VERY convenient. The option "show globals" in the "script editor" pane of LC preferences doesn't cut it.

There is a wonderful workaround (compliments of Thierry), but involves modifying the script of the "revDebugger" stack. Not necessarily for the faintHearted.

The feature request? Make this happen in the preferences.

Craig Newman

Re: A real switch to turn off system globals

Posted: Mon May 07, 2012 3:54 am
by spencer
So, I am really new to a programmable developers' environment. Why not check the "LiveCode UI elements appear in list of stacks", find what is providing that list, and putting in a switch yourself?

Re: A real switch to turn off system globals

Posted: Mon May 07, 2012 5:31 am
by shaosean
You can always make a plugin that modifies the IDE in memory only.. Just use a front/back script or library to do what you need..

Re: A real switch to turn off system globals

Posted: Mon May 07, 2012 7:15 pm
by dunbarx
Shaosean.

Do you mean a plug-in that offers the choice of modifying the scriptDebugger script each session, then restoring it upon quitting? Certainly an option if that is what you meant.

I just changed it permanently.

Re: A real switch to turn off system globals

Posted: Tue May 08, 2012 3:12 am
by shaosean
Yeah, on the fly. If you send me your changes I can look in to making a plugin for other users who are less inclined to make the modifications to the IDE.

Re: A real switch to turn off system globals

Posted: Tue May 08, 2012 4:37 pm
by dunbarx
Shaosean.

With a "tAlternateHandler" stored in a custom property, would you do something like this?

Code: Select all

on mouseUp
   answer "Hide System Globals?" with "Hide" or "Cancel"
   if it is "hide" then
      put the script of stack "revDebugger" into temp
      get wordoffset("revDebuggerValidGlobalNames",temp)
      put  it into startWord
      get wordoffset("revDebuggerValidGlobalNames",temp,startWord)
      put it + startWord into endWord
      
      put tAlternateHandler into word startWord - 1 to endWord of temp --to catch "on"
      set the script of stack "revDebugger" to temp
   end if
end mouseUp
And then automatically restore the original upon quitting?

Or just store both the entirety of the original and the alternate scripts in custom properties and set and reset the script of the revDeBugger stack?

The alternate handler is:

Code: Select all

function revDebuggerValidGlobalNames
   local tGlobalsRaw
   put the globals into tGlobalsRaw
   
   replace comma with return in tGlobalsRaw
  
   filter tGlobalsRaw without "*(x86)"
    filter tGlobalsRaw without "$*"
     filter tGlobalsRaw without "grev*"
   replace return with comma in tGlobalsRaw
   
   return tGlobalsRaw
end revDebuggerValidGlobalNames
Craig

Re: A real switch to turn off system globals

Posted: Tue May 08, 2012 5:12 pm
by shaosean
Considering I have never used the debugger nor looked at the code used by it, I am not too certain how I would need to go about doing it ;-) There are two ways that I like to go about modifying the IDE.. The first way is to install a front script to intercept the commands, but some times this is not doable (stilly "private" handlers).. The second way is to replicate the whole feature and just to replace the original (in memory only)..

Both methods have their pros and cons, and depending on the complexity of the mod being made, one method will be easier than the other.. (personally i pretty much always use the first method)

Re: A real switch to turn off system globals

Posted: Tue May 08, 2012 6:05 pm
by mwieder
Craig-
function revDebuggerValidGlobalNames
The IDE's built-in debugger already filters these out.

Or... you might want to try a different debugger... it's a plugin that completely replaces the built-in debugger stack

http://www.ahsoftware.net/PowerTools/Po ... DDemo.html

Re: A real switch to turn off system globals

Posted: Tue May 08, 2012 8:07 pm
by dunbarx
Mark.

The debugger preference to show or not show globals does not work. Is that what you meant?

Thierry's hack filters "$" and "gRev". This works fine for me.

I had hoped that with v5.x the problem would have been fixed, but it still has no effect. Of course, user globals are always shown.

You had contributed to the earlier thread:

if gREVDevelopment is false then
filter tGlobalsRaw without "grev*"
end if

Craig

Re: A real switch to turn off system globals

Posted: Tue May 08, 2012 8:19 pm
by mwieder
Ah. I misread your code - you wanted the $ environment globals filtered out as well. Yeah, PowerDebug does that. Been so long since I've had to rely on the built-in debugger that I forget these things.