Skip to content

Fix Python 3.14 plugin warnings and test error recovery - #105

Draft
driade wants to merge 9 commits into
masterfrom
fix/102-python314-tests
Draft

driade wants to merge 9 commits into
masterfrom
fix/102-python314-tests

Conversation

@driade

@driade driade commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Python 3.14 reports invalid string escapes and a return inside finally when the Sublime plugin loads. Use raw strings and return after restoring the editor setting. Also fix MergeException message access so rollback restores the original buffer instead of silently leaving a partial edit.

Add 11 standard-library tests covering source compilation, completion escaping, patch headers, buffer edits and exception recovery. Keep the test harness compatible with Python 3.3 and preserve real imported dependencies while isolating the Sublime API.

The regular CI suite tests all nine combinations of Python 3.3, 3.8 and 3.14 with Linux, macOS Intel and Windows. Each job verifies its actual interpreter before compiling the plugin and running the same tests. Legacy Python 3.3 is built from the official 3.3.7 sources on Linux and uses the official 3.3.5 binaries on macOS/Windows; the macOS framework is extracted into the temporary runner directory without system installation.

Add four integration tests inside official stable Sublime Text 4200 in evaluation mode, without a license or repository secrets. Run Python hosts 3.3 and 3.8 on Linux, macOS Intel and Windows. Reuse pinned UnitTesting 1.9.2 and retain editor logs as CI artifacts. Tests cover loading, formatting and idempotence, real PHP/SQLite completion snippets, and rollback on a real buffer.

The editor tests also exposed a completion regression: modern PHP syntax uses source.php.embedded.html. Use Sublime match_selector instead of exact historical scope names.

Validation:

Refs #102. Plane: PHPFMT-2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant