【JAVA】Statistic-统计idea代码量
在IntelliJ IDEA中,你可以使用内置的“Statistic”插件来统计代码量。以下是如何安装和使用该插件的步骤:
- 打开IntelliJ IDEA。
- 进入"File" > "Settings" (Windows/Linux) 或 "IntelliJ IDEA" > "Preferences" (macOS)。
- 在"Plugins"中搜索"Statistic",然后点击"Install"进行安装。
- 安装完成后,重启IDEA。
- 打开你想统计的项目或模块。
- 使用快捷键"Ctrl+Alt+Shift+I" (Windows/Linux) 或 "Cmd+Alt+Shift+I" (macOS) 打开"Statistic"面板。
安装完成后,你可以通过以下方式快速统计代码量:
import com.intellij.internal.statistic.service.fus.collectors.ProjectUsagesCollector;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiJavaFile;
import org.jetbrains.annotations.NotNull;
import java.util.HashMap;
import java.util.Map;
public class JavaCodeStatistic extends ProjectUsagesCollector {
@NotNull
@Override
public String getGroupId() {
return "statistic.demo";
}
@Override
public void countPSIElementsUsage(@NotNull Map<String, UsageDescriptor> descriptors) {
int javaFilesCount = 0;
int javaCodeLinesCount = 0;
int javaCommentLinesCount = 0;
int javaWhiteLinesCount = 0;
for (PsiFile psiFile : myFiles) {
if (psiFile instanceof PsiJavaFile) {
javaFilesCount++;
int linesOfCode = StringUtil.countNewLines(psiFile.getText());
int commentLines = StringUtil.countNewLines(psiFile.getFileType().getCommentStartDelta("") + psiFile.getText());
javaCodeLinesCount += linesOfCode - commentLines;
javaCommentLinesCount += commentLines;
javaWhiteLinesCount += linesOfCode - psiFile.getText().trim().length();
}
}
descriptors.put("javaFilesCount", new UsageDescriptor(Integer.toString(javaFilesCount), javaFilesCount));
descriptors.put("javaCodeLinesCount", new UsageDescriptor(Integer.toString(javaCodeLinesCount), javaCodeLinesCount));
descriptors.put("javaCommentLinesCount", new UsageDescriptor(Integer.toString(javaCommentLinesCount), javaCommentLinesCount));
descriptors.put("javaWhiteLinesCount", new UsageDescriptor(Integer.toString(javaWhiteLinesCount), javaWhiteLinesCount));
}
}
这段代码定义了一个名为JavaCodeStatistic
的类,它扩展了ProjectUsagesCollector
类,并重写了countPSIElementsUsage
方法来统计项目中Java文件的数量、代码行数、注释行数和空白行数。
请注意,这只是一个简化示例,实际的统计可能需要更复杂的逻辑来处理特定的统计需求。此外,代码行数的统计可能会受到复杂代码的影响
评论已关闭