-
-
Notifications
You must be signed in to change notification settings - Fork 375
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c39abfb
commit bc2d668
Showing
33 changed files
with
1,007 additions
and
1,007 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,85 +1,85 @@ | ||
package lexers | ||
|
||
import ( | ||
"strings" | ||
"strings" | ||
|
||
. "github.com/alecthomas/chroma" // nolint | ||
. "github.com/alecthomas/chroma" // nolint | ||
) | ||
|
||
// Restructuredtext lexer. | ||
var Restructuredtext = Register(MustNewLexer( | ||
&Config{ | ||
Name: "reStructuredText", | ||
Aliases: []string{"rst", "rest", "restructuredtext"}, | ||
Filenames: []string{"*.rst", "*.rest"}, | ||
MimeTypes: []string{"text/x-rst", "text/prs.fallenstein.rst"}, | ||
}, | ||
Rules{ | ||
"root": { | ||
{"^(=+|-+|`+|:+|\\.+|\\'+|\"+|~+|\\^+|_+|\\*+|\\++|#+)([ \\t]*\\n)(.+)(\\n)(\\1)(\\n)", ByGroups(GenericHeading, Text, GenericHeading, Text, GenericHeading, Text), nil}, | ||
{"^(\\S.*)(\\n)(={3,}|-{3,}|`{3,}|:{3,}|\\.{3,}|\\'{3,}|\"{3,}|~{3,}|\\^{3,}|_{3,}|\\*{3,}|\\+{3,}|#{3,})(\\n)", ByGroups(GenericHeading, Text, GenericHeading, Text), nil}, | ||
{`^(\s*)([-*+])( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, | ||
{`^(\s*)([0-9#ivxlcmIVXLCM]+\.)( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, | ||
{`^(\s*)(\(?[0-9#ivxlcmIVXLCM]+\))( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, | ||
{`^(\s*)([A-Z]+\.)( .+\n(?:\1 .+\n)+)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, | ||
{`^(\s*)(\(?[A-Za-z]+\))( .+\n(?:\1 .+\n)+)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, | ||
{`^(\s*)(\|)( .+\n(?:\| .+\n)*)`, ByGroups(Text, Operator, UsingSelf("inline")), nil}, | ||
{`^( *\.\.)(\s*)((?:source)?code(?:-block)?)(::)([ \t]*)([^\n]+)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\8.*|)\n)+)`, EmitterFunc(rstCodeBlock), nil}, | ||
{`^( *\.\.)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))`, ByGroups(Punctuation, Text, OperatorWord, Punctuation, Text, UsingSelf("inline")), nil}, | ||
{`^( *\.\.)(\s*)(_(?:[^:\\]|\\.)+:)(.*?)$`, ByGroups(Punctuation, Text, NameTag, UsingSelf("inline")), nil}, | ||
{`^( *\.\.)(\s*)(\[.+\])(.*?)$`, ByGroups(Punctuation, Text, NameTag, UsingSelf("inline")), nil}, | ||
{`^( *\.\.)(\s*)(\|.+\|)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))`, ByGroups(Punctuation, Text, NameTag, Text, OperatorWord, Punctuation, Text, UsingSelf("inline")), nil}, | ||
{`^ *\.\..*(\n( +.*\n|\n)+)?`, CommentPreproc, nil}, | ||
{`^( *)(:[a-zA-Z-]+:)(\s*)$`, ByGroups(Text, NameClass, Text), nil}, | ||
{`^( *)(:.*?:)([ \t]+)(.*?)$`, ByGroups(Text, NameClass, Text, NameFunction), nil}, | ||
{`^(\S.*(?<!::)\n)((?:(?: +.*)\n)+)`, ByGroups(UsingSelf("inline"), UsingSelf("inline")), nil}, | ||
{`(::)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\3.*|)\n)+)`, ByGroups(LiteralStringEscape, Text, LiteralString, LiteralString, Text, LiteralString), nil}, | ||
Include("inline"), | ||
}, | ||
"inline": { | ||
{`\\.`, Text, nil}, | ||
{"``", LiteralString, Push("literal")}, | ||
{"(`.+?)(<.+?>)(`__?)", ByGroups(LiteralString, LiteralStringInterpol, LiteralString), nil}, | ||
{"`.+?`__?", LiteralString, nil}, | ||
{"(`.+?`)(:[a-zA-Z0-9:-]+?:)?", ByGroups(NameVariable, NameAttribute), nil}, | ||
{"(:[a-zA-Z0-9:-]+?:)(`.+?`)", ByGroups(NameAttribute, NameVariable), nil}, | ||
{`\*\*.+?\*\*`, GenericStrong, nil}, | ||
{`\*.+?\*`, GenericEmph, nil}, | ||
{`\[.*?\]_`, LiteralString, nil}, | ||
{`<.+?>`, NameTag, nil}, | ||
{"[^\\\\\\n\\[*`:]+", Text, nil}, | ||
{`.`, Text, nil}, | ||
}, | ||
"literal": { | ||
{"[^`]+", LiteralString, nil}, | ||
{"``((?=$)|(?=[-/:.,; \\n\\x00\\\u2010\\\u2011\\\u2012\\\u2013\\\u2014\\\u00a0\\'\\\"\\)\\]\\}\\>\\\u2019\\\u201d\\\u00bb\\!\\?]))", LiteralString, Pop(1)}, | ||
{"`", LiteralString, nil}, | ||
}, | ||
}, | ||
&Config{ | ||
Name: "reStructuredText", | ||
Aliases: []string{"rst", "rest", "restructuredtext"}, | ||
Filenames: []string{"*.rst", "*.rest"}, | ||
MimeTypes: []string{"text/x-rst", "text/prs.fallenstein.rst"}, | ||
}, | ||
Rules{ | ||
"root": { | ||
{"^(=+|-+|`+|:+|\\.+|\\'+|\"+|~+|\\^+|_+|\\*+|\\++|#+)([ \\t]*\\n)(.+)(\\n)(\\1)(\\n)", ByGroups(GenericHeading, Text, GenericHeading, Text, GenericHeading, Text), nil}, | ||
{"^(\\S.*)(\\n)(={3,}|-{3,}|`{3,}|:{3,}|\\.{3,}|\\'{3,}|\"{3,}|~{3,}|\\^{3,}|_{3,}|\\*{3,}|\\+{3,}|#{3,})(\\n)", ByGroups(GenericHeading, Text, GenericHeading, Text), nil}, | ||
{`^(\s*)([-*+])( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, | ||
{`^(\s*)([0-9#ivxlcmIVXLCM]+\.)( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, | ||
{`^(\s*)(\(?[0-9#ivxlcmIVXLCM]+\))( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, | ||
{`^(\s*)([A-Z]+\.)( .+\n(?:\1 .+\n)+)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, | ||
{`^(\s*)(\(?[A-Za-z]+\))( .+\n(?:\1 .+\n)+)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, | ||
{`^(\s*)(\|)( .+\n(?:\| .+\n)*)`, ByGroups(Text, Operator, UsingSelf("inline")), nil}, | ||
{`^( *\.\.)(\s*)((?:source)?code(?:-block)?)(::)([ \t]*)([^\n]+)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\8.*|)\n)+)`, EmitterFunc(rstCodeBlock), nil}, | ||
{`^( *\.\.)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))`, ByGroups(Punctuation, Text, OperatorWord, Punctuation, Text, UsingSelf("inline")), nil}, | ||
{`^( *\.\.)(\s*)(_(?:[^:\\]|\\.)+:)(.*?)$`, ByGroups(Punctuation, Text, NameTag, UsingSelf("inline")), nil}, | ||
{`^( *\.\.)(\s*)(\[.+\])(.*?)$`, ByGroups(Punctuation, Text, NameTag, UsingSelf("inline")), nil}, | ||
{`^( *\.\.)(\s*)(\|.+\|)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))`, ByGroups(Punctuation, Text, NameTag, Text, OperatorWord, Punctuation, Text, UsingSelf("inline")), nil}, | ||
{`^ *\.\..*(\n( +.*\n|\n)+)?`, CommentPreproc, nil}, | ||
{`^( *)(:[a-zA-Z-]+:)(\s*)$`, ByGroups(Text, NameClass, Text), nil}, | ||
{`^( *)(:.*?:)([ \t]+)(.*?)$`, ByGroups(Text, NameClass, Text, NameFunction), nil}, | ||
{`^(\S.*(?<!::)\n)((?:(?: +.*)\n)+)`, ByGroups(UsingSelf("inline"), UsingSelf("inline")), nil}, | ||
{`(::)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\3.*|)\n)+)`, ByGroups(LiteralStringEscape, Text, LiteralString, LiteralString, Text, LiteralString), nil}, | ||
Include("inline"), | ||
}, | ||
"inline": { | ||
{`\\.`, Text, nil}, | ||
{"``", LiteralString, Push("literal")}, | ||
{"(`.+?)(<.+?>)(`__?)", ByGroups(LiteralString, LiteralStringInterpol, LiteralString), nil}, | ||
{"`.+?`__?", LiteralString, nil}, | ||
{"(`.+?`)(:[a-zA-Z0-9:-]+?:)?", ByGroups(NameVariable, NameAttribute), nil}, | ||
{"(:[a-zA-Z0-9:-]+?:)(`.+?`)", ByGroups(NameAttribute, NameVariable), nil}, | ||
{`\*\*.+?\*\*`, GenericStrong, nil}, | ||
{`\*.+?\*`, GenericEmph, nil}, | ||
{`\[.*?\]_`, LiteralString, nil}, | ||
{`<.+?>`, NameTag, nil}, | ||
{"[^\\\\\\n\\[*`:]+", Text, nil}, | ||
{`.`, Text, nil}, | ||
}, | ||
"literal": { | ||
{"[^`]+", LiteralString, nil}, | ||
{"``((?=$)|(?=[-/:.,; \\n\\x00\\\u2010\\\u2011\\\u2012\\\u2013\\\u2014\\\u00a0\\'\\\"\\)\\]\\}\\>\\\u2019\\\u201d\\\u00bb\\!\\?]))", LiteralString, Pop(1)}, | ||
{"`", LiteralString, nil}, | ||
}, | ||
}, | ||
)) | ||
|
||
func rstCodeBlock(groups []string, lexer Lexer) Iterator { | ||
iterators := []Iterator{} | ||
tokens := []*Token{ | ||
{Punctuation, groups[1]}, | ||
{Text, groups[2]}, | ||
{OperatorWord, groups[3]}, | ||
{Punctuation, groups[4]}, | ||
{Text, groups[5]}, | ||
{Keyword, groups[6]}, | ||
{Text, groups[7]}, | ||
} | ||
code := strings.Join(groups[8:], "") | ||
lexer = Get(groups[6]) | ||
if lexer == nil { | ||
tokens = append(tokens, &Token{String, code}) | ||
iterators = append(iterators, Literator(tokens...)) | ||
} else { | ||
sub, err := lexer.Tokenise(nil, code) | ||
if err != nil { | ||
panic(err) | ||
} | ||
iterators = append(iterators, Literator(tokens...), sub) | ||
} | ||
return Concaterator(iterators...) | ||
iterators := []Iterator{} | ||
tokens := []*Token{ | ||
{Punctuation, groups[1]}, | ||
{Text, groups[2]}, | ||
{OperatorWord, groups[3]}, | ||
{Punctuation, groups[4]}, | ||
{Text, groups[5]}, | ||
{Keyword, groups[6]}, | ||
{Text, groups[7]}, | ||
} | ||
code := strings.Join(groups[8:], "") | ||
lexer = Get(groups[6]) | ||
if lexer == nil { | ||
tokens = append(tokens, &Token{String, code}) | ||
iterators = append(iterators, Literator(tokens...)) | ||
} else { | ||
sub, err := lexer.Tokenise(nil, code) | ||
if err != nil { | ||
panic(err) | ||
} | ||
iterators = append(iterators, Literator(tokens...), sub) | ||
} | ||
return Concaterator(iterators...) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,18 @@ | ||
package styles | ||
|
||
import ( | ||
"github.com/alecthomas/chroma" | ||
"github.com/alecthomas/chroma" | ||
) | ||
|
||
// Abap style. | ||
var Abap = Register(chroma.MustNewStyle("abap", chroma.StyleEntries{ | ||
chroma.Comment: "italic #888", | ||
chroma.CommentSpecial: "#888", | ||
chroma.Keyword: "#00f", | ||
chroma.OperatorWord: "#00f", | ||
chroma.Name: "#000", | ||
chroma.LiteralNumber: "#3af", | ||
chroma.LiteralString: "#5a2", | ||
chroma.Error: "#F00", | ||
chroma.Background: " bg:#ffffff", | ||
chroma.Comment: "italic #888", | ||
chroma.CommentSpecial: "#888", | ||
chroma.Keyword: "#00f", | ||
chroma.OperatorWord: "#00f", | ||
chroma.Name: "#000", | ||
chroma.LiteralNumber: "#3af", | ||
chroma.LiteralString: "#5a2", | ||
chroma.Error: "#F00", | ||
chroma.Background: " bg:#ffffff", | ||
})) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,25 @@ | ||
package styles | ||
|
||
import ( | ||
"github.com/alecthomas/chroma" | ||
"github.com/alecthomas/chroma" | ||
) | ||
|
||
// Algol style. | ||
var Algol = Register(chroma.MustNewStyle("algol", chroma.StyleEntries{ | ||
chroma.Comment: "italic #888", | ||
chroma.CommentPreproc: "bold noitalic #888", | ||
chroma.CommentSpecial: "bold noitalic #888", | ||
chroma.Keyword: "underline bold", | ||
chroma.KeywordDeclaration: "italic", | ||
chroma.NameBuiltin: "bold italic", | ||
chroma.NameBuiltinPseudo: "bold italic", | ||
chroma.NameNamespace: "bold italic #666", | ||
chroma.NameClass: "bold italic #666", | ||
chroma.NameFunction: "bold italic #666", | ||
chroma.NameVariable: "bold italic #666", | ||
chroma.NameConstant: "bold italic #666", | ||
chroma.OperatorWord: "bold", | ||
chroma.LiteralString: "italic #666", | ||
chroma.Error: "border:#FF0000", | ||
chroma.Background: " bg:#ffffff", | ||
chroma.Comment: "italic #888", | ||
chroma.CommentPreproc: "bold noitalic #888", | ||
chroma.CommentSpecial: "bold noitalic #888", | ||
chroma.Keyword: "underline bold", | ||
chroma.KeywordDeclaration: "italic", | ||
chroma.NameBuiltin: "bold italic", | ||
chroma.NameBuiltinPseudo: "bold italic", | ||
chroma.NameNamespace: "bold italic #666", | ||
chroma.NameClass: "bold italic #666", | ||
chroma.NameFunction: "bold italic #666", | ||
chroma.NameVariable: "bold italic #666", | ||
chroma.NameConstant: "bold italic #666", | ||
chroma.OperatorWord: "bold", | ||
chroma.LiteralString: "italic #666", | ||
chroma.Error: "border:#FF0000", | ||
chroma.Background: " bg:#ffffff", | ||
})) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,25 @@ | ||
package styles | ||
|
||
import ( | ||
"github.com/alecthomas/chroma" | ||
"github.com/alecthomas/chroma" | ||
) | ||
|
||
// Algol_Nu style. | ||
var Algol_Nu = Register(chroma.MustNewStyle("algol_nu", chroma.StyleEntries{ | ||
chroma.Comment: "italic #888", | ||
chroma.CommentPreproc: "bold noitalic #888", | ||
chroma.CommentSpecial: "bold noitalic #888", | ||
chroma.Keyword: "bold", | ||
chroma.KeywordDeclaration: "italic", | ||
chroma.NameBuiltin: "bold italic", | ||
chroma.NameBuiltinPseudo: "bold italic", | ||
chroma.NameNamespace: "bold italic #666", | ||
chroma.NameClass: "bold italic #666", | ||
chroma.NameFunction: "bold italic #666", | ||
chroma.NameVariable: "bold italic #666", | ||
chroma.NameConstant: "bold italic #666", | ||
chroma.OperatorWord: "bold", | ||
chroma.LiteralString: "italic #666", | ||
chroma.Error: "border:#FF0000", | ||
chroma.Background: " bg:#ffffff", | ||
chroma.Comment: "italic #888", | ||
chroma.CommentPreproc: "bold noitalic #888", | ||
chroma.CommentSpecial: "bold noitalic #888", | ||
chroma.Keyword: "bold", | ||
chroma.KeywordDeclaration: "italic", | ||
chroma.NameBuiltin: "bold italic", | ||
chroma.NameBuiltinPseudo: "bold italic", | ||
chroma.NameNamespace: "bold italic #666", | ||
chroma.NameClass: "bold italic #666", | ||
chroma.NameFunction: "bold italic #666", | ||
chroma.NameVariable: "bold italic #666", | ||
chroma.NameConstant: "bold italic #666", | ||
chroma.OperatorWord: "bold", | ||
chroma.LiteralString: "italic #666", | ||
chroma.Error: "border:#FF0000", | ||
chroma.Background: " bg:#ffffff", | ||
})) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,25 @@ | ||
package styles | ||
|
||
import ( | ||
"github.com/alecthomas/chroma" | ||
"github.com/alecthomas/chroma" | ||
) | ||
|
||
// Arduino style. | ||
var Arduino = Register(chroma.MustNewStyle("arduino", chroma.StyleEntries{ | ||
chroma.Error: "#a61717", | ||
chroma.Comment: "#95a5a6", | ||
chroma.CommentPreproc: "#728E00", | ||
chroma.Keyword: "#728E00", | ||
chroma.KeywordConstant: "#00979D", | ||
chroma.KeywordPseudo: "#00979D", | ||
chroma.KeywordReserved: "#00979D", | ||
chroma.KeywordType: "#00979D", | ||
chroma.Operator: "#728E00", | ||
chroma.Name: "#434f54", | ||
chroma.NameBuiltin: "#728E00", | ||
chroma.NameFunction: "#D35400", | ||
chroma.NameOther: "#728E00", | ||
chroma.LiteralNumber: "#8A7B52", | ||
chroma.LiteralString: "#7F8C8D", | ||
chroma.Background: " bg:#ffffff", | ||
chroma.Error: "#a61717", | ||
chroma.Comment: "#95a5a6", | ||
chroma.CommentPreproc: "#728E00", | ||
chroma.Keyword: "#728E00", | ||
chroma.KeywordConstant: "#00979D", | ||
chroma.KeywordPseudo: "#00979D", | ||
chroma.KeywordReserved: "#00979D", | ||
chroma.KeywordType: "#00979D", | ||
chroma.Operator: "#728E00", | ||
chroma.Name: "#434f54", | ||
chroma.NameBuiltin: "#728E00", | ||
chroma.NameFunction: "#D35400", | ||
chroma.NameOther: "#728E00", | ||
chroma.LiteralNumber: "#8A7B52", | ||
chroma.LiteralString: "#7F8C8D", | ||
chroma.Background: " bg:#ffffff", | ||
})) |
Oops, something went wrong.