Files

46 lines
3.9 KiB
Markdown

# Use the IntelliJ host
The plugin embeds the same JavaFX 26 / Scene Builder Kit 26 UI as the standalone app. IntelliJ owns Documents, saves, commands and Undo/Redo; application Models and Components remain in separate target JVMs. The currently qualified SDK is **263.7307.200 on macOS**. The runtime gate checks this exact SDK, even though plugin metadata accepts the broader 263 build family.
## Build and install locally
First build/install the shared Designer Maven modules using JDK 25 as shown in the [quick start](quick-start.md). Set `IDEA_HOME` to the IntelliJ application's `Contents` directory, then from the Designer checkout:
```sh
export JAVA_HOME=/absolute/path/to/jdk-25
export IDEA_HOME=/Applications/YourQualifiedIDE.app/Contents
./designer-intellij/gradlew -p designer-intellij --no-daemon \
-PideaHome="$IDEA_HOME" test buildPlugin verifyPluginProjectConfiguration
```
The ZIP is under `designer-intellij/build/distributions/`. Install that local ZIP through IntelliJ's plugin installation from disk, then restart. This is a development plugin; no Marketplace publication or compatibility with other IDE builds is claimed.
Before opening the designer, use IntelliJ's Registry action to disable **`embed.scene.builder`**, then restart again if necessary. Keep JavaFX/FXML language support enabled. The Designer refuses initialization if bundled embedding remains enabled, another provider remains active or incompatible Glass native libraries are already loaded. Changing the registry setting while running revokes the Designer; restart into the correct state. Do not try to load two JavaFX native toolkits in one IDE process.
## Configure the project
Use the same checked-in context and ignored `.neitzel-fx-designer/host.properties` / runtime settings as the standalone development host. The [reference helper](quick-start.md#4-create-local-runtime-and-launch-settings) configures the actual NeitzelLib checkout. Paths identify the built worker JARs; they do not select the IDE's toolkit. Build/target JDK roles remain independent of the IDE's own JVM.
Open an FXML resource and choose the **Neitzel Designer** editor. The ordinary IntelliJ XML editor stays available. Inside the shared designer, Source/Design/Split refer to its own presentation modes of that same native Document. Select **Build and Refresh** to activate a successful application snapshot; an ordinary IDE build does not perform that operation.
Use normal IntelliJ Save and Undo/Redo, the shared actions, or the Edit menu. Supported designer changes are one native command. Problems and source annotations refer to the current FXML; Alt+Enter offers the same bounded fixes as the shared panel. Opening a Component selects its existing tab or creates one, leaving the parent open. Multiple project/editor lifetimes remain separately owned, and closing one editor disposes its workers without closing other previews.
## Qualification and current boundaries
For a disposable fixture IDE that does not modify normal IDE settings:
```sh
python3 scripts/run-fixture-host.py intellij \
--java-home "$JAVA_HOME" --target-java-home /absolute/path/to/jdk-21 \
--idea-home "$IDEA_HOME"
```
After preparing the recorded qualification prerequisites, automated registered-editor checks are:
```sh
python3 scripts/check-ide-host.py --java-home "$JAVA_HOME" \
--target-java-home /absolute/path/to/jdk-21 --idea-home "$IDEA_HOME"
```
Add `--mode modulepath --repeat 3` for the repeated named-module reliability gate. These checks require a real macOS desktop session. The [reliability record](../ide-host-reliability.md) describes startup validation and native persistence fixes. Previous manually skipped scenarios remain skipped; successful automation is not a claim of human VoiceOver qualification. A production coordinated standalone handoff is not part of this plugin slice. Use independently owned documents carefully rather than assuming the earlier prototype's transfer buttons are shipped features.