New Features
Hot Exit 💾
Quitting the desktop app no longer asks whether to save your changes. The next time SmoothCSV starts, your windows and tabs come back, and unsaved changes come back with them, still unsaved. Changes are also backed up as you work, so they survive a crash, and new files you never saved come back too. SmoothCSV still asks about files too large to back up.
To be asked about unsaved changes when you quit instead, set files.hotExit to off in Settings. Changes are then not backed up as you work, so they do not survive a crash. To reopen only the windows that have unsaved changes, set window.restoreWindows to none.
Improvements
- File name in the window title - The desktop app's window title now shows the name of the file you are editing, so you can tell windows apart in the taskbar and the task switcher. On Windows and Linux, a
●before the name marks unsaved changes. (#259) - Trim Whitespace - Edit › Transform › Trim Whitespace removes leading and trailing whitespace from the selected cells. (#263)
- SQL in the column menu filter - The column menu's filter has an SQL tab next to Values and Condition, for writing the column's filter as SQL. Filters the Condition tab cannot show, such as
NOT (...)or function calls, open there. - Better encoding detection for ASCII files - Files with only ASCII characters, such as CSVs with English sentences, could be detected as ISO-8859-1, so non-ASCII characters added to them could be lost on save. They are now detected as UTF-8, and open a little faster.
Bug Fixes
- Fixed Transform to Title Case leaving all-uppercase text such as
PETER THOMASunchanged. Title Case now capitalizes every word, including short words like "of" and "the". (#272) - Fixed columns not widening past 1280 pixels when dragging their border. (#270)
- Fixed the filter input ignoring a changed Apply Filter shortcut. Once you move Apply Filter off Enter, Enter inserts a line break there.
Ctrl+Enter(Cmd+Enteron macOS) now also applies the filter by default. If you had removed Enter frominsertNewLine, Enter inserts line breaks in text fields again; remove it again in Keyboard Shortcuts. (#271) - Fixed restarting the app, or installing an update on Windows, closing other windows without asking about their unsaved changes.
- Fixed wrong results in filter queries:
NOT BETWEENand the "is not between" condition matched values inside the range instead of outside it.AND/ORyielded no match when one side was NULL, even if the other side decided the result. For example,Age > 30 OR Name = 'Bob'now matches a row named Bob whoseAgecell is missing.CAST(... AS BOOLEAN)treated any non-empty text as TRUE. It now reads values such astrue/false,yes/no, and1/0, and reports an error for other text.- Time zone offsets were dropped or ignored in
CAST(... WITH TIME ZONE)and inTIME/TIMESTAMPliterals with a negative offset.
- Fixed the filter condition editor treating
%and_in "contains", "starts with", and "ends with" values as wildcards. - Fixed the filter condition editor and the column menu mishandling filters they cannot show as conditions: parts of the filter were dropped, Apply Filter could clear it, Clear Filter could do nothing, and setting a condition could turn an
ORintoAND. - Fixed Escape not cancelling a drag in the grid, such as dragging the fill handle, moving cells, or resizing a column.
- Fixed selection keys in the grid still moving the selection after you removed their keybinding, and key combinations with no keybinding (such as
Ctrl+Homeon macOS) moving the selection anyway. - Fixed removing a default shortcut in Keyboard Shortcuts settings also removing your own shortcuts for the same command and key. A
-commandentry inkeybindings.jsonnow removes only default shortcuts, as in VS Code. - Fixed CLI format and header options being ignored for a file that was already open.
- Fixed CLI format options such as
--delimitermaking SmoothCSV ignore how the file quotes its cells when--quote-modewas omitted. A file that quotes every cell now keeps those quotes when saved. - Fixed message dialogs on Windows showing their text in the title bar instead of the body.
- Other minor bug fixes and improvements.