Inno Setup 6
Revision History
Copyright © 1997-2024 Jordan Russell. All rights reserved.
Portions Copyright © 2000-2024 Martijn Laan. All rights reserved.
For conditions of distribution and use, see LICENSE.TXT.
Want to be notified by e-mail of new Inno Setup releases? Subscribe to the Inno Setup Mailing List!
6.4.0-dev (?)
Compiler IDE changes
Updated the Scintilla editor component used by the Compiler IDE to the latest version.
Multiple selection editing has been improved:
- Added new Add Next Occurrence menu item to the Edit menu to add the next occurrence of the current word or selected text as an additional selection (Shift+Alt+. or Ctrl+D, see below).
- Added new Select All Occurrences menu item to the Edit menu to select all occurrences of the current word or selected text (Shift+Alt+; or Ctrl+Shift+L).
- Added new Select All Find Matches menu item to the Edit menu to select all matches of the last find text (Alt+Enter).
Additionally, the Find (Ctrl+F) and Replace (Ctrl+H) dialogs now both support being closed by Alt+Enter to directly select all matches.
- Added shortcuts to add a cursor or selection up or down (Ctrl+Alt+Up and Ctrl+Alt+Down). For multi-line selections this extends the selection up or down and never shrinks.
- Added shortcut to add cursors to line ends (Shift+Alt+I). Behaves the same as in Visual Studio Code, so for example does nothing if all selections are empty.
- Added shortcuts to add a word or line as an additional selection (Ctrl+Double Click and Ctrl+Triple Click or Alt+Double Click and Alt+Triple Click).
- Added shortcut to remove a selection by clicking it (Ctrl+Click or Alt+Click).
- Multiple selection now works over Left, Right, Up, Down, Home and End navigation and selection commands.
- Multiple selection now works over word and line deletion commands, and line end insertion.
- Multiple selection now works better with Copy and Paste commands.
- Left, Right, etc. navigation with rectangular selection is now allowed.
- The Find and Replace dialogs and the tools from the Tools menu which generate script text now all work better with multiple selections present.
Other editor changes:
- Added support for Visual Studio Code-style editor shortcuts, like Ctrl+D to Add Next Occurrence, Ctrl+Shift+K to delete a line and Alt+Click to add an additional cursor or remove a selection.
To activate this use the Options menu item in the Tools menu to set the new Keys option in the Editor group to Visual Studio Code.
The updated Compiler IDE Keyboard And Mouse Commands help topic lists all differences with the classic keyboard and mouse shortcuts.
- Only if Visual Studio Code-style editor shortcuts have been activated: Added shortcuts to copy line down (Shift+Alt+Down) and to indent or unindent lines (Ctrl+] and Ctrl+[).
- Added parameter hints for all Pascal Scripting support functions for quick reference to the function's parameter names, types, and order. Parameter hints can be invoked manually by pressing Ctrl+Shift+Space or automatically by using the new Invoke parameter hints automatically option which is enabled by default.
- Added autocompletion support for all Pascal Scripting support functions, types, constants, etcetera. Existing option Invoke autocompletion automatically controls whether the autocompletion suggestions appear automatically or only when invoked manually by pressing Ctrl+Space or Ctrl+I.
- Added parameter hints and autocompletion support for all Pascal Scripting support class members and properties. Both always show all classes' members and properties instead of just those of the current object's class.
- Added autocompletion support for all Pascal Scripting event function parameters. Always shows all parameters instead of just those of the current event function.
- Added new Enable section folding option which allows you to temporarily hide sections while editing by clicking the new minus or plus icons in the editor's gutter or by using the new keyboard shortcuts (Ctrl+Shift+[ to fold and Ctrl+Shift+] to unfold) or menu items. Enabled by default.
- The editor's gutter now shows change history to keep track of saved and unsaved modifications. Always enabled.
- The editor's font now defaults to Consolas if available, consistent with most other modern editors.
- The editor can now be scrolled horizontally instead of vertically by holding the Shift key while rotating the mouse wheel. Horizontal scroll wheels are now also supported.
- Cut (Ctrl+X or Shift+Delete) and Copy (Ctrl+C or Ctrl+Insert) now cut or copy the entire line if there's no selection, consistent with most other modern editors.
- Added new shortcuts to move selected lines up or down (Alt+Up and Alt+Down).
- Added new shortcut and menu item to the Edit menu to toggle line comment (Ctrl+/).
- Added new shortcut and menu item to the Edit menu to go to matching brace (Ctrl+Shift+\).
- Moved the Word Wrap option to the View menu and added a shortcut for it (Alt+Z).
- Added a right-click popup menu to the editor's gutter column for breakpoints.
- Added dark mode support to autocompletion lists and also added a minimum width.
- Improved brace highlighting.
- Fixed an issue when the Auto indent mode and Allow cursor to move beyond end of lines options are both enabled.
Other Compiler IDE changes:
- Shortcuts Alt+Left and Alt+Right now always navigate back and forward even if Visual Studio-style menu shortcuts have been activated.
Because of this Alt+Right can no longer be used to initiate auto complete, instead the existing Ctrl+Space or Ctrl+I alternatives must be used.
- Moved the list of recently opened files into a new Open Recent submenu of the Files menu.
- Added new Use Regular Expressions option to the Edit menu to enable or disable the use of regular expressions for all find and replace operations and added a shortcut for it (Ctrl+Alt+R or Alt+R). Also added a small panel to the statusbar to indicate the current state.
- The Find and Replace dialogs now support using Shift+Enter to temporarily search in the opposite direction.
- Added shortcuts to select a tab (Ctrl+1 through Ctrl+9).
- Added alternative shortcut for the Compile menu item in the Build menu (Shift+F9 or F7).
- Added shortcut to the Options menu item in the Tools menu (Ctrl+,).
- Removed the length limitation when entering a Sign Tool command and increased control height.
- Added a banner which is displayed to each user after each update and links to this revision history.
Other changes
- Updated the LZMA SDK used by Inno Setup to the latest version, increasing the speed of LZMA and LZMA2 compression (by 10% in a test with default settings) without changing the compression ratio. Compression memory requirements have increased by about 4%. This also made it possible to add support for extracting 7-Zip archives, see below.
- Updated the encryption algorithm and key derivation function used by Inno Setup to XChaCha20 and PBKDF2-HMAC-SHA256 respectively, increasing security. This code is built-in: the separate ISCrypt.dll "encryption module" is no longer used and will be automatically deleted when you update.
- Added [Setup] section directive EncryptionKeyDerivation to change the number of PBKDF2-HMAC-SHA256 iterations to use from the default of 200000 to another value.
- Replaced all remaining use of MD5 and SHA-1 hashes with SHA-256 hashes, without removing the MD5 and SHA-1 Pascal Scripting and ISPP support functions.
- Merged the Inno Setup Preprocessor documentation into the main documentation instead of being separate.
- Added a dark mode version of the documentation, automatically used by the Compiler IDE if a dark theme is chosen.
- Pascal Scripting changes:
Added new Extract7ZipFile support function to extract a 7-Zip archive, based on the "7z ANSI-C Decoder" from the LZMA SDK by Igor Pavlov. See the new help topic for information about its limitations.
- Added new ExecAndCaptureOutput support function to execute a program or batch file and capture its stdout and stderr outputs separately.
- Output logging now raises an exception if there was an error setting up output redirection (which should be very rare). The PowerShell.iss example script has been updated to catch the exception.
- TInputDirWizardPage: Added new NewFolderName property to update the initial value passed to CreateInputDirPage.
- Documented support functions VarArrayGet and VarArraySet which were already available but not documented.
- Renamed the FileCopy support function to CopyFile. The old name is still supported, but it is recommended to update your scripts to the new name and the compiler will issue a warning if you don't.
- Fixed support function TStream.CopyFrom by adding a BufferSize parameter which was required but missing. Using $100000 as the value is recommended.
- Condensed the logging of DLL function imports.
- Added new Debugging support function.
- ISPP change: Added support functions GetSHA256OfFile, GetSHA256OfString, and GetSHA256OfUnicodeString.
- Inno Setup's Delphi source code has been reorganized to use unit scope names and additionally various units have been renamed for clarity. This makes it a lot easier to get started with working with the Inno Setup source code and making contributions, even with the free Delphi Community Edition.
- Various tweaks and improvements.
Contributions via GitHub: Thanks to Sergii Leonov, John Stevenson, and jogo- for their contributions!
Thanks to Neil Hodgson and Igor Pavlov for their continued work on Scintilla and the LZMA SDK!
Inno Setup 6.3 Revision History