MCPcopy Index your code
hub / github.com/Tencent/CodeAnalysis / config

Method config

client/tool/dartanalyzer.py:124–171  ·  view source on GitHub ↗

配置dartanalyzer配置文件 :param params: :return:

(self, params)

Source from the content-addressed store, hash-verified

122 return issues
123
124 def config(self, params):
125 """
126 配置dartanalyzer配置文件
127 :param params:
128 :return:
129 """
130 source_dir = params.source_dir
131 work_dir = params.work_dir
132 path_exclude = params.path_filters.get("exclusion", [])
133 enabl_rules = params.rules
134 envs = os.environ
135
136 # 支持指定代码库下的配置文件
137 if "DARTANALYZER_CONFIG" in envs:
138 return os.path.join(source_dir, envs["DARTANALYZER_CONFIG"])
139
140 config_file = os.path.join(work_dir, "analysis_options.yml")
141 if os.path.exists(config_file):
142 os.remove(config_file)
143 copyfile(os.path.join(envs.get("DART_HOME"), "analysis_options.yaml"), config_file)
144 f = open(config_file)
145 config = yaml.load(f, Loader=yaml.FullLoader)
146 f.close()
147
148 # 设置过滤
149 if path_exclude:
150 config["analyzer"]["exclude"] = [path.replace("*", "**") for path in path_exclude]
151
152 # 设置开关规则
153 analyzer_rules = config["analyzer"]["errors"]
154 for rule in analyzer_rules:
155 if rule not in enabl_rules:
156 continue
157 analyzer_rules[rule] = "warning"
158
159 linter_rules = config["linter"]["rules"]
160 for rule in linter_rules:
161 if rule not in enabl_rules:
162 continue
163 linter_rules[rule] = True
164
165 # 设置其他配置,include/strong-mode
166
167 f = open(config_file, "w")
168 yaml.dump(config, f, default_flow_style=False)
169 f.close()
170
171 return config_file
172
173
174tool = DartAnalyzer

Callers 1

analyzeMethod · 0.95

Calls 4

dumpMethod · 0.80
getMethod · 0.45
removeMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected