Skip to content

t-code v0.2.1

Choose a tag to compare

@suacayipkisi suacayipkisi released this 20 Oct 15:01
· 38 commits to main since this release

t-code 0.2.1

The Files panel is now a native folder tree inside the window instead of a terminal file manager, plus temporary tabs, per-project indentation and smarter typing.

Scroll to the very bottom to access the installation files

What's new

Files panel

  • A native GTK folder tree (GtkListView): folders load when opened, git colors and letters, drag and drop (move, copy from outside, drop onto the editor to open)
  • Create (a/b.c makes the folders), rename, delete, cut / copy / paste from the right-click menu
  • No more t-code-fm process

Tabs

  • Temporary tabs like VS Code's preview editor: a click in the Files panel reuses one italic tab until you edit it or double-click it
  • A comparison (Compare with HEAD, File History, commits) is one tab with both sides, and closes together

Editor

  • Indentation from .editorconfig, .clang-format or the file itself, shown in the status bar; click it to change it for the whole project
  • Enter after an opening bracket goes one level deeper (between a pair the closer gets its own line)
  • Double click selects a name only (letters, digits, _)
  • Selecting a name highlights its other occurrences and marks their lines beside the minimap
  • Tab moves between a completed function's parameters

clangd

  • "clangd: Restart Language Server" in the Command Palette (also retries a server that gave up)
  • A "⚠ No compile flags" hint in the status bar when includes are not found and no compile_commands.json / compile_flags.txt applies

Install

x86_64 packages for Fedora 44, Arch Linux, Debian 13 (trixie) and Void Linux (glibc and musl):

sudo dnf install ./t-code-0.2.1-1.fc44.x86_64.rpm      # Fedora
sudo pacman -U t-code-0.2.1-1-x86_64.pkg.tar.zst       # Arch Linux
sudo apt install ./t-code_0.2.1-1_amd64.deb            # Debian

Void Linux (use the x86_64-musl file on musl):

xbps-rindex -a t-code-0.2.1_1.x86_64.xbps
sudo xbps-install --repository="$PWD" t-code

Check the downloads with sha256sum -c SHA256SUMS. Each package was installed in a fresh container of its distribution and started on a headless X server.

Known issues in t-code 0.2.1

These are known problems in 0.2.1. All of them are planned to be fixed for 0.3.

Saving can overwrite changes made outside t-code

If a file is changed on disk by another program (a git checkout, another editor) while its tab
has unsaved changes, t-code does not reload it, so your edits are not lost. But the next save
(Ctrl+S or autosave) writes over the change on disk without asking.

Workaround: if you change a file outside t-code, save or close its tab in t-code first. A tab
with no unsaved changes reloads the file by itself.

Planned fix: before saving, check whether the file changed on disk, and if it did, ask:
Overwrite / Reload / Compare.

The window can freeze briefly on large repositories

A few git calls still block the window until they finish:

  • File History (Ctrl+Alt+H) and Compare with HEAD (Ctrl+Alt+D), which run git log --follow
  • opening or switching a project, which runs git rev-parse
  • Quick Open (Ctrl+P), which lists the project's files

On a small project this cannot be noticed. On a very large repository, or on a network filesystem
(NFS, sshfs), the window can stop responding for a moment.

Planned fix: run these in the background like the Source Control and Search panels already do.

Socket commands break on file names with a line break

Commands sent to $TCODE_SOCKET (open, preview, compare, …) are one per line, so a path
that contains a newline is split into two commands. This only affects scripts that use the
socket; the Files panel does not go through it.

Planned fix: separate commands with \0 (a byte that cannot appear in a path).

Not there yet

  • No debugger. Build and Run (F5) are there, but there are no breakpoints and no way to
    inspect variables yet. A GDB integration (through its DAP mode) is planned for 0.3.
  • One file shows in one place only. A file cannot be open in both editor groups at once
    (opening it in the other group moves the tab), so the same file cannot be seen side by side.
  • No multiple cursors (GtkSourceView 5 does not have them).

Full Changelog: v0.2...v0.2.1