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

Camelcade / Perl5-IDEA / #525521587

22 Jun 2025 12:31PM UTC coverage: 82.36% (-0.02%) from 82.376%
#525521587

Pull #3015

github

web-flow
Merge 94f6ba619 into 160c56274
Pull Request #3015: Eap6 build with v2 module structure

30866 of 37477 relevant lines covered (82.36%)

0.82 hits per line

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

31.58
/plugin/core/src/main/java/com/perl5/lang/perl/idea/sdk/versionManager/system/PerlSystemHandler.java
1
/*
2
 * Copyright 2015-2025 Alexandr Evstigneev
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 * http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16

17
package com.perl5.lang.perl.idea.sdk.versionManager.system;
18

19
import com.intellij.openapi.Disposable;
20
import com.intellij.openapi.project.Project;
21
import com.intellij.openapi.projectRoots.Sdk;
22
import com.intellij.openapi.util.NlsActions.ActionText;
23
import com.intellij.openapi.util.text.StringUtil;
24
import com.perl5.PerlBundle;
25
import com.perl5.lang.perl.idea.sdk.PerlHandlerBean;
26
import com.perl5.lang.perl.idea.sdk.PerlSdkType;
27
import com.perl5.lang.perl.idea.sdk.host.PerlHostData;
28
import com.perl5.lang.perl.idea.sdk.host.PerlHostHandler;
29
import com.perl5.lang.perl.idea.sdk.host.os.PerlOsHandler;
30
import com.perl5.lang.perl.idea.sdk.versionManager.PerlVersionManagerAdapter;
31
import com.perl5.lang.perl.idea.sdk.versionManager.PerlVersionManagerHandler;
32
import org.jetbrains.annotations.NotNull;
33
import org.jetbrains.annotations.Nullable;
34

35
import java.io.File;
36
import java.util.function.Consumer;
37

38
class PerlSystemHandler
39
  extends PerlVersionManagerHandler<PerlSystemData, PerlSystemHandler> {
40

41
  @SuppressWarnings("NonDefaultConstructor")
42
  public PerlSystemHandler(@NotNull PerlHandlerBean bean) {
43
    super(bean);
1✔
44
  }
1✔
45

46
  @Override
47
  public @NotNull PerlSystemData createData() {
48
    return new PerlSystemData(this);
1✔
49
  }
50

51
  @Override
52
  public @NotNull @ActionText String getMenuItemTitle() {
53
    return PerlBundle.message("perl.vm.system.menu.title");
1✔
54
  }
55

56
  @Override
57
  public @NotNull String getPresentableName() {
58
    return PerlBundle.message("perl.vm.system.presentable.name");
1✔
59
  }
60

61
  @Override
62
  public void createSdkInteractively(@Nullable Project project,
63
                                     @NotNull PerlHostHandler<?, ?> hostHandler,
64
                                     @Nullable Consumer<? super Sdk> sdkConsumer,
65
                                     @NotNull Disposable disposable) {
66
    hostHandler.chooseFileInteractively(
×
67
      PerlBundle.message("perl.vm.system.choose.interpreter"),
×
68
      this::suggestHomePath,
69
      false,
70
      it -> StringUtil.contains(it, "perl"),
×
71
      it -> {
72
        String fileName = new File(it).getName();
×
73
        return StringUtil.contains(fileName, "perl") ? null : PerlBundle.message("perl.vm.system.perl.wrong.name", fileName);
×
74
      },
75
      (path, perlHostData) -> {
76
        if (StringUtil.isNotEmpty(path) && perlHostData != null) {
×
77
          PerlSdkType.createAndAddSdk(path, perlHostData, createData(), sdkConsumer, project);
×
78
        }
79
      },
×
80
      disposable);
81
  }
×
82

83
  /**
84
   * Suggests a default path for a file chooser or text input
85
   */
86
  private @Nullable File suggestHomePath(@NotNull PerlHostData<?, ?> hostData) {
87
    return hostData.findFileByName(hostData.getOsHandler().getPerlExecutableName());
×
88
  }
89

90
  @Override
91
  public boolean isApplicable(@Nullable PerlOsHandler osHandler) {
92
    return true;
1✔
93
  }
94

95
  @Override
96
  public String toString() {
97
    return getShortName();
×
98
  }
99

100
  @Override
101
  public @Nullable PerlVersionManagerAdapter createAdapter(@NotNull String pathToVersionManager, @NotNull PerlHostData<?, ?> hostData) {
102
    return null;
×
103
  }
104

105
  @Override
106
  public @Nullable String getControlOutputForPerlVersion(@NotNull String perlVersion) {
107
    return "v" + perlVersion;
×
108
  }
109
}
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