Documentation Channel for #raku | This channel is logged | Roadmap:
Set by [Coke] on 23 May 2022.
00:24 Nemokosch joined
Nemokosch [Coke]: negative, the graphs of named types work 00:24
By the way, I'm quite sure the highlighter relies on timing some way and fails for a cold runup. Only for the first occasion... 00:25
00:25 Nemokosch left 00:46 Kaiepi left 03:47 Kaiepi joined
CIAvash Would replacing "atom-language-perl6" with [chroma]( for highlighting code be desired? I don't know how it correlates with `raku-mode.js`, `farabi6` and codemirror, but the benefits are better performance and less dependencies(node_modules) because you can use the chroma binary directly. cc Altai-man 05:08
But maybe after RakuAST they won't be necessary? 🤷 05:10
07:43 Nemokosch joined
Nemokosch I don't think RakuAST could magically solve this. If the idea is that this chroma will be just good enough not to worry about the source, then good luck; otherwise I'd vote against anything that involves migrating from a language I know to Go 07:54
07:58 Nemokosch left
CIAvash It would replace syntax highlighting currently done with JS. I mentioned RakuAST, because we may have our own syntax highlighter in Raku after it lands, not sure. Using chroma will be just giving the code to its CLI to generate the html. CSS class names need to change though. I saw mentions of `CodeMirror` and CSS classes that start with `.cm` and farabi6 in `raku-mode.js` for live code editing, so I wondered things might be more complicated than 08:23
simply replacing "atom-language-perl6". If these are not related, then I think it would be easy to replace "atom-language-perl6" with chroma.
09:11 sena_kun joined 09:14 sena_kun left 09:42 sena_kun joined 09:46 Nemokosch joined
Nemokosch I know how syntax highlighting works... more or less. It's based on the highlighter module created with Atom and it's just invoked from the webserver app - so yes, essentially "giving the code to CLI to generate the HTML" 09:49
The thing is rather that currently, I think it's just a matter of communication and management to do anything with syntax highlighting based on atom-language-perl6. With Chroma, we would lose the management powers (because it's outside of the community) and I for one would lose much of the interest - because previously there was hope to work with familiar technologies like Node, JSON, the JS macroverse overall, and now all of a sudden 09:52
the lexer itself would be written in Go.
it would be probably easy to try chroma out, though
that's why I say if produces so good output that you can "set it and forget it", then I'm not against it 09:53
09:53 Nemokosch left 09:54 Kaiepi left
sena_kun for syntax highlighting we want to wait for raku solution 10:03
which comes after RakuAST work done
CIAvash FWIW I made the Raku lexer for chroma, so I can make changes, and if necessary build a binary from it if timing of release would be an issue. 10:05
Yeah that's why I asked before creating a PR
sena_kun I'm sure it doesn't work with slangs? 10:08
what about heredocs support?
CIAvash (chroma is also being used in, if you want to see it in action, also in Gitea(which Codeberg) uses) 10:09
It supports heredocs
No, for slangs you'd need an actual/real lexer, or at least a more complicated one 10:12
lizmat I feel that jnthn's answer here: could be copied almost verbatim to some FAQ in the docs 10:18
CIAvash A few examples for highlighting: 10:21
10:57 Kaiepi joined
sena_kun hmmm 14:10
CIAvash, how do you integrate it with a website, is there a code sample? 14:11
is it lighter than what we do? did you compare features?
15:07 Kaiepi left
[Coke] if someone can add lizmat's URL above to a doc ticket, that'd be great. 16:24
16:26 Kaiepi joined
Geth ¦ doc: coke self-assigned Explanation on thread issues with hashes 16:35
[Coke] Thanks, lizmat. 16:39
lizmat yw :-) 16:40
[Coke] One boring task that doesn't require a lot of raku knowledge: verify that items with label:docs are actually spec'd in Roast (if not, add label:NONSPECCED) 16:46
(basically, use 'rak' or something to search for any usage of a requested method/class/sub to see if it's used in roast) 16:51
18:04 sena_kun left 18:06 sena_kun joined 19:32 sena_kun left 19:33 sena_kun joined
CIAvash sena_kun: Using the chroma CLI I changed the `lib/Docky/Renderer/Node.pm6` file: the first highlighted line generates the HTML with classes and the line that is commented out generates HTML with inline styles. Feature-wise I think the chroma lexer has better support for Raku, meaning detecting more tokens, if the chroma binary gets used, it means no dependencies 19:38
(no downloading node modules), I have not compared the performance, but I'm going to guess chroma is faster. Considering the size, atom-highlight-perl6 with the node_modules directory is about 60MB and chroma binary file is 6.3MB.
sena_kun CIAvash, extremely curious. what about color themes? we need at least two, light and dark. 20:16
CIAvash sena_kun: Current themes probably can be used, but CSS class names need to change and maybe added, but chroma comes with these styles: demo of some of the styles(it doesn't include all themes, specially the ones I've added): 20:22
21:40 sena_kun left 21:41 sena_kun joined 22:58 sena_kun left 23:03 sena_kun joined 23:50 sena_kun left