A collection of tabs/open files is a
workspace, i.e. only the
*.pui file is really used and the
*.prj file does not contain relevant data.
A
project is more than a workspace. A project consists of one or more folders with specific filters or groups with manually added files or at least some files as defined in
Project Settings dialog. See also forum topic
How to create project from an existing directory tree?
The
Find in files and
Replace in files feature have the item
Project files which searches/replaces in all files of a project independent on being currently opened or not. On right clicking into
Function List view and left clicking on
List for all project files UltraEdit searches all files of a project for function strings and display them all in function list instead of just the functions in active file.
The tab
Project on
File View lists all project files as defined in
Project Settings dialog independent on being opened or not. The tab
Open shows just the opened files. The context menu on right clicking on an item on tab
Project on
File View has several commands depending on which item was clicked, the project name at top, or a project folder, or a project group, or a project file.
On using a project with project folders/groups and files it is possible to use the
Ctag feature which searches in all project files for symbols (classes, functions, macros, variables, type definitions, structures, ...) and creates a symbol database for the project which is used on having caret set on a symbol like a function and execute (by hotkey in my configuration) now the command
Find symbol to jump to the line containing the definition of this function even if being in a different file not yet opened. UltraEdit opens in this case the other project file and sets caret to line of the symbol (function, macro, ...) definition. This is a feature I really don't want to miss on working with projects. The jump back to initial position is done with the command
Go to previous position (executed by hotkey).
In
Project Settings dialog it is also possible to configure a project specific template file which contains the definition of smart templates for fast inserting them in a project file. That feature makes code writing much more efficient on having such a template file once defined for a project.
In
Project Settings dialog it is also possible to specify a wordfile used instead of the standard wordfiles. This feature is useful for me as I write code for different firmwares for different controllers and processors. So I do not have only a general C/C++ wordfile, but also controller/processor/compiler specific C/C++ wordfiles used for the various projects.
And there are even more project related features which I do not want to explain here all.
I must add that I'm using nowadays mainly UEStudio for projects as it has even more project related features than UltraEdit. But I have still some old projects setup before UEStudio was released the first time which I have never migrated to UEStudio and on which I still work from time to time with UltraEdit when it is necessary to make a code change in the old firmwares managed with this old projects.
I use projects for C/C++ (embedded firmwares and Windows GUI/console applications) and websites (HTML, CSS, JavaScript).
So a
project is really much more than a
workspace.