It’s been a while, but we finally upgraded to Rhino 6 and I’ve now had a few months of GHPythoning within it. Overall this has been a very positive experience, but I’ve also experienced issues that I would consider a (sometimes highly severe) step backwards compared to the Rhino 5 GHPython editor. These include, in order of severity:
Functional Issues (that break development):
1: Printing to Output is MUCH slower and leads to unresponsive editor/crashing Rhino
Printing large data chunks in Rhino 6 will make it unresponsive and crash Rhino (and I keep falling into this hole):
Printing the same list in Rhino 5 is more or less instant and one can easily scroll up/down the data in the console window (which is super duper useful):
Edit 1: This print lag is made more apparent when printing multiple/many times. Where the cost of printing isn’t actually captured by the component profiler, but is clearly noticeable and can be seen below the canvas on the Solution completed in ~N seconds
bar (many times over):
As also apparent from this example, dragging the scroll bar to the right of the Output window is also much more laggy/choppy in Rhino 6.
Edit 2: Had this crash report on my desktop afterwards, looks like some casting business with the DataGridView
that was implemented for the Output window:
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidCastException: Specified cast is not valid.
at GhPython.Forms.PythonScriptForm.outputGridView_SortCompare(Object sender, DataGridViewSortCompareEventArgs e)
at System.Windows.Forms.DataGridView.OnSortCompare(DataGridViewSortCompareEventArgs e)
at System.Windows.Forms.DataGridView.OnSortCompare(DataGridViewColumn dataGridViewSortedColumn, Object value1, Object value2, Int32 rowIndex1, Int32 rowIndex2, Int32& sortResult)
at System.Windows.Forms.DataGridViewRowCollection.RowComparer.CompareObjects(Object value1, Object value2, Int32 rowIndex1, Int32 rowIndex2)
at System.Windows.Forms.DataGridViewRowCollection.RowArrayList.Pivot(Int32 left, Int32 center, Int32 right)
at System.Windows.Forms.DataGridViewRowCollection.RowArrayList.CustomQuickSort(Int32 left, Int32 right)
at System.Windows.Forms.DataGridViewRowCollection.Sort(IComparer customComparer, Boolean ascending)
at System.Windows.Forms.DataGridView.SortInternal(IComparer comparer, DataGridViewColumn dataGridViewColumn, ListSortDirection direction)
at System.Windows.Forms.DataGridView.OnColumnHeaderMouseClick(DataGridViewCellMouseEventArgs e)
at System.Windows.Forms.DataGridView.OnMouseClick(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
[END ERROR]
2: Output window does not allow for sub-highlighting and copying
One cannot sub-select strings in the Output window, everything in one print is selected by default:
In Rhino 5 this was possible (and I use it all the time):
3: Output window cannot scroll within one print call
There is no scroll handle on large prints in the Output window. See image reference in previous point.
Functional Issues
4: Output window blue highlight is always on some output
The blue background/white font highlighting is always on one print call. Meaning that if one only has one print call, this is automatically highlighted. I find this confusing (and quite visually distracting and displeasing). A print should only be highlighted when selected. And as per point 3, should really only be highlighted when using the sub-selecting left-click and drag known from other text/code editors.
5: Test button disappears when making the editor small
The right-arrow/Test button goes away when making the editor too narrow:
6: Double-clicking component enters Grasshopper search mode
When you double-click the component to enter the editor, the Grasshopper canvas search kicks in:
7: Double-clicking a new component opens editor in upper left corner
While this was also the case in Rhino 5. It would be great if it opened at the component.
8: Instantiating tuples highlights equals sign as if making a function
This is a very minor issue, but in Rhino 5 syntax highlighting seems to work okay:
9: What is the functionality of the arrow over the Output window?
More of question really, but what does this do:
Aesthetic Issues
10: Output window grey background is too dark
I find the dark grey background to stick out like a sore thumb within the (or at least my) Rhino/Grasshopper context, and would much prefer it has the same color as the Help window background:
11: Test/OK buttons should be either icon or text
Having both is unlike the other editors in Rhino (i.e. C#/VB components and the EditPythonScript editor), but also takes up space (see point 5). If they are to be icons, perhaps a similar aesthetic as the other editors should be used.
12: Test/OK buttons should have hover over help
Explaining what they do.
13: The new snake icon is (subjectively) ugly and (objectively) poorly cropped
This is probably one for @DavidRutten, and is certainly still a minor issue, but hey: