mirror of
https://github.com/rwinkhart/go-highlite.git
synced 2026-09-06 00:47:15 -04:00
Use yaml instead of json
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
package highlight
|
package highlight
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"gopkg.in/yaml.v2"
|
||||||
"regexp"
|
"regexp"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -47,8 +47,8 @@ type Region struct {
|
|||||||
// ParseDef parses an input syntax file into a highlight Def
|
// ParseDef parses an input syntax file into a highlight Def
|
||||||
// Note that ParseDef may return multiple errors
|
// Note that ParseDef may return multiple errors
|
||||||
func ParseDef(input []byte) (*Def, error) {
|
func ParseDef(input []byte) (*Def, error) {
|
||||||
var rules map[string]interface{}
|
var rules map[interface{}]interface{}
|
||||||
if err := json.Unmarshal(input, &rules); err != nil {
|
if err := yaml.Unmarshal(input, &rules); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ func ParseDef(input []byte) (*Def, error) {
|
|||||||
|
|
||||||
s.ft = filetype
|
s.ft = filetype
|
||||||
} else if k == "detect" {
|
} else if k == "detect" {
|
||||||
ftdetect := v.(map[string]interface{})
|
ftdetect := v.(map[interface{}]interface{})
|
||||||
if len(ftdetect) >= 1 {
|
if len(ftdetect) >= 1 {
|
||||||
syntax, err := regexp.Compile(ftdetect["filename"].(string))
|
syntax, err := regexp.Compile(ftdetect["filename"].(string))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -96,7 +96,7 @@ func parseRules(input []interface{}, curRegion *Region) (*Rules, error) {
|
|||||||
rules := new(Rules)
|
rules := new(Rules)
|
||||||
|
|
||||||
for _, v := range input {
|
for _, v := range input {
|
||||||
rule := v.(map[string]interface{})
|
rule := v.(map[interface{}]interface{})
|
||||||
for k, val := range rule {
|
for k, val := range rule {
|
||||||
group := k
|
group := k
|
||||||
|
|
||||||
@@ -108,10 +108,10 @@ func parseRules(input []interface{}, curRegion *Region) (*Rules, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
rules.patterns = append(rules.patterns, &Pattern{group, r})
|
rules.patterns = append(rules.patterns, &Pattern{group.(string), r})
|
||||||
case map[string]interface{}:
|
case map[interface{}]interface{}:
|
||||||
// Region
|
// Region
|
||||||
region, err := parseRegion(group, object, curRegion)
|
region, err := parseRegion(group.(string), object, curRegion)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -125,7 +125,7 @@ func parseRules(input []interface{}, curRegion *Region) (*Rules, error) {
|
|||||||
return rules, nil
|
return rules, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseRegion(group string, regionInfo map[string]interface{}, prevRegion *Region) (*Region, error) {
|
func parseRegion(group string, regionInfo map[interface{}]interface{}, prevRegion *Region) (*Region, error) {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
region := new(Region)
|
region := new(Region)
|
||||||
|
|||||||
Reference in New Issue
Block a user