Releases: fjwright/REDUCE-IDE
REDUCE IDE version 1.14
The file reduce-ide-1.14.tar is a GNU Emacs package archive. To install it, download it and then run the Emacs command package-install-file on it.
- Repair the
rerun-reducecommand. - Declare the
reduce-run-buffercommand to autoload. - Implement
reduce-forward-wordandreduce-backward-wordto replacereduce-forward-identifierandreduce-backward-identifier. The aim is to move by a number or identifier, more likeforward-wordetc., which should improve mouse double-click selection. - Rename
reduce-identifier-modetoreduce-word-modeand the Minor Modes / Identifier Mode menu option to Minor Modes / Word Mode. - Hide the
Add "Index" Menumenu item if it has already been added, and rename it toAdd Index Menu. - Fix REDUCE mode Run REDUCE menu, and hence Run Buffer etc.: only autoload functions not already autoloaded.
- Improve some keyboard shortcuts in the REDUCE menu.
- Fix Command Mini Help menu item to show only commands intended for user access.
- Rename REDUCE Run mode menu from Run REDUCE to REDUCE, and REDUCE mode Run menu from Run REDUCE to Run-REDUCE.
- Fix key mapping for
run-reduce. - Fix
reduce-run--wait-for-prompt. Sending code to REDUCE before it is running should now work better. - Do not treat
!'as a quote for syntax highlighting. - Introduce new option
reduce-etags-regexpsto allow customization of tagging. Tagput(‘name, ‘psopfn, …)andput(‘name, ‘simpfn, …)as declarations of operator names, andoperatordeclarations with up to 5 names, making it easier to track algebraic-mode operators. - Allow REDUCE to be run from a buffer running or having run a different version of REDUCE (with a different root directory).
- Improve indentation and spacing for insert block and group commands.
- Change the default directory for
reduce-tagify-dir-recursivelyto the parent of the current directory.
REDUCE IDE version 1.13
The file reduce-ide-1.13.tar is a GNU Emacs package archive. To install it, download it and then run the Emacs command package-install-file on it.
- Add
reduce-extra.el, which currently is loaded viareduce-mode-load-hookand provides experimental optional extra functionality. Since it is experimental it may be subject to incompatible changes and may not be documented in the REDUCE IDE manual. Currently,reduce-extra.eladds optional identifier motion functionality via the minor modereduce-identifier-mode, which is turned on automatically viareduce-mode-hook, and functionality to quickly select a block or group. Please seereduce-extra.elfor details. - Require Emacs 29 or later. Updates to accommodate Emacs 30.
- If no input, send a newline to REDUCE to support
on demo. - Replace the REDUCE Mode Run menu stub with a version of the full REDUCE Mode Run menu that autoloads REDUCE Run.
- Add a
Minor Modessubmenu to the major mode menu and moveShow Current Procinto it. - Better support for multiple REDUCE installations. Allow a root directory to be specified separately for each REDUCE command so that configuring multiple installations is easier and more consistent. Use this local root as the value for both the shortcut
$reduceand thereduceenvironment variable. Also use it to find thepackagesdirectory. This requires small changes to the details of the optionsreduce-root-dir-file-nameandreduce-run-commands. The optionreduce-packages-directoryis now obsolete. Validate that REDUCE root directories are accessible and automatically convert them to absolute directory file names.
REDUCE IDE version 1.12
The file reduce-ide-1.12.tar is a GNU Emacs package archive. To install it, download it and then run the Emacs command package-install-file on it.
- The command
reduce-tagify-dir-recursivelyfailed on the REDUCE packages directory (at least on Microsoft Windows) because the list of files is too long. Add a depth argument toreduce--directory-files-recursivelyto limit the recursion depth, which works around the problem. Handle errors better and improve the tagging menu tooltips. - Fix a bug in the display of the current procedure name.
- Incompatible changes:
- Change the option
reduce-run-commandsso that a REDUCE command is a list of strings rather than a single string, which allows spaces in both the command and its arguments. Automatically update a saved value to the new structure and offer to edit and/or save it. Add a facility to set the environment variablereduce. Better labelling of the customization buffer. - Rename the option
reduce-run-installation-directorytoreduce-root-dir-file-nameand make it a directory file name rather than a directory name, i.e. remove the final directory separator. This makes it suitable as the default value of the environment variablereduce. - Remove the option
reduce-run-MSWin-drivesand incorporate its use into the definition ofreduce-root-dir-file-name, without using any external programs.
- Change the option
- Introduce the shorthand
$reduceto be replaced at the start of strings (other than Name) inreduce-run-commandsandreduce-packages-directorywith the value ofreduce-root-dir-file-namebefore they are used. - On Microsoft Windows, run REDUCE directly by default rather than via the
.batfiles, which avoids the query Terminate batch job (Y/N)? when REDUCE is killed (such as by attempting to interrupt it). Keep the.batcommands for now for comparison, but update the default CSL REDUCE command to preserve the current working directory. Remove special support for PSL REDUCE, which is no longer needed from REDUCE revision 6726. Note that if you have customizedreduce-run-commandsthen you may need to erase the customization (at least for PSL REDUCE) and then re-customize it. - Update manual.
REDUCE IDE version 1.11
The file reduce-ide-1.11.tar is a GNU Emacs package archive. To install it, download it and then run the Emacs command package-install-file on it.
- New option
reduce-run-terminalto specify value of TERM to use on Unix-like platforms so that CSL REDUCE responds appropriately to interrupts, which with a dumb terminal it does not. It defaults to nil on MS Windows and toEtermon all other platforms. - Only remove
ansi-color-process-outputon MS Windows; it is necessary for CSL REDUCE on Linux and probably redundant on MS Windows. - Incompatible key binding changes:
reduce-input-fileis now bound toC-c C-f,reduce-compile-filetoC-c C-M-c,reduce-eval-linetoC-c C-M-e, andreduce-load-packagetoC-c C-M-lto avoid conflicts with Comint bindings. - Define key
Meta-Rin the REDUCE mode key map to run REDUCE. - Revise detection of end-of-file marker, which must now be at start of line.
- Repair
re-run-reduceto support general REDUCE command names and no name (i.e. an explicit command), rename it torerun-reduceand revise the wording of the menu item to (Re)Run REDUCE. - Correct highlighting of fluid variables in a vertical list, such as at start of
int/driver.red. - Repair
reduce-comment-procedureandreduce-reposition-window. - Revise manual. Move customization of REDUCE Run mode into the chapter on general customization of REDUCE IDE. Move Run Keys section into other Run mode sections.
- Remove
require-reduce-run, and runreduce-mode-load-hookbefore requiringreduce-run. - Improve Run REDUCE menu.
- Correct
reduce-run-fileand revisereduce--wait-for-prompt. - Remove
reduce-run-bufferkey bindings from REDUCE Run mode. - Add REDUCE mode font lock support to the previous output font lock support in run mode.
- Add REDUCE show delim support to run mode.
- Add minimal font-lock level, which is syntactic plus the old font-lock support in run mode, and syntactic-only in edit mode.
- Revise
reduce-run-fileandreduce-run-bufferto prompt for the REDUCE command (viarun-reduce). - Add option
reduce-run-command-name-defaultto specify the default REDUCE command name, which defaults to the first command name inreduce-run-commands. - Add Customize… item to REDUCE mode Run REDUCE menu.
- Simplify
run-reduceand no longer use a pop-up window, which was overkill. Now, a null command name aborts the run. I think these changes finally repairreduce-run-file, which callsrun-reduce. - Improve Imenu support to handle REDUCE syntax.
- Repair and update Show Proc code. Turn it on by default. Add support for mouse menu, cf. which-function-mode.
- Replace reduce-show-proc-delay with idle-update-delay.
- Make Show Proc a proper buffer-local minor mode turned on automatically if the new option
reduce-show-proc-mode-onis non-nil. - Fix a minor font-lock bug causing a transient error message.
- Add links to the manual to all customizable options.
- Rename
autoload-reduce-runtoreduce-run-autoload. - Add menu item to read the REDUCE IDE manual.
- Comment out obsolete menu item to add a change log entry.
- Make Auto Indent a proper buffer-local minor mode turned on automatically if the new option
reduce-auto-indent-mode-onis non-nil. Revisereduce-auto-indent-regexpto allow arbitrary text between the trigger and point, which seems to work much better. - Make Show Delim a proper buffer-local minor mode. Replace
reduce-show-delim-delaywithshow-paren-delay. - Add Show Version item to end of main run menu.
- Remove choice menu from
reduce-run-commandscustomization.
REDUCE IDE version 1.10
The file reduce-ide-1.10.tar is a GNU Emacs package archive. To install it, download it and then run the Emacs command package-install-file on it.
- Fix a trivial compilation error on Linux.
- Parse comment statements robustly starting from the top of the buffer.
- Fontify multi-line
/**/comments correctly. - Support filling of
/**/comments. - Improve indentation.
- Treat REDUCE mode and REDUCE Run mode more as parts of an integrated REDUCE IDE package.
- Add a new option
autoload-reduce-runto control whether, and if so how, to autoload REDUCE Run mode. - Remove
require-reduce-runas an option onreduce-mode-load-hook. - Note that
require-reduce-runis now deprecated and will be removed in the next release; please useautoload-reduce-runinstead. - Optionally include in REDUCE mode buffers either the full Run REDUCE menu or a Run REDUCE menu stub, which can only run REDUCE or explicitly load REDUCE Run mode. Replace the stub with the full menu when REDUCE Run mode loads.
- Add a new option
REDUCE IDE version 1.9
The file reduce-ide-1.9.tar is a GNU Emacs package archive. To install it, download it and then run the Emacs command package-install-file on it.
- Highlight fluid and global forms as variable type declarations rather than as quoted data.
- Some menu improvements.
- Indentation is now more reasonable.
- INCOMPATIBLE CHANGE: The command
reduce-indent-lineis now idempotent and no longer successively indents. Hence, the optionreduce-indent-line-conservativeno longer exists. - The command
reduce-indent-lineis now bound indirectly toTABbut is also bound directly toM-i, which allows it to be run with a prefix argument to indent the whole of the current statement rigidly. - The new command
reduce-indent-line-alwaysbound toC-TABindents by one step, and replaces the effect of executingreduce-indent-linerepeatedly. - The command
reduce-indent-procedurepreserves point and no longer leaves the procedure selected.
REDUCE IDE version 1.8
The file reduce-ide-1.8.tar is a GNU Emacs package archive. To install it, download it and then run the Emacs command package-install-file on it.
- Use lexical scoping, which might be a little faster.
- INCOMPATIBLE CHANGE: The commands
reduce-forward-sexpandreduce-backward-sexpno longer accept an argument and now skip any comments or white space, but not terminators, between point and the "balanced expression". - Add the command
reduce-kill-sexpto kill one "balanced expression" either forwards or, with any argument, backwards, bound toC-M-k. - Reliably disregard ! as an escape character at the end of a string, which would otherwise mask the end of the string.
- Treat the escape character (!) as part of a word for motion commands.
- Use Emacs parsing in preference to heuristics to detect whether point is in a string or (% or /**/) comment.
- The command
reduce-kill-procedurenow accepts an argument. - Operations based on procedures now support
matrixproc,listproc, and procedure type declarations. They report a user error if they fail. - Syntax Highlighting:
- More robust highlighting of comment statements.
- There are now three strictly inclusive levels: “Symbolic” includes “Algebraic” includes “Basic”.
- Highlight group delimiters the same as block delimiters.
- Highlight named constants such as Catalan.
- Highlight symbolic-mode functions such as get and put as builtin functions.
- Highlight lambda arguments the same as procedure arguments.
- Fix some errors. Should be more robust and possibly slightly faster.
REDUCE IDE version 1.7
The file reduce-ide-1.7.tar is a GNU Emacs package archive. To install it, download it and then run the Emacs command package-install-file on it.
- INCOMPATIBLE CHANGE: The command
run-reduceis now the only way to run REDUCE. It prompts for the REDUCE command name to run, defaulting to the last one used. - The commands
run-csl-reduceandrun-psl-reducehave been removed; userun-reduceand select the appropriate command name instead. - The customizable option
reduce-run-commandsnow accepts arbitrary key strings and an arbitrary number of REDUCE versions. - Improved access to the
comintcustomization group (since REDUCE Run mode inherits from comint). <RET>in REDUCE Run mode now adds a;statement terminator automatically as appropriate (whereasS-<RET>never adds a terminator).- REDUCE mode now inherits from
prog-mode, so it runsprog-mode-hookand someprog-modecustomizations are relevant. - Initial support for C-style
/**/comments: they are now highlighted as comments and movement commands should skip them. - INCOMPATIBLE CHANGE: The command
reduce-eval-lineis now bound to the key sequenceC-c C-einstead ofC-c C-n, which was already bound toreduce-forward-statement. - Improved code relating to all the commands that move by statements and expressions.
- INCOMPATIBLE CHANGE: The customizable option
reduce-max-up-triesis now calledreduce-max-escape-tries.
REDUCE IDE version 1.6
REDUCE IDE version 1.6 provides better syntactic highlighting (fontification) and better delimiter matching, which are provided by two new files. It also repairs support for running PSL REDUCE on Microsoft Windows. This file is a GNU Emacs package archive. To install it, download it and then run the Emacs command package-install-file on it.