It's not pretty, but you could write a _prjopen_xxx handler that:
-- closed all buffers;
-- looked in the project's dir for a specific initialization file.
-- if found, read the list of files to open.
Of course, you would have to create such an init file for each project.
Update: This seemed sort of interesting, so I toggled up this:
void _prjopen_initView ()
{
_str names[];
int i;
if (_project_name != '') {
_str pfn = strip_filename(_project_name, 'E')'_project.init';
pfn = maybe_quote_filename(pfn);
// messageNwait(pfn);
if (file_exists(pfn)) {
// This hangs -- ctrl-alt-shift-f2 breaks
// close_all();
_ini_get_section_array(pfn, "Init", names);
for (i = 0; i < names._length(); ++i) {
edit(names[i]);
}
}
}
}
Unfortunately, the close_all() seems to hang SlickEdit (v12 on WinXP).
The .init file it reads:
[Init]
core\src\farkle.cpp
N. B.: This has been tested only minimally; it is more just a proof-of-concept experiment. I don't know all the situations in which _prjopen_XXX is called; it's entirely possible this routine could be called in a situation in which it can't edit files. (Adding a project to a workspace in the GUI, for example?)
I'm sure one of the real SlickEdit macro programmers that reads this bb could polish this in to something really useful...