IntelliJ Wave is an IntelliJ plugin for the Wave language. Current scope:
- Wave file type registration (
.wave) - Wave syntax highlighting
- Wave New Project generator (Basic template)
wave-agapeLSP integration for diagnostics, completion, navigation, references, symbols, signature help, and rename-capable IDE versions- Clickable local imports with missing-target diagnostics through
wave-agapev0.2.0 - Ctrl+click, completion, and imported-symbol navigation for
std::and external package modules
Requirements:
- JDK 21
- IntelliJ Platform Gradle Plugin environment
Common commands:
./gradlew --no-daemon compileKotlin test
./gradlew --no-daemon build -x buildSearchableOptionsThe plugin launches wave-agape from PATH. During development or custom
installations, set WAVE_AGAPE_PATH to the absolute language-server executable
before starting the IDE. Marketplace packages bundle x64 Linux and Windows
servers plus x64 and Apple Silicon macOS servers, and use the environment
variable only as an override.
Pushing a version tag such as v0.2.0 runs
.github/workflows/marketplace.yml. The workflow builds the bundled language
servers, uploads the plugin ZIP as an Actions artifact, and publishes it to the
JetBrains Marketplace when the PUBLISH_TOKEN repository secret is set.
The language-server source defaults to wavefnd/wave-agape at v0.2.0. Set
the WAVE_AGAPE_REPOSITORY and WAVE_AGAPE_REF repository variables to use a
different repository or a pinned tag/commit.
Import resolution follows wavec. Standard-library imports use
~/.wave/lib/wave/std (or WAVE_STDLIB_PATH), and external package imports
search the project's .vex/dep directory plus roots in WAVE_DEP_ROOTS.
WAVE_DEP_ROOTS uses the operating system's normal path-list separator.
This repository is intended to be distributed under MPL-2.0.