• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

devonfw / IDEasy / 14647038547

24 Apr 2025 04:46PM UTC coverage: 67.392% (-1.3%) from 68.713%
14647038547

push

github

web-flow
#1217: Remove plugin recommendation feature in VSCode (#1218)

Co-authored-by: Jörg Hohwiller <hohwille@users.noreply.github.com>

3071 of 4962 branches covered (61.89%)

Branch coverage included in aggregate %.

7897 of 11313 relevant lines covered (69.8%)

3.06 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

87.5
cli/src/main/java/com/devonfw/tools/ide/tool/vscode/Vscode.java
1
package com.devonfw.tools.ide.tool.vscode;
2

3
import java.nio.file.Path;
4
import java.util.ArrayList;
5
import java.util.List;
6
import java.util.Set;
7

8
import com.devonfw.tools.ide.common.Tag;
9
import com.devonfw.tools.ide.context.IdeContext;
10
import com.devonfw.tools.ide.process.ProcessContext;
11
import com.devonfw.tools.ide.process.ProcessErrorHandling;
12
import com.devonfw.tools.ide.process.ProcessMode;
13
import com.devonfw.tools.ide.process.ProcessResult;
14
import com.devonfw.tools.ide.step.Step;
15
import com.devonfw.tools.ide.tool.ToolCommandlet;
16
import com.devonfw.tools.ide.tool.ide.IdeToolCommandlet;
17
import com.devonfw.tools.ide.tool.plugin.ToolPluginDescriptor;
18

19
/**
20
 * {@link ToolCommandlet} for <a href="https://code.visualstudio.com/">vscode</a>.
21
 */
22
public class Vscode extends IdeToolCommandlet {
23

24
  /**
25
   * The constructor.
26
   *
27
   * @param context the {@link IdeContext}.
28
   */
29
  public Vscode(IdeContext context) {
30

31
    super(context, "vscode", Set.of(Tag.VS_CODE));
6✔
32
  }
1✔
33

34
  @Override
35
  protected String getBinaryName() {
36

37
    return "code";
2✔
38
  }
39

40
  @Override
41
  public boolean installPlugin(ToolPluginDescriptor plugin, Step step, ProcessContext pc) {
42

43
    List<String> extensionsCommands = new ArrayList<>();
4✔
44
    extensionsCommands.add("--force");
4✔
45
    extensionsCommands.add("--install-extension");
4✔
46
    extensionsCommands.add(plugin.id());
5✔
47
    ProcessResult result = runTool(ProcessMode.DEFAULT, ProcessErrorHandling.THROW_ERR, pc, extensionsCommands.toArray(String[]::new));
13✔
48
    if (result.isSuccessful()) {
3!
49
      this.context.success("Successfully installed plugin: {}", plugin.name());
11✔
50
      step.success();
2✔
51
      return true;
2✔
52
    } else {
53
      this.context.warning("An error occurred while installing plugin: {}", plugin.name());
×
54
      return false;
×
55
    }
56
  }
57

58
  @Override
59
  protected void configureToolArgs(ProcessContext pc, ProcessMode processMode, ProcessErrorHandling errorHandling, String... args) {
60

61
    Path vsCodeConf = this.context.getWorkspacePath().resolve(".vscode/.userdata");
6✔
62
    pc.addArg("--new-window");
4✔
63
    pc.addArg("--user-data-dir=" + vsCodeConf);
6✔
64
    Path vsCodeExtensionFolder = this.context.getIdeHome().resolve("plugins/vscode");
6✔
65
    pc.addArg("--extensions-dir=" + vsCodeExtensionFolder);
6✔
66
    pc.addArg(this.context.getWorkspacePath());
6✔
67
    super.configureToolArgs(pc, processMode, errorHandling, args);
6✔
68
  }
1✔
69

70
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc