Code Navigation

The following code navigation features are supported:

  • Navigate  Class [1]

  • Navigate  Symbol [1]

  • Navigate  Declaration or Usages

  • Navigate  Type Declaration

  • Navigate  File Structure

  • Edit  Find  Find Usages [2]

Module URIs

Navigate  Declaration can also be used on module URIs of amends, extends, or import clauses.

The following URI schemes are supported:

file://foo/bar.pkl

A module on the local file system.

pkl:json

A Pkl standard library module. If a pkl-core or pkl-config-java-all Jar is present on the class path of the current IntelliJ module, the standard library module contained in that Jar is used. Otherwise, the standard library module bundled with the Pkl IntelliJ plugin is used.

modulepath:/foo/bar.pkl

A module on the class path of the current IntelliJ module. modulepath:/foo/bar.pkl maps to class path resource foo/bar.pkl.

package://example.com/package@1.0.0#/bar.pkl

A module published within a package.

https://example.com/foobar.pkl

A module loaded over HTTPS.

foo/bar.pkl

A module resolved relative to the originating module. If the originating module is located under an IntelliJ source root, the referenced module is resolved as modulepath: module. Otherwise, the referenced module is resolved as file: module.

Except for https: URIs, all of the above URIs support code completion.


1. Currently only for Pkl standard library.
2. Currently limited to Pkl files located under a source root.