mirror of
https://github.com/ralsina/tartrazine.git
synced 2024-11-10 05:22:23 +00:00
Updated README
This commit is contained in:
parent
ad664d9f93
commit
7db8fdc9e4
16
README.md
16
README.md
@ -4,17 +4,17 @@ Tartrazine is a library to syntax-highlight code. It is
|
|||||||
a port of [Pygments](https://pygments.org/) to
|
a port of [Pygments](https://pygments.org/) to
|
||||||
[Crystal](https://crystal-lang.org/). Kind of.
|
[Crystal](https://crystal-lang.org/). Kind of.
|
||||||
|
|
||||||
It's not currently usable because it's not finished, but:
|
The CLI tool can be used to highlight many things in many styles.
|
||||||
|
|
||||||
* The lexers work for the implemented languages
|
|
||||||
* The provided styles work
|
|
||||||
* There is a very very simple HTML formatter
|
|
||||||
|
|
||||||
# A port of what? Why "kind of"?
|
# A port of what? Why "kind of"?
|
||||||
|
|
||||||
Because I did not read the Pygments code. And this is actually
|
Pygments is a staple of the Python ecosystem, and it's great.
|
||||||
based on [Chroma](https://github.com/alecthomas/chroma) ...
|
It lets you highlight code in many languages, and it has many
|
||||||
although I did not read that code either.
|
themes. Chroma is "Pygments for Go", it's actually a port of
|
||||||
|
Pygments to Go, and it's great too.
|
||||||
|
|
||||||
|
I wanted that in Crystal, so I started this project. But I did
|
||||||
|
not read much of the Pygments code. Or much of Chroma's.
|
||||||
|
|
||||||
Chroma has taken most of the Pygments lexers and turned them into
|
Chroma has taken most of the Pygments lexers and turned them into
|
||||||
XML descriptions. What I did was take those XML files from Chroma
|
XML descriptions. What I did was take those XML files from Chroma
|
||||||
|
@ -14,6 +14,7 @@ unicode_problems = {
|
|||||||
"#{__DIR__}/tests/java/test_string_literals.txt",
|
"#{__DIR__}/tests/java/test_string_literals.txt",
|
||||||
"#{__DIR__}/tests/json/test_strings.txt",
|
"#{__DIR__}/tests/json/test_strings.txt",
|
||||||
"#{__DIR__}/tests/systemd/example1.txt",
|
"#{__DIR__}/tests/systemd/example1.txt",
|
||||||
|
"#{__DIR__}/tests/c++/test_unicode_identifiers.txt",
|
||||||
}
|
}
|
||||||
|
|
||||||
# These testcases fail because of differences in the way chroma and tartrazine tokenize
|
# These testcases fail because of differences in the way chroma and tartrazine tokenize
|
||||||
|
@ -3,7 +3,7 @@ module BytesRegex
|
|||||||
|
|
||||||
class Regex
|
class Regex
|
||||||
def initialize(pattern : String, multiline = false, dotall = false, ignorecase = false, anchored = false)
|
def initialize(pattern : String, multiline = false, dotall = false, ignorecase = false, anchored = false)
|
||||||
flags = LibPCRE2::UTF | LibPCRE2::DUPNAMES | LibPCRE2::UCP
|
flags = LibPCRE2::UTF | LibPCRE2::DUPNAMES | LibPCRE2::UCP | LibPCRE2::NO_UTF_CHECK
|
||||||
flags |= LibPCRE2::MULTILINE if multiline
|
flags |= LibPCRE2::MULTILINE if multiline
|
||||||
flags |= LibPCRE2::DOTALL if dotall
|
flags |= LibPCRE2::DOTALL if dotall
|
||||||
flags |= LibPCRE2::CASELESS if ignorecase
|
flags |= LibPCRE2::CASELESS if ignorecase
|
||||||
@ -36,7 +36,7 @@ module BytesRegex
|
|||||||
str,
|
str,
|
||||||
str.size,
|
str.size,
|
||||||
pos,
|
pos,
|
||||||
0,
|
LibPCRE2::NO_UTF_CHECK,
|
||||||
match_data,
|
match_data,
|
||||||
nil)
|
nil)
|
||||||
if rc < 0
|
if rc < 0
|
||||||
|
Loading…
Reference in New Issue
Block a user