just some things I've come across on a bigger project in blide:
bugs/issues/usability:
1. There doesn't seem to be good intellisense support for multi-dimensional arrays. It had me confused for a bit because the intellisense tends to be really helpful in catching compile-time errors as you type. I didn't get any prompting/hints with multi-dimensional arrays so I thought I was declaring them wrong, when in fact I was doing them correctly.
2. this one was really tricky as I didn't catch it until I looked over the code a 3rd time. This would've been caught at compile time but still...
notice at the end of the first Collide() method there is a contactList.clear(). Now when I typed 'contactList.' it gave me intellisense. Which is all good and gravy, except that contactList doesn't exist in the scope of that method! It is used in the second collision method '_Collide(...)' as a parameter. "contactList.clear()" came up on intellisense. but when i went to 'jump to definition' it brought me _Collide(...) which is the 2nd method below.
suggestions for future improvement:
- in the search/replace dialog it would be nice to get a pop up saying how many occurrences were replaced when you do a 'replace all'. It helps with refactoring to know you replaced around the right number of words instead of accidentally replacing 400 instances :).
- change the parenthesis highlighting to be a subtle background highlight rather than an outline block. After coding for hours it starts to become really hard to tell where the cursor is in relation to a parenthesis because of the big white box that is drawing on top of it.
bugs/issues/usability:
1. There doesn't seem to be good intellisense support for multi-dimensional arrays. It had me confused for a bit because the intellisense tends to be really helpful in catching compile-time errors as you type. I didn't get any prompting/hints with multi-dimensional arrays so I thought I was declaring them wrong, when in fact I was doing them correctly.
2. this one was really tricky as I didn't catch it until I looked over the code a 3rd time. This would've been caught at compile time but still...
Method Collide() _newContactList.Clear() _Collide(Self.geometryA, Self.geometryB, _newContactList) _mergedContactList.Clear() For Local contact:TContact = EachIn _newContactList Local index:Int = _newContactList.IndexOfSafe(contact) If index > - 1 Then 'continuation of collision contact._normalImpulse = TContact(_contactList.AtIndex(index))._normalImpulse contact._tangentImpulse = TContact(_contactList.AtIndex(index))._tangentImpulse _mergedContactList.add(contact) Else 'first time collision _mergedContactList.add(contact) End If Next contactList.Clear() End Method Method _Collide(geomerty1:TGeom, geometry2:TGeom, contactList:TContactList) End Method
notice at the end of the first Collide() method there is a contactList.clear(). Now when I typed 'contactList.' it gave me intellisense. Which is all good and gravy, except that contactList doesn't exist in the scope of that method! It is used in the second collision method '_Collide(...)' as a parameter. "contactList.clear()" came up on intellisense. but when i went to 'jump to definition' it brought me _Collide(...) which is the 2nd method below.
suggestions for future improvement:
- in the search/replace dialog it would be nice to get a pop up saying how many occurrences were replaced when you do a 'replace all'. It helps with refactoring to know you replaced around the right number of words instead of accidentally replacing 400 instances :).
- change the parenthesis highlighting to be a subtle background highlight rather than an outline block. After coding for hours it starts to become really hard to tell where the cursor is in relation to a parenthesis because of the big white box that is drawing on top of it.