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 throughwave-agapev0.3.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/ARM64 Linux, x64
Windows, and x64/Apple Silicon macOS servers, and use the environment variable
only as an override.
Pushing a version tag such as v0.3.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.3.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), local imports require ./, and
external package imports search the project's .vex/deps directory plus roots
in WAVE_DEP_ROOTS (with .vex/dep retained as a compatibility fallback).
WAVE_DEP_ROOTS uses the operating system's normal path-list separator.
This repository is intended to be distributed under MPL-2.0.