00000000
Changelog
What changed, build by build
Volt moves quickly: a new build comes most days — download the current one whenever you like.
Build 822
- FixedPaste JSON as Types copes with any sample: two keys that would be one name are numbered apart, keys with quotes, dollar signs or control characters are escaped, a list with null among its items gets optional items, and numbers too big for 64 bits are floating point
- ChangedSaving or opening a file as an administrator reaches that file and nothing else
Build 820
- AddedEach language's files carry its own mark in the project sidebar, in Go to Anything and on a window's tab: its letters on its usual colour — SW, TS, PY, GO, {} and more than sixty others
- AddedEdit ▸ Paste as Source ▸ Paste JSON as Types pastes JSON from the clipboard as Swift Codable structs, TypeScript interfaces, Go structs, Python TypedDicts, Kotlin data classes or Rust serde structs, in the document's language
- AddedEdit ▸ Copy As ▸ Image puts the selected lines on the clipboard as a picture in the editor's font and colours, for a chat or a slide; File ▸ Export ▸ Image… saves it as a PNG
- AddedJupyter notebooks are previewed as notebooks: Markdown cells as text, code cells coloured with their run numbers, and what each run printed, drew and returned — plots as pictures, tables as tables, tracebacks in red
- AddedA language server's inlay hints — the type it worked out for a name, an argument's name — are shown after the code of their line, so the code itself never moves
- ChangedA file only an administrator may change asks for the password at its first save and not at every save after it, until its window is closed
- Fixedsudo volt /etc/hosts opens the file in the Volt you are running, ready to save as an administrator with the password sudo asked for, instead of giving up after twenty seconds
Build 816
- AddedDNS zone files are coloured: each record's name, time to live, class, type and data — a host called mx is a name, not a type — and an SOA record's numbers over several lines. Recognised as .zone, .arpa, .dns, named.root and db.example.com, and as .db when the file is a zone
Build 814
- FixedView ▸ Show and Hide ▸ Show Column Colours switched off shows a CSV file in its plain colours again, and switched on, a quoted field that runs over several lines keeps its column's colour on each of them
- AddedImport… in the theme editor lists the themes Visual Studio Code, Cursor, VSCodium, Windsurf, Sublime Text and TextMate already have on this Mac, by name under each editor, so one is picked without looking for its file
Build 810
- FixedThe volt command runs the Volt in Applications, so updating the app updates the command — one installed from another copy of Volt no longer goes on running that copy — and an update writes the command again when an older Volt wrote it
- FixedBold and italic beside Japanese, Chinese and Korean punctuation work in the Markdown preview: **「太字」**です is bold, as writers of those languages mean it, instead of showing its asterisks
- FixedA full-width space at the start or end of a Markdown heading is kept, and can be typed there in the preview
- FixedWhether you are signed in is asked of the Keychain once a launch: a password dialog turned down is no longer followed by another at every menu
- AddedText ▸ Numbers ▸ Calculate (⌃⌘=) works out arithmetic in the text: a selection like 17.5*3+12 becomes 64.5, and a line with only the caret in it is answered after an equals sign — with brackets, powers, percentages, √, π and the common functions, figures grouped as 1'234.5, and decimal commas where the text uses them
- ChangedFile ▸ Open Remote… takes the page of a file on GitHub, GitLab, Bitbucket, Codeberg or a Gist as the file itself, so pasting the address from the browser opens the file to edit
- AddedThe status bar names the CSV column the caret is in from the header — Field 3 — price — counting a quoted field that runs over lines from where it began
- AddedThe theme editor imports colour themes from Visual Studio Code, TextMate and Sublime Text: Import… reads the theme's colours for keywords, strings, comments and the rest, and the window and selection colours, to look at, change and save as one of Volt's
- AddedFile ▸ Export ▸ Word Document… and Web Page…: Markdown as a Word file with Word's own headings, lists, tables, code style, links and pictures, or as the preview's page with its pictures inside it; any other text as code in Volt's colours. Export as PDF… is File ▸ Export ▸ PDF… now
Build 803
- FixedVolt no longer asks for the keychain password for “Volt Licensing” at every launch — at most once more after this update — and a dialog turned down is no longer followed by several more
- FixedA word typed with an input method — Japanese, Chinese, Korean — over words selected from one paragraph of the Markdown preview into the next replaces those words, not the start of the first paragraph
- FixedView ▸ Open in Browser: a folder linked without its closing slash shows its page with its pictures and styles, and two windows of the same folder asking at once share one address
Build 799
- AddedFormat Document formats SQL: a clause a line, the columns and conditions indented under it, a subquery a block of its own, and strings, names and comments exactly as they were; Text ▸ Transform ▸ Format SQL does it for SQL selected in another language
- ChangedA web address pasted over words in the Markdown preview links them, as it already did in the text; in code it is pasted as it is, and brackets in the words or the address no longer end the link early
- AddedText ▸ Lines ▸ Prefix and Suffix Lines… puts text before and after every line, or takes it off again — a column of names made 'ann', 'bo', for a list in one go
- AddedText ▸ Transform ▸ Straighten Quotes makes curly quotes straight for code, and Typographic Quotes curls straight ones the English, German, Swiss or French way, leaving Markdown's code alone
- AddedSmart quotes, smart dashes and your Mac's text replacements while Markdown or plain text is typed — in the text and in the preview, never in code — turned on in Edit ▸ Spelling and Substitutions; text replacements follow System Settings; ⌘Z gives back what was typed
- AddedView ▸ Open in Browser shows the page in your browser, with its developer tools, and reloads it whenever a file of its folder changes; a Markdown file is shown rendered
- ChangedSplit Vertically, Split Horizontally and Remove Split are together under View ▸ Split, with the same shortcuts
- AddedNavigate ▸ Compare ▸ Compare Folders… lists what differs between two folders — files on one side only, and files whose contents differ — and a double click shows two of them side by side
- FixedUndo Selection could put the caret in the middle of a character, after the file's character set had been chosen again
Build 792
- AddedNavigate ▸ Compare ▸ Compare with Saved shows what has changed since the last save beside the file as it is on disk, and can put back one change at a time
- AddedFile ▸ Copy Path ▸ Copy Link to Selected Lines copies a link to those lines on GitHub, GitLab, Bitbucket or Codeberg, at the commit you are on, so it keeps showing the same lines
- AddedVim mode has Visual Block (⌃V): mark a rectangle, then delete, change, yank and put it, or type before or after it on every line at once
- AddedFind ▸ Find with XPath… selects what an XPath expression finds in XML, and Find ▸ Copy XPath — Copy JSON Path in a JSON file — copies the path of whatever the caret is in
- AddedText ▸ Transform ▸ Convert CSV to JSON and Convert JSON to CSV, numbers kept as numbers only where a whole column is, so postcodes keep their zeros
- AddedText ▸ Transform ▸ Repair Garbled Characters turns text like é and ’, read in the wrong character set and saved that way, back into é and ’
- ChangedIn Vim's visual modes, o goes to the other end of the selection, x deletes it and ~ changes its case, as they do in Vim
- FixedDeleting all of a paragraph's text in the preview keeps the caret on its line, where typing puts the paragraph back; it jumped elsewhere, once to the edge of the page, and what was typed next could land at the end of the file
Build 788
- AddedView ▸ Show and Hide ▸ Show Indentation Colours tints each level of indentation in a colour of its own, and marks in red an indentation of spaces that is not a whole number of levels
- AddedText ▸ Markdown ▸ Insert Table of Contents puts in a list of the headings, each a link to its own, and saving keeps it up to date as headings are added, renamed or taken away
- AddedA screenshot or a copied picture pasted into a Markdown file is saved as a PNG next to it, and a link to it is put in where the caret is
- AddedRenaming a tag renames the one that closes it, or opens it, as you type — one step of Undo for both. Text ▸ Rename Tags in Pairs turns it off
- AddedPaths complete as they are typed: a / in a string or in a Markdown link’s address lists the files and folders of the folder named so far, and a folder accepted goes on to what is in it
- AddedNavigate ▸ Jump to Word (⌃J) puts a letter or two on every word on the screen; typing them takes the caret there, ⇧ selecting and ⌥ adding a cursor. Any other key ends it without typing anything
- AddedA comment starting with ! is drawn in red, with ? in blue and with * in green — a warning, a question, something to notice
- AddedEdit ▸ Text ▸ Transform ▸ Sort JSON Keys, Convert JSON to YAML and Convert YAML to JSON — anchors and merges included — for a selection, or a whole document into a new window
- AddedNavigate ▸ Compare with Clipboard compares the document, or the selection, with what is on the clipboard, side by side
- AddedView ▸ Typewriter Scrolling keeps the line being written in the middle of the window, and View ▸ Focus Mode dims everything but the paragraph the caret is in
- AddedMacros without Vim mode: Edit ▸ Text ▸ Script ▸ Start Recording Macro (⌃Q) records typing, keys and menu commands, and Play Macro (⌃⇧Q) does them again in the window in front
- FixedTyping into a CSV table in the preview: a click on a cell no longer gives the keyboard to the text beside it, where what was typed next replaced the whole row; a number’s cell left as it was is no longer rewritten without its spaces; cells are written with the separator the table was read with; a cell with a line break in a Windows file can be typed into; and what is being typed into a cell is in the file when it is saved, closed or quit
- FixedAlign no longer takes the :: of C++ or Haskell, or the :// of an address, for a key’s colon; a Markdown table’s escaped bars and quotation marks stay in their cells; and Align on a blank line no longer lines up the paragraphs on both sides of it
- FixedHTML to Markdown: a task list’s sub-list stays under its item, a line break at the end of an item no longer leaves a backslash, a bar in code in a table cell no longer splits the cell, and a mail link is written as the address
- FixedClicking a letter of Hebrew or Arabic in the Character Inspector’s large characters selects that letter, not its mirror image
Build 774
- AddedFiles dragged into the text with ⌥ held put in what they say: their text, one after another, each read in its own character set and written in the document's line breaks. ⇧ now gives a file's full path, which ⌥ used to
- AddedSettings ▸ Editor ▸ Wrap at column: wrapped lines break at a column of your choosing, such as 80, rather than at the window's edge — or at the edge, in a window narrower than that
- AddedEach column of a CSV or TSV file is drawn in a colour of its own, in the text itself, so which column a value is in can be seen at a glance; a separator inside quotes stays in its field. View ▸ Show and Hide ▸ Hide Column Colours turns it off for a window
- AddedEdit ▸ Text ▸ Lines ▸ Align (⌥⌘A) lines up the selected lines, or the ones around the caret, on what they have in common: the = of assignments, the => of an array, the : of keys, the bars of a Markdown table or the commas of a list — or several cursors in one column. Align On… lines them up on a separator you name
- AddedWith several characters selected, a click on one of them in the Character Inspector — on its row, or where they are drawn large — selects that one alone
- AddedEdit ▸ Paste as Markdown writes what was copied from a web page, a mail, Google Docs or Word as Markdown: headings, emphasis, links, pictures, lists and task lists, quotations, code and tables. Text ▸ Markdown ▸ Convert HTML to Markdown does the same to the selection or to a whole HTML page
- AddedA CSV or TSV file’s table in the preview can be typed into like a spreadsheet: pick a cell and type, and Return puts it into the file and goes to the cell below in the same column, Tab to the next one on the right. Quotation marks are added where a value needs them, and each cell is one step of Undo
- AddedFind ▸ Find TODO Comments lists the TODO, FIXME, HACK, XXX and BUG comments of the file, and Find TODO Comments in Project those of the whole project, in the results list; in the text, such a marker in a comment stands out in a colour of its own
- AddedEdit ▸ Selection ▸ Undo Selection (⌥⌘Z) and Redo Selection (⌥⇧⌘Z) step back and forward through where the caret, the selection and the cursors have been, without changing the text
- AddedSpelling is checked as you type, with the Mac’s own dictionaries in the languages you use: in prose word for word, and in code in its comments and strings, never marking names such as camelCase or HTML. A right click on a marked word offers guesses, Learn Spelling and Ignore Spelling; Edit ▸ Spelling ▸ Next Misspelling (⌘;) goes to the next one
- FixedRemove Surrounding Brackets on a pair that ended the file left the caret inside the character before it, where what was typed next broke it in two
- AddedEmmet abbreviations expand with Tab in HTML and CSS: ul>li*3, div#main.box, a[href=/x]{Go}, h$*3, ! for a whole page, lorem for words to fill it — and m10-20, w100p, c#f or df in a style sheet — each with tab stops for what is left to fill in. Text ▸ Expand Abbreviation does it without Tab
Build 760
- AddedWhile the find bar is open, the preview marks what it is looking for as the text does: in a Markdown, HTML, CSV or text page, and on every page rendered as the text is edited
- ChangedA picture opens in a window like any other file, with its bytes in the text, and the preview beside it shows the picture as large as the pane allows. An SVG is drawn as it is typed. A picture opened for the first time brings the preview with it
- ChangedThe Commands window opens with nothing typed in it, listing every command; only after a command does it open again on what was typed
- FixedBegin/End Select starts where it was set even when something is typed before that place: it stayed at its offset, and the selection could begin inside a letter
Build 756
- FixedA very large file opens at once with soft wrap on. To work out how far the window scrolls, Volt read the last lines of the file, which meant counting every line first: a log of 34 GB kept its window blank for about a minute
- FixedA line with a replacement character (�) of its own is edited where its characters are, even when another line, in this file or another, reads the same because a stray byte stands there: it was measured by that line's bytes, and an edit in it could break a character
- FixedIn Vim mode, ⌘Z or a command from the menus in the middle of a visual selection moves the selection's ends with the text. They stayed where the text had been, and `x`, `i` or `v` after it acted inside a letter
- FixedA snippet ends, rather than put one of its tab stops inside a letter, when an edit has left that stop inside text the snippet is about to rewrite
Build 753
- FixedIn a window split in two, what is typed in one half no longer leaves the caret, the selection and the other cursors of the other half behind: they stay on their text. Typing on in the other half went in somewhere else, and in text with accents or umlauts it could go in inside a letter and break it
- FixedTrimming trailing whitespace on save, and taking invisible characters out on save, keep the caret on its text: what was typed after saving went in further down, by as many spaces as had come off the lines above
- FixedClean Up, Replace All, Batch Replace, a replace across a project into documents that are open, and a rename from a language server keep the caret, the selection and the scroll position of every pane on the text they were on. After dashes had become en dashes, the caret could end up inside a letter
- FixedA rename from a language server writes a new name with accents into a Latin-1 file, or one in another older character set, in that set rather than in UTF-8
- FixedIn a UTF-8 file that begins with a byte order mark, what is typed straight after opening it, before the caret has been put anywhere, goes in after the mark. It went in front of it: the file then began with the typing, and the mark was left inside the text. A snippet expanded there has its tab stops where its text went in
- FixedIn Vim mode, `v` on a letter such as ü or é selects the whole letter rather than the first of its bytes, so a command from the menus on that selection no longer breaks the letter
- FixedUndo and Redo after typing at several cursors leave one caret, where the step was. The other cursors stayed where they had been in a text that had changed under them, and what was typed next went in there, inside a letter even
- FixedTwo selections that overlap, made by ⌘-dragging across one that is already there, count as one: Redact, a paste of several pieces and the other commands that work at every cursor wrote over the overlap twice, and could break the letters in it
- FixedA caret after one of a snippet's mirrors moves along when the mirror takes in what was typed at its tab stop. It stayed where it was, inside a letter, and what was typed there broke the letter
Build 746
- FixedA UTF-16 or UTF-32 file whose text begins with U+FEFF, just after its byte order mark, keeps that character when it is saved; it was taken for the mark, hidden, and lost at every save
- FixedReplace All with a regular expression in a file of more than 20,000 lines or a megabyte no longer joins lines here and there: \s+$ took the line break with it every 20,000 lines, and $ put its replacement at the start of the next line. Find All counted those matches as well
- FixedA search for text longer than eight megabytes, such as one taken over from another application’s Find, no longer keeps Volt busy for good
- FixedShow Only Matching Lines and Hide Matching Lines in a large file no longer take a line for a match, once in a long while, when only its line break matched an expression such as \s+$
- FixedUnsaved work comes back after a power cut even when the cut damaged what Volt keeps about it: in an untitled window, or in File ▸ Recover Unsaved Documents. It was put in the Trash
- FixedA damaged file in a document’s history no longer stops Volt when the next version of the document is kept
- FixedTyping at a snippet’s stop that appears more than once no longer writes over other text after part of one of its copies was deleted or typed over, and no longer stops Volt there; an empty stop used three times takes each letter once at each place
- FixedIn Vim mode, `vd` and `vc` no longer stop Volt when the caret is between the two halves of a Windows line break, where deleting what stood between them leaves it
- FixedBold, Italic and the other Markdown marks no longer stop Volt on a first line selected together with others, with several cursors, in a UTF-8 file that begins with a byte order mark
- FixedIn Vim mode, a control key such as ⌃R or ⌃D ends a command half typed: `r` and then ⌃D no longer take the next `.` for the character to put, after which the `.` that followed repeated itself until Volt stopped. ⌃A and ⌃X take a count, so 5⌃A adds five
- ChangedUnsaved changes to a very large file are kept between launches at almost no cost: a one-line edit in a 3 GB log no longer writes 3 GB to the disk at every pause in the typing, and the changes still come back if the file is rewritten or deleted in the meantime
Build 734
- FixedA long day of work over SFTP no longer makes Volt use a little more memory with every folder listed and every file sent: the server’s password is read from the Keychain once rather than each time
- FixedA search for whole words in a large file no longer, once in a long while, finds one inside a longer word
- FixedSaving in ISO-2022-JP, ISO-2022-KR or ISO-2022-CN writes an escape or shift character that is part of the text as ?; written as it was, it changed how the rest of the line was read, and the file came out different every time it was saved
- AddedThe Services menu works in Volt’s own text, in the Volt menu and when you right-click: what is selected is handed to a service — a note, a mail, a search — and text a service gives back takes its place, as one step of Undo
Build 729
- FixedA file in JIS X 0208, ISO-2022-JP, ISO-2022-JP-2004, MARC-8 or ISO 6937 whose length is an odd number of bytes no longer has its last character read as two replacement characters when it is opened
- FixedSaving in JIS X 0208 writes a letter, or a character the set does not have, as the set’s own full-width question mark; written as a single byte, it was read back as half of a kanji, and the file changed every time it was saved
- FixedA file in EBCDIC (Latin 1) opens with its lines where they are and is saved as the bytes it was; it was read as if it were ASCII, as one long line
Build 727
- FixedA server connected to over SSH for the first time, whose key was not accepted, is no longer said to have changed its key; that warning is kept for a key that really has
- ChangedA regular expression is found many times faster in a large file: parts of the file without the plain text every match must contain are skipped, and the rest is searched on every core at once — a gigabyte with no match took forty seconds and takes under one
- ChangedReplace All in a large file is many times faster: plain text is replaced at nearly a gigabyte a second, and a regular expression as fast as it is found
- FixedReplace All in a large file keeps the case of each match when Preserve Case is on, and makes \n in a regular expression’s replacement a new line, as it always did in a small file
- FixedReplace, and Replace All in a small file, replace what a regular expression with a lookbehind or a lookahead found, which they used to leave as it was; a match that can be empty, such as x*, is replaced once rather than twice, and $ at the end of a last line without a line break is replaced too
- FixedIn Shift-JIS, Big5, GBK, GB18030 and Korean (UHC) files, a search for a letter or a digit no longer finds half of a Japanese, Chinese or Korean character, and Replace All no longer changes such characters
- FixedFiles in ISO-2022-JP, ISO-2022-KR, ISO-2022-CN and HZ can be edited safely: a letter typed or replaced between two of their characters used to break the text after it, and text in the middle of a run of kanji was not found
- ChangedA regular expression that matches often in a Latin-1, Windows or other single-byte file no longer slows down with every match
- FixedWhile an update downloads, About Volt shows how much of it has arrived, in megabytes, and the time left; it showed 100 B of 100 B
Build 721
- FixedThe hex editor tells VoiceOver which byte the cursor is on — its offset, its value and the character it is — and how many are selected, rather than the digit the caret is beside
- ChangedVolt opens its first window sooner: Apple Intelligence's Writing Tools are added to the Edit menu once the window is up, rather than loaded on the way to it
Build 718
- FixedVoiceOver says what every field, menu of choices, slider and stepper in Settings and in Volt's forms is for, reading the label beside it
- AddedTest Connection offers to trust an FTPS server's certificate when this Mac does not, and tests again once it is trusted
- ChangedA file opened with Open Remote… opens, saves and is checked for changes over the connection already open to its machine, without starting ssh for each
- FixedSaving in ISO-2022-JP-2004 writes a character the set cannot hold as one ? in plain ASCII; it could become several ? or garble the character after it, and the file changed a little every time it was saved
Build 712
- ChangedFTP servers stay logged in while you browse them, encrypted ones (FTPS) too, so a folder lists and a small file opens two to three times as fast; transfers still use connections of their own
- ChangedOpen Remote… lists the folders of a user@host:/path as fast as the FTP window lists an SFTP server's, once the first listing has logged in
- AddedA file sent or fetched where one of its name already is can be replaced, replaced only if older, skipped or kept beside it — asked each time, or set once in Settings ▸ Files; a file replaced on this Mac goes to the Trash
- AddedA notification says when transfers that took a while have finished, and how many failed, if you were not looking at the FTP window
- AddedAbout Volt lists what is new in an update while it downloads, and the download can be stopped there; a stopped build is offered again rather than fetched on its own
- AddedThe server form has a Choose… button beside the SSH key, which opens in ~/.ssh with its hidden files shown
- ChangedFTP servers that offer it are listed with MLSD: every file's time to the second, a file older than half a year too, for sorting, for Replace if older and for telling whether a file changed on the server
- ChangedOn an FTP server, renaming, moving, deleting, making a folder and setting permissions go over the login already open, as fast as browsing
- ChangedSaving a file on an FTP, FTPS or SFTP server goes over the connection already open, without logging in again: a save takes well under half the time it did
- AddedAn FTPS server whose certificate no authority has signed — a NAS, a small host — can be trusted for that server alone: Volt shows the certificate and its fingerprint first, and asks again if it ever changes
- FixedFTPS works with servers that require every transfer to continue the login's secure session — vsftpd, ProFTPD and FileZilla Server as they come — which refused every listing and transfer before
- FixedSaving a file through a link over SSH writes the file the link leads to and keeps the link, rather than replacing the link with a file of its own that anyone could write
- FixedAn upload cut off by a lost connection is no longer carried on, the next time, from the start of a different version of the file
- ChangedAbout Volt is wider, so its columns and the list of what is new in an update have room
- ChangedVolt wakes up less while it waits in the background: nothing looks for idle server connections once none are open, a window's versions are only timed while there is something new to keep, and checking for a new copy of Volt waits until it is in front
Build 700
- ChangedAbout Volt has a new look, shared with MarketVision's other apps: Volt's icon, where updates stand, with a download's progress and a restart into a build that is waiting; the licence; support; and MarketVision's other apps, opened from there when they are installed
- FixedClosing Quick Look in the FTP window no longer disconnects a server connected with Quick Connect, and Quick Look shows a file afresh once it has changed on the server
- FixedWith Quick Look open in the FTP window, the list no longer redraws itself over and over beside a folder that is unfolded
- FixedThe FTP window’s Transcript keeps your place while you scroll back to read
- FixedOpen Remote… no longer tries to log in to a machine called “sftp” or “ftp” while an address is being typed
- Fixed⌘B and the other marks on a whole line picked with its line break go round the line, and leave the marks of the next line alone
- FixedIn scripts, do menu command reaches the theme, heading or tab its identifier names
- ChangedQuitting Volt ends the connections to SSH and SFTP servers it keeps open between commands, instead of leaving them logged in for up to ten minutes
- ChangedQuitting while FTP transfers are running asks first, and a download no longer goes on after Volt has quit
Build 688
- ChangedThe FTP window shows its Transcript under the files while you work, each command and answer as it happens, instead of in a sheet that had to be closed again; the button in the foot or Transcript in the right-click menu shows and hides it, and new windows remember the choice
- Added⌘1 to ⌘8 show the tab in that place, and ⌘9 the last tab, in document windows and in the FTP window (Window ▸ Show Tab)
- FixedThe FTP window’s Transcript shows every folder listed and file opened over SFTP, with the server’s answer, as it does for FTP
- AddedThe Markdown preview has buttons for headings, bold, italic, strikethrough, code, links, quotes and lists while it can be typed into; each acts on the page or on the text beside it, whichever has the keyboard
- Fixed⌘B, ⌘I and the other marks come off again when pressed a second time, also on words selected in the Markdown preview, where the stars around bold text cannot be selected
Build 681
- ChangedOpen Remote… offers SFTP, FTP and FTPS by name to start from, says in its empty field what it takes, and lists a server's folders only once its name is typed
- FixedWith Quick Look open, the up and down arrows move through the files, and Quick Look shows each as it is reached — in the FTP window on both sides, and in the file sidebar
Build 678
- AddedSFTP accounts that allow file transfers but no commands — what most hosting gives — work in the FTP window: listing, opening and saving, uploading and downloading, folders, renaming, deleting and permissions
- FixedA file opened over SSH from an account that runs no commands no longer opens empty
- FixedA server’s settings: More Options shows whether it is open, the form keeps a margin from the edges, the Connection heading stays, and Quick Connect’s buttons sit side by side
- FixedTest Connection waits for a server to be typed in, and its window shows a spinner only while it is testing
- ChangedThe command palette leaves out the application’s own menu: About, Settings, Check for Updates, Hide and Quit
- FixedThe FTP window’s Transcript no longer shows the password an FTP login sends
- FixedA Quick Connect server over TLS keeps its TLS when files are dragged out of it, and its password is forgotten when its window closes
- FixedOver SFTP, a symbolic link is saved through to what it points to and stays a link, and folders fetched or given permissions all the way down leave links alone
- ChangedOpen in Terminal on an SFTP account that runs no commands opens an sftp prompt in the folder on screen
- ChangedThe FTP window’s list of servers says how to add one, or to connect without keeping it, while it has none
- FixedTest Connection uses the password typed into the form when it tries an account that only transfers files, instead of asking for it again
- FixedTesting a server again after changing its port or kind no longer leaves the password typed for the first test in use until Volt quits
- FixedOpen in Terminal goes through the machines a server is set to be reached through
- ChangedFTP error messages and Test Connection show what the server said, without technical names in front of it
- FixedA saved server keeps the machines it is reached through after Volt is opened again
- AddedTransfers run several at once — four to a server unless More Options ▸ Connections says otherwise — and the files of a folder, a synchronisation, or several small files dropped together are shared out among them, so many small files arrive or go up several times faster. A server that says it has too many is given fewer, and nothing it turned away is lost
- ChangedEvery FTP command starts sooner, so browsing an FTP server and every transfer to or from one is quicker
- FixedA folder fetched over FTP, or from an account that only transfers files, may hold files of any size, and one file that fails no longer stops the rest: those that failed are named at the end
- FixedTwo files on a server whose names differ only in capitals are both fetched, the second numbered, rather than one over the other
- FixedSynchronise leaves out files a transfer left half done, and no longer goes round in circles through a link on the server that points to its own folder
- AddedSaving a file opened from a server asks first when somebody else has changed it there since you opened it, instead of writing over their work
- AddedFiles sent to or fetched from a server keep the time they were last changed, where the server allows it, so Synchronise no longer sends or fetches everything again afterwards
- AddedOpen Remote… looks around FTP and SFTP servers as it does SSH machines — sftp://, ftp:// and ftps:// folders listed as you type — and offers the servers kept in the FTP window by name
- ChangedListing a folder and opening a file on a server is several times faster
Build 650
- AddedTest Connection… in a server’s settings tries what is typed there, saved or not, and shows every step: the address, the port, the server’s own replies, the login, the folder
- AddedQuick Connect… in the FTP window connects to a server without adding it to the favourites, unless Add to Favourites is ticked
- ChangedA server’s settings show what every connection needs; the SSH key, the machines to go through, the website and the transfer settings are under More Options
- FixedThe FTP window says it is connected, in green, once the server has answered, rather than as soon as Connect is pressed
- FixedAn SFTP account that allows file transfers but no commands is said to be one, rather than with a message about curl
Build 648
- FixedPermissions a server writes with a capital S or T, or with s and t, are read with their setuid, setgid and sticky bits, rather than as an x that is not there
- FixedGet Info says when its permissions could not be changed, offers no change for a symbolic link or a file whose permissions are unknown, and shows what a file is now when its window comes forward
- FixedThe hex view no longer fills the system log with layout warnings while it is closed
Build 645
- FixedVolt starts, and opens a server’s settings in the FTP window, without waiting on the Keychain
- AddedGet Info (⌘I) in the FTP window, for a file on this Mac or on the server: what it is, its size, where it is, when it was made, changed and last opened, its owner and group, and its permissions, which can be changed there
Build 642
- FixedOpen Remote… opens a path from the home folder, such as server:~/notes.txt, as scp does
- FixedA file name typed in Open Remote… without a folder offers the files in the home folder under their own names
- FixedOpen Remote… opens and saves files whose names start with a dash
- FixedA server changed to another machine while the FTP window is connected to it no longer shows the old machine’s files, even when a listing from it arrives late
- FixedWhile the FTP window is still asking an SFTP server for its home folder, nothing can be created, uploaded or synchronised at the server’s root
- FixedA remote command or an update step that does not respond to being stopped is ended within seconds
- FixedAn update keeps a disk image that macOS may still have open for the next try, rather than deleting it
Build 639
- FixedAn SFTP server with no start folder opens in the home folder the server gives the account, rather than at the root of its disk
- FixedClosing a server’s settings in the FTP window leaves that server selected, rather than the first one in the list
- FixedChanging the settings of the server the FTP window is connected to takes effect at once, and a new address or user connects the window there
Build 637
- ChangedAbout Volt — and Settings ▸ About with it — shows the version and the build plainly, copies them for a report with a click, looks for updates in place, and links to Volt’s site, what is new and support
- AddedAbout Volt ▸ Acknowledgements shows the licences of the code and the character set tables in Volt that come from elsewhere
- FixedOpen in Terminal in the FTP window opens a shell on the server: macOS asks once whether Volt may control Terminal. AppleScripts run from Volt can control other applications too
- AddedSettings ▸ Account links to the privacy policy
- FixedLooking for updates no longer tells volt-editor.com which language the Mac is set to
Build 624
- FixedA go.mod file is highlighted as Go rather than as Crystal
- FixedInstalling an update no longer fails at once when macOS is busy with another disk image, and leaves no disk image behind when it does fail
Build 619
- FixedText dropped on Volt that starts with a link opens as the text, rather than as the page the link leads to; a link alone is still opened, and a path dropped on it opens the file it names
- FixedDragging out a large selection no longer keeps Volt busy counting it at every step: its characters are counted where it stops. In a filtered view the status bar counts only the lines shown, as Copy takes them, and a line selected with its line break is one line
- ChangedMore files and pastes say what they are written in: COBOL, assembly, Lisp, Elixir, Pascal, Haskell, Lua, Elm, Batch files, Vim settings, GraphQL, Objective-C headers and makefiles. Swift is no longer taken for Go, SQL for a Dockerfile, Haskell for PHP, Pascal for Prolog, nor YAML that starts with a comment for a patch; and telling what a file is written in is quicker
Build 609
- ChangedThe total of selected figures in the status bar gives their average as Ø, beside Σ for the sum
Build 608
- ChangedWith text selected, the status bar shows the selection — how many characters, lines and bytes — rather than the whole document
- ChangedMore files and pastes say what they are written in: Ruby, JavaScript in a page or as a bundler writes it, Go, CSS, SQL, the shell, makefiles and Dockerfiles; and a page that talks about databases is no longer taken for SQL
- FixedText pasted into a new window over a selection as long as itself is recognised like any other paste
Build 602
- AddedText dragged onto Volt in the Dock opens in a new document, and other applications offer New Volt Document With Selection in their Services menu
- ChangedMarkdown is recognised far more often in a new document or a file whose name does not say: a README with examples of code in it, a changelog, a list of things to tick off, a post with front matter. A few lines pasted into a new window are recognised as soon as they arrive. Working out what a file is written in is about three times as fast, and a large paste is looked at without holding up the typing
- ChangedCode pasted into a new window, or in a file whose name does not say, is recognised far more often — Swift, Python, Go, Rust, Java, JavaScript and TypeScript, C, SQL, CSS, JSON, YAML and INI files among them — and taken for the wrong language less often
- FixedA list written with dashes is no longer taken for YAML, nor a page with an example that starts with <?php for PHP; a makefile is recognised by what is in it
- FixedA project folder from somewhere else can no longer have Volt run programs its own settings name when its history or blame is shown
- FixedVolt no longer stops to wait for git: the menus, the project file list, the repository window coming forward, choosing a commit, a file or a stash in it, committing — however long a repository's hooks take — and switching branches all go on beside your typing
- FixedUnsaved work in a big file is kept for the next launch without a pause after every few keystrokes
- FixedA file on a share whose server has gone no longer holds Volt up: unsaved work in one coming back at launch, a picture it names in a line, a log on it that grows, the FTP window's side for this Mac, and the folders offered under a window's title
- FixedA file kept only in iCloud Drive, Dropbox or OneDrive opens in its window while it is downloaded, rather than holding Volt up until it has been
- FixedRestart Volt, offered when Volt was replaced while it ran, brings back what was not saved even with quitting set to ask
- FixedA file from another machine counts as unsaved until it has arrived there: closing its window and quitting wait for it, and a save that did not arrive is kept and asked about. Quitting during an FTP upload no longer leaves part of the file on the server in place of the whole
- FixedDownloading from a server never writes over a file here, and two files of one name fetched or copied together no longer land on each other; dropping files on a folder the FTP window has not listed asks before writing over what is there
- FixedSaving in a character set that has no room for some of the text asks first for a file of any size, and so does Save a Copy; Replace in Project leaves such a file as it was
- FixedQuitting waits for a save that is still being written
- FixedA line separator inside a line — as a JSON string can hold — stays what it is, and is saved as it was
- FixedA character set chosen to convert a file to counts as an unsaved change until it is saved
- FixedSaving as an administrator makes its backup of the file first, when backups are on; discarding a new file in a repository where there is no Trash leaves it where it is
- FixedClean Up Document says a document of more than 64 MB is too large to clean up whole, rather than holding Volt up
- FixedA search of a project on a server can no longer be given false results by a line in one of its files
Build 541
- AddedThe Markdown preview can be typed into. What you type goes into the Markdown where it belongs: a word typed into bold text is bold, the text of a link changes and its address does not, and a character Markdown would read as formatting stays the character you typed. Return, Backspace, Undo and the Markdown menu (⌘B, ⌘I, ⌘K) work there too, and the text follows the caret in the page. Code, tables and HTML are edited in the text: a click on them goes there
- FixedFiles with Windows line endings: the Markdown, text and record previews showed them as one line; copying a line with nothing selected put an extra line break on the clipboard; Format Document, Format JSON and Minify JSON took away the last line break; Toggle Comment in CSS and HTML joined the next line onto the comment; pasting at several cursors put every line at every cursor; Stage This Change staged every change; blame gave every line to one commit; .editorconfig and .gitattributes were ignored; Statistics counted one line; and Vim's yank and put added blank lines
- FixedAlso with Windows line endings: Unix Time to Date and Date to Unix Time skipped every line, Quoted-Printable wrote =0D at the end of every line, and settling a conflict at the end of the file, Decode JWT, Format XML and Volt's own formatting left lines with the other line ending in it
- FixedShowing the file list, the outline or the issues no longer lays out the text of every window again, which took seconds with a file of very long lines open
- FixedStop now always stops a search, Find All, Replace All, a line filter, a count, statistics, a lint or a script
- FixedA file you may change in a folder you may not — on a share, in somebody else's folder — can be saved
- FixedWith atomic saving off, a save that fails half way through — a disk that filled up — keeps the whole text in a file of its own, and says where
- FixedA theme or mode saved by Volt kept its version number when the version came last in the file
- FixedDamaged version history or undo history on disk is set aside instead of stopping Volt
- FixedNumbers too large to count no longer stop Volt: nineteen nines typed into Insert Numbers, a rename's numbering or the lines around a bookmark, ⌃A in Vim on the largest number there is, a size a server reports, and settings written by hand
Build 524
- FixedVolt opens at once when a window it brings back was on a disk that is not connected — a share, or a drive not plugged in. It asked for the disk to be mounted first, and waited for a server that was not answering
Build 523
- FixedOpening a file in a Git repository no longer runs programs the repository's own settings name for git to run as it looks at the files. Volt asks git what has changed as soon as a file is opened, and a repository downloaded from somewhere could name what ran
Build 522
- FixedA server's password is asked for even when Volt is kept in a folder with a $, a backquote or a quotation mark in its name. The window that asks did not open, and the login failed
- FixedA language server that writes its log where its answers go — a common way to set one up wrongly — no longer has Volt keep every byte of it in memory for as long as it runs
Build 521
- FixedThe form for an FTP server keeps Save greyed out until it names a server. Pressed without one, it closed the form and kept nothing of what had been typed into it
- FixedRename by Rule in the FTP window says, in its report sheet, which files kept their names because the new name was taken. It said so in the window's foot, where the renames that went ahead wrote over it within a second
- FixedA job in the FTP window that fails while the window is in the Dock or behind others is said as soon as the window is back, rather than when some later job ends
Build 520
- FixedOpen in Terminal in the FTP window can no longer be made to run anything on the Mac by the name of a folder on the server. A name with a quotation mark in it cut short what Terminal was told, and the rest of the name was run here
- FixedA link to a server — ftp://, ftps:// or sftp:// — or a place typed into Open Remote… whose server or user is not a name, such as one beginning with a dash, is refused rather than handed to the programs that connect
- FixedRenaming a file on the Mac side of the FTP window to the same name in other capitals, when that fails halfway, leaves the file under its own name. It was left under a hidden one, and seemed to have gone
Build 519
- ChangedUpdates have a tab of their own: Settings ▸ General, the first, says how Volt keeps itself up to date — download and install automatically, download and ask before installing, or check only when asked — with Check Now beside it. The setting was at the foot of About
- FixedDiscarding changes in the Git window — a file's, or a single change's — and putting a file back as a commit left it keep the file as it was first among its versions, where Browse History… brings it back. What they replaced was gone for good
Build 518
- FixedA send to an FTP server that fails or is stopped partway leaves the file on the server as it was. Volt then sent it again straight over the original, and a second drop, or the stop itself, could leave that file cut short
- FixedA send to an FTP server carries on from where an interrupted one stopped only when it is sending the same thing. A file edited in between went to the server as the start of the old version and the end of the new one
- FixedA file of any size can be sent to a server: a large one is read from the disk as it goes rather than held in memory
- FixedA download from an SFTP server goes to the disk as it arrives: a file larger than the Mac's memory can be fetched, its progress shows as it comes, and one cut short is taken up where it stopped
- FixedA download carries on from where an interrupted one stopped only when the file on the server is still the one it began on. A file written over in between came out as the start of one version and the end of the other
- FixedA folder fetched from an SFTP server to where one of that name already is goes into the new copy beside it. It went into the one already there, over the files the two had in common, and left the copy empty
- FixedA folder sent to an SFTP server is packed into a file on the Mac and sent from the disk rather than from memory, and without the Mac's own metadata: the server no longer gets a `._` file beside every file that had a tag or came from the internet
- FixedTar archives Volt makes leave out the Mac's extended attributes, which other machines' tar warned about at every file
- FixedA file on an FTP server larger than Volt opens is refused as it starts to arrive, rather than fetched whole into memory and measured afterwards
Build 517
- FixedSynchronising from a server replaces a file on the Mac only once the server's copy has arrived whole. The file on the Mac was removed first, so a download that failed halfway lost it
- FixedSaving the rmate script or a project report's CSV over a file replaces it only once the new one is written, and says so when it cannot be saved. A save that failed left nothing there, or a file cut short, without a word
- FixedReplace in Project says how many open files it left as they were — in a window set to Read Only, or busy saving — rather than counting them among the files changed in their windows
- FixedSending a file to a server — an upload, a sync, a folder dropped on the FTP window — holds it in memory once rather than two or three times over, so a large one no longer runs the Mac short of memory
Build 516
- FixedAfter a login to an SFTP server failed — a wrong password, since corrected — compressing there is done by the server again. Volt took the failed login for a server without the tool for the rest of the session, and fetched everything to pack it on the Mac instead
- FixedDuplicate in the FTP window copies every file picked rather than only the first, and leaves a folder picked along with them out instead of refusing
Build 515
- FixedThe password in an SFTP server's form is the one the connection uses, and correcting it there corrects it. The form kept it where the connection never looked, so a wrong password remembered at the first login went on being tried
- FixedSaving and restoring the session no longer checks Volt's own signature for every window on the way: the bookmarks that find the files again are ordinary ones, as an application outside the sandbox needs
Build 514
- FixedA job that fails in the FTP window — compressing on the server, a new file, a rename, an upload — says so in a sheet over the window. The line in the window's foot that said it was written over by the listing that followed within a second
- FixedWith the FTP window, Settings or another window that is not a document in front, the commands that act on a document are greyed out. They used to stay available and act on a document behind it, or on nothing
Build 512
- FixedVolt starts without waiting on the check of its own signature and on the Keychain: both happen in the background, where macOS asks for them to be done
Build 508
- AddedVolt opens ftp://, ftps:// and sftp:// links: a file in a window, a folder in the FTP window. Settings ▸ Files says what opens them and can make it Volt again
- ChangedRenaming a file selects its name without the extension, as the Finder does — in the file list, the FTP window and the title's popover
Build 507
- FixedA Volt replaced on disk while it runs — a new copy dragged over it from the disk image — says so and offers to restart, keeping everything unsaved. macOS stops opening the Save and Open dialogs for such a copy, and ⌘S on a new document did nothing without a word
- FixedA downloaded update waiting to be installed is never put in over a copy of Volt as new as itself or newer
Build 506
- FixedA folder renamed in the project file list takes every window with a file inside it along, however deep the file is: saving no longer fails for a folder that is gone. One moved to the Trash leaves those windows their text, unsaved
Build 505
- ChangedView ▸ Show and Hide switches the Git changes, the inline issues, the bracket colours, the colour swatches, the image previews and the log levels in colour for the window in front, as it already did the line numbers and the outline. Settings says what a new window starts with
Build 504
- AddedA click on a window's title renames the file, as in Pages: a popover under the title with its name to type over and its folder to choose another. File ▸ Rename… opens the same popover
- FixedA file renamed or moved from Volt to another extension is read as what its new name says at once, not the next time it is opened
Build 503
- FixedA file renamed or moved in the Finder while it is open is followed: the window takes its new name and saving writes there. It was taken for deleted, and saving made a new file under the old name. One moved to the Trash is still taken for deleted
- FixedA language chosen for a file — a .txt read as Markdown — stays through saving, through a rename that keeps the extension, and when the session brings the window back
- AddedChoosing a language a file's name does not say offers the name that does: notes.txt read as Markdown is offered notes.md. Settings ▸ Files can turn the offer off
- FixedThe outline, the breadcrumb bar and the pinned scope no longer flicker at every keystroke while the file's symbols are read again
- FixedRow numbers in a CSV or TSV preview stay on one line, however many digits they have
- FixedThe Markdown preview puts the same space between paragraphs, lists, quotes, code and tables, and list items no longer spread apart
Build 502
- ChangedNavigate ▸ Commands… stays open after a command runs, with what was typed, ready for the next one — unless the command asked something or took the typing elsewhere. Settings ▸ Keys can have it close instead
Build 501
- AddedEvery window comes back as it was when Volt quit: the command palette and Go to Anything with what was typed in them, the Pattern Playground with its pattern and text, the comparisons of languages and character sets, a theme being made, About, the command-line tool, Font Features, Clone with its address, and the searches of unsaved and of open documents
- AddedIn a Volt in another language, the command palette and Settings ▸ Keys find a command by its English name as well — "reverse" finds Zeichen in Zeilen umkehren
Build 500
- AddedEdit ▸ Text ▸ Lines ▸ Reverse Characters in Lines: each line read backwards — abc becomes cba — in what is selected or in every line, and in the Shortcuts app's Transform Text
- FixedFind ▸ Filter Lines…: Add Condition no longer lies over Saved Filters, and the conditions sit right under the explanation
Build 499
- AddedAutomatic updates: Volt looks for a newer build once a day, downloads it in the background and installs it when Volt quits — or at once with Restart Now. Settings ▸ About can make it ask first, or only look when you choose Volt ▸ Check for Updates…
- AddedAn update is installed only when it is signed by Volt's developer and is exactly the file volt-editor.com names; the copy it replaces goes to the Trash
Build 498
- AddedVolt runs on Intel Macs as well as on Apple silicon: one download, native on both
- FixedEditing a file on a server with rmate works on minimal Debian and Ubuntu servers too, and a save that is cut short or cannot be written never takes the place of the file on the server
- FixedThe volt command reads text piped into it to the end even when the terminal is resized while it waits
Build 496
- FixedSettings ▸ Keys: every row's text sits in the middle of the row and lines up with its column's title, and the shortcuts are set against the right so their keys stand one under the other
- ChangedSettings ▸ Keys: one row of buttons for the command chosen, each usable only when it can do something, with Restore All Defaults and Open Bindings File in the ⋯ menu
- FixedThe same centring in the other lists that drew their text at the top of the row: the language and character-set comparisons, the project report, the language and extension settings, the Pattern Playground, unsaved documents and the theme editor
Build 495
- ChangedThe text beside a collapsed window's name is in the ordinary weight and a quieter colour, so the name stands out from it
Build 494
- AddedA Shift-click on the yellow button collapses a window to its title bar, and another expands it
- AddedA collapsed window's title bar shows the line the caret was on beside the window's name, so a row of collapsed windows says what each holds
- AddedCollapsed windows are remembered: a window collapsed when Volt quits comes back collapsed
Build 493
- AddedWindow ▸ Collapse to Title Bar: a window rolled up into its title bar and down again, as on the Mac of the nineties — and, if Settings ▸ Appearance says so, by a double-click on the title bar
Build 492
- AddedVolt in the Shortcuts app: twelve actions — open files, get or insert the front document's text, transform, find, replace, count and compare text, and read, convert and search files — in every language Volt speaks, and Siri phrases for the most used
- FixedRemove Duplicate Lines keeps blank lines, so paragraphs stay apart; Keep Only Duplicate Lines no longer counts them as repeats
Build 491
- AddedFind ▸ Pattern Playground…: a regular expression tried on a text — every match marked, its groups listed, the replacement shown done, and the pattern read back in words
- AddedFiles only an administrator may change or read — /etc/hosts, /etc/sudoers — are saved and opened with the system's own password dialog, keeping their owner and permissions
- AddedSettings ▸ Editor ▸ Scroll a whole line at a time: the trackpad and the mouse move the text by whole lines, so the top line is never cut in half
Build 490
- AddedSearch in This Folder… in the FTP window: a folder on a server searched and replaced in, in a window of its own
- ChangedA server added from a link is named who and where — sam@example.com — and the name follows a link as it is typed in
Build 489
- AddedNew File in the Finder's right-click menu, as Windows has it: a text, Markdown, HTML, CSS, JavaScript, JSON, PHP, Python or shell file made empty where you clicked, ready to be renamed. Switched on in Settings ▸ Files ▸ Finder Extensions…
Build 488
- AddedA regular expression in the find fields is in colour: groups, escapes, classes, repeats and anchors, and in the replacement the groups it puts back
- AddedSettings ▸ Files ▸ Changes by other apps: reload the changed file, ask what to do, or keep the version in Volt
- ChangedThe Character Inspector grows as wide as a character's longest name, so no line of it breaks
- ChangedCommands lists every command when nothing is typed, not the first two hundred
- FixedAdd Bookmark marks the lines of every selection, from the menu and from a right click on a selected line's number
- FixedA file changed on disk is said so in the language Volt is in
- FixedA Markdown comment after some text on a line is coloured, and so are the # comment lines of a MySQL dump
Build 487
- AddedThe line commands work on every selection at once: Toggle Comment, Shift Left and Right, Tab and ⇧Tab, Sort and the other Lines commands, Join, Move, Duplicate and Delete Lines, New Line Below and Above, Select Line, and Markdown's bold, italic, code, headings and lists
- AddedSettings ▸ Files ▸ When quitting: keep unsaved changes for next time, ask whether to save them, or save them
- AddedSettings ▸ Files ▸ Save automatically saves every file with unsaved changes every minute, or every few minutes
- AddedClean Up URL is in the menu a right click opens, and over a word of a path it cleans the whole path
- ChangedMake URL-Friendly is called Clean Up URL
- FixedA document undone back to its saved text, or typed back to it, is no longer marked as edited
- FixedQuitting with several unsaved documents offers Save All, and Review Changes goes through them one at a time
- FixedJoin Lines with nothing selected joins the next line to the caret's, and a command with nothing to change no longer marks the document as edited
- FixedMoving a file's last line up no longer adds a line ending, and deleting it no longer leaves an empty line behind
Build 486
- FixedIn HTML and XML, a tag spread over several lines keeps its attributes and values coloured on every line, a quoted value can run over lines, and <!DOCTYPE> is coloured as a tag
- FixedSwift raw strings such as #"a "b" c"# end where they end, Java text blocks run over their lines, a PHP 8 attribute is not a comment, and die and exit are PHP keywords
- FixedMarkdown's numbered lists and horizontal rules are marked, and a diff's Index: lines are coloured like its other headers
Build 485
- AddedSeveral pieces of text can be selected at once: ⌘-drag adds a selection and ⌘-double-click adds a word, and ⌘-click still jumps to a definition
- AddedThe text commands change every selection together, as one Undo: the case commands, Encode and Decode, Normalise Unicode, the number commands and the conversions
- AddedMake URL-Friendly writes a path or an address in lower case, with umlauts written out and spaces as hyphens: /Menü-Über-uns.jpg becomes /menue-ueber-uns.jpg
Build 484
- FixedShell scripts: $#, ${#list[@]}, ${path##*/} and 16#ff no longer turn the rest of the line into a comment, and variables are coloured, in double quotes too
- FixedCSS: url(//…) and url(https://…) no longer start a comment, !important and newer at-rules such as @container and @layer are coloured, and every way of writing a colour looks the same
- FixedSwift: override, final, weak, lazy, mutating and the other modifiers are coloured, #if lines are shown as conditions, and $0 as a value
- Fixed/** … */ and /*! … */ are coloured as documentation in C, Objective-C, C++, Java, JavaScript, Swift and the other languages that write them
- FixedGo's raw strings, Lua's long strings and comments, TOML's strings over several lines, YAML blocks of text after | or >, and C directives continued with \ are coloured over all their lines
- FixedRuby's @variables, symbols, regular expressions and %w() literals, Perl's variables, quote-like operators, documentation and heredocs, Elixir's @attributes, atoms and charlists, and Erlang's variables and characters are coloured as what they are
- AddedMore keywords in Objective-C, SQL and its dialects, Java, TypeScript, VHDL, Verilog and Lasso; comments in USD files; OmniJS scripts and .mark files are recognised
- FixedMarkdown's <!-- comments --> are coloured, and Toggle Comment writes them; it writes ; in Windows INI files and .\" in manual pages
Build 483
- FixedYAML, TOML and INI values are coloured as what they are: a comment after a quoted value is a comment, strings in lists and maps written on one line are strings, and a # inside a string or an address is text
- FixedA regular expression in JavaScript and TypeScript is coloured as one; a quote or /* inside one no longer turns the rest of the line into a string or the rest of the file into a comment
- FixedThe text inside CDATA in XML is shown as text, not as markup
Build 482
- FixedIn nginx and Caddy files, crontabs, Dockerfiles and shell scripts, paths and addresses are no longer coloured as numbers part way through
- FixedA dot followed by a name is no longer taken for part of a number: in 1.max(2) and a-1.jpg only the 1 is a number
Build 481
- FixedIn .htaccess and other Apache configuration files, paths and addresses are no longer coloured as numbers part way through, and a section's tag is coloured whole
- FixedA word that only starts with a digit, such as 3er-Reihe or 2022-report, is no longer coloured as a number
- FixedBrackets in comments and strings keep the colour of the comment or string, and no longer put the bracket colours after them out of step
Build 480
- ChangedThe Character Inspector is as wide and as tall as what it shows, up to a height past which a long list scrolls
- FixedIn Commands, Go to Anything and Go to Symbol, a name longer than its row ends in an ellipsis instead of being cut off
- FixedVolt's own checks run without making the alert sound
Build 479
- FixedThe Character Inspector shows the characters that turn text round or take no room by their short names, such as [RLO] and [ZWSP], and keeps its table left to right for Hebrew and Arabic
- FixedA character carrying thousands of accents no longer holds the Character Inspector still
- FixedThe FTP window asks a server that cannot be reached, or that refuses the login, once rather than twice
- FixedA hidden file stays listed in the FTP window after something beside it is renamed, moved or deleted
Build 478
- FixedThe FTP window lists hidden files such as .htaccess when Show Hidden Files is on; most servers had left them out
- FixedIn Commands, the selected row is readable: its title in white, with what matched in bold
- ChangedURL-Encode and URL-Decode are called that, so Commands finds both when url or percent is typed
- AddedCommands opens on what was last searched for, selected, so it can be typed over
Build 477
- FixedThe Character Inspector keeps the size it is given and scrolls a long selection's list, instead of growing taller than the screen
- FixedVoiceOver says which permission each box in Permissions stands for, and which file each Staged box in the repository window stages
- FixedDragging out a large selection stays smooth while the Character Inspector is open
- FixedClicking into the Character Inspector to copy from it keeps its columns and type
Build 476
- ChangedThe Unicode form's menu in the status bar ticks the form the text is in, as the character set's does, instead of repeating it as an item that cannot be chosen
- Changed⌘I opens the Character Inspector. Markdown's Italic no longer has a shortcut of its own
- ChangedThe Character Inspector is laid out as a table: what each line is about on the left, and the code points, bytes and HTML on the right, ready to copy
- AddedWith several characters selected, the Character Inspector shows all of them, with how many characters, code points and bytes they are
Build 475
- FixedA file's name and folder above its search results are no longer cut off when the folder's path is long
- FixedA long list of search results scrolls without slowing down
- FixedOpen Recent and the Dock's menu no longer wait on a network server that has stopped answering
Build 474
- FixedA recent file that has been deleted no longer stays in the Dock's menu, where clicking it did nothing
- AddedA deleted recent file can be put back from the last version Volt kept of it: offered when it is found missing, in Open Recent and in the Dock's menu
- FixedThe warning that a file could not be found is shown even when every window is in the Dock
- FixedA web address with no file name, such as a site's home page, opens as HTML: the type and character set the server gives are used
- FixedA web page too large to open is stopped as soon as it shows itself too large, instead of being downloaded whole first
- AddedA right click on a line number offers the bookmark commands: add one with or without a note, edit its note, remove it, and the commands for all bookmarks
- AddedThe status bar shows whether the text's accented letters are composed (NFC), decomposed (NFD) or mixed, with a menu to convert the whole document
- FixedNormalise Unicode to NFC and NFD now changes the text; it beeped and did nothing
- AddedA search of several files lists each file's matches under its name, which the list's heading can switch off
- FixedThe list of search results is on white rather than grey, and a selected row is easy to read
- AddedThe Character Inspector says whether a character is composed (NFC) or decomposed (NFD), and what it is in the other form
- AddedTab stop lines: a faint line at every tab stop, from View ▸ Show and Hide or Settings
- AddedSettings ▸ Printing: the font, the header with the file's name or whole path and the date printed or last saved, a frame round the text, an inch for binding, and whether long lines wrap or are cut off as in the window
- AddedGit commit messages and rebase plans, manual pages, Textile, Lasso and USD scenes are coloured, and more file types are recognised
Build 473
- ChangedThe line numbers in the repository window take less room and are part of the diff, and the commit, its summary and each file's name start at the left edge
- FixedA commit's box at the top of the repository window starts at its edge, with one border rather than two
- AddedSearching the history marks what was found: in the list of commits, in the message over the diff, and in the diff itself for a search of the changes, with the first match brought into view
- FixedSwitching to a branch that another working folder of the repository is on says so plainly, with where, and offers that folder's window; the Branches list marks such branches
- AddedIn the hex editor, ↑ and ↓ count the selected bytes up and down, ⌥ by sixteen
- FixedTwo spaces typed quickly stay two spaces instead of becoming a space and a full stop, and an accent chosen by holding a key replaces the letter instead of being added after it
Build 472
- ChangedGit is a menu of its own, ordered by how often each command is reached for: commit, push and pull first, then this file's changes, who changed what, the branch, and the rest grouped under Compare, Working Copy, Remotes and Conflicts
- ChangedFind is a menu of its own after Edit, in a clear order: this document, then other files with each find beside its replace, then Matches and Line Filter, then saved searches and settings
- ChangedLeaner menus: Text has its tools grouped under Transform, Script, Colour and Statistics and Checksums; File is in the usual order with Print last; the two links to web pages are gone
- AddedVim mode has a shortcut: ⌥⌘V
- AddedOpen Remote opens an address on the web: the file is fetched over HTTP or HTTPS and opened under its own name, to be saved wherever you choose
- FixedWhile a file on a server is opening, the pointer over the buttons is an arrow, not a text cursor
- FixedClearer German menu names, and the ellipsis written the same way everywhere, as the Mac writes it
- FixedA printed JSON preview leaves off the fold arrows, which are for clicking, and prints in the paper's colours rather than a dark theme's
- AddedEvery window comes back after a relaunch, not only documents: the repository window, a file's history, comparisons, the FTP window, the find window, the settings, the help, pictures and project reports, each where it was and showing what it showed
- FixedA window that was in the Dock when Volt quit is back in the Dock, rather than on the screen
- ChangedThe repository window wraps long lines of code at its edge instead of scrolling sideways, with each line's numbers beside its first row
- FixedThe Commit button and the menu of recent messages are no longer cut off at the bottom of the repository window
- AddedThe list of search results has a line along its top that can be dragged to make it taller or shorter; the next list opens at that height, and a double click puts it back
- AddedVolt opens .txt and .log files when they are double-clicked, from its first launch; Settings ▸ Files shows what opens them and can make it Volt again
- FixedA long line of a commit message wraps inside its box instead of running out of sight
Build 470
- AddedFind and Replace in Project on a machine without Perl, and on an FTP server: the files that may match are fetched and searched here — over SSH only the ones grep finds the text in, over FTP every file, after asking when that is a lot
- AddedA search by shape works on a project on another machine too
Build 469
- AddedFind and Replace in Project work on a project on another machine: in a window with a file opened over SSH or SFTP, the whole project there is searched and replaced on that machine, without downloading its files — only the matching lines come back
- FixedReplace in Project replaces in every file with a match, not only in the files a list of five thousand matches reached, and says so when a project has more files than it lists
Build 468
- FixedChoosing a commit whose changed line differs only in how an accented letter is encoded no longer quits Volt
- FixedChoosing a commit of thousands of files no longer holds up the Git window: its files show at once, and how many lines each changed when git has counted them
- FixedAfter a stash is restored or thrown away, the Git window shows the stash that is now first, not the one that went
- FixedStashes saved with a message show their branch, and a merge that kept its own side shows that it changed nothing
- FixedMore commits or their sizes arriving no longer lets go of the file chosen in a commit, and oldest first is newest first the other way up
- FixedA diff with a carriage return inside a line keeps its line numbers and colours
- FixedBackups before saving: a path that was a file and is a folder now, or the other way round, no longer stops saves or mixes backups up; files whose names differ only in capitals keep a backup each; and a second save in one second is numbered after its time
Build 467
- FixedRestoring a version puts back exactly what it held, and is refused while a filter hides lines rather than mixing the version with the hidden ones
- FixedBrowse History no longer holds up its window on a very large text, or on going back past a Replace All of thousands of changes
- FixedOpen This Version opens a read-only copy, makes one copy however often it is opened, and no longer holds up the window for a big version
- FixedComing back to Browse History keeps the point you chose, rather than the one before it with the same time
- FixedGo to Line with an enormous count before or after the current line goes to the first or last line instead of quitting Volt, and going to a character is quick in big files and right in lines longer than a megabyte
- FixedMarkdown's list and quote commands are refused over lines a filter hides, instead of doubling them
- FixedWindows no longer wait for the undo steps of a very large file to be written
Build 466
- FixedUndo steps kept from an earlier session come back only for exactly the text they belong to: a file changed elsewhere in the meantime, even by one character in its middle, no longer gets steps that would damage it
- ChangedUndo steps kept between sessions take about a quarter of the room they did, so four times as many are kept
- ChangedA backup made before saving takes about a third of the room on disk, and is still an ordinary file that every app opens
- AddedEvery save is kept as a version, so what a file said when it was saved can always be had back from Browse History
- ChangedVersions of big files are kept several times faster, and a version damaged on disk is reported rather than restored wrong
- ChangedVersions and the backup before saving have a Settings tab of their own, Versions, beside Backups — together they no longer fit on one
- FixedA Settings tab taller than its window, such as Editor or Files, opens at its first setting rather than scrolled to its last
Build 464
- AddedEdit ▸ Browse History… lays a document's past out on a timeline, as Time Machine does: every step of Undo and Redo, and the versions Volt keeps, each shown against the text as it is now. Go Back to Here walks Undo to an edit without losing what came after it, and Restore This Version brings a version back as one edit
- AddedVersions of what you edit are kept every minute while it changes — saved or not — every one from the last hour, then one an hour, one a day and one a week. They are kept incrementally, so a change to a big file costs only what changed; big files are kept less often, and Settings ▸ Backups sets how often and up to what size (500 MB unless told, or any size)
- AddedMarkdown editing: Return continues lists, task lists and quotes and ends them on an empty item, Tab and ⇧Tab move an item in and out, and Edit ▸ Text ▸ Markdown toggles bold (⌘B), italic (⌘I), strikethrough, code, links (⇧⌘K), headings, quotes, lists and tasks. Pasting an address over selected words makes a link
- AddedGo to Line takes BBEdit's forms as well — :C for a character, A-X for lines, A:B-X:Y and 0:B-0:Y for ranges, -N and +N for lines around the caret — and lists every form beside what it does
- ChangedThe JSON preview is set in the editor's own font, size, line height and spacing, so it reads line for line like the text beside it
Build 463
- AddedSettings ▸ Backups can make a backup before saving: the version on disk is kept just before a save replaces it — in Volt's backups folder or beside the file as name~, one to a file or every version with its date and time — and Show Backups Folder opens it in the Finder
- FixedA file opened through a symbolic link — a dotfile kept in a repository, for instance — is saved into the file the link points at, with the link kept, instead of the save failing
- FixedA save that fails at its very last step no longer leaves a hidden temporary file beside the file
Build 462
- AddedJSON files have a preview: indented and in the editor's colours, with every object and array folded shut and open again with a click — saying, when shut, how many keys or items it holds. Keys stay in the file's order and numbers as they were written
- AddedThe JSON preview takes comments and trailing commas in its stride, shows JSON Lines one value after another, and for a file that isn't valid JSON says what is wrong and on which line and column, while still showing the rest
Build 461
- ChangedThe Git window shows diffs as GitHub does: added and removed lines on green and red bands, each line's number before and after beside it, the part of a changed line that changed marked, and each file headed by its name and how much of it changed
- ChangedThe Git history runs the whole width of the window, with the chosen commit's files beside its diff underneath; a commit's branches and tags are in coloured labels, its author has a round badge with their initials, dates read Today and Yesterday, and its short hash has a column of its own
- ChangedA commit's details sit over its diff as on GitHub: the message, who made it and when, its hash and parents, and how many files, additions and deletions it has
- AddedEvery list in the Git window sorts by a click on a column heading, and its columns can be dragged into another order, resized, and shown or hidden from the heading's right-click menu — and stay as you left them
- ChangedChanged files are marked as GitHub marks them — added, changed, deleted, renamed — with the folder in grey and the file's name in full
- ChangedThe Branches list is in three parts — branches, remote branches and tags — with each branch's last commit, author and date, and how far it is ahead of or behind the branch it follows
- ChangedPull and Push show how many commits there are to pull and to push
- ChangedA new file in the Changes list shows its lines, all of them added
- FixedA merge in the Git history shows what it brought into the branch instead of nothing
- FixedFiles with accented letters in their names are listed under their real names in a commit and open in its diff
- FixedComing back to the Git window keeps the commit you were reading instead of jumping back to the newest one
- FixedA remote's default branch no longer shows up in the Branches list as a branch of its own
- FixedOpening Find — in the bar or in its window — or switching from one to the other no longer beeps when the text in the field isn't in the document: it says “Not found” instead. Find Next and Find Previous still beep when there is nothing more to find
Build 459
- AddedThe Git history says how much each commit changed — files, and lines added and taken away — in a column of its own
- AddedNotes on commits: a commit with a note is marked ✎ in the history, the note shows when you point at it and under its message, and Add Note… puts one on without changing the commit
- AddedAn annotated tag's message — who tagged, when and why — shows when you point at the commit it marks, and under its message
Build 458
- AddedWhat the status bar shows is yours to choose — line and column, lines and size, iCloud, the Git branch, whether the file is in memory or mapped, its language, line endings, indentation and character set, the preview button — in Settings ▸ Appearance, or with a right click on the bar
- AddedPrinting has colours of its own: Automatic, Black and White, or any theme, chosen in the print panel, where the preview shows them, or in Settings ▸ Appearance. A dark theme prints on its own background, for a PDF read on a screen
- AddedWhere a language server is running, its colours take the place of Volt's own guesses from the words: which names are types, functions, macros or only variables. Settings ▸ Appearance switches it off
Build 457
- AddedFind & Replace searches every open document and the files opened recently as well as this document and the project: Find All lists every match by its window, and a click brings that window forward to the match
- AddedReplace in Open Documents… replaces in every open document at once, after saying how many matches in how many documents; each window takes its change back with its own Undo, and nothing is saved
- AddedInsert Colour… opens the colour picker and writes the colour picked at the caret as #rrggbb — over the selection, if there is one — following the picker as it moves; one undo takes it away again. It is in Edit ▸ Text and in the text's right-click menu
- ChangedToggle Comment (⌘/) is in the text's right-click menu too, for every language that has comments: it comments out the lines picked, or part of a line, and takes the comment off again
Build 456
- AddedApple Intelligence: Writing Tools, in the Edit menu and the text's right-click menu, proofread and rewrite what is selected — or a short document whole — make it friendlier, more professional or shorter, summarise it, or turn it into key points, a list or a table. What is accepted goes into the text as an edit that undoes
- FixedFind with something selected finds that selection even with Regular Expression on: its brackets, dots and the like are no longer read as a pattern
- FixedA search over several lines opens in the Find & Replace window, which shows it whole, rather than being drawn over the find bar
- AddedThe Character Inspector shows how a web page writes the character — by its HTML name where it has one, and by number in decimal and hexadecimal — ready to copy
Build 455
- FixedCompare Revisions…, Compare with Previous, the two commit sheets, Add and Discard Changes no longer hold the window still while a big repository is read
Build 454
- AddedFind & Replace in a window of its own, with fields big enough for long patterns and replacements over several lines, every option in sight, recent searches and replacements, saved searches, and Count, Find All, Extract, Previous, Next, Replace, Replace & Find and Replace All — in the document or across the project. The ⤢ button in the find bar opens it, and from then on ⌘F does too
- AddedExtract Matches puts every match in a new document, one to a line — or, with something in Replace, what each match becomes
- AddedReplace in the Find & Replace window replaces the selected match and leaves it selected; Replace & Find goes on to the next one
Build 453
- AddedThe Git menu has every command a working copy needs: check out or start a branch; add, discard or remove the file; stash, apply and pop; commit what is staged or the whole working copy; see what has changed; compare the file with what is staged, with HEAD, with its previous version or between any two revisions; and fetch from, pull from and push to a remote by name
- FixedA branch that is only on the server becomes, when checked out, a branch here that follows it
- AddedCopy with Styles puts code on the clipboard so that it pastes into Mail with its colours and its background
- FixedThe text no longer warns about spaces at the ends of lines or a missing line break at the end of the file — Clean Up takes care of those — and Clean Up's marks go away with the next edit
- ChangedThe Clean Up dialog says in a few words what each fix does
- ChangedShuffle Lines is called Sort Lines Randomly
- AddedThe FTP window compresses files and folders as Tar, Tar.gz and RAR (with RAR installed), and unpacks tar, RAR and 7-Zip archives on this Mac. gzip and the other formats that pack a single file are offered for files only
- AddedA click on the progress at the foot of the FTP window drops the Activity list down over it, and waiting transfers are dragged into the order they should run in
- FixedThe foot of the FTP window lines up on both sides, and its Activity button no longer reads “Button” before anything has been queued
Build 452
- AddedA right click on a word picks it, and the text's menu offers Look Up, Translate, Search With Google, Copy with Syntax Highlighting, Copy as XHTML, Share, Split Selection Into Cursors, Fold Selection, Transformations, Sort, Remove and Clean Up Document
- AddedRenames in the FTP window can be undone and redone, on the server and on this Mac
- FixedA rename in the FTP window never writes over a file or folder — not even another of the files being renamed
- ChangedRename by Rule opens as it was left, keeps rules under names to pick again, numbers without a space in front unless one is typed, and moves between its fields with Tab
- FixedShowing a column in the FTP window no longer squeezes the other columns: the name gives way
- ChangedGo to Folder… is in the menu on the last folder of the path rather than the right-click menus, and this Mac's side offers Choose Folder… there too
Build 450
- RemovedEnclosing Folder is gone from the FTP window's right-click menus: ⌘↑, Back and the menu on the last folder of the path all go up
Build 448
- AddedThe FTP window has a queue: downloads, uploads, compressing and synchronising wait their turn in the Activity window, where the queue can be paused and put in another order, and any job cancelled or tried again. Every change made on a server — a new folder, a rename, a deletion — is listed there too
- AddedFiles and folders can be dragged from one server to another, between FTP windows
- AddedBack and Forward on both sides of the FTP window, with ⌘[ and ⌘]
- AddedThe space bar shows files on a server in Quick Look
- AddedThe date a file was made, for servers reached over SSH that can say
- ChangedRename by Rule and Permissions are clearer: fields to type in, every name beside what it becomes, and the usual permission settings to pick from
- ChangedHidden files are shown on servers until you hide them; this Mac's side keeps its own setting
- ChangedThe columns of the FTP window keep the widths their contents need, and the name takes up the rest
- FixedClosing a large file from a server no longer takes a long time when nothing in it was changed
- FixedRenaming a file in the FTP window shows a field to type in, rather than typing onto the highlighted row
- FixedOpen With is no longer offered for folders
- FixedDragging from one FTP window onto another window's Mac side fetches from the right server
Build 446
- ChangedThe path along the top of the FTP window stays readable however deep the folder: names are shortened evenly, never to less than a few letters, and what still does not fit scrolls sideways, kept at the folder you are in, with every folder above it in the menu on its last part
- ChangedSearch and Places sit in the FTP window's top row, leaving the row below for the path
Build 445
- ChangedVolt is out of beta: nothing expires, and nothing stops working after a date
- ChangedIn the FTP window, folders unfold where they are, a right click on the column headings chooses the columns — size, date modified, kind, permissions, user and group, and on this Mac the date created — and the rows are no longer striped
- ChangedEach side of the FTP window has its path along the top on white: the server's begins with the button that disconnects, and its last folder opens a menu of the folders above it; ⇧⌘G goes to a folder by its path
- AddedThis Mac's side of the FTP window has the server side's commands and the Finder's: Quick Look, Open With, Move to Trash, Duplicate, Compress and Uncompress, Rename by Rule, Permissions, New File and New Folder, Copy Path, Open in Terminal, and places of its own
- FixedA large file on a network share, an external disk or a disk image no longer takes Volt with it when the disk goes away
- FixedRare crashes: a file with lines that look like the marks of a merge conflict in an unusual order, certain .editorconfig patterns, two copies of one unsaved document in Recover, and extreme numbers from language servers, linters and other programs
- FixedA server can no longer make Synchronise write outside the folder it was given
Build 441
- ChangedWith lines wrapped, text scrolls smoothly under the trackpad instead of a line at a time
- AddedEdit ▸ Text ▸ CSV to TSV and TSV to CSV, for the selection or the whole document, with quoted fields kept intact
- FixedA text command that cannot do what it was asked — a Decode that meets something that is not Base64, a Format JSON on something that is not JSON — now says so even with the find bar closed, and a command run from the palette no longer reports “done” over its own error
Build 438
- FixedBookmarked lines deleted by hand come back with their bookmarks when the deletion is undone — before, only Delete Bookmarked Lines gave them back
- ChangedThe hex editor is made wider or narrower by dragging its edge, as the preview is
Build 437
- AddedThe Markdown preview shows emoji written by name — :rocket:, :white_check_mark: — and links mail addresses written in the text
- AddedObsidian's callouts in the Markdown preview, with titles of their own and folding open or shut, and its [[links between notes]] and ![[pictures by name]]
- FixedMathematics written between dollar signs arrives in the preview as it was written, instead of being read as Markdown and coming out in italics
Build 436
- ChangedThe Markdown preview reads all of Markdown as GitHub does: headings underlined with = or -, indented code, numbered lists that keep counting across blank lines, tasks, aligned tables, links to references defined elsewhere, footnotes, alerts, web addresses that link themselves, backslash escapes, and the HTML a README carries — <details>, <kbd>, <sup>, centred pictures — with anything that could run a script left out
- AddedDefinition lists, ^superscript^, {#anchors} on headings and front matter in the Markdown preview
- FixedIn the Markdown preview, snake_case_names are no longer half in italics, and ***bold italic*** is both
- FixedA highlighted passage prints highlighted from the preview
Build 434
- AddedThe preview can be printed: the printer in its bar prints the page as it is rendered — headings, tables, pictures, coloured code — on white paper whatever theme the window uses, and ⌘P prints it while the preview has the keyboard
Build 433
- ChangedA click below the last line puts the cursor at the end of the text, as in every Mac text view, instead of in the column under the pointer on the last line; a drag to there selects to the end
- FixedThe sheet for adding or changing an FTP server shows all its fields again — the server’s own field was squeezed to a sliver and the section headings were missing — and it grows to make room for the SSH key when SFTP is chosen, also when a pasted sftp:// link chooses it
- FixedFor SFTP, an empty port means 22 rather than 21, and Passive mode, which only FTP has, is greyed out
- FixedThe search field in the History of the repository window has its full height again
Build 430
- FixedZips and other files that are not text open several times faster — a 200 MB archive in a tenth of a second rather than two — and saving one after a change leaves every other byte in it exactly as it was
- ChangedThe first window after Volt starts opens a tenth of a second sooner
Build 428
- Fixed⌘T in the FTP window opens another connection rather than an empty document, and there is a + beside Disconnect that does the same — before, tabs could only be made by dragging, which is no way to find out they exist
Build 427
- FixedA way in to a server through another machine is closed when the last FTP window closes, and when Volt quits, rather than outliving them
Build 426
- FixedPHP in web pages is coloured properly: PHP inside an HTML attribute, between a tag's attributes and inside a script is PHP, PHP variables have their own colour, $name inside a string is highlighted, and heredocs are read as text up to their closing word
Build 424
- ChangedThe list of files on this Mac keeps itself up to date: a file saved by another application appears without anybody asking for it
- ChangedShow Hidden Files means the same on both sides of the FTP window
- AddedSeveral servers at once: an FTP window is a tab, so ⌘T opens another connection beside the first, a tab can be dragged out into a window of its own, and Window ▸ Merge All Windows puts them back
- AddedA server that can only be reached through another machine says so — Through: gate.example.com — and Volt goes that way: over SSH it is ssh's own jump, and over FTP the last machine forwards a port, with the server's name kept right for TLS
Build 422
- AddedGit ▸ Clone… copies a repository from a server into a folder on this Mac, with a progress bar and a Stop button, then opens its history and its README
- AddedSome files can be put aside on their own: right-click them in the repository window's list of changes and choose Put Aside…, and the rest of the work stays where it is
Build 420
- AddedVolt remembers what a window showed beside the text: the preview or the hex editor comes back with the session, and a file opened again later shows the preview, hex editor and panels it had when it was closed
- FixedThe Markdown preview no longer leaves a wide empty space above the first heading
Build 418
- AddedMarkdown highlights: <mark>text</mark> and ==text== show as highlighted text in the preview, and are coloured in the editor
Build 416
- FixedThe repository window names the branch of a repository that has no commit yet, and takes its first commit
Build 415
- AddedSend to the Server and Fetch to This Mac move what is picked between the two sides of the FTP window, for when dragging nine files is more work than choosing them
- ChangedSynchronise… no longer asks which folder on this Mac: it is the one on the left of the window, and it asks only which way
- AddedThe list of files on this Mac takes Return to open, ⌘↑ for the folder above and ⌘R to look again
- ChangedThe FTP window's own words are kept in a table of their own, so two people can work on Volt without treading on each other's translations
- Added⌘1 to ⌘4 switch between the repository window's four parts
- AddedA file in a commit of the history can be opened as it was, compared with how it is now, put back, or followed through its own history, from its menu or with a double click
- AddedBranches can be renamed, and shown in the history, from their menu in the repository window
- ChangedThe commit message is spell-checked, and quotes, dashes and words in it are left exactly as typed
Build 410
- AddedThe repository window's history draws the branches beside the commits: where they part, run side by side and join again
Build 409
- AddedDiffs in the repository window mark the part of a changed line that actually changed, so one changed number in a long line stands out
Build 404
- AddedThe repository window's history goes back as far as the repository does: older commits are read as the list is scrolled
- AddedIn the list of changes, the space bar puts the selected files into the next commit, or takes them out
- AddedDouble-click an author in the blame column to see the whole commit in the repository window
- FixedAfter the last change was committed, the buttons of its diff no longer stay on the screen
Build 403
- AddedThe repository window's Branches list shows the tags as well: a double click shows the commit a tag marks, and a tag can be deleted
Build 402
- ChangedThe FTP window is this Mac on one side and the server on the other, as a transfer window should be: the same path bar, listing and search on both, and dragging a row across is a transfer in that direction
- ChangedYour servers and their files share one side: the list is there until you connect and comes back when you disconnect
- AddedThe repository window shows the branch and how far it is from the server, with Fetch, Pull and Push right there — and the Git menu's Fetch, Pull and Push act on that window's repository when it is in front
Build 399
- AddedEvery part of the repository window can be resized by dragging the line between parts, and the window remembers each size, and its own size and place, for next time
- FixedMaking the repository window wider no longer changes the height of the commit message area
Build 398
- AddedFind (⌘F) searches the diff shown in the repository window
- AddedThe last commit can be undone from the history while it has not been pushed: its changes are staged again and its message is put back, ready to commit differently
Build 397
- AddedRight-click a file in the repository window to stage, unstage, discard, open, show in the Finder, compare, see its history or ignore it
- AddedRight-click a commit in the history to copy its hash or message, or to start a branch or a tag there
- AddedThe history shows which commits the branches and tags point at, and Push takes new tags to the server with the commits they mark
Build 396
- AddedGit ▸ History of Selected Lines… shows every commit that changed the selected lines, following them as they moved about the file, with what each commit did to them
- FixedIn the history of one file, moving from commit to commit now always shows the file's changes in the commit chosen
Build 395
- AddedEvery change in the repository window's diff has its own Stage, Unstage and Discard buttons, which say Lines when some of its lines are selected
Build 394
- AddedThe repository window's history shows each commit's whole message, full hash, author and date over its changes, ready to read and copy
- AddedThe history can be searched by author, by what the commits changed, or for one commit by its hash, as well as by message
- FixedThe history of a file that was never committed says so, instead of showing an empty window
- FixedOpen This Version and Restore This Version are only offered when there is a version to open or restore
Build 393
- AddedSome lines of a change can go into the next commit without the rest: select them in the repository window and Stage Lines — or take them back out, or throw them away
- AddedA new branch is published by its first push, and follows the server's copy from then on
- AddedCompare Side by Side shows a changed file beside the last commit's version of it, straight from the repository window
- AddedThe commit message shows how long its first line is, and the last few messages are there to start from
- FixedEvery part of the repository window fills the window in every language, instead of sitting at its smallest size in the middle
Build 392
- AddedThe repository window throws away one change on its own, deletes branches, searches the history by message, and puts a file back as any commit left it
- FixedThe repository window has room round its edges, its lists have their headings, and a long commit message no longer pushes the buttons down the window
Build 391
- AddedA single change can be put into the next commit from the repository window: put the caret in it and Stage This Hunk, or take it back out
- AddedThe repository window reads the repository again when it comes forward, and on ⌘R, so a commit made elsewhere is not shown stale
Build 390
- AddedFile ▸ Byte Order Mark turns the mark at the front of a file on and off, ticked when there is one, and ⌘Z takes it back
- FixedA file saved without its byte order mark no longer keeps the old one at the front
- AddedA byte order mark is not written into the files it breaks — .htaccess and anything with a #! line — and opening one that has it says so
Build 386
- AddedA file is recognised by its bytes as well as its name: a file whose name says one thing and whose contents say another says so on opening, with the extension such a file usually has
- AddedA picture opens as a picture — PNG, JPEG, GIF, WebP, HEIC, TIFF, BMP and icons — with its format and size, and a way back to the bytes
Build 385
- ChangedOne window for a repository — Git ▸ Repository… (⇧⌘0) — with what has changed, what happened before, the branches and what was put aside, in place of two windows and two menus
- AddedThe history is the whole repository's as well as one file's, with the files each commit touched and the difference for whichever is picked
Build 380
- FixedEverything Volt asks a server is about sixty milliseconds quicker: it is now told when a command finishes rather than looking every tenth of a second. A listing went from 67 ms to 10 ms, against the 11 ms the same command takes from a terminal, and fifty megabytes go up in 39 ms rather than 207
- ChangedA file fetched from a server is told how big it is by the listing instead of asking the server again, and a send that nobody is watching goes in one piece rather than in two hundred
- AddedHolding Option while dragging in the FTP window copies instead of moving, as it does in the Finder. Over SSH the server does the copying; over FTP a file comes here and goes back, and a folder is refused rather than quietly becoming a transfer of everything inside it
- AddedOption-dragging is checked against a real server by the window's own drop handlers: a copy appears and the original stays, a move onto a name that is taken is refused, and with the way clear the file moves
- AddedSynchronising is checked against a real server in both directions: what differs moves, what matches is left alone, what is only on one side stays there, and running it again does nothing at all
Build 378
- AddedVolt's FTP support can be checked against a real server, not only against what it would have said: a small test server ships with the sources and the checks run the whole thing for real when it is there
- AddedThe live checks also prove that packing, duplicating, renaming and syncing leave alone the files they are not meant to touch, and that the folder they worked in is gone afterwards
Build 377
- AddedGit ▸ Stash puts the working copy aside — new files included — and gives it back, keeping it in the list or not, with what is in it readable before you decide
Build 374
- ChangedMoving, renaming, deleting, making a folder and setting permissions on an FTP server are one connection for the lot, and the listing that follows comes back with them: ten files moved at once cost one login rather than twenty-one
Build 372
- FixedDragging a file to another folder on a server no longer writes over a file of the same name that is already there: what is in the way is named and Replace has to be asked for. Cancel is what Return does
- FixedThe FTP window is quicker: it answers from the listing it is already showing instead of asking the server whether a name is taken, and only asks after an interrupted send where one actually happened
Build 370
- FixedNothing on a server is written over by accident any more: renaming onto a name that is taken says so, a new file will not land on one that is there, a duplicate settles its name with the server, and a folder fetched to this Mac stands beside one of the same name rather than emptying into it
Build 369
- AddedThe file list marks what has changed: a letter beside each name, and on the folders above it
Build 367
- AddedGit ▸ Fetch, Pull and Push, with what is waiting to come and go said in one line — and a pull that would have to merge is refused rather than deciding for you
- ChangedA hash that can no longer prove two things are the same is marked insecure rather than broken: they compute what they always did
Build 365
- ChangedWhat stands between a name and its number when renaming by rule is yours to choose — a space, a dash, an underscore or nothing at all
- FixedA file or folder can be dragged onto a folder in the FTP listing again; the drop was refused before it was ever considered
- FixedPacking and unpacking on a server never write over a file that is already there: the second copy is named the way the Finder names one
- FixedRemove and Edit under the server list are only live when a server is picked
Build 365
- AddedA command for each hash function — SHA-256, MD5, CRC-32, xxHash and seventeen more — each replacing the selected text with its hash
- AddedStage one change rather than a whole file: Git ▸ Stage This Change puts the change the caret is in into the next commit, and Unstage This Change takes it back out
Build 364
- FixedSaved FTP servers come back after an update that adds a new setting to them; they were written down before the setting existed, and the whole list stopped being read because of it
- ChangedThe form for a server is in three parts — the connection, the website it serves and what happens to transfers — and the SSH key is only there for a connection that is SSH
Build 363
- AddedA send to an FTP server that was stopped or dropped is taken up where it left off, as a fetch already was: only the part that is missing goes, and the original is only replaced once all of it is there
Build 362
- AddedMerge conflicts are settled in the editor: Git ▸ Conflicts walks through them and keeps what is here, what arrived, or both — and a file still holding markers says so in the issues list
Build 360
- AddedGit ▸ History… shows what has happened to the file, a commit at a time, with what each one changed in it — and opens or compares any of those versions
Build 359
- FixedSaving a copy of a file from a server over one that is already there replaces it, rather than adding the new file to the end of the old one
- FixedA transfer's progress is shown against the right row in Activity once the list has grown long enough to be trimmed
Build 358
- AddedCommit from the editor: Git ▸ Commit… lists what has changed, shows the difference for each, takes what you tick into the next commit and writes the message — amending the last one too
- AddedGit ▸ Branch lists the branches, including those only on the server, switches between them and starts new ones
Build 356
- FixedA file whose name has an umlaut arrives on a server spelled the way every other system spells it, so it sorts right, matches what a sync compares, and is the address a browser asks for
- AddedA server can be held to a speed, for when the upload is also the connection you are working over
- AddedOpening something large from a server asks first, with the size in the question and Save a Copy beside it
- Added⌘D duplicates, ⌘I is permissions and ⇧⌘N makes a folder in the FTP listing, beside the Return, ⌘O, ⌘R, ⌘↑ and Delete that were already there
Build 353
- AddedCopy Web Address, Copy Path and Copy Server Link: tell a server where its files are served from and at what address, and a file on it copies as the link somebody will open
- AddedPlaces: the folders on a server worth one click, kept with the server
- AddedOpen in Terminal, for a connection over SSH, in the folder you are looking at
- AddedShow Hidden Files, for the .htaccess and .env a server is often opened for
- AddedA server can say what an arriving file and a new folder are set to — 644 and 755 — so a page is not uploaded into one the web server will not serve
- AddedA server can name the SSH key to log in with, for a machine that is not in ~/.ssh/config
- AddedActivity and Transcript: what has been fetched and sent, and what passed between here and the server
- AddedA fetched file is written straight to disk with a progress bar, and a transfer that was stopped or dropped is taken up where it left off rather than started again
- AddedRename by Rule…: replace text, put something before or after the name, number them and change the case, with what the names come out as on screen before anything is renamed
- AddedSynchronise…: a folder here and one on a server compared by size and by when they changed, with every step listed before it happens. One way at a time, and nothing is ever deleted
Build 352
- AddedChanging the character set can be undone: ⌘Z puts back the set the bytes were read as, and the one a save would write
Build 350
- AddedUndo survives closing a window: bringing it back brings its steps back with it, whether it held a file or only what you had typed
Build 349
- FixedSeveral things at once in the FTP window: a large transfer no longer holds up listing a folder, dragging to the Finder has its own queue, folders listed ahead of you never delay anything you asked for, and a server is never asked for more connections at once than it allows
Build 347
- AddedWhole folders travel both ways: dragged out of the FTP window, dropped into it from the Finder, or saved with Save a Copy…. Over SSH a folder goes as one tar down the connection, which is one login however many files are inside; over FTP it is walked a listing at a time
Build 346
- AddedCompress on a server: gzip, bzip2, xz, Zstandard or Zip. Over SSH the machine packs the file where it lies, so a large one costs nothing over the wire; otherwise the bytes come here and go back. Uncompress does the reverse, and the original is always kept
- ChangedPermissions are a grid of read, write and execute for owner, group and everyone, with the number beside it and each following the other; it says who the file belongs to, sets several files at once, and on SSH can give a folder's contents the same and reads the exact bits first so a setuid or sticky bit is not quietly dropped
- ChangedCompare Character Sets reads what you have selected, when something is, and follows the selection as it moves
- FixedReopen Last Closed Window brings back a window that had only unsaved text in it, not just one that had a file
Build 343
- AddedThe Markdown preview colours a fenced block's code in the language the fence names
- FixedA line beginning with # inside a fenced code block is no longer folded as a heading
Build 341
- AddedA listing or a transfer that is taking too long can be stopped, and a folder that would not list offers another go
- AddedCode inside a Markdown fence is highlighted in the language the fence names — ```swift, ```py, ```bash
- AddedUndo survives quitting: a window that comes back can still take its last steps back
Build 338
- AddedPermissions… sets what a file on a server lets people do — 644 for a page, 755 for a script — which is nearly always why a web server will not serve one
- AddedDuplicate makes a copy of a file beside it; over SSH the server does the copying itself
- AddedMore character sets: ISO/IEC 6937, KOI-7, JIS X 0208, and JIS X 0213 in both its wrappings (EUC-JIS-2004 and ISO-2022-JP-2004)
- ChangedMore than one file at a time: opening, saving copies, moving and deleting all act on everything picked, and several copies at once ask for a folder to put them in
Build 334
- AddedThe FTP window opens where it was left: the server it was connected to and the folder it was showing
- AddedClicking a heading sorts the listing by name, size or date; folders stay together at the top
- AddedSave a Copy… fetches what is picked to anywhere on this Mac, for when there is no Finder window to drag it to
- ChangedA folder with nothing in it says so, rather than looking like one that has not been listed yet
Build 333
- AddedClicking the name of a row that is already picked renames it, as in the Finder; ⌘↑ goes to the enclosing folder and ⌘R lists it again
- AddedDropping a file whose name is already on the server asks before writing over it
- ChangedOn an SFTP connection a dozen folders are listed ahead of you in one command rather than one each
Build 332
- AddedSFTP: a saved connection can be one over SSH, and the FTP window lists, opens, saves, renames, moves and deletes on it exactly as it does on an FTP server — with your keys, your ~/.ssh/config and your agent, and the password asked for once
- AddedAn sftp:// link opens like an ftp:// one
Build 331
- AddedFiles and folders can be dragged onto a folder in the FTP listing to move them there, and onto any folder in the path along the top to move them up — the server does the move, so nothing travels over the wire
- FixedDragging into the FTP window works on a folder row as well as into the folder being shown, and a folder can now be dragged at all
Build 330
- ChangedThe FTP listing behaves like a Finder window: renaming happens in the row, files can be dragged in from the Finder and out of the list, Return renames, ⌘O opens and Delete removes
- AddedNew File… makes an empty file on the server, beside New Folder…
- ChangedSwitching folders is immediate: a folder you have been in is shown at once, and the folders inside the one you are looking at are listed ahead of you over a single connection
- FixedThe details of an FTP connection appear while it is happening rather than all at once as the card goes away
Build 327
- ChangedThe FTP window shows one folder at a time with the path along the top: every part of the path takes you back to it, a search field narrows the listing, and the foot says how many items are in the folder and how you are connected
- ChangedYour servers are a sidebar of favourites, each with a dot that says which one is connected
- FixedThe search field in the FTP window is the right height from the first connection, and the servers in the sidebar sit evenly between its edges
Build 325
- AddedAn ftp:// link opens straight away, and a link pasted into the add-a-server form fills it in
- AddedA link to a server you have not saved can be kept in your FTP servers — always ask, add it, or leave the list alone, in Settings ▸ Files
- AddedThe FTP file list shows the size and when each file was changed
- FixedA file over four megabytes opened from a server stayed connected to it, so ⌘S still saves back; it used to open as a local copy
- FixedAsking for a file that is already open on a server brings its window forward instead of opening a second one
- FixedDetails on the opening card says what the connection actually did
- FixedThe labels in the add-a-server form line up with their fields, and the buttons in the FTP window are no longer clipped
- ChangedThe FTP list starts with what is in the folder you connect to, rather than one row saying / with everything indented under it
Build 323
- AddedFiles on an FTP server open and save like local ones: File ▸ FTP… keeps your servers, lists their folders, and a double-clicked file opens in a window that ⌘S sends back
- AddedFTP connections are saved with their port, start folder, passive mode and TLS; the password goes to the login keychain
- AddedA folder on a server can be made, renamed or emptied from the right-click menu
Build 321
- AddedLine breaks can be pasted into the find and replace fields, so a search can span more than one line; ⌥Return puts a line break in as you type
- AddedIn a regular expression replacement, \n, \r and \t stand for the characters they name
- AddedFour more languages are highlighted: Mojo, Zero, Arx and Linguine
- AddedThe print panel turns the file name and the date and time in the page header on and off
- FixedAn empty line between two paragraphs is printed at the same height as the lines around it; without line numbers it used to come out half as tall again
Build 316
- Addedbzip2, Zstandard and xz files open as their text and save packed again, exactly as .gz files do — a .bz2 keeps the level it was packed at
- AddedThe kind of file is the inner file's: dump.sql.zst is highlighted as SQL and gets the icon it would have without the .zst
Build 312
- FixedA .gz that holds several compressed parts — appended logs, cat a.gz b.gz, anything bgzip writes — opens as one text instead of refusing to open
- FixedOpening a .gz that was already coming back from the last session no longer opens it a second time
- ChangedA .gz is saved again at the setting it was packed with, so a file packed hard stays packed hard
- ChangedThe project's files look like a source list: Finder's row height, icons and text, long names cut at the end, and the filter field at the foot
Build 304
- A .gz made of several members opens as one text
- What follows the end of a gzip file is translated too