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

Camelcade / Perl5-IDEA / #525521957

07 Oct 2026 11:08AM UTC coverage: 76.113% (+0.005%) from 76.108%
#525521957

push

github

hurricup
Bump org.jetbrains.kotlin.jvm from 2.4.10 to 2.4.20

Bumps [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin) from 2.4.10 to 2.4.20.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.4.10...v2.4.20)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.jvm
  dependency-version: 2.4.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

14775 of 22572 branches covered (65.46%)

Branch coverage included in aggregate %.

31124 of 37732 relevant lines covered (82.49%)

0.82 hits per line

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

64.0
/plugin/debugger/src/main/java/com/perl5/lang/perl/debugger/PerlRemoteFileSystem.java
1
/*
2
 * Copyright 2015-2023 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.debugger;
18

19
import com.intellij.openapi.application.ApplicationManager;
20
import com.intellij.openapi.vfs.DeprecatedVirtualFileSystem;
21
import com.intellij.openapi.vfs.VirtualFile;
22
import com.intellij.openapi.vfs.VirtualFileManager;
23
import com.intellij.openapi.vfs.VirtualFileSystem;
24
import com.intellij.testFramework.LightVirtualFile;
25
import com.perl5.lang.perl.debugger.protocol.PerlStackFrameDescriptor;
26
import com.perl5.lang.perl.fileTypes.PerlFileTypeScript;
27
import org.jetbrains.annotations.NotNull;
28
import org.jetbrains.annotations.Nullable;
29

30
import java.io.IOException;
31
import java.util.HashMap;
32
import java.util.Map;
33
import java.util.Objects;
34

35
/**
36
 * Clone of mock file system
37
 */
38
public class PerlRemoteFileSystem extends DeprecatedVirtualFileSystem {
1 ✔
39
  public static final String PROTOCOL = "perl5_remote";
40
  public static final String PROTOCOL_PREFIX = "perl5_remote://";
41
  private final Map<String, VirtualFile> virtualFilesMap = new HashMap<>();
1 ✔
42

43
  @Override
44
  public @Nullable VirtualFile findFileByPath(@NotNull String path) {
45
    return virtualFilesMap.get(path);
1 ✔
46
  }
47

48
  public void dropFiles() {
49
    ApplicationManager.getApplication().runWriteAction(new Runnable() {
1 ✔
50
      @Override
51
      public void run() {
52
        for (Map.Entry<String, VirtualFile> entry : virtualFilesMap.entrySet()) {
1 ✔
53
          VirtualFile value = entry.getValue();
1 ✔
54
          fireBeforeFileDeletion(this, value);
1 ✔
55
          fireFileDeleted(this, value, value.getName(), null);
1 ✔
56
        }
1 ✔
57
      }
1 ✔
58
    });
59
    virtualFilesMap.clear();
1 ✔
60
  }
1 ✔
61

62
  public @Nullable VirtualFile registerRemoteFile(@NotNull String filePath, @NotNull String fileSource) {
63
    String fileName;
64
    if (filePath.startsWith(PerlStackFrameDescriptor.EVAL_PREFIX)) // make name for eval
1 !
65
    {
66
      fileName = filePath.substring(0, filePath.indexOf(')') + 1);
1 ✔
67
    }
68
    else // make name for regular file
69
    {
70
      int slashIndex = filePath.lastIndexOf('/');
×
71
      fileName = slashIndex == -1 ? filePath : filePath.substring(slashIndex + 1);
×
72
    }
73
    return registerRemoteFile(fileName, filePath, fileSource);
1 ✔
74
  }
75

76
  public @NotNull VirtualFile registerRemoteFile(@NotNull String fileName, @NotNull String filePath, @NotNull String fileSource) {
77
    //                System.err.println("Registering file: "+ fileName + " " + filePath);
78
    LightVirtualFile newVirtualFile = new PerlRemoteVirtualFile(fileName, filePath, fileSource);
1 ✔
79
    virtualFilesMap.put(filePath, newVirtualFile);
1 ✔
80
    return newVirtualFile;
1 !
81
  }
82

83
  @Override
84
  public @NotNull String getProtocol() {
85
    return PROTOCOL;
×
86
  }
87

88
  @Override
89
  public void refresh(boolean asynchronous) {
90
  }
×
91

92
  @Override
93
  public void deleteFile(Object requestor, @NotNull VirtualFile vFile) {
94
    throw new UnsupportedOperationException();
×
95
  }
96

97
  @Override
98
  public void moveFile(Object requestor, @NotNull VirtualFile vFile, @NotNull VirtualFile newParent) {
99
    throw new UnsupportedOperationException();
×
100
  }
101

102
  @Override
103
  public @NotNull VirtualFile copyFile(Object requestor,
104
                                       @NotNull VirtualFile vFile,
105
                                       @NotNull VirtualFile newParent,
106
                                       final @NotNull String copyName) {
107
    throw new UnsupportedOperationException();
×
108
  }
109

110
  @Override
111
  public void renameFile(Object requestor, @NotNull VirtualFile vFile, @NotNull String newName) {
112
    throw new UnsupportedOperationException();
×
113
  }
114

115
  @Override
116
  public @NotNull VirtualFile createChildFile(Object requestor, @NotNull VirtualFile vDir, @NotNull String fileName) {
117
    throw new UnsupportedOperationException();
×
118
  }
119

120
  @Override
121
  public @NotNull VirtualFile createChildDirectory(Object requestor, @NotNull VirtualFile vDir, @NotNull String dirName)
122
    throws IOException {
123
    throw new IOException();
×
124
  }
125

126
  @Override
127
  public VirtualFile refreshAndFindFileByPath(@NotNull String path) {
128
    return findFileByPath(path);
×
129
  }
130

131
  public static @NotNull PerlRemoteFileSystem getInstance() {
132
    return ((PerlRemoteFileSystem)Objects.requireNonNull(VirtualFileManager.getInstance().getFileSystem(PROTOCOL)));
1 !
133
  }
134

135
  public class PerlRemoteVirtualFile extends LightVirtualFile {
136
    private final String myPath;
137

138
    public PerlRemoteVirtualFile(@NotNull String name, String path, String text) {
1 ✔
139
      super(name, PerlFileTypeScript.INSTANCE, text);
1 ✔
140
      myPath = path;
1 ✔
141
    }
1 ✔
142

143
    @Override
144
    public @NotNull VirtualFileSystem getFileSystem() {
145
      return PerlRemoteFileSystem.this;
1 !
146
    }
147

148
    @Override
149
    public @NotNull String getPath() {
150
      return myPath;
1 !
151
    }
152
  }
153
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc