-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcode-structure-documentation.json
More file actions
147 lines (147 loc) · 6.82 KB
/
code-structure-documentation.json
File metadata and controls
147 lines (147 loc) · 6.82 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
{
"countAsErrors" : {
"inDirectCycle" : [
"path: countAsErrors.inDirectCycle",
"default value: true",
"default value type: Boolean",
"Whether to include the number of code units in a direct cycle in the error count",
"Direct cycles typically require changes in logic to fix, so they are riskier than the other metrics",
"Set this to false if you want to focus on metrics that are easier to fix first"
],
"inGroupCycle" : [
"path: countAsErrors.inGroupCycle",
"default value: true",
"default value type: Boolean",
"Whether to include the number of group cycles in the error count",
"Groups are packages in java, modules in elixir"
],
"ancestorDependsOnDescendant" : [
"path: countAsErrors.ancestorDependsOnDescendant",
"default value: true",
"default value type: Boolean",
"Whether to include the number cases where an ancestor depends on a descendant in error count",
"Dependencies between super-categories and sub-categories indicate that files in the super-category weren't placed in a properly named sub-category",
"Instead, organize your directory structure such that each directory either only contains other directories following the same rules, or only contains files"
],
"descendantDependsOnAncestor" : [
"path: countAsErrors.descendantDependsOnAncestor",
"default value: true",
"default value type: Boolean",
"Whether to include the number cases where a descendant depends on a ancestor in error count",
"Dependencies between super-categories and sub-categories indicate that files in the super-category weren't placed in a properly named sub-category",
"Instead, organize your directory structure such that each directory either only contains other directories following the same rules, or only contains files"
]
},
"maximumAllowedErrorCount" : [
"path: maximumAllowedErrorCount",
"default value: 0",
"default value type: Integer",
"if the number of errors exceeds this number, the build will fail"
],
"inputDir" : [
"path: inputDir",
"default value: .",
"default value type: String",
"the directory from which to start scanning"
],
"outputDir" : [
"path: outputDir",
"default value: generated/code-structure",
"default value type: String",
"the directory to place the report"
],
"useObservationsCache" : [
"path: useObservationsCache",
"default value: false",
"default value type: Boolean",
"if the observations file exists, use that instead of scanning the sources and binaries",
"this is useful if you want to run 'what if' scenarios by manually changing the observations file"
],
"includeJvmDynamicInvocations" : [
"path: includeJvmDynamicInvocations",
"default value: false",
"default value type: Boolean",
"Clojure invokes methods dynamically, so the class dependency won't show up as a class in the constant pool (CONSTANT_Class - 7)",
"However, the class name will still show up as a string, so we can get it as a string in the constant pool (CONSTANT_Utf8 - 1)",
"Reading the string constants instead of class constants will also catch instances of Class.forName, but only if the completed string exists in the constant pool, it will not be able to detect it in cases where the string is constructed at runtime."
],
"sourcePrefix" : [
"path: sourcePrefix",
"default value: prefix for link to source code",
"default value type: String",
"pre-pended to links in the report, so you can navigate directly to the source code from the report"
],
"sourceFileRegexPatterns" : {
"include" : [
"path: sourceFileRegexPatterns.include",
"default value: []",
"default value type: EmptyList",
"what file names constitute a source file, relative to the 'inputDir' configuration item",
"used to determine names",
"list of regular expression patterns to include",
"to be included, a file must match at least one include pattern, without matching any exclude patterns"
],
"exclude" : [
"path: sourceFileRegexPatterns.exclude",
"default value: []",
"default value type: EmptyList",
"what file names constitute a source file, relative to the 'inputDir' configuration item",
"used to determine names",
"list of regular expression patterns to exclude",
"list of regular expression patterns to include",
"to be included, a file must match at least one include pattern, without matching any exclude patterns"
]
},
"nodeLimitForGraph" : [
"path: nodeLimitForGraph",
"default value: 100",
"default value type: Integer",
"the higher the number of files, the longer the graph takes to generate and the more useless it is",
" if this limit is exceeded, the graph is not generated"
],
"binaryFileRegexPatterns" : {
"include" : [
"path: binaryFileRegexPatterns.include",
"default value: []",
"default value type: EmptyList",
"what file name constitutes a binary file, relative to the 'inputDir' configuration item",
"used to determine dependency relationships between names",
"list of regular expression patterns to include",
"list of regular expression patterns to include",
"to be included, a file must match at least one include pattern, without matching any exclude patterns"
],
"exclude" : [
"path: binaryFileRegexPatterns.exclude",
"default value: []",
"default value type: EmptyList",
"what file name constitutes a binary file, relative to the 'inputDir' configuration item",
"used to determine dependency relationships between names",
"list of regular expression patterns to exclude",
"list of regular expression patterns to include",
"to be included, a file must match at least one include pattern, without matching any exclude patterns"
]
},
"_documentation" : {
"description" : [
"path: _documentation.description",
"default value: Analyzes dependency structure of source code",
"default value type: String",
"Brief description of what this tool does",
"Helps AI assistants and developers understand the purpose of the application"
],
"readme" : [
"path: _documentation.readme",
"default value: https://github.com/SeanShubin/code-structure/blob/master/README.md",
"default value type: String",
"Link to the README file for detailed documentation",
"Should be a URL to the project's README on GitHub or similar"
],
"configHelp" : [
"path: _documentation.configHelp",
"default value: code-structure-documentation.json",
"default value type: String",
"Name of the JSON file containing detailed help for each configuration setting",
"This file is automatically generated with documentation for all config keys"
]
}
}