mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
goccy wip
This commit is contained in:
parent
45802f384c
commit
0fceef741b
@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/goccy/go-yaml/ast"
|
"github.com/goccy/go-yaml/ast"
|
||||||
|
goccyToken "github.com/goccy/go-yaml/token"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (o *CandidateNode) goccyDecodeIntoChild(childNode ast.Node, anchorMap map[string]*CandidateNode) (*CandidateNode, error) {
|
func (o *CandidateNode) goccyDecodeIntoChild(childNode ast.Node, anchorMap map[string]*CandidateNode) (*CandidateNode, error) {
|
||||||
@ -16,6 +17,7 @@ func (o *CandidateNode) goccyDecodeIntoChild(childNode ast.Node, anchorMap map[s
|
|||||||
func (o *CandidateNode) UnmarshalGoccyYAML(node ast.Node, anchorMap map[string]*CandidateNode) error {
|
func (o *CandidateNode) UnmarshalGoccyYAML(node ast.Node, anchorMap map[string]*CandidateNode) error {
|
||||||
log.Debugf("UnmarshalYAML %v", node)
|
log.Debugf("UnmarshalYAML %v", node)
|
||||||
log.Debugf("UnmarshalYAML %v", node.Type().String())
|
log.Debugf("UnmarshalYAML %v", node.Type().String())
|
||||||
|
log.Debugf("UnmarshalYAML Value: %v", node.String())
|
||||||
|
|
||||||
o.Value = node.String()
|
o.Value = node.String()
|
||||||
switch node.Type() {
|
switch node.Type() {
|
||||||
@ -28,6 +30,25 @@ func (o *CandidateNode) UnmarshalGoccyYAML(node ast.Node, anchorMap map[string]*
|
|||||||
case ast.StringType:
|
case ast.StringType:
|
||||||
o.Kind = ScalarNode
|
o.Kind = ScalarNode
|
||||||
o.Tag = "!!str"
|
o.Tag = "!!str"
|
||||||
|
switch node.GetToken().Type {
|
||||||
|
case goccyToken.SingleQuoteType:
|
||||||
|
o.Style = SingleQuotedStyle
|
||||||
|
case goccyToken.DoubleQuoteType:
|
||||||
|
o.Style = DoubleQuotedStyle
|
||||||
|
}
|
||||||
|
o.Value = node.(*ast.StringNode).Value
|
||||||
|
log.Debugf("string value %v", node.(*ast.StringNode).Value)
|
||||||
|
case ast.LiteralType:
|
||||||
|
o.Kind = ScalarNode
|
||||||
|
o.Tag = "!!str"
|
||||||
|
o.Style = LiteralStyle
|
||||||
|
astLiteral := node.(*ast.LiteralNode)
|
||||||
|
if astLiteral.Start.Type == goccyToken.FoldedType {
|
||||||
|
o.Style = FoldedStyle
|
||||||
|
}
|
||||||
|
log.Debug("startvalue: %v ", node.(*ast.LiteralNode).Start.Value)
|
||||||
|
log.Debug("startvalue: %v ", node.(*ast.LiteralNode).Start.Type)
|
||||||
|
o.Value = astLiteral.Value.Value
|
||||||
case ast.TagType:
|
case ast.TagType:
|
||||||
o.UnmarshalGoccyYAML(node.(*ast.TagNode).Value, anchorMap)
|
o.UnmarshalGoccyYAML(node.(*ast.TagNode).Value, anchorMap)
|
||||||
o.Tag = node.(*ast.TagNode).Start.Value
|
o.Tag = node.(*ast.TagNode).Start.Value
|
||||||
|
@ -7,53 +7,95 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var goccyYamlFormatScenarios = []formatScenario{
|
var goccyYamlFormatScenarios = []formatScenario{
|
||||||
|
// {
|
||||||
|
// description: "basic - 3",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "3",
|
||||||
|
// expected: "3\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - 3.1",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "3.1",
|
||||||
|
// expected: "3.1\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - 3.1",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "mike: 3",
|
||||||
|
// expected: "mike: 3\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - 3.1",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "{mike: 3}",
|
||||||
|
// expected: "{mike: 3}\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - 3.1",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "{\nmike: 3\n}",
|
||||||
|
// expected: "{mike: 3}\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - 3.1",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "mike: !!cat 3",
|
||||||
|
// expected: "mike: !!cat 3\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - 3.1",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "- 3",
|
||||||
|
// expected: "- 3\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - 3.1",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "[3]",
|
||||||
|
// expected: "[3]\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - plain string",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: `a: meow`,
|
||||||
|
// expected: "a: meow\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - double quoted string",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: `a: "meow"`,
|
||||||
|
// expected: "a: \"meow\"\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - single quoted string",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: `a: 'meow'`,
|
||||||
|
// expected: "a: 'meow'\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - string block",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "a: |\n meow\n",
|
||||||
|
// expected: "a: |\n meow\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - long string",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "a: the cute cat wrote a long sentence that wasn't wrapped at all.\n",
|
||||||
|
// expected: "a: the cute cat wrote a long sentence that wasn't wrapped at all.\n",
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// description: "basic - string block",
|
||||||
|
// skipDoc: true,
|
||||||
|
// input: "a: |-\n meow\n",
|
||||||
|
// expected: "a: |-\n meow\n",
|
||||||
|
// },
|
||||||
{
|
{
|
||||||
description: "basic - 3",
|
description: "basic - string block",
|
||||||
skipDoc: true,
|
skipDoc: true,
|
||||||
input: "3",
|
input: "a: >\n meow\n",
|
||||||
expected: "3\n",
|
expected: "a: >\n meow\n",
|
||||||
},
|
|
||||||
{
|
|
||||||
description: "basic - 3.1",
|
|
||||||
skipDoc: true,
|
|
||||||
input: "3.1",
|
|
||||||
expected: "3.1\n",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
description: "basic - 3.1",
|
|
||||||
skipDoc: true,
|
|
||||||
input: "mike: 3",
|
|
||||||
expected: "mike: 3\n",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
description: "basic - 3.1",
|
|
||||||
skipDoc: true,
|
|
||||||
input: "{mike: 3}",
|
|
||||||
expected: "{mike: 3}\n",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
description: "basic - 3.1",
|
|
||||||
skipDoc: true,
|
|
||||||
input: "{\nmike: 3\n}",
|
|
||||||
expected: "{mike: 3}\n",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
description: "basic - 3.1",
|
|
||||||
skipDoc: true,
|
|
||||||
input: "mike: !!cat 3",
|
|
||||||
expected: "mike: !!cat 3\n",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
description: "basic - 3.1",
|
|
||||||
skipDoc: true,
|
|
||||||
input: "- 3",
|
|
||||||
expected: "- 3\n",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
description: "basic - 3.1",
|
|
||||||
skipDoc: true,
|
|
||||||
input: "[3]",
|
|
||||||
expected: "[3]\n",
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user