Here's a list of the key new features and changes:
- New "unit" and "class" snippet kinds that can include complete units and classes (and advanced records) in the database. Both can be test compiled and classes / advanced records can also be included in generated units.
- Snippets from both the main and user databases can now be duplicated. This is very useful if you have created a snippet and want to create another one that shares a lot of the source code, dependencies etc.
- The full range of Unicode characters can now be used for snippet names, descriptions etc., and for source code.
- There is now finer control over the control of warnings in generated code via the
- The names of referenced units may now contain dots so that Delphi namespaces can be used.
- The new multi-tab display can display details of more than one snippet, category etc. in the main display.
- The main menu has been re-organised and there are new menu and tool-bar glyphs.
- The structure of snippet pages in the details pane is now customisable: various page elements can be omitted and the order of elements can be changed. Each snippet type has its own page customisation.
- The number of compilers that appear in the compile results table in the details pane can now be limited.
- The colours used for snippet names and headings can now be customised.
- Snippets can now have an optional "display name" that, unlike the snippet's name, does not need to be unique. This is useful for giving meaningful names to snippets such as overloaded functions. For example snippets ResizeRect_A and ResizeRect_B now have display names ResizeRect (TSize overload) and ResizeRect (Longint overload) which are much more meaningful.
- Snippet descriptions can now be formatted and can contain multiple paragraphs, just like "extra" text. Both are edited using the new Markup Editor.
- Syntax highlighting of source code of user defined snippets can now be switched off on a per-snippet basis. This mainly of use for "freeform" snippets that may be used for notes or snippets in languages other than Pascal.
- Information about how a snippet from the online Code Snippets Database was tested is now displayed by means of a glyph at the top right of the detail pane.
- The Welcome page has been completely redesigned to be cleaner and to provide more useful information.
- You can specify the paths to be searched by compilers when looking for used units. This lets you compile snippets that use units other than those provided in the Delphi VCL and RTL. For example you could specify the path to the Indy components if you need to reference them from your snippets.
- Results of test compilations now appear in a dialogue box instead of in a tab in the detail pane.
- There is a new option on the Tools menu that checks availability of new versions of CodeSnip.
- Text and compiler searches can now optionally refine a previous search rather than always searching the entire database.
- The contents of a category can now be printed.
For other features of v4 please read the change log for release 4.0.0 and all preceding pre-releases, including alpha (preview) and beta releases and release candidates.