Skip to content

Releases: jamesccupps/Slate

Slate v0.8.2

Choose a tag to compare

@github-actions github-actions released this 09 Oct 20:34

Slate 0.8.2

Download: on Windows, Slate.exe below (64-bit Windows 10 or 11, signed); Slate 0.2.0 or newer offers this update in its status bar by itself. On Linux, Slate installed from its package updates with sudo apt upgrade; to install it, see the README.

Windows

  • After Help → Open files with Slate…, Windows could ask "How do you want to open this file?" for a .bat file, offering Slate but not the way it ran before, and choosing Slate made .bat files open in Slate instead of running. Slate no longer registers for files Windows runs when they're double-clicked (.bat, .cmd, .vbs, .js, .reg, .py, .rb, .pl, .ahk, .sh) or for .ts, which is often a video. When 0.8.2 starts it takes that registration back by itself, along with a choice of Slate for .bat and .cmd files, so they run again. Edit with Slate on the right-click menu still opens them in Slate.
  • New: Help → Stop opening files with Slate… (once Slate is set up). Slate comes off "Open with", the right-click menu and Default apps, and the file types you set to open with Slate go back to Windows' own choice. Slate stays installed, with your settings and tabs. Uninstalling does the same.

Linux

  • New: Help → Stop opening files with Slate…: the kinds of files Slate opens by default go back to the system's own choice.

Slate v0.8.1

Choose a tag to compare

@github-actions github-actions released this 09 Oct 17:50

Slate 0.8.1

Download: on Windows, Slate.exe below (64-bit Windows 10 or 11, signed); Slate 0.2.0 or newer offers this update in its status bar by itself. On Linux (64-bit, with GTK 4.8 or newer: Debian 12, Raspberry Pi OS 12 (Bookworm) on a Raspberry Pi 4 or 5, Ubuntu 23.04 and newer), Slate installed from its package updates with sudo apt upgrade; to install it, run these two lines in a terminal:

wget -O /tmp/slate.deb https://github.com/jamesccupps/Slate/releases/latest/download/slate-linux-$(dpkg --print-architecture).deb
sudo apt install /tmp/slate.deb

Windows

  • Updates also check that the new Slate.exe is signed by the same publisher as the one running (James Cupps), on top of the release's checksum.
  • Slate.exe --install sets Slate up for your account without asking anything (what Help → Open files with Slate… does, without opening Default apps): for winget and scripts. Installed apps now shows James Cupps as the publisher.

Linux

  • The View and Format menus show what's on: check marks at Word wrap, Line numbers, the theme and the tab's line breaks, and a dot at the tab's language.
  • Go to line leaves the view where it is when the line is already on screen.

Slate v0.8.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 17:09

Slate 0.8.0

Slate now runs on Linux too, Raspberry Pi included.

Download: on Windows, Slate.exe below (64-bit Windows 10 or 11); if you have 0.2.0 or newer, it offers this update in its status bar by itself. On Linux (64-bit, with GTK 4.8 or newer: Debian 12, Raspberry Pi OS 12 (Bookworm) on a Raspberry Pi 4 or 5, Ubuntu 23.04 and newer), run these two lines in a terminal; they get the package for your computer, which adds Slate's apt repository, so sudo apt upgrade brings later versions:

wget -O /tmp/slate.deb https://github.com/jamesccupps/Slate/releases/latest/download/slate-linux-$(dpkg --print-architecture).deb
sudo apt install /tmp/slate.deb

Or download slate-linux-arm64.deb (64-bit ARM, like the Pi) or slate-linux-amd64.deb (PCs) below and install it with sudo apt install ./slate-linux-arm64.deb; the .tar.gz files are the same program to run without installing.

Linux

  • The same engine as on Windows: huge files open instantly (an 826 MB JSON file in a quarter of a second, its lines counted in another quarter), search, Replace all, JSON and XML format, minify and check, and the line tools work the same way, on other threads.
  • The same 52 languages' colors and editing: tabs, find and replace, go to line, comments, moving and duplicating lines, word wrap (wrapped lines continue under their indentation), line numbers, zoom, dark and light (following the desktop).
  • Tabs and their unsaved text come back after a restart; files changed by other programs are noticed and reloaded when they have no unsaved changes.
  • Help → Open files with Slate… makes Slate the app that opens text, Markdown, CSV, JSON, XML, YAML, log and code files when they're double-clicked (Linux lets Slate do that itself; on Windows the same menu item sets it up and opens Default apps).
  • Linux habits: one Slate per session (opening a file from the file manager or slate notes.txt in a terminal adds a tab), files dropped on the window open, selecting text makes it available to middle-click paste, new files get LF line breaks.
  • Updates come through apt: the package adds Slate's own apt repository (signed with Slate's key, which the package brings), so sudo apt upgrade installs new versions with everything else. Removing Slate removes the repository too.
  • Not on Linux yet: the JSON/XML structure panel and path bar, show whitespace, bracket matching and overtype.

