As a devonfw-ide admin, I want to tailor my settings to specific scenarios so that I get automatic suggestions which tools and plugins to enable and what to disable.
Therefore plugins can get a new property tags. The tags for tools should be implemented directly in the new Java classes for commandlets.
Examples for such tags are:
[x] ToolCommand has a new method: public abstract Set<String> getTags();
[x] Implementations of ToolCommand implement this method returning a constant: @Override public Set<String> getTags() { return TAGS; }. Therefore they need to define this constant: private static final Set<String> TAGS = Set.of("«tag1», "«tags2»");
The main benefit of this feature will only come with our new dashboard that does not yet exist so this story is just to prepare this and creating the dashboard and using this feature will be another story.
As a devonfw-ide admin, I want to tailor my settings to specific scenarios so that I get automatic suggestions which tools and plugins to enable and what to disable. Therefore plugins can get a new property
tags
. The tags for tools should be implemented directly in the new Java classes for commandlets. Examples for such tags are:java
(e.g. for java, maven, VSCode java plugin, Eclipse checkstyle plugin)dotnet
(for .NET runtime and C# programming language, etc.)python
angular
typescript
ai
(artificial intelligence - e.g. for CoPilot plugin in Intellij, VSCode, ...)asciidoc
qa
(quality assurance - e.g. for checkstyle, sonarlint, findbugs, spotbugs, sonar(qube), etc.)productivity
(e.g. for cobigen, anyedit, regexutil, startexplorer)Acceptance criteria:
plugin_tags
property is defined for all plugin properties files (e.g. https://github.com/devonfw/ide-settings/blob/master/eclipse/plugins/anyedit.properties)ToolCommand
has a new method:public abstract Set<String> getTags();
ToolCommand
implement this method returning a constant:@Override public Set<String> getTags() { return TAGS; }
. Therefore they need to define this constant:private static final Set<String> TAGS = Set.of("«tag1», "«tags2»");
The main benefit of this feature will only come with our new dashboard that does not yet exist so this story is just to prepare this and creating the dashboard and using this feature will be another story.