Rhino-python for Atom on Windows

windows
atom

#1

Hi!,

Is there any workaround or plan to get rhino-python extension for Atom working with Rhino for windows? The extension if installed on Atom for Windows crashed.

Thanks in advance.


(Dale Fugier) #2

@Alain, can you add anything to this?


(Alain Cormier) #3

Hi @Angel,

The functionality needed to support Atom is not in Rhino for Windows yet but will be sometime in the future. I don’t know exactly when yet. Is there something specific you need to do with Atom that you can’t do with the built-in (EditPythonScript) editor?


#4

I know this is a question for @Angel, but IMO there is so much that you can do in Atom that you can’t in EditorPythonScript simply because of all the packages available.


#5

@Mostapha, could you give an example of these additional things from other packages that you in particular find useful? I’m just curious what packages really help you out. :relaxed:


#6

@JKolodner Sure! :smile:

Here is the ones that are most important for me:

About the Atom itself I love key-bindings (and the fact that they are hackable) It makes coding much easier and fun. Creating panes, change focus, folding/unfloding, select line, Select word all are possible from keyboard.

Customizing style of the page may not seems to be a big deal but is actually pretty big. I use Atom while it looks like sublime (The best of the both worlds).

There are other features like pane that is very useful once you’re working with more than one file which is almost always the case for me.

I use Autocomplete Plus Python Jedi which does full auto-completion for native and custom libraries and objects. It makes everything easier.

Also mini map is very useful for larger files. It’s similar to sublime’s side code review panel.

Hydrogen is also a great package but won’t be particularly useful for Rhino/Grasshopper development.

PS: I opened a discussion on Atom discussion page to see if there is an easy way to develop in IronPython with atom. That’s what I really need. Then I can use filepath and Grasshopper component to execute the code for testing.


(Steve Baer) #7

I would really like to figure out how to get debugging communication to work between atom and Rhino first. I really think people are losing out by not having debugging capabilities and pushing more people to atom for scripting only makes it worse.


(Alain Cormier) #8

I agree that debugging is important. There’s been talk about adding a debugger in Atom where you could plug-in various languages but not much has been done afaik. The communication between Atom and Rhino is probably not going to be easy to figure out.


#9

I totally agree with @Mostapha about the reasons of using an external editor. I’ve been using Eclipse, but sometimes is “too much” to edit simple and small scripts and the built in editor is perhaps too simple and lacks options and refinement…and is ok, nobody is asking for a wonderful built-in editor (this implies maintenance, a design team, an add-ons platform…). A well connected external editor could bring awesome capabilities and improvements in workflow (plugins and addons, integration with other coding workflows…) and it will release Mcneel from the pressure of designing a wonderful integrated coding tool…you just need to design the connecting pipe :stuck_out_tongue:


#10

Until we get a real package for Rhino/Grasshopper in Windows I hacked one the available autocomplete packages for Python to also work for Rhino (and Dynamo). It’s a hack and not perfect. Also I run the script in Grasshopper using code input of GHPythn component. In any case if you are willing to try it you can get it from this gist.


#11

Hey! Thanks @Mostapha !

I’ll check it! :smile:


#12

Whoo, nice! Just out of curiosity, do you have this running in Sublime as well?


#13

Hi @AndersDeleuran,

Not really but here are two options that I can think of:

  1. Atom interface can be very similar to sublime by using sublime-default-syntax and minimap. Here is a screen capture of my screen.

  1. I’m not sure how sublime does the autocomplete but in case it’s a python script somewhere you can use the same trick. If you want to do that then I would also go ahead and make a better version of my code. Currently I just pass detailed specifications. There can also some pre-processing of the .json file to make the search more efficient. :smile:

@stevebaer is there a way to recognize the type of the object (class, function, event, etc) using Rhinocommon XML file?


(Steve Baer) #14

I don’t quite understand this question, sorry.


#15

Thanks @stevebaer. Sorry for not being clear. Let me try again. I’m trying to make sense of the XML file. Is there a way to know the type of each member tag inside XML file.

        <member name="T:Rhino.Geometry.Point">
            <summary>
            Represents a geometric point.
            <para>This is fundamentally a class that derives from
            <see cref="T:Rhino.Geometry.GeometryBase"/> and contains a single <see cref="T:Rhino.Geometry.Point3d"/> location.</para>
            </summary>
        </member>
        <member name="M:Rhino.Geometry.Point.#ctor(Rhino.Geometry.Point3d)">
            <summary>
            Initializes a new point instance with a location.
            </summary>
            <param name="location">A position in 3D space.</param>
        </member>
        <member name="P:Rhino.Geometry.Point3d.X">
            <summary>
            Gets or sets the X (first) coordinate of this point.
            </summary>
        </member>

Looks like “P:” in the name stands for “parameter”. What does “M:” or “T:” stands for. Is there a reference that I can use to map all these keywords to types?


(Steve Baer) #16

P: property
M: method
T: type


(Stephen Maher) #17

This is great, @Mostapha. Thanks for sharing.
I’m having some trouble getting it to work, though. I followed your steps (adjusting the directory strings to match my machine’s) but the autocomplete doesn’t want to work.
This may be a moot point, but you indicated to replace the jedi-provider.py with your jedi-cmd.py, but the package directory doesn’t contain a jedi-provider.py, rather its own jedi-cmd.py. So I replaced that one.
Any thoughts?
Thanks again,
/SPM


#18

Hi @Step_Maher! Sorry for the very late reply. I guess we’re using different packages. I’m thinking to create a more stable version on top of current autocomplete plugin and release it as an atom plugin. I will let you know once it’s ready.


(Stephen Maher) #19

No worries, @Mostapha! I know you’re crazy busy. Yeah, please keep me in the loop! I tried several other things to no avail; so I’d be interested in this development.