HELP setting up a SU code editor
-
Well being a Mac guy.. be careful here:
Notepad is a crappy plain jane text editor that comes with Windows; and is even known to screw up files made for windows.
Notepad++ is a full featured code editor based on the Scintilla core (which is cross-platform.) I just don't know anyone's ever compiled a Mac version.
Haven't had time to look at that editor, I'm happy with Notepad++ as an editor, that can be expanded with plugins. (such as a console, debugger interface etc.)
The problem is not a lack of editors or IDEs, or even those that work with Ruby,.. it's that Sketchup does NOT use standard Ruby. The answer is to get both Sketchup and an IDE to be using (or acceesing,) the same instance of Ruby. We don't have a choice NOW, because it's Sketchup that loads the Ruby instance, and into that instance is where Sketchup loads it's API extensions.
I WISH for the future, that the Google Team can be convinced to let us have more control over Ruby.
- A configure setting where WE tell Sketchup the location and name of the Ruby Interpreter binary (so it can be pointed to the standard Ruby bin directory of whatever version we want to run or test.)* The option to load the SU API extensions into a Ruby Process that is already running, and started by the user, or the IDE, rather than Sketchup. (Hoping here that when SU crashes, it doesn't take Ruby down with it.)
-
@dan rathbun said:
I'm happy with Notepad++ as an editor,
It's really strong with HTML and JavaScript, but pretty weak on Ruby. Minimal coloring, only a faint try at matching begin/end constructs, ...
-
@chris fullmer said:
I have to admit that I do not understand what an IDE does over just using Notepad++ ...
In the [not so] good old days, we had an editor, compiler, linker, debugger, etc. For reference, we had treeware. An IDE gathers them all in one place.
In the [not so] good old days, your cycle was edit, compile, link, run. With today's tools, compiling and linking happen in milliseconds (used to be minutes). An IDE has a single-key compile/link/run command. You probably click your console, up-arrow and Enter. Not quite as nice as one key, but really no big deal.
What we lack is a proper debugger. Additional IDE tools include screen painters for menus, input forms and so on. Also, complete help systems. Modern IDEs do so much that they also feature serious learning curves, so they are not appropriate tools for those who don't earn their daily bread by coding.
-
@martinrinehart said:
What we lack is a proper debugger.
I think that's goes without saying
@martinrinehart said:
Additional IDE tools include screen painters for menus, input forms and so on.
visual aids are a great help when learning anything
@martinrinehart said:
Also, complete help systems.
what could be better
@martinrinehart said:
Modern IDEs do so much that they also feature serious learning curves
unless guidance, and support are available, like Google provides for Gears, O3D, Android Development, or Apple for iPhone, or the open source community for newcomers.
@martinrinehart said:
so they are not appropriate tools for those who don't earn their daily bread by coding.
sorry, I think you just contradicted yourself here, these tools are designed to avoid your [not so] good old days learning curve,
I didn't think that YOU (the author of one of the most comprehensive "hey guy's SU codings NOT hard" books proscribed to the FOFO school of teaching and learning
I hadn't grasped that your, "hey guys, no need to look under the hood" API was devised to slow peoples own programing knowledge.
I must say I'm rather disappointed in your attitude.
A request for assistance in avoiding badly coded 'amateur' and efforts to understand what makes a cross-platform 'professional' scripts would find your support.
these scripts are often targeted at an extremely niche market, and a 'DIY' solution is often the only commercially viable option for those on both sides of the equation.
An idea I'm pursuing out of curiosity may help you in your 'professional' activities and I for one am to old to re-live your years of pain.
I do have 6 Acorn computers in my workshop, should I concentrate on learning programing on those...
john
-
I agree that a SketchUp IDE would be helpful, even for newcomers, so long as it provides an intuitive UI. I usually use Notepad++, but I wrote an article that presents a simplistic Eclipse plugin that accesses SketchUp.
The plugin provides syntax coloring and single-click script execution through the SketchUp bridge, but that's about it. If this interests you guys, I'd be happy to add features. The debugger is tough, but it's not impossible.
Matt
-
That's an interesting article.
@unknownuser said:
You can download Aptana Studio and RadRails, but the installation process is long and complicated. Besides, if you just want a Ruby editor, downloading a 30-day evaluation version of the gigantic Aptana Studio isn't worth it.
Complicated installation process? And the thing is free. http://www.aptana.org/
Anyway - are you able to set breakpoints etc in SU plugin scripts and run them from Eclipse?
-
@mattscar said:
The plugin provides syntax coloring and single-click script execution through the SketchUp bridge, but that's about it. If this interests you guys, I'd be happy to add features. The debugger is tough, but it's not impossible.
MattHi matt,
should I just turn this into a wish list then....
number 1 for me is Mac compatibility which the now ported, now free Aptana gives me, it also has a quite straight forward, simple ruby editor hidden in there, so can the plug added to it or is it completely separate issue?
I installed XP Pro sp3 on the Mac last week so I'll have a play with this there before asking to many naive questions, I'm sure requests
welcome aboard
john
-
Well, the bridge that Matt is using is a Windows-only thing - you'd need to ask TBD about the possibility of porting.
-
I am already looking into porting SketchUp Bridge to Mac, but it will take some time as I need to learn the internals of OSX.
-
I could have sworn SketchUp had a socket interface somewhere. If we could send commands reliably over a socket, then the Java interface becomes trivial. And you can use the IDE to access SketchUp on a remote computer.
-
Hi all,
as your online Matt (and any one else) I'm just trying to combine two rubies to print out a full xml list of my local SU ruby api.
I've taken the exporter from tomatoes_export.rb and I'm trying capture the puts from su_api.rb as it loops thru all the rubies on my local SU
I haven't got any of it working yet, I only just thought of it ...
will it work
I guess step 1 is get su_api.rb to loop the list it gathers to ruby console and copy paste the results into excel....
I want to add the list to resources template.
or is there an easy way to have an introspective, local, platform aware list....
-
@Matt is this what you mean?" title="@Matt is this what you mean?" class=" img-fluid img-markdown" />I have no idea what it means, but you probably do...
# begin code def socket_listener(v) puts "r;#{v.inspect}" if v == "Connection closed" p SKSocket.disconnect end end puts "Connecting..." p SKSocket.connect "google.com", 80 puts "Done." puts "adding listener..." p SKSocket.add_socket_listener { |e| socket_listener(e) } puts "Done." puts "Writing..." p SKSocket.write("HEAD / HTTP/1.1\n\n") # end code
thank you goes to Dr. YSG (ygut...@gmail.com)
-
@driven said:
or is there an easy way to have an introspective, local, platform aware list....
Of all the .rb/.rbs files in the Tools/Plugins file heirarchy ?
.. or the objects they create, ie: Classes / Modules / Methods, etc. ??
-
this is what my mac can find [in open SU], I went through manually, there's a few I don't recognise, and aren't on API Doc
what does #arity mean??
john
-
arity is the number of arguments a method accepts
def my_method(a, b) has arity of 2.
Introspection is possible. I built these charts using the same idea:
http://sketchuptips.blogspot.com/2008/08/sketchup-ruby-api-class-diagrams.htmlBut the introspection sometimes gives you bad information - look at the MaterialsObserver methods from your own list, and compare them to the names in the API docs. Maybe it's just exposing a buggy API. At any rate, the MatsObs is the only one I know for sure is returning bogus method names.
I believe that socket code snippet is mine. I used it to get Lego inventories from sites like peeron.com, and build a Component inventory. It is not officially supported and so there's no guarantee it will be around in the next version. But it's fun to play with.
-
@driven said:
what does #arity mean??
disappointingly - the number of arguments - but I don't know what the -1's mean on your list.
-
hi Jim,
thanks for the clear answer
the SLSocket doesn't show up at all on XP [on the same Mac] and I haven't gone through the methods on it yet,I really need to mod the script to generate the full list automatically, so I can compare with 3 other Macs with different versions of Ruby etc and with and without scripts,
I thought I recognised at least one of TIG's, but there's other at last ones that aren't on the API as well.
I take a look at your list in the morning...
john
-
An old post on SkSocket at over at GG.
http://groups.google.com/group/sketchupruby/browse_frm/thread/0b81977cc5d795ba# -
cheers Dan,
I found that earlier and followed the links to the test script I ran.
I posted the results because I don't how to interrupt the output, although it did show me a potentially 'protected' name, that's used in a script that just won't run on OSX on my Mac, but will on XP [same mac]
SKSocket doesn't show up under XP....
john
@ Jim, had a look at the charts, very nice
-
@driven said:
@ Jim, had a look at the charts, very nice
@ JIM .. dittos from me. I'd like some that we're left right hierachry, tho.
Advertisement