代码行数统计插件(Intellij IDEA 代码统计插件 Statistic 详细使用教程)

news2024/10/6 20:29:47

代码行数统计插件(Intellij IDEA 代码统计插件 Statistic 详细使用教程)

在项目的开发过程中,你有没有遇到以下的一些场景:

  • 想统计一下整个项目的代码量有多少,比如有多少源代码文件,总体有多少行代码,空行和注释行各有多少?

  • 想统计一下整个项目中各种类型的源代码分别有多少,比如 java和 javascript各有多少?

  • 想统计一下项目下的某个模块代码量有多少?

  • 想统计一下某个源文件有多少行代码,多少空行,多少注释行?

除了自己写一个程序去逐个统计还有没有其他更快捷的方法呢?

当然有,那就是使用 Statistic插件(这里得感谢一下 Statistic 插件的作者了),本文将从以下的三个方面介绍 Statistic插件的安装和使用:

  • Statistic 的安装;

  • Statistic 的具体使用;

  • Statistic 的配置;

1、Intellij IDEA插件安装方式

在 Intellij IDEA 中安装插件,一般有两种方式:

  • 在线安装:直接在 File > Settings > Plugins中搜索,点击 install,安装完成后重启 Intellij IDEA 即可,这种方式快捷简单;

在这里插入图片描述

  • 离线安装:先下载插件包,然后在 File > Settings > Plugins中选择从本地安装,这种方式适合当插件版本与 IDEA 版本不一致的时候使用,通用性和可选择性更强,可以安装特定的版本。
    在这里插入图片描述
    选择你下载好的离线插件包
    在这里插入图片描述

2、Statistic 在线安装

对于 Statistic 插件,直接使用在线安装的方式,File > Settings > Plugins搜索 Statistic,然后直接 install,安装完成后重启 IDEA,重启后,可能会出现几种情况:

在这里插入图片描述

  • 如图在底下导航页签中看到 Statistic
    了,这就意味着插件安装成功,可以直接使用了;

  • 在底下导航页签中没有看到 Statistic,可以在 View > Tool Windows 中找到 Statistic,点击即可打开它;

  • 在 View > Tool Windows中没有找到 Statistic,说明插件安装失败了,出现了版本兼容性问题,在线安装的插件一般都是较新的版本,而 Intellij IDEA 可能是以前的版本,所以导致了不兼容,这个时候可以采用离线安装的方式。

3、Statistic 离线安装

首先查看 Intellij IDEA 的版本信息,在 Help > About
查看当前的版本信息,如下(我的是2018.2版):
在这里插入图片描述
然后去插件官方下载地址:https://plugins.jetbrains.com/plugin/4509-statistic/versions,下载对应版本的插件

在这里插入图片描述
安装完成后,重启 IDEA,就可以在底部导航栏看到 Statistic
页签了,如下:
在这里插入图片描述
Statistic 分为了三个功能按钮:

  • Refresh:统计当前整个项目的代码情况;
  • Refresh on Selection:统计选中目录或文件的代码情况;
  • Settings:关于 Statistic 插件的设置,可以自定义过滤规则;

4、Statistic 的使用

这里以 一个测试项目作为一个统计示例。

4.1 整体统计

点击 Refresh按钮进行统计,整体统计的结果如下:
在这里插入图片描述
关于 Overview 统计面板的参数说明:

  • Extenstion : 文件扩展名;

  • Count:文件数量,比如上面统计的 .java文件有94个,.html文件有104个等;

  • Size SUM :文件总占用硬盘大小;

  • Size MIN :最小文件占用硬盘大小;

  • Size MAX :最大文件占用硬盘大小;

  • Size AVG :文件平均占用硬盘大小;

  • Lines :代码总行数;

  • Lines MIN :文件中的最小行数;

  • Lines MAX :文件中的最大行数;

  • Lines AVG :文件的平均行数;

4.2 选择指定目录进行统计

选中 src目录,然后点击 Refresh on Selection按钮,得到的统计结果如下:
在这里插入图片描述

4.3 指定文件类型统计

