Skip to content

Repository files navigation

IntelliJ Wave

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-agape LSP integration for diagnostics, completion, navigation, references, symbols, signature help, and rename-capable IDE versions
  • Clickable ./ local imports with missing-target diagnostics through wave-agape v0.3.0
  • Ctrl+click, completion, and imported-symbol navigation for std:: and external package modules

Development

Requirements:

  • JDK 21
  • IntelliJ Platform Gradle Plugin environment

Common commands:

./gradlew --no-daemon compileKotlin test
./gradlew --no-daemon build -x buildSearchableOptions

The 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.

Marketplace automation

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.

License

This repository is intended to be distributed under MPL-2.0.

Releases

Packages

Contributors

Languages