# Fix markdown_helper.py for imgui-bundle >=1.92.801

## Bug

`src/markdown_helper.py` uses `ed.TextEditor.LanguageDefinitionId.<lang>` enum and `editor.set_language_definition(enum)` calls. These were removed in `imgui-bundle>=1.92.801`. Replacement: `ed.TextEditor.Language.<lang>()` factory functions and `editor.set_language(obj)` method.

The bug surfaces only on clean installs (where `uv sync` resolves the latest `imgui-bundle`). The local dev environment has 1.92.5 pinned, masking the issue. The `clean_install_test_20260603` opt-in test caught this on first run.

## Affected Code

- `src/markdown_helper.py:37-48` — `_lang_map` initialization with enum values
- `src/markdown_helper.py:128` — `ed.TextEditor.LanguageDefinitionId.none` fallback
- `src/markdown_helper.py:134` — `editor.set_language_definition(lang_id)` call
- `src/markdown_helper.py:135` — `editor.get_language_definition_name()` getter
- `src/markdown_helper.py:136` — `editor.set_language_definition(lang_id)` re-set

## Fix Strategy

Version-compat shim: detect which API is available at runtime and dispatch to the right one. This is safer than pinning `imgui-bundle` (avoids forcing the dev env to upgrade) and safer than hard-coding the new API (would break the 1.92.5 dev env).

The shim:
- Tries `TextEditor.Language.<name>()` first (1.92.801+)
- Falls back to `TextEditor.LanguageDefinitionId.<name>` (1.92.5)
- Returns `None` for "no language" (handled by not calling set_language)
- Provides `_set_editor_language(editor, lang_obj)` that dispatches to the right method

## Files Touched

- `src/markdown_helper.py` — add shim helpers, replace enum references
- (Optional) `pyproject.toml` — add `imgui-bundle>=1.92.5,<1.93` constraint to prevent future major version drift
