MCPcopy
hub / github.com/micro-editor/micro / ParseFile

Function ParseFile

pkg/highlight/parser.go:188–226  ·  view source on GitHub ↗
(input []byte)

Source from the content-addressed store, hash-verified

186}
187
188func ParseFile(input []byte) (f *File, err error) {
189 // This is just so if we have an error, we can exit cleanly and return the parse error to the user
190 defer func() {
191 if r := recover(); r != nil {
192 var ok bool
193 err, ok = r.(error)
194 if !ok {
195 err = fmt.Errorf("pkg: %v", r)
196 }
197 }
198 }()
199
200 var rules map[any]any
201 if err = yaml.Unmarshal(input, &rules); err != nil {
202 return nil, err
203 }
204
205 f = new(File)
206 f.yamlSrc = rules
207
208 for k, v := range rules {
209 if k == "filetype" {
210 filetype := v.(string)
211
212 if filetype == "" {
213 return nil, errors.New("empty filetype")
214 }
215
216 f.FileType = filetype
217 break
218 }
219 }
220
221 if f.FileType == "" {
222 return nil, errors.New("missing filetype")
223 }
224
225 return f, err
226}
227
228// ParseDef parses an input syntax file into a highlight Def
229func ParseDef(f *File, header *Header) (s *Def, err error) {

Callers 3

parseDefFromFileFunction · 0.92
resolveIncludesFunction · 0.92
UpdateRulesMethod · 0.92

Calls

no outgoing calls

Tested by

no test coverage detected