(value string, n *ast.MappingValueNode, mapping map[string]protocol.SymbolKind)
| 19 | } |
| 20 | |
| 21 | func findSymbols(value string, n *ast.MappingValueNode, mapping map[string]protocol.SymbolKind) (result []any) { |
| 22 | if kind, ok := mapping[value]; ok { |
| 23 | if mappingNode, ok := n.Value.(*ast.MappingNode); ok { |
| 24 | for _, service := range mappingNode.Values { |
| 25 | result = append(result, createSymbol(service.Key.GetToken(), kind)) |
| 26 | } |
| 27 | } else if n, ok := n.Value.(*ast.MappingValueNode); ok { |
| 28 | result = append(result, createSymbol(n.Key.GetToken(), kind)) |
| 29 | } |
| 30 | } else if value == "include" { |
| 31 | if sequenceNode, ok := n.Value.(*ast.SequenceNode); ok { |
| 32 | for _, token := range includedFiles(sequenceNode.Values) { |
| 33 | result = append(result, createSymbol(token, protocol.SymbolKindModule)) |
| 34 | } |
| 35 | } |
| 36 | } |
| 37 | return result |
| 38 | } |
| 39 | |
| 40 | func includedFiles(nodes []ast.Node) []*token.Token { |
| 41 | tokens := []*token.Token{} |
no test coverage detected