CRiSP has a very advanced set of features and the summary below is really only the tip of the iceberg. It is difficult to do justice to the multitudes of features in the product using mere words.
Using standard tools, trying to find or navigate through huge projects is tedious at best. With CRiSP – you can get a clear high level view of a project in seconds and be well on your way to understanding foreign projects which have not been developed by you.
CRiSP supports most languages out of the box and is extendable to support your favorite language as well. Powerful features include: Code Completion, Infotips, FTP Support, Class Browser and a Code Beautifier!
With a multi-platform presence and integration with industry leading development environments, CRiSP provides an entire organization with a standard coding environment.
There are a number of feature enhancements in the latest CRiSP version, which should provide more editing power and customization control. In addition to this high level view of features, literally hundreds of features catering to every task are present.
Code Completion: Infotips, Advanced Context Sensitive Tagging
Infotips is an enhancement to CRTAGS, the tagging facility. When typing in data variable references or function names, CRiSP will popup a selection menu or tooltip showing the prototype of the function being called or the list of valid structure members depending on the data type.
When writing code, you can use Javadoc or plain English comments in the function header and CRiSP will automatically format and show the text in the popup help.
CRiSP’s code completion currently works for C, C++, Java, ColdFusion, HTML, Perl, SQL, TCL, VHDL, Xbase, PHP, JSP, VBScript, Python, CFScript and C#.
Specific features in Infotips include:
- Auto Parameter Info
Automatically displays the prototype for a function when a function operator [ ‘(‘ for most languages] is typed and highlights the current argument within the displayed prototype. Javadoc comments are displayed in a mini-HTML viewer.
- Auto List Arguments
Enhanced to automatically list compatible arguments when filling in the argument to a function or method. Javadoc comments are displayed in a mini-HTML viewer.
- Auto List Members
Automatically lists members when you type a member access operator (‘.’ for C++/Java, or ‘->’ for C/C++). When you type the member access operator, CRiSP will analyze the context in order to list the members and inherited members of the current object.
- Context Tag Navigation
Source code context is automatically analyzed so you can quickly navigate to the definition of an identifier, including local and global variables, class members and functions.
- Context Tag Preview
A dockable symbol output window utilizes context information to preview the definition of the identifier currently under the cursor.
When editing code, a lot of the time you will be cross-referring the sources, e.g. where is XYZ defined or what is the calling sequence or structure definition. Tagging is the ability to scan all files in a project and create a cross reference database so you can find the entry you are after, e.g. the entry under the cursor, or any entries matching a wild card.
You can create multiple tag files, e.g. to tag a local project or sub-project, and a global tag file, e.g. to tag system libraries and classes. You can find any entry in seconds or less. No size limitations.
The Tags mechanism has been enhanced to attempt to resolve tag ambiguities using a preceding class name. For example trying to jump to the method set in the following Frame::set will correctly use the Frame class to disambiguate the possibly multiple set methods.
The tag facility now supports cross-referencing symbols in files - now you can quickly find all occurrences of a symbol in all files in a project.
CRiSP has extensive support for workspaces and projects. Projects allow a way of setting up a collection of options, attributes and files, which collectively form a work area.
All you have to do is tell CRiSP, which files are in your project, the working directory and how to build the project. CRiSP will automatically use its other advanced features like Infotips, Context Tagging, Class Browser and Dynamic Tagging, Colorization, Searching, Auto-build on a per project basis to provide you with a complete development environment.
CRiSP supports a variety of options for configuring project specific options according to your own personal taste. These settings are stored in a variety of configuration files. You can create multiple projects, aDisnd then switch between them with a muse click.
CRiSP can save workspaces across sessions, and invocations on a per project basis.
You can even name workspace environments, and organize your workspaces into folders that describe their purpose (e.g. move your C++ workspaces into a "C++" folder, or your Java workspaces into a "Java" folder). Open a workspace by selecting from an organized menu of workspaces.
A table-of-contents style window within the edit area allows you to immediately see bookmarks, links, or sections in a tree style fashion, and allows quick navigation and at-a-glance summaries of the state of your editing environment. In addition, a language specific source code browser is provided.
When editing files, you frequently need to refer to other information to help you in your work. CRiSP provides numerous views available in a contents window to the side of the editing area.
These views include:
- File view
Switch between tree view and details view. Create your own favorites and switch quickly from one file to another.
- Project files
Lists files in the current project allowing you to quickly select files for editing without having to navigate throughout the directory hierarchy to find files.
- Project browser
View and switch to defined tags in your project.
- Remote FTP view
Select files to load and edit from remote sites.
- Named clipboard entries
Create your own library of templates to paste into the current file. You have access to multiple clipboards with a mouse-click.
- Templates view
Displays a list of ready to paste templates that are specific to the programming language you are currently using. – create your own library of templates to paste into the current file CRiSP now allows users to create custom template samples without having to edit a file – just place files in the appropriate samples directory.
The contents window view at the side of the edit area can now be configured so you can control which tabs appear and the order they appear in.
Template editing provides a mechanism for pasting boiler plate text into the edit buffer, based on the type of language, e.g. inserting an if..then..else block of code.
CRiSP’s template editing facility is very powerful - providing not only standard templates, but also prompted templates, and crib-sheet templates. Prompted templates provide a mechanism to pop up a dialog to fill in values before the template is pasted, e.g. arguments to a function. Hints can be given to popup custom dialogs for auto-parameter filling in.
Crib-sheet templates provide a hierarchical means of presenting template data. For example, in TCL, some functions take a second argument detailing the actual action to perform. There are a lot of these and rather than providing a flat list of templates, CRiSP collects these into a browsable tree so you can quickly find what you want without being inundated with detail.
In addition to all of this, CRiSP also provides custom templates that can be created easily by dropping fragments into a directory tree.
UTF-8 files are a subset of the generic wide-character Unicode (16-bit) files that are in use by Windows applications. UTF-8 is a special format used by the Windows 2000 and above REGEDIT application. With this facility, you can edit and save such files rather than having to view them in binary.
CRiSP supports context sensitive syntax coloring for almost all known programming languages. For example, in the TCL language, functions are typically followed by a command name. This command name is only valid as an argument immediately after the function name and not in any position in the file.
The syntax specification files (*.kwd) support context groups of keywords so that syntax coloring can be restricted to files which have a correct syntax, making it easier to spot coding errors.
CRiSP macros colorize GUI control elements for a variety of different web languages.
Syntax coloring allows for dynamic creation of keyword file. Extension macros can be provided to color a file based on the file contents rather than a plain definition of a syntax file. This is used to affect XPM bitmap files so that the bitmap itself shows in the bitmap colors.
CRiSP supports syntax colored printing and two-column output as well as a host of other options, such as line numbering and landscape modes.
CRiSP provides complete facilities for performing file comparisons - highlighting differences and provides features to help merge/migrate files from one version to another.
Now files can not only be compared for differences but you can automatically merge files allowing you to edit the merged file to decide which changes you want to keep.
CRiSP now supports the ability to import and export color schemes from the setup dialog.
HTML/XML files can now be beautified with the Tools Beautify option. In addition, HTML files, which are manually maintained, can be verified for syntax inconsistencies.
CRiSP supports checking in and checking out files from source code control. CRiSP supports most of the common source code control systems including SCCS, RCS, Perforce, PVCS, SourceSafe, TLIB, RCS, and ClearCase.
CRiSP now fully documents the internal drawing controls used to create dialog boxes. Various enhancements and fixes to existing controls, including a generic drawing control which allows you to create custom drawings, e.g. using lines, circles, ellipsis and text.
You can configure CRiSP to lock files whilst editing so you don’t overwrite other peoples work on the same files. CRiSP will automatically detect changes to files outside the editor and either prompt you or reload (if file has not been modified by the user). This is a very useful feature especially when looking at volatile files, e.g. log files.
CRiSP supports advisory file locking and operating system locking. Advisory locking when enabled causes a lock-file to be created in a global directory as soon as you attempt to modify a file. If the file has already been locked by someone else, a notice dialog is displayed telling you who, when and where the file was edited. You then have the option of stealing the lock or denying the file changes.
Operating system locking uses the file locking mechanisms to stop other users from modifying a file whilst it is being edited.
CRiSP provides the new facility for collapsing or hiding text within a buffer. Various ways of collapsing the buffer so that you can see more of what you want to edit on the screen include:
- Showing functions/sections only
- Lines matching/not-matching a string
- Pre-processor directives
The source code browser is based on the tagging facility. It provides a hierarchical way to see the objects defined in a set of source files, e.g. C/C++ classes, enumerations, functions, etc. CRiSP provides support for many popular languages, including Ada, C/C++, Java, Verilog and VHDL. The source code browser also provides for dynamic updating as you edit your source files. It is the ideal complement to the existing CRiSP facilities, such as the routines facility.
Available on the setup menu, this dialog box provides an interactive way to create and modify colorizer file definitions. The colorizer is a very popular feature of CRiSP and many people create their own customizations. Hopefully, with the addition of the keyword builder, even more people will be able to tune the colorizer with their own private extensions.
The Find/Build tags menu option now provides a quick and convenient way to call up the CRiSP tags (crtags) utility. Extensions to crtags include the ability to automatically scan a directory tree for source files. Now there is no excuse for not keeping your tags database up to date. The tags facility has been upgraded to support numerous languages and gives rise to the source code browser contents window.
The tag database has been optimized to reduce space and speed up large database accesses.
Online help - completely covers using the editor and programming it. CRiSP has identical help on Windows and Unix. Unix includes a complete Windows Help package viewer - help includes diagrams and hyperlinking. You are no longer limited to lowest common denominator browsers or plain ASCII text.
Sometimes you need to perform an action and keep referring to the output results, e.g. searching files for a string, finding all files with a specified tag in them, output from a build/compile action. The output window provides an automatic place to view and select data from commands, which have output.
64-bit Macro language support
CRiSP now supports 64-bit macro language based on a C-like syntax – you can customize and create your own macros. Everything in CRiSP is written in the macro language – it fasts and featuresome, including support for integers, floating point numbers, strings, lists and arrays. The macro language supports object-hiding mechanisms to help build large macros, and full control of the GUI, including drawing.
Examples of advanced features added to CRiSP using macros include a Paint Brush bitmap editor, Sybase database browser, WWW spider utility.
The macro language now supports 64 bit integers, which increases the numeric range available for macros. Although most macros do not rely on this, on operating systems that support files greater than 2GB, this means that the sizes of files can be manipulated correctly without numeric wraparound occurring.
The macro language has been extended to include support for arrays to provide fast random access to collections of data objects.
- Select from one of many pre-defined layouts, or create a new one
- Multiple shift states are supported
- Redundant assignments are permitted for a single command
- In-software dialog makes configuration easy: select from an available keys list, or press the desired sequence
Customizable Dockable Toolbars
- Choose which commands appear on the toolbar, and in what order
- Use the “new row” element to create a multi-row toolbar
- Option to display a user-configurable text label below each button
- Option to display the toolbar bar as a floating window
- Insert half space, full space, and divider elements as desired
- Option to display button icons in double-size mode
- Option to auto-format buttons when floating toolbar is resized
- Option to choose the font used for button label text
- Tear-off toolbar to engage floating mode; drag to a window edge to re-dock
- Configurable menus, fonts, colors and key bindings
- Create your own CRiSP dialog boxes, which run on all platforms
- Extend the editor with CRUNCH environment or DLL interface.
Configurable Backup Facility
Never lose your work – configurable numbers of backups. You can specify where backups are kept and how they are named. Autosave – save your files automatically based on time delay or keystrokes. Can even autosave files when editor loses input focus.
CRiSP macro recording allows the editor to quickly memorize a series of actions and then play them back at will. It even generates CRUNCH macro source code for keystroke and dialog box interactions.
CRiSP contains an integral spell checker, which can spell check files automatically, as you type; display a red-wavy line for misspelled words which then become context sensitive. You can use the right-mouse to show available corrections, or examine the dictionary in more detail. Support for custom dictionaries and the following languages are provided: American English, British English, Dutch, Finnish, French, German, Italian, Spanish, and Swedish.
Remote editing provides a very useful facility to edit files on a remote machine as if they were local on your desktop using the FTP protocol. Even if you have no direct access to the machine you can still edit files. CRiSP caches the files locally, which acts as a backup and audit log of the files.
CRiSP supports numerous remote hosts, including Window, Unix and VMS FTP servers.
You can create multiple sessions and connections and switch automatically between them. You can create active or passive connections, which is useful when editing across firewalls. CRiSP automatically supports keep-alive to avoid timed out connections. You can continue editing even when remote site is unavailable and upload when site is restored (e.g. you don’t need to stay on line whilst editing).
Remote Editing when direct access is not possible:
Under some circumstances, direct ftp access may not be possible. Some sites prefer to use more secure technology, e.g. ssh (secure shell).
CRiSP provides a facility to allow remote connections using something other than the FTP protocol, so that even in a security conscious environment you can still edit files remotely. This is achieved with the FTPGW software provided in the distribution.
Windows version of CRiSP includes a drop in NOTEPAD.EXE tool to replace the standard one. This provides a convenient way to ensure CRiSP is used as the default editor without having to set up lots of file associations.
Support for Quickly Viewing HTML Files for Firefox, Internet Explorer and Opera.
Define source code aliases to configure your own syntax expansion.
CRiSP provides current line coloring.
CRiSP macro recording allows the editor to quickly memorize a series of actions and then play them back at will. It even generates CRUNCH macro source code for keystroke and dialog box interactions.
The Tools menu now supports directory differencing - you can compare two directories to see which files are different and see which files have been deleted/inserted.
CRiSP provides an Execute command, which can be used to invoke an external program (or a program based on the file you are editing). The resulting output file can then automatically be loaded into CRiSP.
CRiSP now provides a persistent setup option to enable the display of matching brackets. The new mechanism (blinkmatch) will show the matching brackets as you move the cursor or type a bracket.
CRiSP has always had the feature that allows a paragraph of text to be reformatted (via ). But now the box-comment style is configurable on a per file type basis.
You can now drag toolbars from the main editing window and move them to any of the 4 sides or make them floating toolbars. With more functions in CRiSP and more toolbars, it is now much easier to customize CRiSP to look and feel how you want it to.
Links provide a way of inserting memo's and macro buttons into a plain text file, so that you can perform some action when the button is clicked on. This is a non-intrusive way of annotating files.
The ToolsSort dialog supports multi-column sorting for the needs of the more demanding user.
CRiSP now supports automation control as an OLE server object. This means you can create a CRiSPobject and send it commands to execute macros, e.g. to load files for editing.
CRiSP has direct links to third party databases, such as Oracle / Sybase / MySQL etc, giving you the capability to execute database specific commands in the editor and have the results show up in another X-buffer.
Built in support for popular commercial IDEs as Visual C++, Borland C++, IBM CSet++, VisualAge, GNU C++ with the ability to add others
CRiSP has the unique ability to edit data files generated by executing SQL queries across multiple databases. CRiSP has no file size limitations and combined with smart editing of SQL Code, and ability to handle massive ASCII data sets, it is one if the most indispensable tools for a database programmer. CRiSP provides the SQL Programmer and DBAs to edit SQL code, and related data files anywhere.
Significant speed-ups when performing a tree view of directories that contain huge numbers of files (for example, more than 5,000 files or sub-directories).
The File/Contents window and the File Open dialog (UNIX only) supports the ability to change the default sort order for listed files, e.g. directories first, alphabetic or text sort.
Provides a tabular view of files, showing detailed information on files (name, type, size, permissions, date). Multi-column sorting. Switch seamlessly to a tree based view to show the directory hierarchy.
Quick Access to SDK Help and UNIX man Pages
Fully-featured dialog boxes with help
All CRiSP products support an extremely wide range of programming languages, file types and encodings. Support for new languages can be added easily using CRiSP macro language and point/click customization.
WebNews is a facility for monitoring news feeds on the internet whilst you are working. Instead of having to switch from CRiSP to a web browser and then seeing what sites have changed, you can avoid the switch and keep a constant eye on changing news as it happens.