Code Crusader: Changes from previous versions
Please submit all suggestions and bugs via github.
7.1.5
- Fixed bugs in C++ namespace parsing.
- Fixed bug in C++ template forward declaration parsing.
- Removed list of files from Search Text dialog. Removed
--add-search
command line option.
- Fixed performance issues when editing large files.
7.1.4
- Fixed regression for Ctrl/Meta shortcuts in line & file name fields.
7.1.3
- Added Windows key shortcuts to most menu items.
- Fixed regression so it again warns when opening binary files.
7.1.2
- Fixed bug that partially broke symbol lookup.
- Fixed bug that sometimes caused editorconfig parsing to fail.
7.1.1
- Fixed rare crash when opening a menu.
7.1
- In the Symbol Browser, file scoped symbols now include partial paths when there are files in more than one directory.
- In the Windows menu, files with the same name now include partial paths to distinguish them.
- Fixed regresssion which caused Source menu in the Project window to act like Preferences menu.
7.0.1
- Fixed regresssion that caused backtick on completion menu to re-open the menu instead of inserting a tab.
- Fixed regression so long menus scroll smoothly again.
7.0
- Correctly displays all Unicode characters.
- Upgraded to universal ctags.
- Added support for D & Go.
- Added styling for Makefiles.
- Removed right click popup menu in class trees in favor of "View Function List" menu item.
- The option "Perform on one file at a time" in the "Edit Tasks Menu" dialog can now be turned off.
- If you try to save a file that has been modified on disk by another program, you now have the option to view the diffs.
- Added styling for PHP nowdoc strings and improved styling of variables embedded in regular strings.
- Ids menu for HTML files now also shows JavaScript functions.
- Java method declarations in interfaces are now treated like C++ prototype declarations.
- Correctly styles private variables and methods in JavaScript classes.
- The "Edit Tasks Menu" dialog no longer flags @ followed by a relative path as an error.
- Added homebrew include directory to system search path list on macOS.
- Moved private data files (
.jst
and .jup
) to hidden directory (.jcc
).
- Automatically discards hidden git diff window if there are no differences.
- Removed "New shell" from all File menus. It never worked on some Linux variants, and it can't compete with a real terminal.
6.9
6.8.1
- Re-enabled diff for SVN.
- Updated list of C and C++ keywords for syntax hilighting and completion.
- Uses all the include paths used by
gcc
, not just /usr/include
.
6.8
- Window layouts adapt to translated text widths and font size differences.
- The class inheritance display puts the trees at the top, so the \"Show lone ...\" options are no longer necessary.
- Class tree popup menus use the same font size as Text Editor Functions menus.
6.7
- Redesigned multi-file Replace All feature to update files without opening them. The operation is now much faster. The modified files are listed in the "Search Output" window for reference.
- Added "Export" and "Import" buttons in the Edit Tasks Menu dialog, to simplify transfering tasks between projects.
- Added syntax hilighting for SQL.
- Improved parsing of Java source files to detect inner classes and be smarter about finding parent classes.
- Updated JavaScript reserved keywords for ECMAScript 5 and 6. Fixed styling of strings to flag multi-line without continuation backslash. Added styling for Template Strings. Updated styling to not interpret JSX closing tags as regular expressions.
- Added support for Perl operators // and //= and ~~.
- Added enum keyword to Java syntax highlighting.
- Updated to not open class inheritance trees for every new project.
- Fixed empty error message when try to close Program Output window while compile is running.
6.6
- Added PHP class tree.
- Added syntax hilighting for Java properties files.
- Syntax hilighting is disabled for files > 1MB. This dramatically speeds up opening large JSON files. (I hope you don't have any source files that big!)
- Updated PHP syntax hilighting keyword list to PHP 5.5.
- Added Ctrl-F12 shortcut to show Symbol Browser window.
- Updated C++ class parser and syntax highlighting for c++011 features.
- Only generates
.cvsignore
file if the directory is actually using CVS.
6.5
- Added syntax hilighting for INI files.
- Fixed Ruby styler to recognize ? or ! at end of function name.
- Fixed "Treat as single line" in Search Text dialog so
.
matches newlines.
- Fixed Diff Output windows to maintain word wrap configuration from the source window.
- Changed keyboard shortcuts for switching windows in a dock from Page up/down to Ctrl-page up/down.
6.4
Added syntax hilighting for Ruby.
Updated PHP completer to use function list from PHP 5.5.
6.3.1
Fixed HTML styler to understand CDATA and to recognize PHP and JSP code inside non-JavaScript script blocks.
6.3
- Added support for terminal styling commands in Command Output and Compiler Output windows.
- Added support for styling Mustache commands in HTML.
- Fixed bug that sometimes caused "Program Output" windows to think that a process was running even after everything finished.
- Fixed "Compare files" dialog to correctly display directory diffs for Subversion and Git when revisions are specified.
- Fixed "hungry delete" to only eat a complete tabstop, so deleting space inside prose will always only delete one space at a time.
6.2
- Added auto-detection of indenting style: spaces or tabs. If the file contains a mix, whitespace is made visible so you can clean it up.
- Rudimentary support for vi emulation. You can turn it on in Editor Preferences dialog.
- Line index input in Editor windows accepts $ as shortcut for "last line."
- Styling for Java annotations. (What took me so long?)
- Fixed crash when requesting version control diff for deleted file.
- Fixed bug in "Replace all forward" when using "Entire word only," so it replaces all occurrences instead of only the first one.
6.1.2
- Support for automatic closing of HTML and JSP tags. See the
html-auto-close
script included in the package.
- Added command line option
--reopen
.
jcc --search
now works even if Code Crusader is not already running.
- Preserves ownership of text files and preferences file if you run as root.
6.1.1
- Work around for strange X11 behavior that could cause Code Crusader to hang when run for the first time.
6.1
Major changes
- Graphical diff for Git. Also added command line option
--git-diff
.
- Enhanced File Types dialog to allow file name patterns, e.g.,
core.*
, in addition to file suffixes.
- Anti-alised text.
- Added support for Linux Large File System (LFS).
- Fixed Config button in Project window to search for
pom.xml
(Maven) and build.xml
(ant) if no Makefile is found.
- When a program crashes, Code Crusader tries to find the core file and print the location so you can Ctrl-double-click to open it with Code Medic.
- Added "Clean all ws & alignment" and "Clean selected ws & align" to Edit menu. "Clean all whitespace" and "Clean selected ws" no longer adjust alignment.
- Fixed C#, Java, JavaScript, and PHP stylers to correctly style
/**/
.
Miscellaneous
- Fixed window placement issues on OS X.
- Fixed bug in "Print with styles..." so Print button is enabled.
6.0.2
- Fixed crash when closing project without first closing the Compiler Output window.
- Fixed crash when quitting with multiple Compiler Output windows open.
6.0.1
- Removed Ctrl-Tab shortcut from Config button in Project window. Ctrl-Tab is now the shortcut for switching between source and header files, regardless of the menu shortcut style set in the Miscellaneous Preferences dialog.
- Fixed rare but very annoying crash during tab completion introduced in version 6.0.
- Fixed bug so empty, invisible Program Output windows are closed when a task finishes.
6.0
Major changes
- Thanks to ctags 5.8, added support for Adobe Flash, BlitzBasic, PureBasic, and FreeBasic, Java enums, and Matlab. (requires ctags 5.8.0-2)
- Added syntax highlighting and keyword completion for JSP pages.
- Symbol table and inheritance trees are updated in the background. (Finally!)
- Added spell checking and whitespace cleaning options to Edit menu. (Finally!)
- Updated graphical Subversion diff to work with Subversion 1.4, 1.5, and 1.6. Also added options in the dialog window to compare with the tip of trunk, any branch, or any tag.
- Added command line options
--cvs-diff
and --svn-diff
.
- Window docking finally works with all window managers.
- Compile output recognizes errors printed by Maven builds.
- If you rename a file that is under version control, Code Crusader will attempt to invoke the appropriate version control command to rename the file.
- Finally connected project and editor windows: If you rename a file (via Ctrl-Return in the file name display at the bottom) in the Editor window, all open projects that contain that file will be updated.
- Symbol database is now updated after the build process is finished, since the build process may generate files that need to be parsed.
- Symbol database is updated after any version control operation.
- Tasks that do not open an output window now report errors in an alert window.
- Project files open faster.
- Added command line option
--no-reopen
to speed opening projects over a slow network connection.
- Fixed bug that caused crash when closing a project while Symbol Search Results windows were open.
- Displays confirmation dialog when removing files from a project. This is a cop-out, since undo is the right way to handle this, but in my defense, removing files is an uncommon operation, and undo is very time consuming to implement.
- Fixed Compiler Output window so Tasks menu is always for the project that was compiled, not for the active project.
- Fixed bug so it no longer creates
.cvsignore
in directories managed by git.
- Fixed bug which caused symlinks to be reparsed every time a project was opened.
- Added "Previous search/compile result" and "Next search/compile result" to Search menu. (Finally!) This allows scanning through the active search or compile results without having to return to the Search Results or Compiler Output window. The active Search Results or Compiler Output window is highlighted on the Windows menu.
- Improved character actions to support automatic closing of XML tags. See the
xml-auto-close
script included in the package.
- Created
clean_indentation
script for XML files.
- Implemented "hungry delete" so Backspace and Delete eat whitespace to the next tab stop when the "Tab inserts spaces" option is turned on. If the option is not turned on, the Shift key turns on "hungry delete." If the option is on, the Shift key turns off "hungry delete."
- Added "Clean all whitespace" and "Clean selection" to Edit menu. Based on the "tab inserts spaces" preference, this cleans the indentation of each line and strips trailing whitespace.
- Added "Tab inserts spaces" option to Settings menu.
- Added support for vi and emacs embedded configuration options: tab-width & indent-tabs-mode for emacs and tabstop & autoindent for vi.
- If you rename a file that is under version control (Ctrl-Return in the file name input area), Code Crusader will attempt to invoke the appropriate version control command to rename the file.
- Ctrl-Return in Line input field computes the location based only on hard line breaks, not soft line breaks from word wrapping. (If you are using Windows-style shortcuts, Meta-Return gives this behavior.)
- Updated Bourne Shell syntax highlighting to recognize array variables and the !? history operator.
- Replaced "Sections" menu with "Ids" menu in HTML files.
- Improved syntax highlighting of HTML/XML tags. Closing tag gets same style as opening tag, if closing tag is not explicitly given a style. Trailing slash is no longer treated as part of tag name. Tag name takes precedence over XML namespace.
- Fixed styling for JavaScript embedded in HTML so comments stop at </script> tags.
- Added support for yuidoc doctags in JavaScript.
- Preserves file permissions when you press Ctrl-Return (to rename) in the file name input area at the bottom of an Editor window.
- "Replace all" is now atomic, so a single undo reverts the entire operation. (Finally!)
- Added "Show in file manager" to File menu in Editor windows. On OS X, this script will display the file in the Finder.
- Added option to import/export character actions from Actions & Macros preference dialog.
- Added option to turn off pasting via middle-click.
- Fixed "Open selection as file name or URL" to work with URL's embedded in XML.
- Fixed Control-space and Control-backspace so they only page when the editor is read-only. This makes Control-space less annoying when used for symbol completion.
- Optimized opening DOS-format and binary files.
- Fixed bug that prevented dragging text from one docked window to another.
- Fixed bug so correct line number is passed to commands when text lines wrap in window.
- Fixed bug that caused Code Crusader to hang sometimes while editing Perl scripts.
- Fixed bug in search/replace that caused replace to fail if the regular expression had look-behind or look-ahead assertions.
- Fixed bug in
--diff
command line option so "Redo diff" button works when you specify relative paths.
Miscellaneous
- Added "New shell..." item to File menu.
- Added option to exclude paths when searching a directory tree in the Search Text dialog. The exclusion list is a wildcard filter, just like the file name filter.
- Added awareness of Xinerama, so it works better with 2 monitors.
- Added "Desktop" button in all Choose File and Save File dialogs.
- If you want to open a project via the "Recent projects" menu, but you do not want to reopen all the files that were open last time, hold down the Shift key while selecting the project from the menu. (Technically, it inverts the "Reopen text files when project is opened" option in the Project Preferences dialog.)
- Mouse wheel now scrolls smaller increments on OS X.
- Added support for horizontal scrolling. This is especially useful on Macintosh trackpads that support gestures.
- Fixed
--vcs-commit
to never dock the window.
- When Code Crusader is restarted without arguments, it now only restores the previously open documents once, instead of once per re-opened project.
- Added
--quit
option which acts just like the "Quit" item on the File menu.
- Ctrl-Page-Up/Down cycles through docked windows in a pane.
- Each pane in the dock remembers the previously selected tab, so if you open a file and then close it again, you will return to the file you were working with.
- Supports the latest updates to the XDND protocol.
5.2.1
- Fixed bug that prevented reading old versions of project files.
- Fixed bug in PHP syntax highlighting that caused crash when adjacent PHP blocks were placed inside
<script>...</script>
.
Miscellaneous
- Added Meta-F shortcut for "Search files..." in Project, File List, Symbol Browser, and Inheritance Tree windows.
5.2
Major changes
- Added support for graphical Subversion diff.
- Fixed bug in Java inheritance tree parser to ignore comments embedded in package, import, and class declaration statements.
- Fixed bug so new projects automatically build the symbol database from the files in the project's directory.
- Fixed Functions menu so it ignores the namespace option for languages that don't have it.
- Fixed PHP keyword completion to include JavaScript keywords and functions.
- Fixed PHP syntax highlighting to recognize JavaScript regular expressions.
Miscellaneous
- Added Close button in tab for each docked window and augmented the context menu for the tabs.
- Fixed bug in CVS diff so it now uses
CVS/Repository
instead of CVSROOT
.
- Added option for
$p
in "Show file in file manager" command.
- Fixed class trees, symbol browser, etc. to offer to create a file if it doesn't exist.
5.1.1
- Improved extraction of function names from JavaScript files. (requires ctags 5.6-3)
- Read only files are now indicated by a red border around the file icon (and drag source!) in the status bar of each window.
- Updated Perl syntax highlighting to recognize file globs.
- Fixed bug so scripts work again.
- Changed default focus behavior to work better with most window managers. Windows stacking should no longer get rearranged when switching virtual desktops.
- "Compare with.." commands now save the file, if necessary.
5.1
- Symbol browser now includes JavaScript functions defined in PHP files. (requires ctags 5.6-2)
- Added Targets menu to Ant build files (
build.xml
).
- Functions menu in PHP files now includes JavaScript functions. (requires ctags 5.6-2)
- Fixed bug in Functions menu so it updates correctly while editing a read-only file.
- Updated JavaScript syntax highlighting to recognize regular expressions.
- Updated Perl syntax highlighting to recognize simple here-documents.
Miscellaneous
- Fixed bug so text files containing CVS conflicts do not produce warning about invalid project.
- Smoother scrolling on Mac OS X.
5.0.3
- Only displays "checked out" status if the project is using CVS and
CVSREAD
is set.
- When a project is opened, it now warns if the file contains CVS conflicts.
- Fixed crash when dropping files already in a project from a file manager to the top of a group.
- Fixed bug so Multifile Replace All does not hang after the process is finished.
Miscellaneous
- During Drag-and-Drop, if the mouse is moved over a group of tabs, the tab under the mouse is automatically selected.
- Fixed bug so window docks cannot be shrunk below a safe, minimum size. Some windows may still pop out of the dock because they no longer fit, but the program will not crash.
- Fixed bug so commands run with the special @ path work when not all the selected files are in the same directory.
5.0.2
- Fixed bug that caused crash when using Choose File Dialog to change the path of an item in the project.
5.0.1
X
- Fixed bug that caused projects to not open if the "Warn before open old project" option was turned on.
5.0
Major changes
- Added support for C#, Erlang, SML, and JavaScript. (requires ctags 5.5.4)
- Added syntax highlighting for JavaScript inside PHP files, Eiffel, and Python.
- Added support for CMake as an alternative to makemake.
- Regular expression search and replace now uses Perl syntax, thanks to the PCRE package. The most important features that this provides are backreferences and named subexpressions.
- Fixed lots of issues related to working with version control, e.g., CVS tab in "Compare files" dialog, check-out status in Project window, "This task invokes version control" flag for tasks, CVS-merge-friendly
.jcc
file, and preferences moved from .jcc
to .jup
file.
- Pressing Ctrl-Return after editing a file name renames the existing file.
- Symbol browser now includes PHP defined constants, ASP variables, and Vim autocommand groups. (requires ctags 5.5.4)
- Updated Compiler Output window to recognize and merge multi-line messages from gcc. This makes double-spaced output easier to read.
- Updated Compiler Output window to understand javac messages.
- Updated Compiler Output window to understand Unicode characters printed by gcc 4.x.
- Fixed "Add directory tree..." so it ignores CVS and SCCS directories.
- Fixed bug so symbol table is now updated when a file's path is changed.
- Symbol browser now reports if it cannot find a file.
- Fixed bug in parser so package is extracted from
package
statement, not the file path.
- Fixed parser so it searches imported classes for the superclasses, if they are not fully qualified.
- Replaced "Read only" checkbox with Settings menu to allow options for each individual window to be changed.
- Added option in Settings menu to make whitespace visible. For maximum readability, spaces between words are not drawn.
- Created scripts for context menu to tabify/untabify, upper/lower case, comment/uncomment, etc. These scripts are in the
scripts
subdirectory in the Code Crusader package.
- Added "Open directory" option to right-click Scripts menu.
- Scripts menu no longer shows CVS and SCCS directories.
- Added "Force shift left" item to Edit menu. This shifts the selected lines left even if some lines do not start with enough whitespace.
- Added "Compare with CVS" and other useful shortcuts to File menu.
- Finally fixed editor so undoing to latest save point clears "needs save" flag.
- Fixed file name input at bottom of window so typing only a file name opens Save File dialog instead of saving file in unexpected places (actually, the current working directory).
- Fixed file name input at bottom of window so it creates the path if it does not already exist.
- Fixed bug so file differences are shown correctly when file contains very, very long lines.
- F12 searches for definition of selected symbol. Shift-F12 searches for declaration of selected symbol.
- Added "Manage project" sub-menu to Tasks menu for easier access to project windows.
- Fixed bug so "Add to project" shortcuts work immediately after saving a new file.
- Fixed Ctrl-double-click behavior so it stops at (,[,{. This makes it easier to open files from a Java stack trace dump.
- Finally fixed bug so ^ in regex will not match at the caret location unless the caret it at the start of a line.
- Updated PHP syntax highlighting to PHP 5.
- Updated Java syntax highlighting to recognize newest doc tags.
- Added Javadoc tags to Java keyword completion.
- Fixed case-matching bug in keyword completion for case-insensitive languages.
- When jumping to a line, the line is selected if the text is read-only.
Miscellaneous
- Renamed Commands menu to Tasks menu.
- Added support for performing a task in the file's directory via the special "@" path. This is especially useful for version control tasks.
- If menus do not fit on the menu bar, they are available in an overflow menu.
- A menu will never again cover the menu bar when it is opened. This prevents menu items from being accidentally selected with a click on the menu bar.
- Added "Tip of the Day" to the Help menu.
- Added "Kill" button in Compile and Run Output windows. The "Stop" now sends SIGTERM instead of SIGKILL. SIGTERM allows compilers to clean up temporary files before exiting.
- Added
--dock
and --no-dock
command line options.
- Added option to Miscellaneous Preferences to warn when opening an old version of a project file, since after being opened, the file will no longer be readable by older versions of Code Crusader.
- Fixed Search Text dialog so dropping a directory on the "Search directory" input area turns on the "Search directory" checkbox.
- Fixed Windows menu to honor Macintosh/Windows shortcut style, i.e., in Windows mode, holding down the Control key now sets the active project.
- Added hack so windows dock correctly when using the Gnome window manager.
- Fixed bug so elasticity of docking panes is saved in preferences.
- No longer complains "Unable to find xyz" if you cancel the "Searching for xyz" process.
- No longer saves backup for files edited via
--cvs-commit
.
- Fixed "Find file" dialog to search active project's directories first.
- Fixed "Compare files" dialog to accept project-relative paths.
4.0.4
- Fixed Run Command dialog to allow running make commands even if no project is open.
- Fixed bug that caused crashes when cancelling a command that contained calls to other commands.
4.0.3
- Fixed bug that caused crashes when executing commands that contained calls to other commands.
- Fixed bug that caused occasional crashes when displaying menu of functions or closing Function List window.
4.0.2
- Fixed "Open selection as file name" to recognize single quotes, too.
- If the caret is just outside a grouping symbol, "Balance closest grouping symbols" now balances it rather than the enclosing group.
- "Balance closest grouping symbols" now recognizes < and > when editing HTML.
- Updated PHP function name completion to PHP 5.
- Updated PHP syntax highlighting to recognize <script type="text/...">.
- Fixed bug in PHP syntax highlighting so <? and other such shortcuts do not need to be followed by whitespace.
- Fixed bug in PHP syntax highlighting so $$a is recognized as a valid variable reference.
- Fixed bug in PHP syntax highlighting so "as" is recognized as a keyword.
- Fixed bug in PHP syntax highlighting to eliminate occasional crashes and styling errors.
- Updated Perl syntax highlighting to handle [] construct in subroutine prototypes.
- Fixed bug in Windows-style menu shortcuts so Ctrl-left-arrow moves caret by one word instead of indenting selected text.
- Fixed scrolltab shortcuts to be Meta-1..9 when Windows-style menu shortcuts are used.
- Fixed bug in Drag-and-Drop that caused crash in a very rare situation: drop text ending in a newline at the end of a file that did not end with a newline.
Miscellaneous
- Now installs correctly into the Start Menu in Gnome 2.
- Fixed bug that occasionally caused a window to remain blank after switching to its desktop in Gnome 2.
- Fixed UNIX man page viewer to handle embedded Unicode characters. (Unrecognized characters are printed to the console. Please report them!)
- Changed default image viewer from xv to Eye of Gnome.
4.0.1
- Fixed bug in sub-project build system so it now works even if
./
is not on your execution path.
- Fixed bug to avoid crash when clicking on file icon at bottom of Text Editor window with empty file name input.
- Fixed bug to avoid crash when Compiler Output window is shrunk to its minimum size.
- Fixed bug in Choose File and Save File dialogs so they remember the "Show hidden files" setting.
- Fixed bug so menu shortcuts which require the Shift key work even if Caps Lock is on.
4.0
Major changes
- Added Commands menu to all windows. This replaces the Project menu in the Editor window and makes the Make and Run dialogs obsolete.
- You are no longer restricted to only one
make
related task at a time. For example, you can select any number of files or groups in the Project or inheritance tree windows and compile them all. You can also request a second compile job while the first one is still running. Another neat feature is that you can compile from either source or header file, provided they both have the same root name.
- Added support for Bison, lex, Pascal, REXX, and Ruby. Added syntax higlighting for Bison, Bourne shell, C shell, Java, Perl, and TCL. Dramatically improved syntax highlighting for PHP and added support for XML namespaces. Added keyword completion for TCL.
- Function arguments are now displayed in the symbol browser for C, C++, and Java functions.
- Requires Exuberant
ctags
version 5.4.
- Added support for qmake as an alternative to makemake.
- All windows are dockable. Right-click in the docktab at the left of the menu bar to create a dock. Then drag the docktab and drop it in a docking area. (If the window can't shrink far enough to fit, the docking area will not accept the drop.)
- Redesigned sub-project build system. When
makemake
is used to build the Makefile, the project dependencies are encoded in the Makefile so everything can be built without running Code Crusader. This is useful when writing scripts for nightly builds.
- Added right-click context menu in Project window.
- Added "Add directory tree..." item to Source menu.
- Added "Compare selected files with backup" item to Source menu.
- Added new preferences to raise output window when building, compiling, and running.
- Added "Show selected files in file manager" item to the List menu in the File List window and to the Source menu in the Project window.
- When you create a project template, it saves the Makefile if there are no makemake or qmake files.
- Simplified interface for creating new project from template by using single Save File dialog with menu of all available templates. This menu includes all personal (
~/.jxcb/project_templates/
) and system wide (/usr/lib/jxcb/project_templates/
) templates, so you are no longer restricted to using only your personal templates.
- When you open a group by clicking on the arrow to the left of the name, the display scrolls to show the contents of the group.
- When you select a group name and then add files to the project, the files are prepended to the group if the group is open. Otherwise, they are appended to the group.
- Symbolic links can now be added to the project.
- Ignores backup, safety save, and compiler output files if you try to add them to a project. This allows you to select all files in a directory and let Code Crusader sort them out instead of having to filter them manually.
- Understands the
.dylib
suffix used by macOS.
- Removed "raise window" and "beep" options from Project Preferences dialog because these options are now provided in the "Edit commands..." dialog.
- Eliminated need for "Recalculate dependencies before make" option. Makefile is now rebuilt once a day, even if the project has not changed, in order to keep the dependencies up to date. (You can do it more often, if you wish, by using the "Update Makefile" item on the Project menu in the Project window. If you use CVS and do not wish to have the Makefile built automatically, you can turn off this option in the Project Preferences dialog.)
- Added
--make-name
option to makemake.
- When the contents of a command output window are saved, the command window will not be re-used again, i.e., it becomes like a regular Text Editor window.
- Fixed bug so project only reparses files once after a file name is changed.
- Fixed bug so Make.files is updated when files or groups in the project have been rearranged.
- Added right-click context menu.
- File name at bottom of window is editable. Change it and press Return to get the equivalent of "Save as..." Ctrl-Return renames the file, deleting the version with the old name.
- Added Drag-and-Drop source to the left of the file name at the bottom of the window. This turns into a Direct Save (XDS) source when you are editing the file name. Double clicking on the icon displays the file in the file manager of your choice.
- Added more convenient interface for running external scripts.
- Moved "Compare files..." item to File menu. Also added smart item to compare the current file with whatever is most appropriate. This smart item works just like the
--diff
command line option.
- Added "Place bookmark" item to Search menu. This places a scrolltab at the current scrollbar thumb location.
- Added option to include namespace for each function in Functions menu. This setting is toggled via the Shift key.
- Added option to draw right margin indicator.
- If no text is selected, "Find selection" menu items search for the word that contains the caret. This avoids the need to double click before performing "Find selection" when you want to search for a single word.
- Cursor changes to arrow when cursor is over the selection and dragging will initiate Drag-and-Drop.
- Dollar ($) character is now recognized as part of a word in the scripting languages that use this as a prefix character. Hash (%) and Array (@) are also included for Perl.
- Fixed bug so macro won't be triggered by the end of a word, e.g., "Waldo".
- Fixed bug in C syntax highlighting so only the first part of "#if 0 ... #else ... #endif" will be considered a comment. Also fixed bugs so comments after "#if 0" and spaces within "#if" don't affect the result.
- Fixed bug in Sections menu (when editing HTML) so quoted section names are not listed twice.
- Changed Edit Styles dialogs to simplify changing styles and avoid Meta-click conflict with window managers.
- Optimized code so opening files with syntax highlighting is at least twice as fast.
- Fixed bug so undo shift left/right works correctly when selection includes a partial line.
- Fixed bug in C/C++ styler so "0" is treated as decimal rather than octal.
- Fixed parser to handle classes declared inside a namespace.
Miscellaneous
- Added option to "Miscellaneous Preferences" dialog to choose between Macintosh and Windows style menu shortcuts. (This assumes that you have not changed Meta to Ctrl in the menu_strings file.) This affects all menu shortcuts and the Meta-Tab shortcut for opening header files.
- Added command line option
--cvs-commit
to allow Code Crusader to be used as the CVS Commit editor. Simply tell CVS to invoke "jcc --cvs-commit file_name
". When you are done editing the change log, use Quit on the File menu and CVS will process it automatically.
- Added "Ignore changes in amount of whitespace" and "Ignore blank lines" options to the Compare Files dialog. The latter option only works if you have GNU's version of
diff
installed.
- Tab completion works in all path and file name input fields.
- Renamed Files menu to Windows menu, alphabetized it to make it more useful, and moved it after Commands menu so that File menu is in the standard location.
- You can change the menu font by creating
~/.jx/menu_font
. The first line in the file must be the font name. The second line in the file must be the font size.
- Removed "Close" button from menu bars since all reasonable window managers provide their own Close button in the title bar.
- Fixed bug in UNIX man page display so error output is no longer mixed in with text.
3.0.3
- Fixed bug so Meta key works correctly on Mandrake Linux.
3.0.2
- Fixed bug so "Replace all in selection" works correctly when source and target do not have the same length.
3.0.1
- Fixed Compile Output window so it works with version of gcc shipped with RedHat 7.1.
3.0
Major changes
- Created symbol browser to display and allow searching of all symbols in source code. It includes symbols from Assembly, ASP, AWK, Bourne Shell, C, C++, Cobol, Eiffel, FORTRAN, Java, Lisp, make, Perl, PHP, Python, Scheme, TCL, and Vim.
- Functions menu is available in Editor window for all the above languages and also HTML.
- Requires Exuberant ctags version 5.0.
- Meta-double-click in the editor now searches the symbol list, so it is no longer restricted to only C++ class names and functions. Meta-double-click is now also context sensitive. Use Meta-Shift-double-click to avoid this.
Added Java class tree.
- Keyword completion uses symbol list instead of the C++ class tree, so it now works for Bourne Shell, C, C++, Eiffel, FORTRAN, Java, Perl, and Python.
- Created File Differences dialog for displaying the differences between two files.
- Added ability to create projects and text files from templates.
- File types are no longer restricted to pure suffixes, i.e., they don't have to start with a period.
- Added support for editing binary files via an external editor. If a file appears to be binary, Code Crusader will ask if you want to edit as a text or binary file. Also added "Binary" type in File Types dialog. Files of this type are automatically opened as binary files without asking.
- Added "External" type in File Types dialog to allow particular types of files (e.g. window layouts and images) to be edited via other programs. When these files are added to a project, double-clicking automatically runs the appropriate program instead of opening a Text Editor window.
- Added support for all European languages.
- New "External" file type allows use of wizard to create and edit Make.header. Simply add the wizard's file to the project and define a file type for it.
- Added "Java archive" file type to allow automatic building of subprojects and convenient access to the subprojects by double-clicking on the .jar file in the project window.
- For Java projects, .jar files are automatically added to the -classpath. JPATH must now be used in Make.header to specify additional values for -classpath. All .java files are compiled with a single call to ${JAVAC} to avoid link errors. To upgrade existing Make.header files, remove the "%.class : %.java" rule.
- Added several command line options to makemake.
- Saves symbol table and C++ class tree in separate .jst file. This file can be safely deleted, because it will be regenerated automatically when needed. The main project file (.jcc) is now very small and therefore suitable for inclusion in source distributions. If you use the same project file on more than one machine, you only need to transfer the .jcc file.
- You can choose the active project by holding down the Meta key while selecting a project from the Files menu.
- If you hold down the Meta key while choosing a project from the "Recent projects" menu, everything else will be closed before the project is opened.
- Added icon for the File List window. This is now a "first class" window with all the menu items and shortcuts provided by the Project, Symbol Browser, and Class Tree windows.
- File List now displays unique portions of the paths if two files have the same name.
- When you Meta-double-click on a file in the project window, the icon becomes a button. Clicking this button lets you change the name of the file via the Choose File dialog.
- To open or close all groups in the project, hold down the Shift key while clicking one of the arrows.
- Uses only one progress window when updating the symbol database.
- Provides the option to disable makemake when a project is created so you don't have to delete Make.files and Make.header by hand afterwards.
- If the .jcc file is write protected, Code Crusader will not write to it. This avoids annoying users who share the project file over CVS.
- Fixed bug so it correctly selects non-existent files when there is an error while rebuilding the Makefile.
- Fixed bug so it doesn't crash when a very large group of files is dropped on the window.
- Renamed "HTML preferences..." menu item to "Web browser preferences..." The URL prefixes no longer need to be specified. The file suffixes have been moved to the File Types dialog.
- Added column display at bottom of window. Shift-return in the line number display jumps to the line and activates the column display.
- Shift left/right items on Edit menu honor the Tab inserts spaces preference option.
- The Control and Meta double click shortcuts activate when you release the mouse button, so you can select more than a single word. This is useful for strings like "std::ios". In addition, to help avoid mistakes, if the selected text contains a newline, the action is not performed.
- Displays pop-up menu if there is more than one possible completion.
- Added Operator, Delimiter, and Unicode Character categories to C/C++ context-sensitive highlighting.
- Updated list of keywords in C/C++ context-sensitive highlighting and keyword completion.
- "#if 0 ... #endif" is styled as a comment.
- Functions menu for FORTRAN includes labels. (This is most useful when the menu displays the items in the order in which they appear in the file.)
- Recognizes Modula-2 and Modula-3 file types and provides button to switch between module and interface.
- Updated HTML keyword completion to include all the new escaped characters in HTML 4.01.
- Added "Script" type in Edit HTML Styles dialog. Specific language names can be overridden by entering them in the lower table.
- Added $r and $s variables to macros.
- Added "Search clipboard forward" and "Search clipboard backwards" to Search menu. This allows you to search for text that is selected in a terminal window just like selected text in a Text Editor window. You simply use Ctrl-H instead of Meta-H.
- Added "Replace all in selection" to Search menu and Search Text dialog.
- Added "Search directory" option to Search Text dialog.
- "Search files" checkbox is no longer inactive if there are no files in the list. Instead, turning it on automatically opens the Choose Files dialog.
- "Search directory" and "Search files" checkboxes are turned off when Search Text dialog is opened, since this is what one expects 95% of the time.
- Binary files in the list of files to search are ignored.
- Search output lists files that were not found, unreadable, or not searched.
- Search output lists only partial line if there is too much text. This keeps Code Crusader from locking up while receiving huge amounts of text from the search process.
- Added separate window preferences for Search Output window. (i.e. "Save window size" on Preferences menu changes a separate setting)
- Search Text dialog finally uses monospace font on history menus.
- Changed --search command line option to clear the list of files before adding the specified files to the list. Added --add-search command line option to append to the list of files instead of replacing it.
- Activates Search Text window when the --search command line options are invoked.
- Fixed bug so "Entire word" works correctly when searching multiple files.
- Added option in plain text Page Setup dialog to print pages in reverse order.
- "Print with styles..." is now active for UNIX man pages.
- When a file is opened to a particular function definition, the scroll position is more useful.
- If the caret follows when you scroll and you are at the beginning/end of the text, pressing Page Up/Down or Home/End moves the caret to the beginning/end of the text.
- If you open a file that is already displayed in an unmodified Text Editor window, and the file has been changed on disk, it will automatically ask you if you want to update to the new contents of the file.
- If the file has been changed on disk, the file name at the bottom of the window will turn red.
- "Revert to saved" updates the "Read only" checkbox setting.
- Added command line options --force-reload and --no-force-reload. If a file is listed after --force-reload on the command line and the file is already open in a Text Editor window, Code Crusader will automatically load the latest version from disk if the disk version has been modified and the contents of the Text Editor window have not been modified.
- If Functions menu is not sorted alphabetically, horizontal line marks location of caret.
- Added option to display items on Functions menu with a smaller font, so more will fit on the screen.
- Fixed bug so "Read only" is set correctly when a file is re-opened as a result of opening a project.
- Allows you to try to save a file even if it is write protected.
- Fixed bug in Functions menu so it works when file is in a write-protected directory and text is not saved.
- Fixed bug to allow pasting to and from Gnome and KDE programs.
- Added hack to allow pasting from rxvt and other similar, broken terminal programs.
- The target name for a new project is now set to the name of the project instead of a.out.
- Fixed bug so it no longer forgets scroll position when compile errors are encountered.
- Prompts are printed while waiting for input, not after input is entered.
- Added "Select descendants" item to Tree menu. When this selection is dragged to the file list in the Search Text dialog, you can search all derived classes of a given class.
- Now includes information about which classes are templates.
- Added support for Qt signals and slots extension to C++.
- All files in the project are parsed, regardless of the search paths.
- Fixed bug so class names are case sensitive.
- Fixed bug so functions with throws() declarations are recognized.
- Fixed bug so function definition is found even if it includes whitespace. (e.g. "Foo :: Bar")
Miscellaneous
- Fixed hierarchical menus. It now stays open as long as you are moving the mouse towards it, regardless of what the mouse passes over on the way.
- On-line help is now searchable.
- Shift-Page up/down scrolls by 1/2 page in all windows.
- Fixed command line operation so it doesn't ask if you want to create the file if you accidentally specify a directory name.
- Running Code Crusader with --man and no argument opens the Man Page dialog.
- Fixed MDI operation so multiple, simultaneous invocations don't time out and start new processes.
- No longer reparses all source files after you edit macros or CPM rules.
- Unsaved files on the Files menu are now dark red instead of bright red to make the file names easier to read.
- Shortcuts on Files menu are now numbered 1, .., 9, 0 to match the ordering on standard keyboards.
- Printing commands, etc. accept ~ notation.
- Input fields are smarter about what constitutes a word for double clicking, etc.
- Added "Stay open" checkbox to all modeless dialogs.
- Added menu to Choose File, Choose Path, and Save File dialogs to display current path.
- Safely quits if the system is shutdown or rebooted properly. (i.e. shutdown or reboot is used)
- When dragging text to a non-XDND window, you only lose the clipboard contents if another program currently owns it, not if Code Crusader owns it.
- Windows will no longer jump because the setting is saved in the preferences.
- Fixed bug so MDI now works on Solaris.
- Fixed bugs so works with ctags on Linux kernel 2.4.x and Solaris.
2.1.4
- Updates Make.files when you close the project, so it can be built even if Code Crusader is not running.
- Added option --check to makemake. Fixed touch target so TOUCHHEADERS is no longer needed and fixed bug so it no longer adds a link command to Java targets.
- Fixed bug so scrollbar no longer jumps when you rearrange files at the bottom of the project window.
- Fixed bug in Sub-project configuration dialog so Choose button doesn't crash if text in input field ends with slash.
- Fixed bug so it now rebuilds Makefile when you move a project to a different machine.
- Fixed bug so parser doesn't mistake :: in class name for an inheritance declaration.
Miscellaneous
- Fixed Choose File, Choose Path, and Save File dialogs so they no longer require a valid path when the Cancel button is pushed.
2.1.3
- Automatically adds ./ to your execution path so you don't have to remember to specify it explicitly.
- Now searches for class::function when looking for a function's definition. If this fails, it falls back on the original ::function.
2.1.2
- Figured out how to build multiple versions of a program or library from a single project.
- Added option to not update C++ class tree while compiling.
- Fixed bug that caused crash when dropping all files from the last group into another group.
- Fixed bug in Search Paths dialog so it no longer crashes when you toggle the recursion flag for an empty path.
- Holding down the Meta key toggles the Drag-And-Drop setting in the Preferences dialog. (Once you begin dragging, you can release the Meta key so that you can move the text.)
- Added option to set styled printing font size independently of the screen font size.
- Correctly ignores key presses during a drag.
Miscellaneous
- Holding down the Meta key initiates Drag-And-Drop from any input field.
2.1.1
- Added option in Project Configuration dialog to include an arbitrary expression at the end of the dependency list.
- Target name in Project Configuration dialog can now be a list of target names separated by commas.
- Added option in Sub-project configuration dialog to not include the library in the list of dependencies passed to make.
- Split Project menu into Project and Source menus.
- Added option in Preferences dialog to not sort the function names displayed in the Functions menu. Holding down the Meta key while opening the menu toggles this setting.
- Fixed bug in toolbar so it is now safe to use Close, Close All, and Quit buttons. In addition, the Open button no longer crashes when used from an empty editor.
- Added option in Run dialog to not create an editor to display the program's output. If an editor is not created, then you can quit Code Crusader without having to first quit the program.
Miscellaneous
- Fixed bug in Find File dialog so it no longer crashes if you press the "Find" button when the input field is empty.
2.1
Major changes
- Added button toolbars in all major windows. They are configurable via the "Toolbar buttons..." item on each Preferences menu.
- Automatically builds projects associated with library files before building the project itself. You can also do this from within the Makefile, but now you don't have to learn how until you need it for some other reason.
- Added "Edit sub-project configuration" item on Project menu to edit the name of the project file attached to a library. This also allows you to turn off the automatic building of individual sub-projects.
- Created Project Preferences dialog, which includes the option to not reopen text files when a project is opened.
- Fixed several bugs so Make.files is now always updated when necessary.
- Fixed bug so it no longer crashes in rare cases when adding project relative paths to the list of search paths.
- Shift-return maintains the current indentation but ignores the line prefix.
- Changed the default behavior so Meta-dbl-click doesn't raise the C++ class tree if there is a single match. You can change this in the C++ Class Tree Preferences dialog.
- Added option in Preferences dialog to have Tab insert spaces instead of a Tab character.
- Added option in plain text Print Setup dialog to print line numbers.
- So many people have asked that I have finally added the option to make Home/End work like on Windows and to have the caret follow when the text scrolls. They are in the Preferences dialog.
- Optimized opening batches of files and DOS files.
- Fixed bug in macros so $f, $p, $n, $l now work correctly.
- Fixed Program Output window so text appears when it is printed, not just when a newline is received.
Miscellaneous
- Added draggable icon in Save File dialog. This implements local saving via the new Direct Save (XDS) protocol.
- Fixed Compiler Output window and multi-file Search Results window to use current font color instead of always black.
- Fixed bug so it now correctly restores the position and size of the Text Editor windows when they are re-opened along with a project.
2.0.1
- Fixed bugs in specification of when to rewrite Make.files.
- Optimized code for "Add files..." item on Project menu.
- Fixed code to work around egcs thunks bug.
2.0
Major changes
- Added variables $f, $p, $n, $l to the Run Script dialog.
- Added option in Miscellaneous Preferences dialog to turn off "Close before saving?" message.
- Execution paths can be specified relative to the project file's directory.
- Recognizes error messages from Absoft FORTRAN compiler.
- Added EOF button to send end-of-file to running process.
- Prompts printed by process are displayed in front of echoed input.
- The command line input field now activates the Edit menu.
- If the window is read-only, Tab switches focus between the display and the command line input field.
- This window is now a secondary window accessible from the Project window.
- Search paths can be specified relative to the project file's directory.
Miscellaneous
- Added Matches menu in multi-file Search Results window. This works just like the Errors menu in the Compiler Output window.
- Added support for wheel mice.
- No longer pauses when you begin dragging text or files.
- Displaying files and URLs in a browser is done in the background.