forked from lospec/lospec-rpg
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLineCodeCounter.gd
More file actions
54 lines (44 loc) · 1.34 KB
/
LineCodeCounter.gd
File metadata and controls
54 lines (44 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
@tool
extends EditorScript
func _run() -> void:
var total_lines: int = 0
var blanks : int = 0
var comments: int = 0
var codes: int = 0
var script_files: Array[String] = []
var dir: DirAccess = DirAccess.open("res://")
if dir:
script_files = Get_script_files(dir)
for script_file : String in script_files:
var file: FileAccess = FileAccess.open(script_file, FileAccess.READ)
if file:
while not file.eof_reached():
var text : String = file.get_line()
total_lines += 1
if text.is_empty():
blanks += 1
elif text.begins_with("#"):
comments += 1
else:
codes += 1
file.close()
print("Script count: ", script_files.size())
print("Codes: ", codes)
print("Blanks: ", blanks)
print("Comments: ", comments)
print("Total lines: ", total_lines)
func Get_script_files(dir: DirAccess) -> Array[String]:
var script_files: Array[String] = []
dir.list_dir_begin()
var file_name: String = dir.get_next()
while file_name != "":
var current: String = dir.get_current_dir() + "/" + file_name
if dir.current_is_dir() and file_name != "." and file_name != "..":
var subdir: DirAccess = DirAccess.open(current)
if subdir:
script_files += Get_script_files(subdir)
elif file_name.ends_with(".gd"):
script_files.append(current)
file_name = dir.get_next()
dir.list_dir_end()
return script_files