Skip to content

Refine the context value of the nodes in the project explorer - #311

Merged
Sheng Chen (jdneo) merged 6 commits into
masterfrom
cs/contextValue
Aug 31, 2020
Merged

Sheng Chen (jdneo) merged 6 commits into
masterfrom
cs/contextValue

Conversation

@jdneo

@jdneo Sheng Chen (jdneo) commented Aug 24, 2020 •

Copy link
Copy Markdown
Member

This PR is to better expose the node context value.

Context Value Format

java:<node type>[+<attribute>]*

Available Node Types:

Currently, available node types are:

  • workspaceFolder
  • project
  • container
  • packageRoot
  • package
  • jar

Not available node types are:

  • folder
  • file
  • type (class, enum, interface,...)

Below picture illustrates the different node types
image

Attributes:

For each node type, it may have some attributes. Every attribute will start with a +.

Common Attributes:

  • +uri: The node has uri

Specific Attributes:

Project Node:

  • +java: Java project
  • +maven: Maven project
  • +gradle: Gradle project

Container Node:

  • +jre: Container for JRE
  • +maven: Container for Maven
  • +gradle: Container for Gradle
  • +referencedLibrary: Container for Referenced Libraries

Package Root Node:

  • +source: Source package root.
  • +resource: Resource package root

Package Node:

  • +source: Source package
  • +binary: Binary package (Expanded inside a binary jar)

Jar Node:

  • +referencedLibrary: Referenced Library jar

Usage example:

For example, A node for a Maven project may have the following context value:

java:project+maven+uri

If you want to register a command on that node, you can write your when clause as:

"when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+maven\\b)(?=.*?\\b\\+uri\\b)/",

@jdneo
Sheng Chen (jdneo) merged commit 1409594 into master Aug 31, 2020
@jdneo
Sheng Chen (jdneo) deleted the cs/contextValue branch August 31, 2020 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants