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

Camelcade / Perl5-IDEA / #525521879

11 Jul 2026 07:47AM UTC coverage: 76.024% (-0.02%) from 76.045%
#525521879

push

github

hurricup
Added explicit waiting for debug process to finish

14723 of 22542 branches covered (65.31%)

Branch coverage included in aggregate %.

31082 of 37709 relevant lines covered (82.43%)

0.82 hits per line

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

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

19
import com.intellij.navigation.ItemPresentation;
20
import com.intellij.openapi.util.text.StringUtil;
21
import com.intellij.psi.PsiElement;
22
import com.intellij.psi.PsiFile;
23
import com.intellij.psi.util.CachedValueProvider;
24
import com.intellij.psi.util.CachedValuesManager;
25
import com.perl5.lang.perl.psi.impl.PerlBuiltInNamespaceDefinition;
26
import com.perl5.lang.perl.psi.impl.PerlImplicitNamespaceDefinition;
27
import com.perl5.lang.perl.psi.properties.PerlDieScope;
28
import com.perl5.lang.perl.psi.properties.PerlLabelScope;
29
import com.perl5.lang.perl.psi.properties.PerlLexicalScope;
30
import com.perl5.lang.perl.psi.references.PerlBuiltInNamespacesService;
31
import com.perl5.lang.perl.util.PerlPackageUtilCore;
32
import com.perl5.lang.pod.parser.psi.PodLinkTarget;
33
import org.jetbrains.annotations.Nullable;
34

35

36
public interface PerlFile
37
  extends PsiFile, PerlLexicalScope, PerlNamespaceDefinitionElement, PerlLabelScope, ItemPresentation, PodLinkTarget, PerlDieScope,
38
          PerlControlFlowOwner {
39
  /**
40
   * @return namespace definition psi element from built-in service or synthetic one
41
   */
42
  default @Nullable PerlNamespaceDefinitionElement getNamespaceDefinitionElement() {
43
    String packageName = getNamespaceName();
1✔
44
    if (StringUtil.isEmpty(packageName)) {
1!
45
      return null;
×
46
    }
47
    PerlBuiltInNamespaceDefinition namespaceDefinition =
1✔
48
      PerlBuiltInNamespacesService.getInstance(getProject()).getNamespaceDefinition(packageName);
1✔
49
    if (namespaceDefinition != null) {
1!
50
      return namespaceDefinition;
1✔
51
    }
52
    return CachedValuesManager.getCachedValue(this, () -> CachedValueProvider.Result.create(
×
53
      new PerlImplicitNamespaceDefinition(getManager(), PerlPackageUtilCore.getCanonicalNamespaceName(packageName), this),
×
54
      this));
55
  }
56

57
  /**
58
   * Returns perl content with templating injections replaced with spaces
59
   *
60
   * @return bytes for external analysis/formatting
61
   */
62
  byte @Nullable [] getPerlContentInBytes();
63

64
  /**
65
   * Overrides file context; if null - using default context resoving implementation
66
   *
67
   * @param fileContext new file context
68
   */
69
  void setFileContext(@Nullable PsiElement fileContext);
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