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.2.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 Linux and Windows servers plus x64 and Apple Silicon macOS servers, and use the environment variable only as an override.

Marketplace automation

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.

License

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

Releases

Packages

Contributors

Languages