Windows

  • Slate.exe is now code-signed: Windows shows James Cupps as its publisher (Microsoft's Artifact Signing). While the certificate is new, SmartScreen may still ask the first time.
  • Nothing else changes in how Slate works on Windows; under the hood, the engine, colors and editing are now shared with the Linux version.
  • GitHub now builds and tests every release for Windows and for Linux on x86-64 and ARM64; only the step that drafts the release can write to the repository.

Slate v0.7.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 11:25

Slate 0.7.0

A speed and polish release. The whole app was audited again, in five parts: the engine, colors, the text view, the window around it, and starting, the session and updates. What was slow, wrong or rough was fixed.

Download: Slate.exe below, for 64-bit Windows 10 or 11. If you have 0.2.0 or newer, it offers this update in its status bar by itself (Help → Check for updates asks right away).

Faster

  • Slate now draws only the text in view, with its own text renderer. Long lines packed with colors (minified JSON, XML or JavaScript) draw 10 to 100 times faster: moving the caret in a 4 MB line of JSON takes 7 ms instead of 60 ms with word wrap, and 9 ms instead of 2 seconds without it.
  • In an 826 MB JSON file on one line, scrolling and typing take 5–10 ms (25–40 ms before with word wrap, close to a second without it). Ctrl+End, Go to line, Select all, zooming and resizing the window are 5–10 times faster, and memory while paging through it stays under 100 MB (it reached 2 GB).
  • Coloring code is about twice as fast, so jumping to the end of a big code file is quicker (a 30 MB C file: 0.14 s instead of 0.25 s).
  • ANSI files open up to 4 times faster and save twice as fast; UTF-16 files open twice as fast.
  • Replace all is up to twice as fast, sorting lines about a third faster, and JSON Format, Check and Minify 15–25% faster.
  • The window shows up a little sooner: the graphics driver loads while the rest of Slate starts.
  • An idle Slate rests: the caret stops blinking a few seconds after the last key or click, as in other Windows apps, and the look for files changed on disk every 2 seconds no longer redraws the window when it finds nothing.

Fixed

  • Find: a regular expression whose match ran over 64 KB (a long string in JSON, say) could be missed where the search crossed one of its 8 MB steps, and false matches reported after it; Replace all acted on those. In files up to 64 MB, regular expressions now find exactly what a search of the whole text at once would; in bigger ones, Count all and Replace all do for matches up to 16 MB.
  • Find previous with a regular expression could select part of a match (": " between two strings) in files over 1 MB.
  • Regular-expression searches no longer freeze the window in files up to 32 MB: they run in the background, as in bigger files. A click made while one runs is kept, instead of the match taking the selection away a moment later.
  • A UTF-16 file with a few broken characters (an odd last byte, say) asks before saving, instead of quietly replacing them.
  • After saving a big file, a line another program added to it right after the save no longer becomes part of your text.
  • After a restart, the note saying which unsaved changes couldn't be brought back (after a power cut, or a file that's gone or doesn't answer) stays on screen, also when Slate starts by opening a file; it used to vanish at once.
  • A file opened while Slate is closing (at its Save changes? prompt, say) opens in the next Slate instead of getting lost, and a Slate started while another one is closing waits for it, then opens with your tabs, instead of in a window that keeps nothing.
  • On a nearly full disk, the session no longer fills it to the last byte, and still keeps the unsaved changes that fit.
  • Colors: Markdown emphasis next to code, Scala symbols, names in backticks in Kotlin, Scala and Swift, CSS inside @media and nested SCSS, SQL's CREATE TABLE, web server logs, G-code's ; at the end of a block, and C++ headers (.h files with classes or templates are C++, not C).

Window

  • Crisp lines at 125% and 150% scaling.
  • Tooltips on the buttons that show a symbol, on the status bar's items, and on tabs (the file's path).
  • Buttons look pressed while you hold them. The structure panel has a scrollbar.
  • Narrow tabs show more of their names.
  • With word wrap, a long line's later rows start under its indentation (and after a PPCL line's number), as in VS Code.
  • Undo and Redo of a change that's out of view bring it to the middle of the window.
  • Prompts with a lot of text keep their buttons on screen, and size themselves right on a monitor with other scaling. So do the find bar's boxes.
  • Easier to read: dim text, warnings and dark mode's comments are more legible, and errors are red and bold, so they can't be taken for a value.
  • The window's border is Windows' own again, so it shows your accent color if you've turned that on.

