Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter for Java (server) snippet #265

Closed
angelozerr opened this issue Mar 23, 2020 · 2 comments · Fixed by #297
Closed

Filter for Java (server) snippet #265

angelozerr opened this issue Mar 23, 2020 · 2 comments · Fixed by #297
Assignees
Milestone

Comments

@angelozerr
Copy link
Contributor

angelozerr commented Mar 23, 2020

Once #251 will be merged, we need to improve Java snippets completion:

  • filter Java snippets according to some conditions like:
    • if project has some dependency (ex : Open API @operation snippet should be shown only if the project have the openapi dependency)
    • where completion has been triggered (ex : Open API @operation snippet should be shown only if completion is triggered before a class, etc)

To do that, we must delegate those 2 features on JDT LS side. We could have a microprofile/java/completion/resolveCompletionContext JDT LS command which:

  • resolve condition (ex have this dependency? is completion is triggered before class, etc)

The idea is when completion is opened and snippets requires condition and compute of context , it should call one time the resolveCompletionContext which should resolve condition and compute of context.

@angelozerr
Copy link
Contributor Author

angelozerr commented Mar 25, 2020

@rzgry here the idea that I have in my mind to manage filter for snippet. Takes a sample with Metrics snippet:

The idea is to write a context like this:

"context": {
    	"scope": ["method", "field", "parameter", "annotation_type"],
    	"dependency": "microprofile-metrics-api"
    }

in other words:

"@Metric": {
    "prefix": [
      "@Metric"
    ],
    "body": [
      "@Metric(",
      "\tname = \"${1:name}\",",
      "\tdescription = \"${2:description}\"",
      ")"
    ],
    "description": "An annotation that contains the metadata information when requesting a metric to be injected or produced. This annotation can be used on fields of type Meter, Timer, Counter, and Histogram. For Gauge, the @Metric annotation can only be used on producer methods/fields.",
    "context": {
    	"scope": ["method", "field", "parameter", "annotation_type"],
    	"dependency": "microprofile-metrics-api"
    }
  }

The context means

  • target : the snippet is shown only when completion is triggered before a method, field, parameter or annotation_type.
  • dependency : the snippet is shown only when project has the microprofile-metrics-api dependency.

@rzgry do you like this idea? Please give me feedback.

If you like it, could you create a PR with the context for mp-* snippets please. Thanks!

@rzgry
Copy link
Contributor

rzgry commented Mar 25, 2020

Looks good to me. I can make a PR to add context to the existing MicroProfile snippets.

angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 25, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 26, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 26, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 26, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 26, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
rzgry added a commit to rzgry/quarkus-ls that referenced this issue Mar 26, 2020
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 27, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 27, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 28, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 28, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 29, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
@angelozerr angelozerr changed the title Filter and fill some value for Java (server) snippet Filter for Java (server) snippet Mar 30, 2020
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 31, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Mar 31, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
rzgry added a commit to rzgry/quarkus-ls that referenced this issue Mar 31, 2020
rzgry added a commit to rzgry/quarkus-ls that referenced this issue Mar 31, 2020
Part of redhat-developer#265

Signed-off-by: Ryan Zegray <ryan.zegray@gmail.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 7, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 7, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 7, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 7, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 7, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
rzgry added a commit to rzgry/quarkus-ls that referenced this issue Apr 7, 2020
Part of redhat-developer#265

Signed-off-by: Ryan Zegray <ryan.zegray@gmail.com>
angelozerr pushed a commit that referenced this issue Apr 8, 2020
Part of #265

Signed-off-by: Ryan Zegray <ryan.zegray@gmail.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
@angelozerr angelozerr added this to the v0.0.6 milestone Apr 8, 2020
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit to angelozerr/quarkus-ls that referenced this issue Apr 8, 2020
Fixes redhat-developer#265

Signed-off-by: azerr <azerr@redhat.com>
angelozerr pushed a commit that referenced this issue Apr 9, 2020
Fixes #265

Signed-off-by: azerr <azerr@redhat.com>
@xorye xorye added bug Something isn't working enhancement New feature or request and removed bug Something isn't working labels Apr 14, 2020
@xorye xorye changed the title Filter for Java (server) snippet Filter for Java (server) snippet Apr 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants