sketchucation logo sketchucation
    • 登入
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    🔌 Smart Spline | Fluid way to handle splines for furniture design and complex structures. Download

    [Talk] Ruby Debugger for SketchUp 14+

    已排程 已置頂 已鎖定 已移動 Developers' Forum
    45 貼文 8 Posters 6.7k 瀏覽 8 Watching
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • tt_suT 離線
      tt_su
      最後由 編輯

      @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 條回覆 最後回覆 回覆 引用 0
      • J 離線
        Jim
        最後由 編輯

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

        Hi

        1 條回覆 最後回覆 回覆 引用 0
        • Dan RathbunD 離線
          Dan Rathbun
          最後由 編輯

          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 條回覆 最後回覆 回覆 引用 0
          • J 離線
            Jim
            最後由 編輯

            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 條回覆 最後回覆 回覆 引用 0
            • jiminy-billy-bobJ 離線
              jiminy-billy-bob
              最後由 編輯

              Nice! Can't wait to try this

              25% off Skatter for SketchUcation Premium Members

              1 條回覆 最後回覆 回覆 引用 0
              • Dan RathbunD 離線
                Dan Rathbun
                最後由 編輯

                @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 條回覆 最後回覆 回覆 引用 0
                • Dan RathbunD 離線
                  Dan Rathbun
                  最後由 編輯

                  @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 條回覆 最後回覆 回覆 引用 0
                  • S 離線
                    slbaumgartner
                    最後由 編輯

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

                    Steve

                    1 條回覆 最後回覆 回覆 引用 0
                    • tt_suT 離線
                      tt_su
                      最後由 編輯

                      @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 條回覆 最後回覆 回覆 引用 0
                      • Dan RathbunD 離線
                        Dan Rathbun
                        最後由 編輯

                        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 條回覆 最後回覆 回覆 引用 0
                        • J 離線
                          Jim
                          最後由 編輯

                          @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 條回覆 最後回覆 回覆 引用 0
                          • Dan RathbunD 離線
                            Dan Rathbun
                            最後由 編輯

                            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 條回覆 最後回覆 回覆 引用 0
                            • Dan RathbunD 離線
                              Dan Rathbun
                              最後由 編輯

                              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 條回覆 最後回覆 回覆 引用 0
                              • Dan RathbunD 離線
                                Dan Rathbun
                                最後由 編輯

                                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 條回覆 最後回覆 回覆 引用 0
                                • J 離線
                                  Jim
                                  最後由 編輯

                                  @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 條回覆 最後回覆 回覆 引用 0
                                  • J 離線
                                    Jim
                                    最後由 編輯

                                    I went ahead and made a github repo for this.

                                    http://github.com/jimfoltz/npp-sketchup-debugger

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

                                    Hi

                                    1 條回覆 最後回覆 回覆 引用 0
                                    • Dan RathbunD 離線
                                      Dan Rathbun
                                      最後由 編輯

                                      @jim said:

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

                                      Yes that would be good ... and can also log issues on the repo site.

                                      I'm not here much anymore.

                                      1 條回覆 最後回覆 回覆 引用 0
                                      • A 離線
                                        avariant
                                        最後由 編輯

                                        I haven't had a chance to look at the debugger yet but the first thing I thought when I read about was, is this a backdoor that can be used to defeat the .rbs encrypted rubies? Does the debugger reveal anything about the current line of execution, or does it just deliver line numbers? When displaying data about a variable, does it volunteer variable names or does it just respond with a value?

                                        I would be very disappointed to find out it did. 😕

                                        1 條回覆 最後回覆 回覆 引用 0
                                        • J 離線
                                          Jim
                                          最後由 編輯

                                          The debugger shows the filename and line number of .rbs files. It will not show the contents of the file.

                                          It can, however list variable names and values in .rbs files.

                                          I have not tried to set a breakpoint on a .rbs, so I am not sure if it is allowed. But i found the debugger will follow observers into .rbs files.

                                          Hi

                                          1 條回覆 最後回覆 回覆 引用 0
                                          • S 離線
                                            slbaumgartner
                                            最後由 編輯

                                            @avariant said:

                                            I haven't had a chance to look at the debugger yet but the first thing I thought when I read about was, is this a backdoor that can be used to defeat the .rbs encrypted rubies? Does the debugger reveal anything about the current line of execution, or does it just deliver line numbers? When displaying data about a variable, does it volunteer variable names or does it just respond with a value?

                                            I would be very disappointed to find out it did. 😕

                                            You raise some very interesting questions.

                                            If, as I suspect, the rbs unscrambler is an SU facility that decodes the rbs before handing it to a standard Ruby interpreter, then the plaintext source and all other aspects of your plugin would indeed be visible to the debugger. Exploiting this hole isn't as easy as it might sound, since you have to somehow stop Ruby at a breakpoint before the ide commands will work - a bit like shooting in the dark - but I can see that some clever person may find a way.

                                            I think this may come down to how SU implements the debugger ide library. That is, the ide could detect that the source file is rbs and refuse to debug it. This is possible because the SU debugger library implements the ide protocol itself, it does not use the standard debug interface or Gem.

                                            Steve

                                            1 條回覆 最後回覆 回覆 引用 0
                                            • 1
                                            • 2
                                            • 3
                                            • 2 / 3
                                            • 第一個貼文
                                              最後的貼文
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement