MCPcopy Create free account
hub / github.com/docker/docker-language-server / findSymbols

Function findSymbols

internal/compose/documentSymbol.go:21–38  ·  view source on GitHub ↗
(value string, n *ast.MappingValueNode, mapping map[string]protocol.SymbolKind)

Source from the content-addressed store, hash-verified

19}
20
21func 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
40func includedFiles(nodes []ast.Node) []*token.Token {
41 tokens := []*token.Token{}

Callers 1

DocumentSymbolFunction · 0.85

Calls 2

includedFilesFunction · 0.85
createSymbolFunction · 0.70

Tested by

no test coverage detected