clang-tidy parser and executor #26
|
@ -67,22 +67,22 @@ func levelFromString(levelString string) Level {
|
|||
}
|
||||
|
||||
func isIgnored(line string) bool {
|
||||
IGNORE_REGEX := regexp.MustCompile("^error:.*$")
|
||||
return IGNORE_REGEX.MatchString(line)
|
||||
ignore_Regex := regexp.MustCompile("^error:.*$")
|
||||
return ignore_Regex.MatchString(line)
|
||||
}
|
||||
|
||||
func parseMessage(line string) ClangMessage {
|
||||
MESSAGE_REGEX := regexp.MustCompile(`^(?P<filepath>.+):(?P<line>\d+):(?P<column>\d+): (?P<level>\S+): (?P<message>.*?)(?: \[(?P<diagnostic_name>.*)\])?\n$`)
|
||||
regex_res := MESSAGE_REGEX.FindStringSubmatch(line)
|
||||
if len(regex_res) == 0 {
|
||||
messageRegex := regexp.MustCompile(`^(?P<filepath>.+):(?P<line>\d+):(?P<column>\d+): (?P<level>\S+): (?P<message>.*?)(?: \[(?P<diagnostic_name>.*)\])?\n$`)
|
||||
regexRes := messageRegex.FindStringSubmatch(line)
|
||||
if len(regexRes) == 0 {
|
||||
return *newClangMessage("", 0, 0, UNKNOWN, "", "", nil, nil)
|
||||
} else {
|
||||
filepath := regex_res[1]
|
||||
line, _ := strconv.Atoi(regex_res[2])
|
||||
column, _ := strconv.Atoi(regex_res[3])
|
||||
level := levelFromString(regex_res[4])
|
||||
message := regex_res[5]
|
||||
diagnostic_name := regex_res[6]
|
||||
filepath := regexRes[1]
|
||||
line, _ := strconv.Atoi(regexRes[2])
|
||||
column, _ := strconv.Atoi(regexRes[3])
|
||||
level := levelFromString(regexRes[4])
|
||||
message := regexRes[5]
|
||||
diagnosticName := regexRes[6]
|
||||
|
||||
return ClangMessage{
|
||||
filepath: filepath,
|
||||
|
@ -90,7 +90,7 @@ func parseMessage(line string) ClangMessage {
|
|||
column: column,
|
||||
level: level,
|
||||
message: message,
|
||||
diagnosticName: diagnostic_name,
|
||||
diagnosticName: diagnosticName,
|
||||
detailsLines: make([]string, 0),
|
||||
children: make([]ClangMessage, 0),
|
||||
}
|
||||
|
@ -98,15 +98,15 @@ func parseMessage(line string) ClangMessage {
|
|||
}
|
||||
|
||||
func groupMessages(messages []ClangMessage) []ClangMessage {
|
||||
grouped_messages := make([]ClangMessage, 0)
|
||||
groupedMessages := make([]ClangMessage, 0)
|
||||
for _, message := range messages {
|
||||
if message.level == NOTE {
|
||||
grouped_messages[len(grouped_messages)-1].children = append(grouped_messages[len(grouped_messages)-1].children, message)
|
||||
groupedMessages[len(groupedMessages)-1].children = append(groupedMessages[len(groupedMessages)-1].children, message)
|
||||
} else {
|
||||
grouped_messages = append(grouped_messages, message)
|
||||
groupedMessages = append(groupedMessages, message)
|
||||
}
|
||||
}
|
||||
return grouped_messages
|
||||
return groupedMessages
|
||||
}
|
||||
|
||||
func convertPathsToRelative(messages *[]ClangMessage, conf Conf) {
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
|
||||
type JsonMessage struct {
|
||||
Type string `json:"type"`
|
||||
CheckName string `json:"check_name"`
|
||||
CheckName string `json:"checkname"`
|
||||
Description string `json:"description"`
|
||||
Content map[string]interface{} `json:"content"`
|
||||
Categories []string `json:"categories"`
|
||||
|
@ -151,12 +151,12 @@ func extractLocation(message ClangMessage) map[string]interface{} {
|
|||
}
|
||||
|
||||
func extractOtherLocations(message ClangMessage) []map[string]interface{} {
|
||||
location_list := []map[string]interface{}{}
|
||||
locationList := []map[string]interface{}{}
|
||||
for _, child := range message.children {
|
||||
location_list = append(location_list, extractLocation(child))
|
||||
location_list = append(location_list, extractOtherLocations(child)...)
|
||||
locationList = append(locationList, extractLocation(child))
|
||||
locationList = append(locationList, extractOtherLocations(child)...)
|
||||
}
|
||||
return location_list
|
||||
return locationList
|
||||
}
|
||||
|
||||
func extractTrace(message ClangMessage) map[string]interface{} {
|
||||
|
|
|
@ -15,10 +15,10 @@ func contains(arr []string, element string) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func GetScore(json_messages []JsonMessage, conf Conf) int {
|
||||
func GetScore(jsonMessages []JsonMessage, conf Conf) int {
|
||||
fullmark := conf.Score
|
||||
for _, json_message := range json_messages {
|
||||
keyword := json_message.CheckName
|
||||
for _, jsonMessage := range jsonMessages {
|
||||
keyword := jsonMessage.CheckName
|
||||
for _, match := range conf.Matches {
|
||||
if contains(match.Keyword, keyword) {
|
||||
fullmark -= match.Score
|
||||
|
|
Loading…
Reference in New Issue
Block a user