Releases: fjwright/REDUCE-IDE
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-hook
and 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.el
adds 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.el
for 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 Modes
submenu to the major mode menu and moveShow Current Proc
into 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
$reduce
and thereduce
environment variable. Also use it to find thepackages
directory. This requires small changes to the details of the optionsreduce-root-dir-file-name
andreduce-run-commands
. The optionreduce-packages-directory
is 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-recursively
failed 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-recursively
to 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-commands
so 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-directory
toreduce-root-dir-file-name
and 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-drives
and incorporate its use into the definition ofreduce-root-dir-file-name
, without using any external programs.
- Change the option
- Introduce the shorthand
$reduce
to be replaced at the start of strings (other than Name) inreduce-run-commands
andreduce-packages-directory
with the value ofreduce-root-dir-file-name
before they are used. - On Microsoft Windows, run REDUCE directly by default rather than via the
.bat
files, which avoids the query Terminate batch job (Y/N)? when REDUCE is killed (such as by attempting to interrupt it). Keep the.bat
commands 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-commands
then 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-terminal
to 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 toEterm
on all other platforms. - Only remove
ansi-color-process-output
on MS Windows; it is necessary for CSL REDUCE on Linux and probably redundant on MS Windows. - Incompatible key binding changes:
reduce-input-file
is now bound toC-c C-f
,reduce-compile-file
toC-c C-M-c
,reduce-eval-line
toC-c C-M-e
, andreduce-load-package
toC-c C-M-l
to avoid conflicts with Comint bindings. - Define key
Meta-R
in 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-reduce
to support general REDUCE command names and no name (i.e. an explicit command), rename it torerun-reduce
and 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-procedure
andreduce-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-hook
before requiringreduce-run
. - Improve Run REDUCE menu.
- Correct
reduce-run-file
and revisereduce--wait-for-prompt
. - Remove
reduce-run-buffer
key 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-file
andreduce-run-buffer
to prompt for the REDUCE command (viarun-reduce
). - Add option
reduce-run-command-name-default
to 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-reduce
and 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-on
is 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-run
toreduce-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-on
is non-nil. Revisereduce-auto-indent-regexp
to 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-delay
withshow-paren-delay
. - Add Show Version item to end of main run menu.
- Remove choice menu from
reduce-run-commands
customization.
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-run
to control whether, and if so how, to autoload REDUCE Run mode. - Remove
require-reduce-run
as an option onreduce-mode-load-hook
. - Note that
require-reduce-run
is now deprecated and will be removed in the next release; please useautoload-reduce-run
instead. - 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-line
is now idempotent and no longer successively indents. Hence, the optionreduce-indent-line-conservative
no longer exists. - The command
reduce-indent-line
is now bound indirectly toTAB
but 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-always
bound toC-TAB
indents by one step, and replaces the effect of executingreduce-indent-line
repeatedly. - The command
reduce-indent-procedure
preserves 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-sexp
andreduce-backward-sexp
no 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-sexp
to 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-procedure
now 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-reduce
is 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-reduce
andrun-psl-reduce
have been removed; userun-reduce
and select the appropriate command name instead. - The customizable option
reduce-run-commands
now accepts arbitrary key strings and an arbitrary number of REDUCE versions. - Improved access to the
comint
customization 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-hook
and someprog-mode
customizations 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-line
is now bound to the key sequenceC-c C-e
instead 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-tries
is 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.