I am evaluating SlickEdit and am quite impressed so far. I have been a user of CodeWright for many years and am thinking of moving to a new editor/environment which is supported and, hopefully, will continue to improve over time.
I've been relatively successful in getting the things I used to do in CodeWright set up but one problem I'm having has eluded all of my attempts to fix/understand it.
Here's the background:
I have a embedded system (unmanned aircraft autopilot) project with source code in both a main directory and a subdirectory. The main directory contains the hardware specific stuff like the system boot code, BIT tests, real-time task scheduler, I/O drivers (hardware access routines), etc. The subdirectory contains the "flight" code that actually does flight control, guidance, etc. This is kept separate because it is also used in simulation builds which do not run on the real embedded hardware. This way we can check out the "flight code" (the stuff in the subdirectory) from version control for the simulation builds and only need to get the "main" directory stuff when building for the actual target hardware.
The tools that we use to build the code for installation in the hardware builds the entire code base (main and subdirectory) as a single build. The cross-compiler and linker are quite old and only understand DOS compatible (8.3) paths and file names. My make file accommodates this by including the DOS compatible relative path for each of the files that are in the GQM_Flight_Code subdirectory (this 8.3 path is ./GQM_Fl~1). For example, the compile command line generated by the make file for a non-flight (main directory) C source file looks like:
cpl -I.\GQM_Fl~1 IO_Init.c
and the command line for a flight-code file looks like:
cpl -I.\GQM_Fl~1 .\GQM_Fl~1\Guidance.c
I have a few questions/issues related to this situation:
Is there a escape sequence (similar to %p) that would give the DOS compatible relative path to the current file? This would allow me to invoke my compiler on a selected file directly (without doing a build using my make file which has the 8.3 relative path hard-coded into it)?
I was able to set up an error parser for my compiler and it finds the errors in the code. The problem is that, since the compiler is given the 8.3 path to the files that are in the subdirectory the error message includes this path along with the file name. When I goto an error (next error, ctrl-shift-down, etc.), the editor actually opens a new window using that 8.3 path and doesn't recognize that this is the same as the file that uses the long version of the path. Here is a sample error message:
E ".\GQM_Fl~1\Descent.c",L105/C5(#222): speed_of_soun
| Identifier is undeclared; assuming `speed_of_sound' instead.
For instance, if I do a build that has an error in the Guidance.c function (in the flight code subdirectory), the editor opens a window to "C:\Documents and ...\GP_Software\GQM_Fl~1\Guidance.c" to show the occurrence of the error. This happens even if I already have that file open in a window as "C:\Documents and ...\GP_Software\GQM_Flight_Code\Guidance.c".
If I fix the error in the new window and save, I get prompted with "Another application has modified the file: C:\Documents and ...\GP_Software\GQM_Flight_Code\Guidance.c. Do you wish to reload it" -- this actually only happens if I switch focus away from SlickEdit and then back.
The editor doesn't recognize that these two windows are really the same file.
This also seems to be affecting the "Save Workspace Files" option on the Project Properties, Tools tab. The editor doesn't save edits to any of the files in the subdirectory when this option is active and I run a build. (This may actually be a separate problem.) If I switch the option to List Modified files I do get a pop-up saying that that file was modified and allowing me to save it. I'd rather have the file automatically saved but I don't necessarily want all open files saved (just the ones that are in the project workspace and affect the build). I think this is the difference between the Save All Files and Save Workspace Files options, is that correct?
One more question -- There is an article entitled "SlickEdit Offers Help to All CodeWright Orphans" that is referenced in a forum post. The URL is "
http://www.slickedit.com/content/view/435/93/". This page indicates that there is a utility for importing CodeWright projects into SlickEdit and provides a link to download it. When I click the link I get a browser opened to a page that says "You are not logged in to the site, please use the login form on the right side of this page to login." I registered for a SlickEdit.com account and logged in but I still get the same response. Is this link broken?
I had wondered about the Project, Open Other Workspace, Convert Codewright Workspace menu item before I found the above referenced page (since the menu item sounded useful but didn't seem to do anything) and would like to try this utility if it still exists. I'm also wondering why there is a menu item for it if the utility isn't included with the editor installation.
Thank you
Les