1
0
mirror of https://github.com/alecthomas/chroma.git synced 2025-03-25 21:39:02 +02:00

592 Commits

Author SHA1 Message Date
silverwind
111921a080 Add cjs to Javascript lexer
.cjs is used to indicate a CommonJS in Node.js and other tools
2022-07-30 09:57:55 +10:00
Aniket Teredesai
c13ff147a3 fix(styles/github-dark): update definitions, reformat 2022-07-28 08:10:02 +10:00
silverwind
96fe58e6b1
Add BSDmakefile to make lexer (#654) 2022-07-20 14:20:15 -07:00
Aniket Teredesai
c714e84613
add(styles/github-dark): github's dark colorscheme for chroma (#653) 2022-07-19 00:37:37 -07:00
silverwind
3b326bebb1 Add Dockerfile.* to docker lexer 2022-07-13 14:26:31 -07:00
Mubashshir
5ce1d5dd69 lexers: Add BIND DNS Zone lexer
Closes #623
Signed-off-by: Mubashshir <ahmubashshir@gmail.com>
2022-06-27 01:18:15 -07:00
Danila Fedorin
f941d464e2 Add Chapel Lexer 2022-06-23 10:53:42 +10:00
smf007
298b727472 Revise fortran fixed format lexer to recognize comments using the "!" mark in columns 1-5 and columns > 6. Remove incorrect "0" label being a comment. 2022-06-21 12:23:23 +10:00
smf007
9a038fbcb1 Revise fortran lexer to be consistent with the current version in pygments 2022-06-19 12:43:06 +10:00
Siavash Askari Nasr
d18e8a46f2 Add InlineCode option for inline code blocks
- Add an `InlineCode` option for inline code blocks
- When `PreventSurroundingPre` option is enabled, do not wrap the code by `Line` and `CodeLine`
- Write and update related tests
v2.2.0
2022-06-14 21:17:50 +10:00
Siavash Askari Nasr
530c45d213 Don't append semicolon to styleEntry if there is no other style
This means we also need to append semicolon to `Background`.
v2.1.0
2022-06-14 15:34:02 +10:00
Siavash Askari Nasr
5397b4880b Append semicolon to tabWidthStyle. 2022-06-14 15:34:02 +10:00
Siavash Askari Nasr
c78b8a6a03 Fix extra semicolon in tabWidthStyle
Needed after changes in #636
2022-06-14 07:16:12 +10:00
Siavash Askari Nasr
806ca29650
Add V lexer (#640) 2022-06-04 06:00:44 -07:00
Alec Thomas
4dfc2caf03 refactor: run go mod tidy on chromad v2.0.1 2022-05-29 00:39:33 +10:00
Derek Ellis
d13d611a2d Add value keyword for Kotlin v2.0.0 2022-05-20 22:04:24 -07:00
Siavash Askari Nasr
dea6a13339 Add CSS style inheritance to WithCustomCSS option 2022-05-18 02:45:33 -07:00
Siavash Askari Nasr
7d779408db [html formatter] Add option to let users provide custom CSS styles
Example: WithCustomCSS(map[chroma.TokenType]string{chroma.Line: `display: inline;`})
2022-05-18 02:45:33 -07:00
Maxime Mangel
7cc13cf232
Add support for F# package reference + Fix CommentPreproc detection (#631) 2022-04-27 03:01:16 +10:00
David Pearce
073a30b897
Add Whiley Lexer (#628)
This is a fairly simple lexer for Whiley which covers the main things (e.g.
keywords, literals, etc).
2022-04-22 17:16:30 +10:00
Sean Berry
44d1d23ddb fix: revert line change from pygments converter
Link to the breaking change: https://github.com/alecthomas/chroma/commit/59896e35\#diff-636cb338885284f1ed8524116f49b2bffcae81cfce89f55719019c993007d209R194
2022-04-22 10:05:11 +10:00
Patrice Chalin
d070b1cd8d Fix for C# identifiers with leading underscores 2022-04-22 08:50:32 +10:00
Alec Thomas
f7d2bb0e52 fix: pin to Go 1.17 for now 2022-04-22 08:33:45 +10:00
Spence Churchill
f7893bced9 add an average rgb scheme 2022-04-20 18:16:07 +10:00
mhmdanas
7bfe2f41c6 fix: add Dart required keyword 2022-03-04 20:38:24 +11:00
Alec Thomas
647b7a6352 fix: release binaries
Fixes #611
v2.0.0-alpha4
2022-03-02 20:49:10 +11:00
Alec Thomas
c66ec1eb54 Upgrade goreleaser from 0.184.0 to 1.5.0 v2.0.0-alpha3 2022-03-02 06:25:47 +11:00
Alec Thomas
bd0ae5073a fix: upgrade goreleaser
Hopefully (works locally) fix #611.
2022-03-02 06:21:58 +11:00
Alec Thomas
ac30dbedfc refactor: use latest Go 2022-02-21 16:26:27 +11:00
Ole Herman Schumacher Elgesem
4bc1957345
CFEngine 3: Added syntax highlighting for macros, promise keyword, and different string literals (#604)
The new promise keyword is used in the same places as bundle and
body, to declare new promise types in CFEngine 3.

See, for example:

f126ede5e6/libpromises/cf3parse.y (L44-L57)

f126ede5e6/libpromises/cf3lex.l (L102-L106)

CFEngine 3 supports 3 symbols for string literals:
single quotation marks, double quotation marks, and
backticks (grave accent).

See:
https://docs.cfengine.com/docs/3.18/reference-language-concepts-variables.html#quoting
2022-02-10 13:26:37 +11:00
Ted Summer
d9c7dea1e6 docs(readme): fix call to WithClasses 2022-01-30 06:37:08 +11:00
Alec Thomas
59896e357d Flag groups for "chroma", making it a bit clearer for users. v2.0.0-alpha2 2022-01-27 22:54:59 +11:00
sk-rama
33fa61166f Update friendly.go
Remove italic style for chroma.LiteralStringInterpol. 
Purpose: For python it make a mistake in code style
2022-01-27 15:43:37 +11:00
Alec Thomas
cc2dd5b8ad Version 2 of Chroma
This cleans up the API in general, removing a bunch of deprecated stuff,
cleaning up circular imports, etc.

But the biggest change is switching to an optional XML format for the
regex lexer.

Having lexers defined only in Go is not ideal for a couple of reasons.
Firstly, it impedes a significant portion of contributors who use Chroma
in Hugo, but don't know Go. Secondly, it bloats the binary size of any
project that imports Chroma.

Why XML? YAML is an abomination and JSON is not human editable. XML
also compresses very well (eg. Go template lexer XML compresses from
3239 bytes to 718).

Why a new syntax format? All major existing formats rely on the
Oniguruma regex engine, which is extremely complex and for which there
is no Go port.

Why not earlier? Prior to the existence of fs.FS this was not a viable
option.

Benchmarks:

    $ hyperfine --warmup 3 \
        './chroma.master --version' \
        './chroma.xml-pre-opt --version' \
        './chroma.xml --version'
    Benchmark 1: ./chroma.master --version
      Time (mean ± σ):       5.3 ms ±   0.5 ms    [User: 3.6 ms, System: 1.4 ms]
      Range (min … max):     4.2 ms …   6.6 ms    233 runs

    Benchmark 2: ./chroma.xml-pre-opt --version
      Time (mean ± σ):      50.6 ms ±   0.5 ms    [User: 52.4 ms, System: 3.6 ms]
      Range (min … max):    49.2 ms …  51.5 ms    51 runs

    Benchmark 3: ./chroma.xml --version
      Time (mean ± σ):       6.9 ms ±   1.1 ms    [User: 5.1 ms, System: 1.5 ms]
      Range (min … max):     5.7 ms …  19.9 ms    196 runs

    Summary
      './chroma.master --version' ran
        1.30 ± 0.23 times faster than './chroma.xml --version'
        9.56 ± 0.83 times faster than './chroma.xml-pre-opt --version'

A slight increase in init time, but I think this is okay given the
increase in flexibility.

And binary size difference:

    $ du -h lexers.test*
    $ du -sh chroma*                                                                                                                                                                                                                                                                                                                                                                                                                                                             951371ms
    8.8M	chroma.master
    7.8M	chroma.xml
    7.8M	chroma.xml-pre-opt

Benchmarks:

    $ hyperfine --warmup 3 \
        './chroma.master --version' \
        './chroma.xml-pre-opt --version' \
        './chroma.xml --version'
    Benchmark 1: ./chroma.master --version
      Time (mean ± σ):       5.3 ms ±   0.5 ms    [User: 3.6 ms, System: 1.4 ms]
      Range (min … max):     4.2 ms …   6.6 ms    233 runs

    Benchmark 2: ./chroma.xml-pre-opt --version
      Time (mean ± σ):      50.6 ms ±   0.5 ms    [User: 52.4 ms, System: 3.6 ms]
      Range (min … max):    49.2 ms …  51.5 ms    51 runs

    Benchmark 3: ./chroma.xml --version
      Time (mean ± σ):       6.9 ms ±   1.1 ms    [User: 5.1 ms, System: 1.5 ms]
      Range (min … max):     5.7 ms …  19.9 ms    196 runs

    Summary
      './chroma.master --version' ran
        1.30 ± 0.23 times faster than './chroma.xml --version'
        9.56 ± 0.83 times faster than './chroma.xml-pre-opt --version'

Incompatible changes:

- (*RegexLexer).SetAnalyser: changed from func(func(text string) float32) *RegexLexer to func(func(text string) float32) Lexer
- (*TokenType).UnmarshalJSON: removed
- Lexer.AnalyseText: added
- Lexer.SetAnalyser: added
- Lexer.SetRegistry: added
- MustNewLazyLexer: removed
- MustNewLexer: changed from func(*Config, Rules) *RegexLexer to func(*Config, func() Rules) *RegexLexer
- Mutators: changed from func(...Mutator) MutatorFunc to func(...Mutator) Mutator
- NewLazyLexer: removed
- NewLexer: changed from func(*Config, Rules) (*RegexLexer, error) to func(*Config, func() Rules) (*RegexLexer, error)
- Pop: changed from func(int) MutatorFunc to func(int) Mutator
- Push: changed from func(...string) MutatorFunc to func(...string) Mutator
- TokenType.MarshalJSON: removed
- Using: changed from func(Lexer) Emitter to func(string) Emitter
- UsingByGroup: changed from func(func(string) Lexer, int, int, ...Emitter) Emitter to func(int, int, ...Emitter) Emitter
v2.0.0-alpha1
2022-01-27 15:22:00 +11:00
Alec Thomas
d491f1b5c1 Helper scripts for on-the-fly running chroma{,d}. 2022-01-27 10:09:13 +11:00
silverwind
4ba9a05fee Add mariadb aliases
Fixes: https://github.com/alecthomas/chroma/issues/590
2022-01-16 10:29:45 +11:00
pu
0b2b5eec0a
Add[styles/gruvbox]: vim gruvbox theme for chroma (#592) 2022-01-14 00:18:06 +11:00
Alec Thomas
36bdd4b988 Benchmark Java instead of Go. v0.10.0 2022-01-12 21:49:38 +11:00
Jelle Hulter
b01c8fcab6
Added OpenEdgeABL lexer (#585) 2022-01-04 03:22:50 +11:00
James
decf9d3229
Highlight MSBuild project files for C#, F#, and C++ as XML. (#584) 2022-01-02 18:16:11 +11:00
Martin Stühmer
3bdc3fbe7a
Removed mimetype for the Lexer bicep (#574) 2021-12-20 18:12:21 +11:00
Tobias Neitzel
ac2891ff2a
Add support for more complex command prompts (#583)
The bashsession lexer did only recognized command prompts starting with
one of the characters '#$%>'. This commit adds support for a prefixed
block of the form `[.*@.*]`, which is a common layout for command prompts.
2021-12-20 18:04:05 +11:00
MsK`
d38fcfcce0 fixed scheme characters 2021-12-13 14:36:15 +11:00
Nicolas Jeannerod
06f476d11a
Add lexer for Typed and Untyped Plutus Core (#579) 2021-12-02 21:23:30 +11:00
Yang Yang
3f5761f9fe Fix background color of xcode-dark style 2021-11-30 19:03:01 +11:00
Siavash Askari Nasr
d6e61d3cbe Use span for .line, put code inside <code>
Apparently only "phrasing content" are permitted inside `pre` and
`code`, and `div` is not one of them, so replace it with `span`, `div`
wasn't necessary anyway.

Also it makes sense to put code inside `code` tag(except for line
numbers).

Removed `overflow:auto` and `width: auto` as they didn't seem to be
necessary and actually prevented horizontal scroll bar to appear when content
didn't fit in the viewport.
2021-11-10 19:52:49 +11:00
Siavash Askari Nasr
5ed5054d73 Put lines in a div & code lines in a span, Add WrapLongLines Option 2021-11-09 19:14:33 +11:00
Stefan van der Walt
7cefa29980
Add WitchHazel by Thea Flowers (#570)
https://witchhazel.thea.codes/
2021-11-09 19:12:41 +11:00
Joseph Schorr
0fcd2d8e0e Add lexer/detector for zed
Reference: https://docs.authzed.com/reference/schema-lang

Used by project SpiceDB (https://github.com/authzed/spicedb), a database system for managing security-critical permissions checking, inspired by Google's Zanzibar paper
2021-10-27 15:18:05 +11:00
Martin Stühmer
202379826e
feat: Added .bicep lexer #562 (#564) 2021-10-23 21:48:00 +11:00