Slate v0.6.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 20:58

Slate 0.6.0

Seven more languages: Dart, Scala, Objective-C and Objective-C++, G-code, and the Inno Setup and NSIS installer scripts.

Download: Slate.exe below, for 64-bit Windows 10 or 11. If you have 0.2.0 or newer, it offers this update in its status bar by itself (Help → Check for updates asks right away).

New languages

  • Dart (.dart) and Scala (.scala, .sc, .sbt): keywords and types, strings with $name and ${…} colored inside them, nested comments.
  • Objective-C (.m and .h files with #import, @interface and the like, so a C header or a MATLAB file stays what it is) and Objective-C++ (.mm): the @ words, @"…" strings and @42-style literals, YES, nil, self.
  • G-code (.gcode, .gco, .ngc, .nc, .cnc, and a slicer's output whatever its name): G and M codes, parameters, line numbers, comments, M117 messages, Klipper commands.
  • Inno Setup (.iss, .isl): sections, Name: value; parameters, {app}-style constants, the preprocessor, and the [Code] section as Pascal Script. Toggle comment uses ; outside [Code] and // inside it.
  • NSIS (.nsi, .nsh): commands, ! directives, $VARIABLES, ${defines} and $(strings) (inside quotes too), labels, and lines continued with \.
  • Each one is in Format → Language, works with Toggle comment, colors Markdown code blocks marked with its name, and is offered in "Open with" once Help → Open files with Slate has set that up (so is .ppcl).
  • None of them colors slower than C does, and the languages that were already there are as fast as before.

Slate v0.5.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 19:21

Slate 0.5.0

Slate now reads PPCL, the language of Siemens APOGEE and Desigo field panels, and its prompts follow dark mode.

Download: Slate.exe below, for 64-bit Windows 10 or 11. If you have 0.2.0 or newer, it offers this update in its status bar by itself (Help → Check for updates asks right away).

PPCL

  • Programs are colored much as Desigo's own editor shows them: commands and IF, THEN, ELSE, GOTO in the keyword color, point names in quotes, states and resident points (ON, OFF, FAILED, DAY, TIME, $LOC1, @OPER) in a color of their own, C comment lines in green, numbers and times, and the line numbers dimmed so the statements stand out. %X% abbreviations from DEFINE are marked inside point names. A program's own local points in quotes ("$TMR"), DEFINE's text and OIP keystroke strings stay plain, as in Desigo.
  • What can't be right shows in red: a line number out of order (or used twice), a quote left open, a GOTO or GOSUB without a line number, an operator PPCL doesn't have (.NOT.), a priority it doesn't have, and a name over 6 characters without quotes. Lines turned off (# 00100 …) and statements the compiler couldn't read (UNKNOWN (…)) are dimmed.
  • The .txt files Desigo exports programs to are recognized by their numbered lines (five digits, or short numbers like 10), and so is a program pasted into a new tab. Files named .ppcl, and .pcl files that read like PPCL, open as PPCL too; Format → Language → PPCL picks it by hand.
  • Toggle comment (Ctrl+/) comments lines out the PPCL way: the C goes after each line's number (00010 C SET(…)), and comes off again the same way.
  • Markdown code blocks marked ppcl are colored as PPCL.

Dark mode

  • The prompts (save changes, reload, the update, About, error messages) are drawn in Slate's colors now instead of staying light when Slate is dark. They're still Windows' own buttons and text: Tab, Enter, Esc, the underlined letters, screen readers and Ctrl+C (copies the message) work as before. The Open and Save As windows are Windows' own and follow Windows' light or dark setting.

Slate v0.4.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 15:07

Slate 0.4.0

Big files keep their unsaved changes now, network files no longer freeze the window, and there's a set of small editing features people expect, 13 more languages and an XML structure panel.

Download: Slate.exe below, for 64-bit Windows 10 or 11. If you have 0.2.0 or 0.3.0, it offers this update in its status bar by itself (Help → Check for updates asks right away).

Your work

  • Unsaved changes to files over 64 MB come back after closing Slate, like smaller files' already did. Only what you typed or pasted is kept, never a copy of the file. If the original file changed or is gone when you come back, your edits aren't laid over it: the text you added opens in a tab of its own, the file opens as it is now, and Slate tells you why.
  • A tab whose file is on a network share that doesn't answer waits and tries again by itself (or when you click Try now), and opens once the share is back.
  • Files open and reload in the background: a slow share or disk no longer freezes the window ("Opening…" shows meanwhile).

Editing

  • View → Show whitespace: spaces, tabs and line endings drawn faintly.
  • The bracket next to the caret and its partner are highlighted.
  • Reopen closed tab (Ctrl+Shift+T) brings back the last 20 closed files, at the same place.
  • Close saved tabs and Close all tabs (they ask about unsaved changes as usual).
  • Insert switches to overtype ("OVR" in the status bar).
  • The status bar counts words and characters (of the selection, and of documents up to 64 MB), and shows the indentation in use: click it to change it.
  • File → Restore last session and Format → Formatting indent are in the menus now.
  • When the tabs don't fit, a button lists them all.
  • slate notes.txt:120 (or :120:5) opens at that line.

Formats and colors

  • 13 more languages: VBScript/VBA, AutoHotkey, TOML, nginx and Apache configuration, Perl, R, Terraform/HCL, CMake, .properties, subtitles (.srt, .vtt), calendars and contacts (.ics, .vcf) and Visual Studio solutions.
  • Better detection by name, folder and content: .conf files are told apart (nginx, Apache, XML or INI), CMakeLists.txt, Jenkinsfile, .htaccess, .env.local, *.yaml.j2, and the hosts file.
  • Code blocks in Markdown are colored in their language (```rust, ```json …).
  • XML gets a path bar (catalog › book[3] › title) and a structure panel like JSON's, fast on huge files; Copy XML path copies the XPath.
  • C++ digit separators and raw strings, C# nested interpolation, indented Sass and YAML strings over several lines are colored right.

Accessibility

  • With Windows' high contrast on, Slate uses its colors.
  • Magnifier and other tools that follow the text cursor can follow Slate's.

Help

  • If Slate ever crashes, it writes a crash log and a small crash dump in its settings folder, and nowhere else. Help → Report a problem… opens a GitHub issue form with the version filled in, for you to complete and send yourself.
  • Slate is open source under the MIT license.

Checksum: Slate.exe.sha256 (SHA-256 of Slate.exe).

Slate v0.3.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 02:41

Slate 0.3.0

A reliability release: the whole app was audited (the engine, file formats and colors, the editor and window, updates and setup), and everything that could lose work, write the wrong bytes or get in the way was fixed.

Download: Slate.exe below, for 64-bit Windows 10 or 11. If you have 0.2.0, it offers this update in its status bar by itself.

Your work is safer

  • Unsaved text kept between runs can't be lost any more: a damaged session file, one written by a newer version, a second Slate running at the same time, or a crash while reopening tabs all keep it. The session is flushed to disk and written in the background, so typing in big files doesn't pause.
  • A big file that another program rewrites while you edit it is never saved mixed with your edits; Slate offers to reload it instead. Log files that only grow work as before.
  • Saving as ANSI asks first when characters would turn into "?" (save as UTF-8, ANSI anyway, or cancel).
  • A UTF-8 file with a few bad bytes stays UTF-8, byte for byte, instead of opening as garbled ANSI.
  • Read errors while Slate counts a big file's lines (a network blip, a locked file) are retried and reported, never turned into wrong line numbers.
  • Big files on network shares and FAT drives can be saved.
  • A Slate running as administrator keeps its own window and tabs, apart from the normal one. If Slate is too busy to take a file you open, the file opens in a window of its own that says it doesn't keep its tabs, instead of a second Slate sharing (and overwriting) the first one's unsaved text.

Editing

  • Each file's indentation is detected (tabs or spaces, and how many); TSV files and makefiles always get real tabs. Format → Indentation changes it.
  • A typed } lines up with the line that opened it; Enter on an empty indented line leaves no spaces behind.
  • The caret, Delete and Backspace treat emoji, flags and accented letters as one character.
  • Copying with nothing selected copies the whole line, and pasting it puts it above the current line.
  • Typing over a selection undoes in one step. Indenting or commenting 200,000 lines (and undoing it) takes milliseconds instead of seconds.
  • Touchpad scrolling and pinch zoom at the right speed; dragging a selection past the left or right edge scrolls sideways.
  • Save As adds the extension (.txt for new documents) when you type a name without one. Slate notes.txt for a file that doesn't exist yet opens it empty and creates it when you save.
  • Go to line understands 1,234.
  • AltGr characters (ś, ł, € and others) no longer trigger Ctrl+Alt shortcuts.
  • Alt alone highlights the menu bar with underlined letters, like other Windows apps.

Formats and colors

  • XML Format and Minify keep whitespace that matters: inside xml:space="preserve", between inline elements (<b>big</b> <i>world</i>), and in elements that hold only spaces (Word and SVG files rely on these).
  • XML Check catches more mistakes: ]]> in text, -- inside comments, undeclared entities.
  • JSON with comments (VS Code settings, tsconfig.json) shows its structure, and Format says it has comments instead of failing at the first /.
  • A JSON file that's cut short still shows its structure. While you edit a big JSON file, the structure panel and path bar stay visible and open nodes stay open. Copy JSON path gives valid paths, and huge coordinate-heavy files (GeoJSON) take far less memory.
  • A stray apostrophe no longer recolors the rest of a shell, Ruby, PHP or SQL file. Heredocs, PHP pages, MySQL dumps and JavaScript regular expressions are colored right; C# method calls look like calls.
  • Lowercase log levels (error, warn) and syslog lines are colored, and logs or checklists starting with [ aren't taken for JSON.
  • Sort lines puts -10 before -5 and 1.25 before 1.5, and sorts accented letters next to their plain ones.
  • Very long lines color quickly (a 32 MiB single line takes about a second at most).

Window

  • Tabs with the same file name show their folder, and the title bar shows the folder too.
  • Help → Keyboard shortcuts opens the full list in a tab.
  • Status-bar menus open upwards; every menu item and prompt button has its own access key (Alt+N is "Don't save").
  • Switching back to Slate keeps the keyboard in the find box if that's where it was.

Updates

  • If a new version can't start on your PC, Slate goes back to the old one by itself.
  • A Slate that stays open for days still finds new versions.
  • Where Slate can't replace itself (for example in Program Files), it says so and opens the download page instead.

Checksum: Slate.exe.sha256 (SHA-256 of Slate.exe).

Slate v0.2.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 00:11

Slate 0.2.0

The first public release. Slate is a fast, simple text editor for Windows that opens files of any size: an 800 MB JSON file opens instantly, scrolls smoothly, and can be searched, edited, formatted and saved.

Download: Slate.exe below, for 64-bit Windows 10 or 11. Run it from any folder. Help → Open files with Slate… adds it to "Open with", the Start menu and the right-click menu. Slate isn't code-signed yet, so Windows may say "Windows protected your PC" the first time: choose More info → Run anyway.

What's in it

  • Opens huge files instantly; only what's on screen is read and drawn.
  • Tabs come back after a restart, unsaved changes included (like Windows 11 Notepad).
  • Syntax colors for about 30 kinds of files: Python, PowerShell, Batch, Shell, C/C++/C#, Java, Kotlin, Swift, Go, Rust, JavaScript/TypeScript, PHP, Ruby, Lua, SQL, HTML, CSS, XML, Markdown, YAML, JSON, INI/TOML, CSV/TSV (rainbow columns), logs, diffs and Dockerfiles.
  • JSON and XML: format, minify and check (also JSON Lines); a JSON path bar and structure panel.
  • Find and replace with regular expressions, fast on huge files.
  • Line tools: sort (natural order), remove duplicate or blank lines, trim line ends; change case; toggle comments.
  • Keeps the file's encoding and line endings; notices when another program changes a file.
  • Dark and light themes that follow Windows.
  • Updates itself: when a new release is published, Update appears in the status bar.

Checksum: Slate.exe.sha256 (SHA-256 of Slate.exe).

Full Changelog: https://github.com/jamesccupps/Slate/commits/v0.2.0