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

Camelcade / Perl5-IDEA / #525521742

19 Dec 2025 03:38AM UTC coverage: 76.003% (+0.04%) from 75.968%
#525521742

push

github

hurricup
Bump org.sonarqube from 7.2.1.6560 to 7.2.2.6593

Bumps org.sonarqube from 7.2.1.6560 to 7.2.2.6593.

---
updated-dependencies:
- dependency-name: org.sonarqube
  dependency-version: 7.2.2.6593
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

14772 of 22633 branches covered (65.27%)

Branch coverage included in aggregate %.

31098 of 37720 relevant lines covered (82.44%)

0.82 hits per line

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

86.11
/plugin/common/src/main/java/com/perl5/lang/perl/psi/impl/PerlUseStatementElementBase.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.psi.impl;
18

19
import com.intellij.lang.ASTNode;
20
import com.intellij.psi.tree.IElementType;
21
import com.perl5.lang.perl.extensions.packageprocessor.PerlPackageProcessor;
22
import com.perl5.lang.perl.extensions.packageprocessor.PerlPackageProcessorDefault;
23
import com.perl5.lang.perl.extensions.packageprocessor.PerlPackageProcessorService;
24
import com.perl5.lang.perl.extensions.packageprocessor.PerlVersionProcessor;
25
import com.perl5.lang.perl.psi.*;
26
import com.perl5.lang.perl.psi.properties.PerlNamespaceElementContainer;
27
import com.perl5.lang.perl.psi.stubs.imports.PerlUseStatementStub;
28
import com.perl5.lang.perl.psi.utils.PerlPsiUtil;
29
import com.perl5.lang.perl.util.PerlPackageUtilCore;
30
import org.jetbrains.annotations.NotNull;
31
import org.jetbrains.annotations.Nullable;
32

33
import java.util.Collections;
34
import java.util.List;
35

36
public abstract class PerlUseStatementElementBase extends PerlPolyNamedElement<PerlUseStatementStub>
37
  implements PerlNamespaceElementContainer,
38
             PerlCompositeElement,
39
             PsiPerlStatement,
40
             PerlUseStatement {
41
  public PerlUseStatementElementBase(@NotNull PerlUseStatementStub stub,
42
                                     @NotNull IElementType nodeType) {
43
    super(stub, nodeType);
1✔
44
  }
1✔
45

46
  public PerlUseStatementElementBase(@NotNull ASTNode node) {
47
    super(node);
1✔
48
  }
1✔
49

50
  public boolean isPragma() {
51
    return getPackageProcessor().isPragma();
1✔
52
  }
53

54
  public boolean isVersion() {
55
    return getNamespaceElement() == null && getVersionElement() != null;
1!
56
  }
57

58
  public boolean isPragmaOrVersion() {
59
    return isPragma() || isVersion();
1!
60
  }
61

62
  @Override
63
  public @Nullable String getPackageName() {
64
    PerlUseStatementStub stub = getGreenStub();
1✔
65
    if (stub != null) {
1✔
66
      return stub.getPackageName();
1✔
67
    }
68

69
    PerlNamespaceElement ns = getNamespaceElement();
1✔
70
    if (ns != null) {
1✔
71
      return ns.getCanonicalName();
1✔
72
    }
73
    return null;
1✔
74
  }
75

76
  @Override
77
  public @Nullable PerlNamespaceElement getNamespaceElement() {
78
    return findChildByClass(PerlNamespaceElement.class);
1✔
79
  }
80

81
  public PerlVersionElement getVersionElement() {
82
    return findChildByClass(PerlVersionElement.class);
1✔
83
  }
84

85
  @Override
86
  public @Nullable List<String> getImportParameters() {
87
    PerlUseStatementStub stub = getGreenStub();
1✔
88
    if (stub != null) {
1✔
89
      return stub.getImportParameters();
1✔
90
    }
91

92
    if (getExpr() == null) {
1✔
93
      return null;
1✔
94
    }
95

96

97
    PerlNamespaceElement namespaceElement = getNamespaceElement();
1✔
98
    if (namespaceElement != null) {
1!
99
      return PerlPsiUtil.collectStringContents(namespaceElement.getNextSibling());
1✔
100
    }
101
    else {
102
      return Collections.emptyList();
×
103
    }
104
  }
105

106
  public @NotNull PerlPackageProcessor getPackageProcessor() {
107
    PerlPackageProcessor packageProcessor = null;
1✔
108

109
    // package name processor
110
    String packageName = getPackageName();
1✔
111
    if (packageName != null) {
1✔
112
      packageProcessor = PerlPackageProcessorService.EP.findSingle(packageName);
1✔
113
    }
114
    else if (getVersionElement() != null) {
1✔
115
      packageProcessor = PerlVersionProcessor.getInstance();
1✔
116
    }
117

118
    return packageProcessor == null ? PerlPackageProcessorDefault.INSTANCE : packageProcessor;
1!
119
  }
120

121
  @Override
122
  public @NotNull String getNamespaceName() {
123
    PerlUseStatementStub stub = getGreenStub();
1✔
124
    if (stub != null) {
1!
125
      return stub.getNamespaceName();
×
126
    }
127

128
    return PerlPackageUtilCore.getContextNamespaceName(this);
1!
129
  }
130

131
  @Override
132
  public @Nullable PsiPerlExpr getExpr() {
133
    return findChildByClass(PsiPerlExpr.class);
1✔
134
  }
135

136
  /**
137
   * @return text that should be shown in folded block of use arguments
138
   */
139
  public @Nullable String getArgumentsFoldingText() {
140
    return getPackageProcessor().getArgumentsFoldingText(this);
1✔
141
  }
142

143
  /**
144
   * @return true iff arguments of this use statement should be collapesed by default, e.g. group of constants definitions
145
   */
146
  public boolean isFoldedByDefault() {
147
    return getPackageProcessor().isFoldedByDefault(this);
1✔
148
  }
149

150
  @Override
151
  public @Nullable PsiPerlStatementModifier getStatementModifier() {
152
    return null;
1✔
153
  }
154
}
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

© 2025 Coveralls, Inc