Skip to content

Releases: fortharris/Pcode

Pcode 0.2.0

Choose a tag to compare

@fortharris fortharris released this 22 Jul 13:25

Changelog

Unreleased

0.2.0 — 2026-07-22

UX polish

  • Shortcut collisions fixed: Split Horizontal/Remove remapped off F10/F11; debug F5/F10/F11 only while a debug session is active; Command Palette and Quick Open are remappable
  • Busy overlay is non-modal (WindowModal show) with themed chrome; Escape cancels when Cancel is enabled
  • Workspace first-run accepts any folder (or creates layout); clearer validation messages
  • New Project Help dialog + field-level validation errors
  • Bottom panels renamed Output→Run, Alerts→Assistant; Git Fetch/Pull/Push on the toolbar with busy status
  • Theme tokens for busy overlay, splitter notifications, debug status, style editors, search borders
  • Empty states for Messages, Tasks, Git file list, Quick Open, Command Palette
  • Messages no longer steals the active bottom panel; badge + collapsed-pane flash only
  • Quick Open explains when no project is open; View Editor/Snapshot/Diff in the command palette
  • Cross-platform “Reveal in file manager”; Recent Files empty action disabled; Start page respects UI font scale
  • Venv install/upgrade progress dialog is cancellable
  • Top pull-down tool sheets flush to the tab bar

Workflow

  • Run arguments are split with shlex (quoted paths work); profiler forwards args too
  • Go-to-Definition runs on a background thread
  • Project venvs are created with the selected base interpreter via
    python -m venv (with pip); Configure / Run / Build / rope share path helpers
  • Enabling Use virtual environment requires an installed project venv first
  • Quick Open skips VirtualEnv project trees
  • Project venv install/upgrade runs off the UI thread with a progress dialog
  • Quick Open (Ctrl+P) fuzzy file finder; Print default shortcut moved to Ctrl+Alt+P
  • Git panel: Fetch / Pull / Push (async, 120s timeout)
  • Encoding-aware save (honors codingFormat, falls back to UTF-8)
  • Search find options relabeled (Case / Word / Regex / Wrap); broader accessible names
  • Assistant context menu: removed unfinished “Fix Selected/All Occurrences” stubs
  • Thin DAP debugger: Debug run attaches to debugpy, applies margin/Alt+B breakpoints, Continue/Step controls (F5/F10/F11)
  • General Settings UX: two-column layout, Appearance first, radios for completion, filter box, clearer labels
  • Module Completion: guard empty right-click selection (IndexError fix)

Polish

  • Central Extensions/version.py (0.2.0); About dialog stays in sync with pyproject.toml
  • User Guide at docs/USER_GUIDE.md; Help → User Guide opens it; Check For Updates queries GitHub Releases
  • Git panel I/O moved off the UI thread; toolbar slimmed (Stage / Unstage / Diff / More)
  • Outline explorer uses ast.parse (async defs, annotated assigns); rope completion/doc threads coalesce pending work
  • debugpy listens on 127.0.0.1:5678 only; external launchers require absolute paths and split args without a shell
  • Start page refresh; tool-overlay stylesheet cleanup; UI Font Scale setting (75–150%) and accessible names on main chrome
  • README install story clarified (source-only); broader ruff select set; legacy XML read/migrate kept for old workspaces
  • Release checklist: docs/RELEASE_CHECKLIST.md

Migration

  • PyQt6 migration complete for production code — all Extensions/ modules use direct PyQt6 imports
  • Workspace and project settings migrate from XML to JSON on first load
  • New projects write JSON only (project.json, Data/*.json, Rope/profile.json, Build/profile.json)
  • Legacy XML manifests still readable for older projects; no longer written on save
  • Color scheme / lexer style files remain XML under the workspace stylesdir (editor format, by design)
  • font_metrics_width → Extensions/font_metrics.py; QFileDialog helpers → Extensions/file_dialog_utils.py
  • qscintilla_compat.py re-exposes QScintilla scoped enums for legacy flat names
  • qt_bindings.py removed; historical peel scripts (scripts/archive/) removed
  • Dropped unused projectdata_xml / buildprofile_xml / ropeprofile_xml path keys; kept session_xml for migrate-on-load
  • JSON-only saves for project/build/rope manifests (XML read-only for legacy projects)

Features

  • Command palette (Ctrl+Shift+P): build, rename symbol, close project, recent files, git amend/log
  • Git panel: branch switcher, commit log list, amend, stage/unstage, commit, diff
  • Assistant: progressive check updates, visible Cancel while pyflakes/pep8 run
  • UI theme tokens drive Default lexer colours (paper/text/comment/keyword/string)
  • CLI project freeze: scripts/freeze_project.py
  • debugpy debug run type with optional wait-for-client; status bar indicator while listening

Infrastructure

  • pytest unit + smoke suites (including test_no_shim_import), ruff linting, GitHub Actions CI (Linux + Windows)
  • cx_Freeze freeze smoke on workflow_dispatch (Linux and Windows)
  • CI prepares workspace/PcodeProjects/ before tests to avoid blocking on the workspace dialog

Pcode 0.1.5

Choose a tag to compare

@fortharris fortharris released this 24 Aug 15:16

Reverted back to the windows 32Bit binary.

Pcode 0.1b10_win64-bit

Choose a tag to compare

@fortharris fortharris released this 03 Apr 16:18

You can now build executables on both 32bit and 64bit architectures by default.

Pcode 0.1b9_win64-bit

Choose a tag to compare

@fortharris fortharris released this 27 Feb 11:37

Enhancements and Minor Bug Fixes

Pcode 0.1 Beta 8 (64-bit)

Choose a tag to compare

@fortharris fortharris released this 30 Oct 14:30

It is not compatible with previous workspace and projects.