也可以指定文件类型进行统计,比如选择 java,这个时候就会统计每个 java 文件中的代码行数、空行数和注释行数,以及它们各自所占的百分比,如下:
在这里插入图片描述
指定文件类型(如java)统计参数说明:

  • Total Lines :代码总行数(包括注释,空行)

  • Source Code Lines :源代码行数(不包括注释,空行)

  • Source Code Lines(%) :源代码行数百分比(Source Code Lines/Total Lines)

  • Comment Lines :注释行数

  • Comment Lines(%) :注释行数百分比(Comment Lines/Total Lines)

  • Blank Lines : 空行数

  • Blank Lines(%) : 空行百分比(Blank Lines/Total Lines)

5、Statistic 配置

Statistic 插件安装完成后,会有一些默认的配置,如果默认配置无法满足实际情况,可以更改配置,添加自定义的规则,打开配置界面有两种方式:

  • 在Statistic页签,点击 Settings按钮;

  • 通过菜单File > Settings > Tool > Statistic,打开配置界面;
    在这里插入图片描述
    通过配置界面,可以看到Statistic插件的一些默认配置,具体如下:

  • Excluded file types(默认排除的文件类型):class;svn-base;svn-work;Extra;gif;png;jpg;jpeg;bmp;tga;tiff;ear;war;zip;jar;iml;iws;ipr;bz2;gz;

  • Separate TABs file types(按TAB进行分隔的文件类型):java;xml;css;html;js;properties;jsp;txt;php;php4;php5;phtml;inc;py

  • Excluded directories(默认排除的目录):

    • Exclude compiler output directories:排除编译器的输出目录,比如 class 目录;

    • Exclude IDEA9+ artifact directory(.idea):排除IDEA9+版本的.idea目录;

    • Exclude NPM directory(node_modules):排除NPM的node_modules目录;

    • Exclude Git directory(.git):排除.git目录;

    • Exclude Subversion directory(.svn):排除.svn目录;

    • Exclude MAVEN output directories(target):排除Maven的输出目录target;

除了默认配置外,还有两项配置是没有默认开启的:

  • Exclude all directories starting with (.):排除所有以.开头的目录;

  • Activate when open project:打开项目时,自动激活统计;

如果有其他的目录不需要进行统计,可以进行自定义,比如排除 test或resources目录

在这里插入图片描述

总体来说,Statistic 插件使用起来还是非常方便的,可以满足开发过程中的基本统计需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多元分类预测 | Matlab基于灰狼优化深度置信网络(GWO-DBN)的分类预测,多特征输入模型,GWO-DBN分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab基于灰狼优化深度置信网络(GWO-DBN)的分类预测,多特征输入模型,GWO-DBN分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程序可…

基于深度强化学习的人岗匹配算法研究

一.需求分析 面向HR的人岗匹配功能,帮助HR高效挑选简历。模型能够根据给出的不同岗位需求,在简历库中挑选出与岗位需求最匹配的几个简历推荐给HR。岗位的常见需求包括:年龄、学历、工作年限三方面。简历也具有以下几个特征:应聘人…

第一章 SSD综述

SSD(Solid State Drive),即固态硬盘,以半导体存储数据,用纯电子电路实现,没有任何机械设备。 HDD(Hard DiskDrive),即传统机械硬盘。 一、SSD与HDD 1.1 两者的异同 1…

50从零开始学Java之万类之王Object是怎么回事?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前面的文章中,壹哥跟大家说过,Java是面向对象的编程语言,而在面…

Ymodem协议应知应会

1.优势 在嵌入式环境中,一旦需要和设备之间通过某种协议传输文件,Ymodem协议因为具备如下特征: 基本的流控基本的握手支持多文件传输支持校验协议精简,代码量少用众多既有客户端软件可以供测试,免写上位机程序。 因…

C++11:右值引用

文章目录 1. C左值和右值2. C右值引用 右值引用是一种新的 C 语法,基于右值引用引申出了 2 种 C 编程技巧,分别为移动语义和完美转发。本文主要介绍什么是右值引用以及它的基本用法。 1. C左值和右值 右值引用可以从字面意思上理解,指的是以…

【springboot+云计算】B/S医院信息管理系统源码(云HIS)

一、基于云计算技术的B/S架构的医院管理系统(简称云HIS) 采用前后端分离架构,前端由Angular框架、JavaScript语言开发;后端使用Java语言开发。系统遵循服务化、模块化原则开发,具有强大的可扩展性,二次开发方便快捷。为医疗机构提…

2023最新ChatGPT商业运营网站源码+支持ChatGPT4.0+新增GPT联网功能+支持ai绘画+实时语音识别输入+用户会员套餐+免费更新版本

