Documentation ¶
Index ¶
- Variables
- func MatchFiletype(ftdetect [2]*regexp.Regexp, filename string, firstLine []byte) bool
- func ParseFtDetect(file *File) (r [2]*regexp.Regexp, err error)
- func ResolveIncludes(def *Def, files []*File)
- type Def
- type File
- type Group
- type Header
- type Highlighter
- func (h *Highlighter) HighlightMatches(input LineStates, startline, endline int)
- func (h *Highlighter) HighlightStates(input LineStates)
- func (h *Highlighter) HighlightString(input string) []LineMatch
- func (h *Highlighter) ReHighlightLine(input LineStates, lineN int)
- func (h *Highlighter) ReHighlightStates(input LineStates, startline int)
- type LineMatch
- type LineStates
- type State
Constants ¶
This section is empty.
Variables ¶
var Groups map[string]Group
Groups contains all of the groups that are defined You can access them in the map via their string name
Functions ¶
func MatchFiletype ¶
MatchFiletype will use the list of syntax definitions provided and the filename and first line of the file to determine the filetype of the file It will return the corresponding syntax definition for the filetype
func ResolveIncludes ¶
ResolveIncludes will sort out the rules for including other filetypes You should call this after parsing all the Defs
Types ¶
type Def ¶
type Def struct { *Header // contains filtered or unexported fields }
A Def is a full syntax definition for a language It has a filetype, information about how to detect the filetype based on filename or header (the first line of the file) Then it has the rules which define how to highlight the file
type Highlighter ¶
type Highlighter struct { Def *Def // contains filtered or unexported fields }
A Highlighter contains the information needed to highlight a string
func NewHighlighter ¶
func NewHighlighter(def *Def) *Highlighter
NewHighlighter returns a new highlighter from the given syntax definition
func (*Highlighter) HighlightMatches ¶
func (h *Highlighter) HighlightMatches(input LineStates, startline, endline int)
HighlightMatches sets the matches for each line in between startline and endline It sets all other matches in the buffer to nil to conserve memory This assumes that all the states are set correctly
func (*Highlighter) HighlightStates ¶
func (h *Highlighter) HighlightStates(input LineStates)
HighlightStates correctly sets all states for the buffer
func (*Highlighter) HighlightString ¶
func (h *Highlighter) HighlightString(input string) []LineMatch
HighlightString syntax highlights a string Use this function for simple syntax highlighting and use the other functions for more advanced syntax highlighting. They are optimized for quick rehighlighting of the same text with minor changes made
func (*Highlighter) ReHighlightLine ¶
func (h *Highlighter) ReHighlightLine(input LineStates, lineN int)
ReHighlightLine will rehighlight the state and match for a single line
func (*Highlighter) ReHighlightStates ¶
func (h *Highlighter) ReHighlightStates(input LineStates, startline int)
ReHighlightStates will scan down from `startline` and set the appropriate end of line state for each line until it comes across the same state in two consecutive lines
type LineMatch ¶
LineMatch represents the syntax highlighting matches for one line. Each index where the coloring is changed is marked with that color's group (represented as one byte)