Skip to content

t-code v0.3

Choose a tag to compare

@suacayipkisi suacayipkisi released this 21 Oct 19:39
· 101 commits to main since this release

T-Code v0.3 Debug and Theme Update

t-code is now an IDE with a debugger. This release also adds quick fixes, code folding, color themes,
panels you can move around, and right-click menus everywhere, while keeping memory use low.

Debugging (new)

  • F5 builds with debug info and starts the program under gdb (14 or newer, gdb -i dap).
    F9 or a click left of a line number sets a breakpoint. A right click sets a condition.
  • F10 / F11 / Shift+F11 step over / into / out. F6 pauses, Shift+F5 stops and
    Ctrl+Shift+F5 restarts.
  • Run and Debug panel (Ctrl+Shift+D):
    • Variables: values that changed since the last pause are colored, and arrays and structs
      open like folders.
    • Watch: expressions, kept per project.
    • Call Stack: frames in libraries are folded into one row.
    • Breakpoints: the full list, across all files.
  • Values under the pointer while paused, and an evaluate line (with -exec for gdb commands).
  • Crashes, from a segfault or AddressSanitizer, stop on the bad line and are explained in one
    plain sentence.
  • Disassembly View:
    • the function's instructions, with its source lines between them;
    • stepping by instruction, instruction breakpoints, and registers.

Editor

  • Quick fixes (Ctrl+.), such as a missing ;, a missing #include or a misspelled name,
    plus clangd's refactorings.
  • Go to Symbol in File (Ctrl+Shift+.) and Switch Source / Header (Alt+O).
  • Code folding (Ctrl+Shift+[ / ]) and sticky scroll: the heads of the enclosing
    function, loop or namespace stay at the top.
  • Highlights:
    • the cursor on a name lights up that symbol's uses;
    • code that an #if leaves out is dimmed;
    • git changes show in the strip beside the minimap.
  • A right-click menu in the editor with the important commands.
  • A save conflict bar when the file changed on disk: Overwrite, Reload or Compare, instead of
    silently overwriting.
  • make writing compile_commands.json is picked up by itself, with no clangd restart.

Window

  • Color themes: Dark Classic, Gruvbox and other dark and light themes, each with a preview, in
    a rounded or square look. You can edit settings.ini, theme.css and the editor's style
    scheme by hand.
  • Panels move between docks: drag a panel's icon to the left, bottom or right. Each panel has
    a show/hide button in the title bar. "View: Reset Panel Layout" puts everything back.
  • Open in New Window: a second window for the same project, sharing clangd.
  • Right-click menus on tabs, Open Tabs, files, Source Control, search results, terminals and
    the debugger's lists.
  • Source Control:
    • commit details on hover, and "Open Commit Details" shows a commit with its diff;
    • collapsible sections.
  • Comparisons open at the first change.
  • Settings pages listed on the left.

Run other languages

Ctrl+F5 runs scripts by their interpreter: Python, JavaScript / TypeScript, shell, Lua, Ruby,
Perl, PHP, Go, Java, or any file with #!. It also runs Cargo, Go, npm, Maven and Gradle
projects, and Python from its root with its venv.

Faster

  • Semantic coloring is updated by delta: on an 18 000-line file, an edit used to stall the window
    for about 280 ms and now takes under 1 ms.
  • Git comparisons no longer run on the main thread.

Keys that changed

  • F5 now starts debugging. Build and run moved to Ctrl+F5, and Ctrl+Shift+B still
    builds only.

Install

Distribution Command
Fedora 44 sudo dnf install ./t-code-0.3.0-1.fc44.x86_64.rpm
Arch Linux sudo pacman -U t-code-0.3.0-1-x86_64.pkg.tar.zst
Debian 13 sudo apt install ./t-code_0.3.0-1_amd64.deb
Void Linux t-code-0.3.0_1.x86_64.xbps (glibc) or t-code-0.3.0_1.x86_64-musl.xbps (musl), with xbps-rindex -a and xbps-install

Check the downloads with sha256sum -c SHA256SUMS. Debugging needs gdb 14 or newer; the packages
recommend it.

Kown Issues

  • Sometimes right click causes a loop with data race and UI freeze. Reason found and fixed, next release will not have this problem.