This is a package for Sublime Text.
main.pyis the package entrypoint. It clears cachedPackageDev.plugins.*modules before re-importingplugins.plugins/holds all Sublime runtime code. New plugin classes must be imported fromplugins/__init__.pyor they will be missed. Runfrom PackageDev.plugins import _check_missing; _check_missing()in Sublime's console to verify no plugin class was left out of that import surface.plugins/lib/holds shared helpers (e.g.scope_data,fileconv,view_utils) used across multiple plugin modules; it has no plugin classes of its own.Package/holds shipped Sublime resource files and syntax definitions.
- Lint Python with
uv run ruff check .. - Ruff is configured for
line-length = 99and selectsE,F,I, andUP. - Type-check Python with
uv run ty check .. - Check Python 3.8 compatibility with
uv run --python 3.8 python -m compileall -q main.py plugins. This only catches syntax-level incompatibilities, not runtime ones (e.g. builtin generics such asset[X]used as a base class, which only work as of Python 3.9). - There is no repo Python test suite. Use Sublime Text as the primary runtime check.
- CI runs syntax tests for changed
*.sublime-syntax,syntax_test*, and.tmPreferencesfiles. - The matrix covers stable, latest, and build
4136, plus a tolerated latest/master run.
- Preserve the current plugin import surface in
plugins/__init__.py. - Keep Python 3.8+ compatibility in mind.
- Treat
PackageDev.sublime-projectand*.sublime-workspaceas local files; they are ignored. - When changing YAML serialization or built-in metadata, verify behavior in Sublime, not with unit tests.