- Fixed an issue where uploading folders to FTP/FTPS servers could fail if remote folders did not already exist. - Fixed a rare crash that could occur when closing certain very large files.
- Improved automatic closing of quotes: quotes are no longer closed after a backslash (e.g., when entering umlauts in LaTeX), and they are now properly closed before semicolons and commas in CSS files. - SSH Terminal: Added support for the Delete key (forward delete) on external keyboards. - Updated the HTML5 template and removed outdated HTML 4.01 and XHTML templates. The HTML5 template now matches what's Emmet inserts when typing "!" and hitting Tab. - HTML script tag code completion: no longer inserts the type and src attributes by default. The src attribute can be added manually or using the "script:src" Emmet abbreviation.
This update includes the following minor improvements: - Disabled Writing Tools when entering text in the SSH terminal. - Fixed an issue where “Manage Subscription” was not shown in settings when a monthly subscription was active.
- The on-screen keyboard can now be dismissed by scrolling down in the code editor. This setting is enabled by default on iPhone and disabled on iPad. You can change it in Settings -> Code Editor -> Dismiss on Scroll. - The edit menu (with actions such as Cut, Copy, and Paste) is now shown when selecting lines by tapping a line number, when choosing Select or Select All, and when using the cursor navigation wheel on iPad. - The edit menu now appears faster and more reliably when tapping the same text location twice.
Textastic is now free to download with a one-week free trial. To start the trial, new customers can choose a yearly or monthly Textastic Pro subscription. You can also unlock all features with a one-time purchase instead of subscribing. Anyone who previously purchased the app retains full access to all current features at no extra cost. Also in this update: - Added an option to disable Writing Tools (available on devices with Apple Intelligence enabled only). - Improved keyboard behavior when creating a new file on iPhone. - Fixed an issue with “Open with Encoding…” where the save alert didn’t appear on iPhone. - Other minor fixes.
Improved integration of external folders provided by the FTP Files, S3 Files, and Source Files apps: - Pull-to-refresh in external folder files lists now reliably causes those apps to fetch the latest directory contents from servers. - When switching tabs, Textastic now notifies the file provider of these apps that a file was accessed, allowing it to check for updates on the server. - Fixed an issue where external folders were not refreshed after closing and reopening Textastic. Other improvements: - Removed unnecessary animations when reordering tabs via drag and drop. - Fixed an incorrect scroll indicator position when switching tabs after showing or hiding the keyboard. - Improved behavior when the app moves to the background while the on-screen keyboard is displayed. - Fixed an issue on iPad where the current file wasn't always selected in the file list when switching tabs.
- Fixed an issue where debug log entries were written for (S)FTP connections even when the debug log setting for that connection was not enabled. - Resolved an issue with entering Japanese characters on iOS 18 when using an external keyboard.
- Markdown Preview Customization: You can now add custom HTML to the head section of the generated Markdown preview. Save your HTML in “Local Files/#Textastic/markdown_head.html,” and it will be used for Markdown previews. This can be used to load JavaScript libraries like MathJax or Highlight.js, for example. - Added buttons in Settings -> Web Preview to open “markdown.css” and “markdown_head.html” directly in the editor, making customization simpler. - Improved File Transfer Reliability: Uploads to (S)FTP, Dropbox, and WebDAV are now more consistent, with enhancements to file coordination during uploads. - Enhanced (S)FTP Debugging: Added detailed timestamps and optimized logging in (S)FTP debug logs for better insights during connection troubleshooting. - Library Updates: Updated libssh2 and libcurl to the latest versions for improved performance and compatibility. Fixes and Improvements: - Fixed an issue where the syntax name in file properties wasn’t updated after selecting a new syntax. - Resolved a bug where internal syntax definitions that were supposed to be hidden could be selected if the syntax definition was not yet fully loaded (e.g. "Make Output", "Cargo Build Results", "PHP Source", "Swift Standard Library", etc.). - Fixed a crash that occurred when connecting to certain non-standard SSH servers. - The app no longer prompts users to connect to a Wi-Fi network when starting while Airplane mode is enabled. This behavior was removed by deleting UIRequiresPersistentWiFi from the app’s Info.plist. - Corrected an issue where the file transfer status label wasn’t displayed.
Improved creation of new files: - New files can now be created with just two taps: After tapping the “+” button, a file name is suggested (e.g. “Untitled.md”), which can be accepted directly with the “Create” button. - The file extension can now optionally be selected from a menu. This menu can be customized via Settings -> New File. - The preselected file extension can also be configured in settings. Other improvements: - Custom CSS for Markdown preview: Save your custom styles in the file “Local Files/#Textastic/markdown.css” and the web preview will use it when previewing Markdown files. - Improved (S)FTP upload and download speed over fast network connections by using larger send and receive buffers. - The Wi-Fi IP address for the WebDAV server is now determined in a different way. This should fix a rare problem where the WebDAV server could not be activated even though Wi-Fi was available. - Fixed: custom CSS did not work for external files opened with the “Open…” command or shared via the Files app.
Improved creation of new files: - New files can now be created with just two taps: After tapping the “+” button, a file name is now suggested (e.g. “Untitled.md”), which can be accepted directly with the “Create” button. - The file extension can now optionally be selected from a menu. This menu can be customized via Settings -> New File. - The preselected file extension can also be configured in settings. Other improvements: - Custom CSS for Markdown preview: Save your custom styes in the file “Local Files/#Textastic/markdown.css” and the web preview will use it when previewing Markdown files. - Improved (S)FTP upload and download speed over fast network connections by using larger send and receive buffers. - The Wi-Fi IP address for the WebDAV server is now determined in a different way. This should fix a rare problem where the WebDAV server could not be activated even though Wi-Fi was available.
- Updated libcurl, libssh2, and OpenSSL to the latest versions. The new version of the libcurl library included in this update fixes an issue when uploading files to FTPS servers using TLS 1.3: if the file was larger than about 18 KB, the upload could result in a "partial upload" error and a 0-byte file on the server. This should no longer occur. - File transfer: Improved activity indicator when refreshing remote file lists. - Improved positioning of the code completion list when entering text at the end of a line. - Added “main” tag added to HTML code completion.
- Added support for dark and tinted app icons on iOS 18 and iPadOS 18. - Added support for iPhone 16 Pro and iPhone 16 Pro Max. - Added a context menu to the symbol list that can be used to copy the text of the symbol to the clipboard. The menu also shows the line number of the symbol and allows you to select the symbol in the editor. - Fixed: Clicking on the editor with a trackpad or mouse on iPadOS 18 moved the insertion point to the beginning of the file if the editor was not previously active. - Other minor improvements.
- The font "System (SF Mono)" can now be selected in the code editor and SSH terminal settings. - You can now add Dropbox folders that are available in the Files app as external folders to Textastic! There has been a recent update to the Dropbox app so that it is now possible to open entire folders and not just individual files with the iOS file picker. - Improved the folder selection to work much better with external folders that need to retrieve information from a server (like Dropbox and Secure ShellFish). - Added two new FTPS settings: you can now set the minimum and maximum TLS version to be used when connecting to FTPS servers. More information below. - The names in the FTP settings have been updated to use the term "TLS" instead of "SSL". - The web preview now supports landscape orientation on all iPhone models. - Fixed: When using an external keyboard on iPhone, the additional keys above the on-screen keyboard now avoid the home indicator area. - Fixed: Bold, italicized text (e.g. in Markdown) was displayed either in bold or italics, but not both at the same time. - Fixed: Some files (including TypeScript files) did not open in the editor in Textastic 10.3. - Other minor improvements. Additional information on why the FTPS settings for the minimum and maximum TLS version were added: Textastic uses libcurl to transfer files to FTPS servers. On some FTPS servers, uploading a file with curl when using TLS 1.3, if the file is larger than about 18 KB, may result in a "partial upload" error and a 0-byte file on the server. To work around this partial file upload issue, you can reduce the maximum TLS version to 1.2. Note: This is only relevant for FTPS connections. SFTP connections are not affected. This issue has also been reported to the curl project and will hopefully be fixed in a future update of the library. In the meantime, you can use this workaround.
- The font "System (SF Mono)" can now be selected in the code editor and SSH terminal settings. - You can now add Dropbox folders that are available in the Files app as external folders to Textastic! There has been a recent update to the Dropbox app so that it is now possible to open entire folders and not just individual files with the iOS file picker. - Improved the folder selection to work much better with external folders that need to retrieve information from a server (like Dropbox and Secure ShellFish). - Added two new FTPS settings: you can now set the minimum and maximum TLS version to be used when connecting to FTPS servers. More information below. - The names in the FTP settings have been updated to use the term "TLS" instead of "SSL". - The web preview now supports landscape orientation on all iPhone models. - Fixed: When using an external keyboard on iPhone, the additional keys above the on-screen keyboard now avoid the home indicator area. - Fixed: Bold, italicized text (e.g. in Markdown) was displayed either in bold or italics, but not both at the same time. - Fixed: TypeScript files did not open in the editor in Textastic 10.3. - Other minor improvements. Additional information on why the FTPS settings for the minimum and maximum TLS version were added: Textastic uses libcurl to transfer files to FTPS servers. On some FTPS servers, uploading a file with curl when using TLS 1.3, if the file is larger than about 18 KB, may result in a "partial upload" error and a 0-byte file on the server. To work around this partial file upload issue, you can reduce the maximum TLS version to 1.2. Note: This is only relevant for FTPS connections. SFTP connections are not affected. This issue has also been reported to the curl project and will hopefully be fixed in a future update of the library. In the meantime, you can use this workaround.
- The font "System (SF Mono)" can now be selected in the code editor and SSH terminal settings. - You can now add Dropbox folders that are available in the Files app as external folders to Textastic! There has been a recent update to the Dropbox app so that it is now possible to open entire folders and not just individual files with the iOS file picker. - Improved the folder selection to work much better with external folders that need to retrieve information from a server (like Dropbox and Secure ShellFish). - Added two new FTPS settings: you can now set the minimum and maximum TLS version to be used when connecting to FTPS servers. More information below. - The names in the FTP settings have been updated to use the term "TLS" instead of "SSL". - The web preview now supports landscape orientation on all iPhone models. - Fixed: When using an external keyboard on iPhone, the additional keys above the on-screen keyboard now avoid the home indicator area. - Fixed: Bold, italicized text (e.g. in Markdown) was displayed either in bold or italics, but not both at the same time. - Other minor improvements. Additional information on why the FTPS settings for the minimum and maximum TLS version were added: Textastic uses libcurl to transfer files to FTPS servers. On some FTPS servers, uploading a file with curl when using TLS 1.3, if the file is larger than about 18 KB, may result in a "partial upload" error and a 0-byte file on the server. To work around this partial file upload issue, you can reduce the maximum TLS version to 1.2. Note: This is only relevant for FTPS connections. SFTP connections are not affected. I have also reported this issue to the curl project and hope that it will be fixed in a future update of the library. In the meantime, you can use this workaround.
- Added file transfer settings: For uploads and downloads, you can now specify whether you are asked for confirmation before files are overwritten or whether existing files should always be overwritten. - A warning message is now displayed when trying to add a new Google Drive connection and when connecting to existing Google Drive connections. See below for details. - Removed Microsoft App Center crash reporting because App Center is scheduled for retirement on March 31, 2025. - Removed duplicate "Share…" item in text selection menu. - Other minor improvements Due to Google’s changes to the Google Drive API, the built-in Google Drive client will be removed from Textastic in a future update. More information about this change and recommended alternatives can be found at: https://blach.io/2024/03/28/removal-of-textastic-google-drive-client/
- Updated OpenSSL, libssh2, and libcurl to their latest versions. The new version of the libssh2 library included in this update supports a new strict KEX protocol extension which is a fix for the so-called "Terrapin attack". - Improved animation and behavior when creating folders and when creating and unpacking .zip files. - Fixed a crash that could occur when searching for emojis in file names. - Other minor improvements and bug fixes
- Improved handling of very large files - Fixed: If a file was changed under iOS 17 while Textastic was in the background, the file was not reloaded when the app became active again. - Fixed: Stack overflow that could occur when closing files with a large number of lines - Other minor improvements and bug fixes
This update fixes a crash that could happen when working with files in Google Drive. It includes all new features of Textastic 10: - Refreshed user interface and new icons in all parts of the app. - Added a completely new Swift syntax definition with support for modern Swift including async/await. - Swift classes, structs, enums, functions, properties etc. are now shown in the symbol list. - Upload files to any remote connection using the new "More" -> "Upload To…" menu without leaving the editor. - New horizontally scrollable tab bar. It's now easier to re-arrange tabs with drag & drop. - Updated the icons in the symbol list. The letter in the icon now more accurately reflects the type of symbol. - Uses menus in more parts of the app, for example when tapping the "More" button and when changing the sort order of file lists. - Improved behavior of "Open…" and "Add External Folder…" commands. Textastic now doesn't enable multiple file selection in the document picker anymore. This change saves a tap when opening a file. It also fixes an issue on iOS 16 and 17 in which the document picker didn't remember the last used folder. You can still open multiple files at once by selecting the files in the Files app and using drag & drop to open them in Textastic. - Improved external folder support. - Improved regular expression replace syntax: Allow backslash in addition to a dollar sign to reference capture groups. For example, \1 and $1 in a replace string now both reference the first capture group. (To reference capture groups >= 10, you still need to use the dollar sign, e.g., $10. This behavior is the same as in Sublime Text.). - Improved behavior of "Replace All". - Added "Create ZIP File" to the file context menu. Fixed text selection issues on iOS/iPadOS 17: - The cursor was not visible when creating a new file on iOS 17. - The edit menu was not shown after changing the selection using text selection handles on iOS 17. - The cursor disappeared when entering marked text on iOS 17. - Fixed issues when moving files in the iCloud location. - Fixed performance issues when many files were stored in the iCloud location. - Fixed issues with dictation on iOS 17. - Fixed: When pasting text, Textastic now doesn't indent the last pasted line anymore. Changing the indentation could cause problems in languages like Python or YAML in which indentation is meaningful. - Fixed an issue when previewing files from an external folder. - Fixed symbol list issues for Python and CSS. - Fixed a problem with the refresh indicator when listing remote files on iOS 17. - Fixed issues with password lock and multiple windows on iPad. - Fixed a performance issue in the C# syntax definition that could cause very slow parsing of C# files.
This update fixes a crash that could happen when working with files in Google Drive. It includes all new features of Textastic 10: - Refreshed user interface and new icons in all parts of the app. - Added a completely new Swift syntax definition with support for modern Swift including async/await. - Swift classes, structs, enums, functions, properties etc. are now shown in the symbol list. - Upload files to any remote connection using the new "More" -> "Upload To…" menu without leaving the editor. - New horizontally scrollable tab bar. It's now easier to re-arrange tabs with drag & drop. - Updated the icons in the symbol list. The letter in the icon now more accurately reflects the type of symbol. - Uses menus in more parts of the app, for example when tapping the "More" button and when changing the sort order of file lists. - Improved behavior of "Open…" and "Add External Folder…" commands. Textastic now doesn't enable multiple file selection in the document picker anymore. This change saves a tap when opening a file. It also fixes an issue on iOS 16 and 17 in which the document picker didn't remember the last used folder. You can still open multiple files at once by selecting the files in the Files app and using drag & drop to open them in Textastic. - Improved external folder support. - Improved regular expression replace syntax: Allow backslash in addition to a dollar sign to reference capture groups. For example, \1 and $1 in a replace string now both reference the first capture group. (To reference capture groups >= 10, you still need to use the dollar sign, e.g., $10. This behavior is the same as in Sublime Text.). - Improved behavior of "Replace All". - Added "Create ZIP File" to the file context menu. Fixed text selection issues on iOS/iPadOS 17: - The cursor was not visible when creating a new file on iOS 17. - The edit menu was not shown after changing the selection using text selection handles on iOS 17. - The cursor disappeared when entering marked text on iOS 17. - Fixed issues when moving files in the iCloud location. - Fixed performance issues when many files were stored in the iCloud location. - Fixed issues with dictation on iOS 17. - Fixed: When pasting text, Textastic now doesn't indent the last pasted line anymore. Changing the indentation could cause problems in languages like Python or YAML in which indentation is meaningful. - Fixed an issue when previewing files from an external folder. - Fixed symbol list issues for Python and CSS. - Fixed a problem with the refresh indicator when listing remote files on iOS 17. - Fixed issues with password lock and multiple windows on iPad. - Fixed a performance issue in the C# syntax definition that could cause very slow parsing of C# files.
- Refreshed user interface and new icons in all parts of the app. - Added a completely new Swift syntax definition with support for modern Swift including async/await. - Swift classes, structs, enums, functions, properties etc. are now shown in the symbol list. - Upload files to any remote connection using the new "More" -> "Upload To…" menu without leaving the editor. - New horizontally scrollable tab bar. It's now easier to re-arrange tabs with drag & drop. - Updated the icons in the symbol list. The letter in the icon now more accurately reflects the type of symbol. - Uses menus in more parts of the app, for example when tapping the "More" button and when changing the sort order of file lists. - Improved behavior of "Open…" and "Add External Folder…" commands. Textastic now doesn't enable multiple file selection in the document picker anymore. This change saves a tap when opening a file. It also fixes an issue on iOS 16 and 17 in which the document picker didn't remember the last used folder. You can still open multiple files at once by selecting the files in the Files app and using drag & drop to open them in Textastic. - Improved external folder support. - Improved regular expression replace syntax: Allow backslash in addition to a dollar sign to reference capture groups. For example, \1 and $1 in a replace string now both reference the first capture group. (To reference capture groups >= 10, you still need to use the dollar sign, e.g., $10. This behavior is the same as in Sublime Text.). - Improved behavior of "Replace All". - Added "Create ZIP File" to the file context menu. Fixed text selection issues on iOS/iPadOS 17: - The cursor was not visible when creating a new file on iOS 17. - The edit menu was not shown after changing the selection using text selection handles on iOS 17. - The cursor disappeared when entering marked text on iOS 17. - Fixed issues when moving files in the iCloud location. - Fixed performance issues when many files were stored in the iCloud location. - Fixed issues with dictation on iOS 17. - Fixed: When pasting text, Textastic now doesn't indent the last pasted line anymore. Changing the indentation could cause problems in languages like Python or YAML in which indentation is meaningful. - Fixed an issue when previewing files from an external folder. - Fixed symbol list issues for Python and CSS. - Fixed a problem with the refresh indicator when listing remote files on iOS 17. - Fixed issues with password lock and multiple windows on iPad. - Fixed a performance issue in the C# syntax definition that could cause very slow parsing of C# files.
- Fixed: the insertion point was not displayed when tapping once on the editor in upcoming iOS versions - Other minor fixes
- Improved support for Stage Manager and external displays. - Improved keyboard handling on iPad: * When an external keyboard is connected and the collapsed shortcuts bar is displayed in a corner of the screen, it is now ignored instead of moving the UI up. * Fixed: When switching between code editor tabs, the on-screen keyboard moved down and back up. Now it stays on screen without animation. * Fixed: Line numbers were sometimes not displayed when an external keyboard was connected. - Other minor fixes
Fixed: the insertion point was not updated when using Option-Delete to delete the word to the left of the insertion point.
- Added support for the latest devices. - Keyboard shortcuts are now localized by default: to ensure your keyboard shortcuts are always usable, the system can automatically remap shortcuts, as needed, to accommodate the connected keyboard. For example, on a German keyboard, Cmd-/ to comment code is changed to Cmd-ß by the system. You can disable this in Textastic's settings. - Fixed an issue with text selection on iOS 16. - Fixed issues when entering Korean text on iOS 16. - Other minor fixes.
Fixed: When opening a file in Textastic after a restart of the device, it could happen that shortly afterwards the newly opened file was closed together with other open tabs.
- When deleting files and folders, the confirmation dialog now displays a list of files and folders to be deleted. - It's now possible to rearrange code editor tabs using a mouse or trackpad. Previously this was only possible using a finger. - Fixed: in the WebDAV connection configuration dialog, changes to the "Verify SSL Certificate" setting were not saved.