Suggestions for future revisions of Studio
DHawthorne
Posts: 4,584
I'm sure others have their own pet issues, here are mine .
1) Make bookmarks persistent; save them with the workspace. While you are at it, number them so you can go to a specific one intead of cycling through them in order.
2) Add a specific event "Go To" similar to the Call/Function one. A complex program has an awful lot of events, and just being able to jump to the first one in the section is not as helpful as it could be. The current workaround is to collapse the event tree so you can pick a single one out, but this is awkward, especially in light of the existing collapse/expand glitches.
3) Override the OCX class for the toolbars so positioning can be saved and restored when the window is minimized, or display settings changed. It irritates the heck out of me to have to re-drag all my tool bars back to where I like them every time I switch from my dual-monitor docked setup to the mobile one and back again. I understand this is a Windows problem, but I have overridden pre-packaged Windows classes in my own programs, you don't have to stick yourself with Windows flaws.
1) Make bookmarks persistent; save them with the workspace. While you are at it, number them so you can go to a specific one intead of cycling through them in order.
2) Add a specific event "Go To" similar to the Call/Function one. A complex program has an awful lot of events, and just being able to jump to the first one in the section is not as helpful as it could be. The current workaround is to collapse the event tree so you can pick a single one out, but this is awkward, especially in light of the existing collapse/expand glitches.
3) Override the OCX class for the toolbars so positioning can be saved and restored when the window is minimized, or display settings changed. It irritates the heck out of me to have to re-drag all my tool bars back to where I like them every time I switch from my dual-monitor docked setup to the mobile one and back again. I understand this is a Windows problem, but I have overridden pre-packaged Windows classes in my own programs, you don't have to stick yourself with Windows flaws.
0
Comments
I'm also dreaming of some kind of EVENT_VAR ....
BUTTON_EVENT[dvPANEL,2]
{
EVENT_VAR INTEGER nHaveFun
PUSH:{}
RELEASE:{}
HOLD[10]:{}
}
That would be great....
That's what I was tring to say! You just said it much better, thanks!
Regarding Studio enhancements, I agree with Dave on his suggestion concerning the bookmarks. Bookmarks are a great feature but would be made much more usable if the suggestions proposed by Dave were adopted.
Also, Studio 1.x used to have a feature where a Tab was available in the Workspace window that would display the list of compiled devices. This was available along with the Workspace and Online Tree tabs and provided an easy way to see what devices Studio had compiled into the project. In Studio 2, this tab was removed and the only way to see compiled devices is to navigate to a device mapping window. The Device tab was a great way to see all of your compiled devices in one place particularly to check on duplicates or other device related errors. I would like to see this Tab added back to Studio 2.x.
The most recent suggestion regarding EVENTs and event specific variables (perhaps a Netlinx language and not a Studio enhancement) is also a good one. I would like to augment this request with one that would extend the syntax and capability of a TIMELINE_EVENT. I would love to have the ability to store application specific data in a TIMELINE specific data structure (part of the TIMELINE_CREATE for instance) such that when the TIMELINE is triggered, the data could be obtained and used/evaluated in the TIMELINE. The alternative today is to declare global variables (even arrays of them) and to access them using the TIMELINE_IDs. I would like a more object oriented approach that would allow application specific data to be passed to the TIMELINE event handler and accessed using the TIMELINE data structure.
Thanks for listening ....
Reese
1) Another nice one would be to expand the Expand/Collapse to the Define_Program section. Collapse to the line showing the PUSH or RELEASE statement. This of course is handy when supporting the older Axcess systems (plenty of them out there and more are added every day).
2) Ability to upload a panel file while the file is open in TPD4. Sending from TPD4 does not always work too well when you try and upload via the web, and it's a pain to constantly have to close and re-open the panel file.
3) Syntax highlighting for CALL names just like the recently added FUNCTION names.
4) Add a button to fully open the workspace tree to all levels and open all listed source files. Now it takes at least 3 clicks and a double click to open the Source file. Make sure it also hides the output window. Oh, and by default maximize those files in the editor window please.
5) Fix the Save All to be able to save without the need to open a source/include/module file. Handy when all you only need to change the communication settings.
6) Make it easier to initialize a new system. Maybe add a wizard that walks you through the DPS, IP, URL and other settings so it is easier for non-programmers to set up a system in the field. The wizard should suggest using the same settings the programmer had specified in the workspace.
7) Extend the wizard to initialize touchpanels and other devices as well.
Print code in color would be a nice feature. I don't remember which version of Studio that allowed color printing. I usually print the DEFINE_DEVICE section of my main code and pass it on to the installers. A color printout would be easier to see. Also code section printed in color is easier to review and troubleshoot.
I'd like to see the syntax hilighting being applied to module parameters. Given that the editor does this on the fly for items in the DEFINE sections, it may be able to be extended to look at module parameter types, and adjust the hilighting color accordingly.
I second the request for color printing.
I second the request for color highlighting of module parameters throughout the module.
Additionally, I would like to see the color highlighting of Structure elements (DEFINE_TYPE) cleaned up. Currently, anything referenced (not necessarily defined) within a DEFINE_TYPE is color highlighted according to the preferences for the Structure type. In other words, if you reference a CONSTANT in a Structure definition, the constant is later highlighted the same as the Structure. This is true for certain other items as well and needs to be cleaned up so that the color highlighting remains consistent with the user preferences.
Lastly, I would like to see some sort of intelligent 'diff' tool in Studio that can be used to compare side-by-side Axs and Axi files for differences. Something akin to the smart Unix line-by-line diff tool would be nice for comparing versions of the same file to determine source file differences.
Looking for having "Window split" option...
I think I remember seeing something about that in one of the AMX Newsletters. You may can already do that?
Menu
WINDOW/TILE WINDOWS HORIZONTALLY
WINDOW/TILE WINDOWS VERTICALLY
I would like to add a requested bug fix to the list:
As part of a Project Export, there is a checkbox that allows you to export as part of the project all of the module files not contained in the project. For programmers that use TKO search paths and common TKO module repositories, this is a handy way to make sure that the project contains all of the necessary files in case the target system does not contain them. However, Studio will only export those module files whose DEFINE_MODULE is specified in a Main program file. If a module file is defined within another module, that module is not exported as part of the workspace or project. I would like to see Studio capable of exporting all modules without regard to where the DEFINE_MODULE calls are located in the PROGRAM and MODULE files of the workspace. We discovered this problem when exporting a workspace in which several custom-built modules that included AMX modules failed to export the included module files as part of the workspace.
Another thing that I thought I saw posted in some form, but was unable to locate is the ability to display Device definitions in the system. The ability to do this is already available (Device assignment), but I would like to be able to sort that list by device number or alphabetically by clicking the appropriate column header.
Some more requests as I continue to code:
- GET_LAST should suggest an autocompletion with the Device array (and the Channel Array if applicable) when being used within an EVENT.
- Add the ability to Collapse CASEs, ACTIVEs and EVENT Specifiers (PUSH:, ONLINE:, ...)
Jeff
If you create an entry and call it, say, Ford 192.168.1.101, you cannot create another entry using that IP address - ie GM 192.168.1.101.
It gripes me a bit that I have to sit in, say, the GM boardroom and connect to the master using an entry call Ford!
TPD4 allows it, so it can be done!
Multiple identical address listings with different friendly names associated with them please!
I believe this is one problem that is already fixed. Take a look at the post about beta testing the new studio.
Jeff
Device Mapping:
When poring over a few hundred devices, it would be nice to be able to sort on the device number or name and then "walk" to the selection (type the first few letters, and you're there).
when i try to compare IntArray[]==Integer i get nothing even though it makes no sense at all. this one took me half an afternoon.
we never initialize a char array in define_variable, but in define_start.i don't know the reason, but i suppose, there were problems with that. then max_length_array instead of length_array has to be used...
Any suggestions for improving debugging and diagnostics would be appreciated.
Here are a suggestion to get the discussion started.
How about list box for each type of device/port Send_Command that would be found in Software History/Product Information. This would eliminate the need to find and manually enter common commands such setting the baud rate on a com port.
It would be great to have the ability to use a wildcard character when doing a Find or Find/Replace.
Like GET_ARRAY_INDEX(array,value) - would work just like GET_LAST when using an array in a button event, but could be called anywhere. Would return position of "value" in "array" or 0 if not found in array. Limit to single-dim arrays is fine.
A few other things I've mentioned before:
1) Code beautifier
2) Include file variable tracking / highlighting / autocomplete in main code and vice verse
3) Integrated IR command listings (the ability to see what commands are in what files rather than having two programs open.)
I would really like to see NS take on the roll of more than just a code editor. It would be nice if you could edit TP, KP, and IR files all in one program.
furthermore, i would like to see (device/devchan) Tab Completion in modules...
especially useful if you do lots of DEFINE and IF DEFINED statements.
I'd use them alot more if the repetitious code block could somehow be put into a macro of ctrl-alt-**** something.
AMX should seriously look at UEStudio, it has many of the functions that NS lacks and that has bee suggested here. I'm in fact trying / tinkering with custom syntax highlighting for that program so I could use UEStudio as my primary NetLinx compiler / editor.