Skip to content

Repository files navigation

Stitch IDE

Stitch IDE

Stitch IDE is a dedicated development environment for Frankie, a multi-language-fusion scripting language that borrows the best syntax from Ruby, Python, R, and Fortran. Stitch wraps Frankie's existing compiler, formatter, linter, test runner, and REPL in a native PyQt6 desktop shell so you never have to leave the editor to run, test, lint, or format your code.

Stitch is built on top of BASE, a lightweight, extensible IDE skeleton shared across this repo's family of language-specific IDEs.

For a full walkthrough of every feature, see USER_GUIDE.md.

Features

  • Full Frankie syntax highlighting — keywords, builtins, strings with #{} interpolation, heredocs, symbols, the pipe operator (|>), and more
  • One-click execution modes — Run, Test, Check (lint), Format, Build (to Python), and Bundle (self-contained .py), all via a toolbar mode selector or the Frankie menu
  • Smart auto-indent/dedent — typing if, def, while, a trailing do |x|, etc. indents the next line automatically; end, else, elsif, when, rescue, and ensure dedent themselves back into place
  • Diagnostics panel — runs frankiec check on save, lists errors and warnings with click-to-jump line navigation
  • Interactive REPL tab — a persistent frankiec repl session with input history (Up/Down arrows)
  • Stitch Manager panel — browse, install, verify, and update Frankie packages ("stitches") without leaving the IDE
  • Documentation viewer — an embedded language quick-reference plus frankiec docs output for the current file
  • 16 built-in themes — 10 dark (Dark, Grey, Solarized Dark, High Contrast, Dracula, Nord, One Dark, Monokai, Gruvbox Dark, Tokyo Night) and 6 light (Light, Solarized Light, GitHub Light, One Light, Gruvbox Light, Nord Light)
  • File browser with bookmarks and history, tabbed editing, Find/Replace, and window/layout persistence across restarts

Requirements

  • Python 3.10+
  • PyQt6 (installed automatically by setup.sh)
  • A working Frankie installation — Stitch looks for frankiec on your PATH first, then falls back to a known local path (see USER_GUIDE.md § Configuring the Frankie path if neither applies to your machine)

Quick start

cd "IDE_Suite 2/STITCH"
./run.sh

run.sh provisions venv/ and installs dependencies automatically on first run (via setup.sh), then launches Stitch IDE. Run ./setup.sh directly if you just want to (re)provision the environment without launching the app.

Build a standalone binary

source venv/bin/activate
python build.py

Produces a self-contained app in dist/StitchIDE/ via PyInstaller.

Project layout

app/
  frankie_language.py   Language provider — highlighting, run/test/check/fmt/build/bundle
  editor.py              Code editor: line numbers, auto-indent/dedent, find/replace hooks
  main_window.py         Menus, toolbar, panel layout, keyboard shortcuts
  diagnostics_panel.py   frankiec check results, click-to-jump
  repl_widget.py         Persistent frankiec repl session
  stitch_manager.py      Stitch (package) manager panel
  doc_viewer.py          Quick reference + frankiec docs viewer
  themes.py              Theme definitions and the ThemeManager
  file_browser.py, find_replace.py, terminal.py, syntax.py, language.py
examples/                Sample .fk programs to open on first launch

License

MIT — see LICENSE.

About

Stitch is an IDE for the Frankie programmingn langauge

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages