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

Camelcade / Perl5-IDEA / #525521519

21 Apr 2025 01:57PM UTC coverage: 82.17% (+0.01%) from 82.156%
#525521519

push

github

hurricup
CAMELCADE-22634 Cleanup

8 of 8 new or added lines in 2 files covered. (100.0%)

102 existing lines in 15 files now uncovered.

30868 of 37566 relevant lines covered (82.17%)

0.82 hits per line

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

96.0
/plugin/core/src/main/java/com/perl5/lang/pod/elementTypes/PodElementTypeFactory.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.pod.elementTypes;
18

19
import com.intellij.lang.ASTNode;
20
import com.intellij.openapi.diagnostic.Logger;
21
import com.intellij.psi.PsiElement;
22
import com.intellij.psi.tree.IElementType;
23
import com.perl5.lang.pod.parser.psi.impl.PodIdentifierImpl;
24
import com.perl5.lang.pod.psi.impl.*;
25
import org.jetbrains.annotations.NotNull;
26

27
import static com.perl5.lang.pod.elementTypes.PodStubElementTypes.*;
28

29

UNCOV
30
public class PodElementTypeFactory {
×
31
  private static final Logger LOG = Logger.getInstance(PodElementTypeFactory.class);
1✔
32

33
  public static IElementType getTokenType(String debugName) {
34
    if (debugName.equals("identifier")) {
1✔
35
      return new PodTokenTypeEx(debugName) {
1✔
36
        @Override
37
        public @NotNull ASTNode createLeafNode(@NotNull CharSequence leafText) {
38
          return new PodIdentifierImpl(this, leafText);
1✔
39
        }
40
      };
41
    }
42
    return new PodTokenType(debugName);
1✔
43
  }
44

45
  public static IElementType getElementType(String name) {
46
    return switch (name) {
1✔
47
      case POD_FORMAT_INDEX_DEBUG_NAME -> POD_FORMAT_INDEX;
1✔
48
      case "CUT_SECTION" -> new PodElementType(name) {
1✔
49
        @Override
50
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
51
          return new PsiCutSectionImpl(node);
1✔
52
        }
53
      };
54
      case "ENCODING_SECTION" -> new PodElementType(name) {
1✔
55
        @Override
56
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
57
          return new PsiEncodingSectionImpl(node);
1✔
58
        }
59
      };
60
      case "FORMATTING_SECTION_CONTENT" -> new PodElementType(name) {
1✔
61
        @Override
62
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
63
          return new PsiFormattingSectionContentImpl(node);
1✔
64
        }
65
      };
66
      case "FOR_SECTION" -> new PodElementType(name) {
1✔
67
        @Override
68
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
69
          return new PsiForSectionImpl(node);
1✔
70
        }
71
      };
72
      case "FOR_SECTION_CONTENT" -> new PodElementType(name) {
1✔
73
        @Override
74
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
75
          return new PsiForSectionContentImpl(node);
1✔
76
        }
77
      };
78
      case HEAD_1_SECTION_DEBUG_NAME -> PodStubElementTypes.HEAD_1_SECTION;
1✔
79
      case "HEAD_1_SECTION_CONTENT" -> new PodElementType(name) {
1✔
80
        @Override
81
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
82
          return new PsiHead1SectionContentImpl(node);
1✔
83
        }
84
      };
85
      case HEAD_2_SECTION_DEBUG_NAME -> PodStubElementTypes.HEAD_2_SECTION;
1✔
86
      case "HEAD_2_SECTION_CONTENT" -> new PodElementType(name) {
1✔
87
        @Override
88
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
89
          return new PsiHead2SectionContentImpl(node);
1✔
90
        }
91
      };
92
      case HEAD_3_SECTION_DEBUG_NAME -> PodStubElementTypes.HEAD_3_SECTION;
1✔
93
      case "HEAD_3_SECTION_CONTENT" -> new PodElementType(name) {
1✔
94
        @Override
95
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
96
          return new PsiHead3SectionContentImpl(node);
1✔
97
        }
98
      };
99
      case HEAD_4_SECTION_DEBUG_NAME -> PodStubElementTypes.HEAD_4_SECTION;
1✔
100
      case "HEAD_4_SECTION_CONTENT" -> new PodElementType(name) {
1✔
101
        @Override
102
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
103
          return new PsiHead4SectionContentImpl(node);
1✔
104
        }
105
      };
106
      case ITEM_SECTION_DEBUG_NAME -> ITEM_SECTION;