2023最新ChatGPT商业运营网站源码支持ChatGPT4.0新增GPT联网功能支持ai绘画实时语音识别输入用户会员套餐免费更新版本 一、AI创作系统二、系统程序下载三、系统介绍四、安装教程五、主要功能展示六、更新日志 一、AI创作系统 提问:程序已经支持GPT3.5、GPT4.0接口…

Python之全-新-深-细详解

文章目录 第一章 Python环境搭建1.1. 计算机基础1.1.1. 什么是编程1.1.2. 什么是进制1.1.2.1. 进制的简介1.1.2.2. 进制的分类1.1.2.3. 进制的表示1.1.2.4. 进制的转换1.1.2.5. 原反补(了解)数据的转换负数的表示补码的引入 1.2. Python的介绍1.3. Python的安装与使用1.3.1. Py…

SSM简单项目遇到的几个问题

这几个问题,干扰了我很长时间。 主要因为书本的例子,是通过controller层返回到jsp层。但是,最后一个SSM项目,它用的是controller返回信息给Service层,再由Service层返回Jsp层。 实训:编写一个模糊查询姓名…

前端(三)——MVC与MVVM模式的battle

😄博主:小猫娃来啦 😄文章核心:mvc模式mvvm模式的battle 文章目录 mvc模式是什么mvc模式的优缺点优化mvc模式致命的缺点mvvm是什么,和mvc有什么关系?细看mvvm和mvc的不同 mvvm的缺点简化视图层开发 mvc模式…

E类逆变器Ltspice仿真

1 参数计算(待续) (1)确定振荡频率: (2)计算各器件参数; 2 电路仿真 (1)电路图 (2)电路分析 3 结果 (1)…

vue项目业务实现,视频监控-文件流,大屏适配方案(v-scale-screen),websocket前端

最近把以前的业务场景及解决方案整理了一下,具体实现的工具如下: 监控-视频文件流>video.js videojs-contrib-hls 大屏适配方案> v-scale-screen websocket>sockjs-client webstomp-client 视频监控-文件流 使用方法 下载video插件&#xf…

数字IC基础:状态化简与等价状态

相关阅读 数字IC基础知识:著名EDA公司与工具介绍 如果时序机的两个状态对于所有可能的输入序列都具有相同的输出序列(和相同的下一状态),则称这两个状态是等价的。时序机的等价状态无法通过观察输出序列的异同对其加以区分&#…

【Web3】认识以太坊钱包

目录 区块链钱包概念 密码 私钥 Private Key 公钥Public Key Keystore 助记词 Mnemonic 如何解锁账户 区块链钱包概念 钱包用来存钱的,在区块链中,我们的数字资产都会对应到一个账户地址上, 只有拥 有账户的钥匙(私钥&…

【网络进阶】Posix API与网络协议栈(五)

文章目录 1. ARP协议1.1 ARP协议的定义1.2 ARP协议的工作过程1.3 ARP协议的数据结构1.4 ARP欺骗1.5 ARP协议的局限性1.6 ARP协议与Posix API的关系 2. ARP协议例子3. ICMP协议3.1 ICMP协议的定义3.2 ICMP协议的类型3.3 ICMP协议的工作原理3.4 ICMP协议的应用3.5 ICMP协议的局限…

软考:中级软件设计师:操作系统,进程管理,前趋图,进程同步互斥,PV操作,

软考:中级软件设计师:操作系统 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 &…

Openlayers实战:地图上显示经纬度坐标

Openlayers地图中,鼠标移动,其位置的经纬度坐会经常显示在页面中。 在我们的实战课程里,详细讲一下其做法,成为一个主力的应用。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN) * @此源代码版权归大剑师兰特所有,可供学习或商业项目…

vue中如何引入插件并使用

Vue中的插件类型 vue中有大致有三种类型的插件,第三方插件、基于vue开发的插件及基于vue开发的组件 第三方插件 如:jquery、moment.js、aixos、Highcharts等 注意:Highcharts也有基于vue开发的插件版本,具体使用方法参见下文 …

C++中的类

1、类和对象 C中通过class定义类 class A {int a; }; // 定义一个A类型的类通过类来定义对象 A a; // 定义一个A类型的对象类是一张蓝图,是抽象的。而对象是根据蓝图真正建造出来的建筑,是具象的。 对象是类的实体化 2、类的限制修饰符 类有三种修…