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

Function volumeReferences

internal/compose/documentHighlight.go:105–139  ·  view source on GitHub ↗
(servicesNode *ast.MappingNode)

Source from the content-addressed store, hash-verified

103}
104
105func volumeReferences(servicesNode *ast.MappingNode) []*token.Token {
106 tokens := []*token.Token{}
107 for _, serviceNode := range servicesNode.Values {
108 if serviceAttributes, ok := resolveAnchor(serviceNode.Value).(*ast.MappingNode); ok {
109 for _, attributeNode := range serviceAttributes.Values {
110 if resolveAnchor(attributeNode.Key).GetToken().Value == "volumes" {
111 volumesValue := resolveAnchor(attributeNode.Value)
112 if sequenceNode, ok := volumesValue.(*ast.SequenceNode); ok {
113 for _, volume := range sequenceNode.Values {
114 volumeNode := resolveAnchor(volume)
115 if volumeObjectNode, ok := volumeNode.(*ast.MappingNode); ok {
116 for _, volumeAttribute := range volumeObjectNode.Values {
117 if resolveAnchor(volumeAttribute.Key).GetToken().Value == "source" {
118 tokens = append(tokens, resolveAnchor(volumeAttribute.Value).GetToken())
119 }
120 }
121 } else {
122 token := volumeNode.GetToken()
123 volumeConfig, err := format.ParseVolume(token.Value)
124 if err == nil && volumeConfig.Type == types.VolumeTypeVolume {
125 tokens = append(tokens, volumeToken(token))
126 }
127 }
128 }
129 } else if mappingNode, ok := volumesValue.(*ast.MappingNode); ok {
130 for _, dependentService := range mappingNode.Values {
131 tokens = append(tokens, resolveAnchor(dependentService.Key).GetToken())
132 }
133 }
134 }
135 }
136 }
137 }
138 return tokens
139}
140
141func declarations(node *ast.MappingNode) []*token.Token {
142 tokens := []*token.Token{}

Callers 1

DocumentHighlightsFunction · 0.85

Calls 2

resolveAnchorFunction · 0.85
volumeTokenFunction · 0.85

Tested by

no test coverage detected