1✔
107
      case "ITEM_SECTION_CONTENT" -> new PodElementType(name) {
1✔
108
        @Override
109
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
110
          return new PsiItemSectionContentImpl(node);
1✔
111
        }
112
      };
113
      case "ITEM_SECTION_TITLE" -> new PodElementType(name) {
1✔
114
        @Override
115
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
116
          return new PsiItemSectionTitleImpl(node);
1✔
117
        }
118
      };
119
      case "OVER_SECTION" -> new PodElementType(name) {
1✔
120
        @Override
121
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
122
          return new PsiOverSectionImpl(node);
1✔
123
        }
124
      };
125
      case "OVER_SECTION_CONTENT" -> new PodElementType(name) {
1✔
126
        @Override
127
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
128
          return new PsiOverSectionContentImpl(node);
1✔
129
        }
130
      };
131
      case "POD_VERBATIM_PARAGRAPH" -> new PodElementType(name) {
1✔
132
        @Override
133
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
134
          return new PsiPodVerbatimParagraphImpl(node);
1✔
135
        }
136
      };
137
      case "POD_FORMAT_BOLD" -> new PodElementType(name) {
1✔
138
        @Override
139
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
140
          return new PsiPodFormatBoldImpl(node);
1✔
141
        }
142
      };
143
      case "POD_FORMAT_CODE" -> new PodElementType(name) {
1✔
144
        @Override
145
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
146
          return new PsiPodFormatCodeImpl(node);
1✔
147
        }
148
      };
149
      case "POD_FORMAT_ESCAPE" -> new PodElementType(name) {
1✔
150
        @Override
151
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
152
          return new PsiPodFormatEscapeImpl(node);
1✔
153
        }
154
      };
155
      case "POD_FORMAT_FILE" -> new PodElementType(name) {
1✔
156
        @Override
157
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
158
          return new PsiPodFormatFileImpl(node);
1✔
159
        }
160
      };
161
      case "POD_FORMAT_ITALIC" -> new PodElementType(name) {
1✔
162
        @Override
163
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
164
          return new PsiPodFormatItalicImpl(node);
1✔
165
        }
166
      };
167
      case "POD_FORMAT_LINK" -> new PodElementType(name) {
1✔
168
        @Override
169
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
170
          return new PsiPodFormatLinkImpl(node);
1✔
171
        }
172
      };
173
      case "POD_FORMAT_NBSP" -> new PodElementType(name) {
1✔
174
        @Override
175
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
176
          return new PsiPodFormatNbspImpl(node);
1✔
177
        }
178
      };
179
      case "POD_FORMAT_NULL" -> new PodElementType(name) {
1✔
180
        @Override
181
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
182
          return new PsiPodFormatNullImpl(node);
1✔
183
        }
184
      };
185
      case POD_PARAGRAPH_DEBUG_NAME -> PodStubElementTypes.POD_PARAGRAPH;
1✔
186
      case "POD_SECTION" -> new PodElementType(name) {
1✔
187
        @Override
188
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
189
          return new PsiPodSectionImpl(node);
1✔
190
        }
191
      };
192
      case "POD_SECTION_FORMAT" -> new PodElementType(name) {
1✔
193
        @Override
194
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
195
          return new PsiPodSectionFormatImpl(node);
1✔
196
        }
197
      };
198
      case "SECTION_TITLE" -> new PodElementType(name) {
1✔
199
        @Override
200
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
201
          return new PsiSectionTitleImpl(node);
1✔
202
        }
203
      };
204
      case UNKNOWN_SECTION_DEBUG_NAME -> PodStubElementTypes.UNKNOWN_SECTION;
1✔
205
      case "LINK_TEXT" -> new PodElementType(name) {
1✔
206
        @Override
207
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
208
          return new PsiLinkTextImpl(node);
1✔
209
        }
210
      };
211
      case "LINK_NAME" -> new PodElementType(name) {
1✔
212
        @Override
213
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
214
          return new PsiLinkNameImpl(node);
1✔
215
        }
216
      };
217
      case "LINK_SECTION" -> new PodElementType(name) {
1✔
218
        @Override
219
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
220
          return new PsiLinkSectionImpl(node);
1✔
221
        }
222
      };
223
      case "LINK_URL" -> new PodElementType(name) {
1✔
224
        @Override
225
        public @NotNull PsiElement getPsiElement(@NotNull ASTNode node) {
226
          return new PsiLinkUrlImpl(node);
1✔
227
        }
228
      };
229
      default -> {
UNCOV
230
        LOG.error("Missing element: " + name);
×
UNCOV
231
        throw new RuntimeException();
×
232
      }
233
    };
234
  }
235
}
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