sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Talk] Ruby Debugger for SketchUp 14+

    Scheduled Pinned Locked Moved Developers' Forum
    45 Posts 8 Posters 5.8k Views 8 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J Offline
      Jim
      last edited by

      It appears you (the ide) must maintain the tcp connection to the debugger for the duration of the debugging session. The debugger does not respond if you try to reconnect and send messages after closing the connection.

      It seems like you should be able to close and connect to the debugger as long as it is running.

      This means any type of Editor -> SketchUp Debugger bridge can only connect once and needs to stay running the duration of the user's debugging activities. I was hoping to use a small script executed from the editor that would connect -> send message -> disconnect to the debugger.

      Hi

      1 Reply Last reply Reply Quote 0
      • J Offline
        Jim
        last edited by

        The SketchUp debugger is logging messages, so having a windows debugger such as DbgView open can be useful.

        2014-04_02.png

        Hi

        1 Reply Last reply Reply Quote 0
        • S Offline
          slbaumgartner
          last edited by

          The Readme on Github says that Mac is not supported yet, but the repository contains project files for Xcode and build succeeded on my Mac. However, there is no discussion of where to put the dylib or how to invoke it. I tried putting it with the other dylibs in the Frameworks folder and activating with the command line args as suggested for Windows, but I can't see any evidence that it does anything (SU starts and seems to run as normal...). Has anybody gotten this to work on Mac yet?

          Steve

          1 Reply Last reply Reply Quote 0
          • D Offline
            driven
            last edited by

            @slbaumgartner said:

            Has anybody gotten this to work on Mac yet?

            @Steve

            been awaiting your return, I only had a brief look...

            than ran...
            john

            learn from the mistakes of others, you may not live long enough to make them all yourself...

            1 Reply Last reply Reply Quote 0
            • tt_suT Offline
              tt_su
              last edited by

              @slbaumgartner said:

              The Readme on Github says that Mac is not supported yet, but the repository contains project files for Xcode and build succeeded on my Mac. However, there is no discussion of where to put the dylib or how to invoke it.

              Work in progress. I don't recall right now if you will need a new release of SU for OSX before it will work. I'll check in.

              1 Reply Last reply Reply Quote 0
              • J Offline
                Jim
                last edited by

                Do these IDE's somehow notify SketchUp that the file has been modified and needs to be reloaded by SketchUp?

                Hi

                1 Reply Last reply Reply Quote 0
                • Dan RathbunD Offline
                  Dan Rathbun
                  last edited by

                  Bugra said they implemented the communication protocol that some of the Ruby debugger gems also implement. Documented (somewhat) here:

                  RubyForge - Page not found

                  favicon

                  (debug-commons.rubyforge.org)

                  I'm not here much anymore.

                  1 Reply Last reply Reply Quote 0
                  • J Offline
                    Jim
                    last edited by

                    Here is a demo video of a Notepad++ plugin I am working on for SketchUp Debugger communications.

                    It is written in Python and requires the PythonScript plugin for Notepad++. The video shows setting a breakpoint, inspecting local variables, and stepping through the script.

                    There's no user interface and I use a lot of typed commands, so it is best to watch the video in high quality and full screen.

                    Just made it to show possibilities/measure interest/gather feedback.

                    Hi

                    1 Reply Last reply Reply Quote 0
                    • jiminy-billy-bobJ Offline
                      jiminy-billy-bob
                      last edited by

                      Nice! Can't wait to try this

                      25% off Skatter for SketchUcation Premium Members

                      1 Reply Last reply Reply Quote 0
                      • Dan RathbunD Offline
                        Dan Rathbun
                        last edited by

                        @jim said:

                        Here is a demo video of a Notepad++ plugin I am working on for SketchUp Debugger communications.

                        I'd much rather stay with using NP++.

                        Why Python, and perhaps GitHub it ?

                        I'm not here much anymore.

                        1 Reply Last reply Reply Quote 0
                        • Dan RathbunD Offline
                          Dan Rathbun
                          last edited by

                          @dan rathbun said:

                          Bugra said they implemented the communication protocol that some of the Ruby debugger gems also implement. Documented (somewhat) here:

                          RubyForge - Page not found

                          favicon

                          (debug-commons.rubyforge.org)

                          I am wondering if this ruby debug ide protocol is based on (or compatible with,)
                          the DBGp protocol: http://www.xdebug.org/docs-dbgp.php#description

                          I'm not here much anymore.

                          1 Reply Last reply Reply Quote 0
                          • S Offline
                            slbaumgartner
                            last edited by

                            Whimper! Bugra (or whoever) please, please! We Mac users are dying of envy....

                            Steve

                            1 Reply Last reply Reply Quote 0
                            • tt_suT Offline
                              tt_su
                              last edited by

                              @slbaumgartner said:

                              Whimper! Bugra (or whoever) please, please! We Mac users are dying of envy....

                              Soon. 😄 We need it as well - we share your pain.

                              Btw, have you checked the GitHub repo lately? 😉

                              1 Reply Last reply Reply Quote 0
                              • Dan RathbunD Offline
                                Dan Rathbun
                                last edited by

                                Nothing seems to have changed in at least a month (and that seems to be only the readme.)

                                If you have something to announce, come on out and say it.

                                I'm not here much anymore.

                                1 Reply Last reply Reply Quote 0
                                • J Offline
                                  Jim
                                  last edited by

                                  @dan rathbun said:

                                  Why Python, and perhaps GitHub it ?

                                  Why Python? Python just seemed like my best chance for success for a proof-of-concept compared to the alternative ways to extend Npp.

                                  The Python code is currently posted on this Gist. I'm sure it's ugly as I don't know exactly what I'm doing in Python yet - I am learning as I go about Python, PythonScript, and the Npp environment. I'll put it in a proper Github repo when it's more stable.

                                  Maybe there's a Pythonista around who would be willing to help out?

                                  This is also a bit complicated to setup - I had to compile my own version of PythonScript.dll from the latest GitHub source to get the margin click callback to return the correct values.

                                  One big downside of PythonScript is it appears to have weak support for creating Toolbars in Npp, so creating a good user interface may be a problem.

                                  I would love for this to be written in c++ to take advantage of more features of Npp, but that would require learning c++ first and that takes time.

                                  @dan rathbun said:

                                  I am wondering if this ruby debug ide protocol is based on (or compatible with,)
                                  the DBGp protocol

                                  No, DBGp is incompatible.

                                  The commands that the SketchUp Debugging Server accepts can be found by interpreting these regular expressions.

                                  Hi

                                  1 Reply Last reply Reply Quote 0
                                  • Dan RathbunD Offline
                                    Dan Rathbun
                                    last edited by

                                    Yea.. I agree I poked around in the NPP Plugin "How to" today. The C++ stuff is too complex to learn quickly.

                                    I did not find any Ruby binding, so Python would be the next best thing. It is similar to ruby (without all the "end"s.)

                                    I tried first to install PythonScript in my %AppData% path where all my other NPP plugins are installed, but got an error when trying to open the Python Console. (Something about Python being an ANSI version, and incompatible with the Unicode NPP.)

                                    Installing it in the %ProgramFiles% path works (as the doc stated that is where to install it.) So it will require Admin privileges.

                                    I'm not here much anymore.

                                    1 Reply Last reply Reply Quote 0
                                    • Dan RathbunD Offline
                                      Dan Rathbun
                                      last edited by

                                      I opened the config dialog, hilited "sudb.py" and clicked on the "Add" button. It was added to the top-level "Python Script" menu.

                                      I then made a (quick and dirty) BMP copy of the SU icon, and saved it into "Notepad++/plugins/images/Toolbar" and added the script to the Toolbar list, then hilited it (in the list,) and went thru the file picker after clicking the "Set Icon" button.

                                      SketchUp.icon.zip

                                      I also set the "Initization" to ATSTARTUP:

                                      Restarted Notepad++ and the SketchUp icon appears on the toolbar.

                                      PythonScriptShortCutConfig.png

                                      💭

                                      I'm not here much anymore.

                                      1 Reply Last reply Reply Quote 0
                                      • Dan RathbunD Offline
                                        Dan Rathbun
                                        last edited by

                                        And doing the above caused a textfile "PythonScriptStartup.cnf" to be created in "%AppData%\Roaming\Notepad++\plugins\config" (UTF-8 no BOM, Dos/Win EOLs)

                                        containing:

                                        ITEM/C;\Program Files (x86)\Notepad++\plugins\PythonScript\scripts\sudb.py
                                        TOOLBAR/C;\Program Files (x86)\Notepad++\plugins\PythonScript\scripts\sudb.py/C;\Program Files (x86)\Notepad++\plugins\images\Toolbar\SketchUp.bmp
                                        SETTING/PREFERINSTALLEDPYTHON/1
                                        SETTING/STARTUP/ATSTARTUP
                                        
                                        

                                        I'm not here much anymore.

                                        1 Reply Last reply Reply Quote 0
                                        • J Offline
                                          Jim
                                          last edited by

                                          @dan rathbun said:

                                          And doing the above caused a textfile "PythonScriptStartup.cnf" to be created in "%AppData%\Roaming\Notepad++\plugins\config" (UTF-8 no BOM, Dos/Win EOLs)

                                          Oh cool, this means a Toolbar with icons can be created from the plugin. Thanks.

                                          Too bad Tooltips on the icons do not seem to be supported...

                                          Hi

                                          1 Reply Last reply Reply Quote 0
                                          • J Offline
                                            Jim
                                            last edited by

                                            I went ahead and made a github repo for this.

                                            Link Preview Image
                                            Build software better, together

                                            GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.

                                            favicon

                                            GitHub (github.com)

                                            Dan, would you prefer a new topic for discussing issues specifically related to this project?

                                            Hi

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 3 / 3
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement