ok, well I'm still a bit confused so I'm gonna ask some more questions.
First, how many files in your biggest project?
Regarding linting, are you using pclint? I'm guessing you want to lint a source file multiple times, once for each build configuration and your build tool knows the macro settings per file for each build configuration. If this is correct then why don't you have SlickEdit pass the command, source file and selected build configuration to your build tool, which calls the lint tool and passes the output back to slickedit?
Regarding exceptions, sometimes you have them enabled and sometimes not. Why does code completion or linting need to know whether exceptions are enabled or not? Same question regarding RTTI.
Regarding "code completion" - are you talking about SlickEdit's code completion? Slick has what it calls "context tagging" as well as a pre-built tag database for the project which it uses for navigation as well as completion. As you write code, slick continually parses the current source file so that code navigation and completion work within the current file even if there's no tag file or the tag file is out of date. As mentioned before there is a global usercpp.h file that holds macro settings that you want slick to know about - or you can have a workspace specific file. Out of the box, slickedit doesn't support having a different set of macro settings per source file, however, it may be possible to write a small amount of slick C code where you call the tagging engine for each file in turn and switch the content of usercpp.h before each call to the tagging engine. Similarly for context tagging, you will need to switch the content of usercpp.h according to what the current source file and build configuration is - this is possible but without trying it, I'm not sure how well it would work. Can your build tool generate a source file with the macro settings needed for a particular source file and build configuration when asked and maybe also a file containing the lint options for that source file?
By the way, slickedit also has "selective display" which I find very useful when working with code that has lots of build targets. You can hide all the code that isn't used for the currently selected build.
Regarding question one, building - you can configure slick to execute any command you want for build, rebuild, compile etc. Slick has this thing called vsbuild which I'm very hazy about - it knows how to make and build C/C++ and Java projects. If you read this thread from 2009
https://community.slickedit.com/index.php/topic,4797.0.html it seems to imply that when you have a totally external build, you can still call the external tool via vsbuild and the output coming back from the build tool will be processed by vsbuild and used to generate entries in the message list window. The help file doesn't say much about vsbuild but the mentioned thread suggests you use the "-command" switch to call jam.
"C:\sefolder\vsbuild" -signal 9009 -command c:\jam\jam -j4 -CC:\projectfolder\ -sPLATFORM=win32 -sCONFIGTYPE=debug
The "-command" switch seems to be undocumented, same with the -signal switch, so I really don't know how people end up using these things.
Out of the box, the default rebuild command for a project is this
"%(VSLICKBIN1)vsbuild" rebuild "%w" "%r"
Slick has a long list of "%" options that you can use in a project tool command, one of which is %m which lets you run a slick C macro which can do whatever you want - including pass back some options to pass to the build tool.
[Is there any way to configure this forum not to log you out after a certain time - if I hadn't made a copy of what I wrote above, it would have disappeared].