Skip to content

Conversation

@evoactivity
Copy link

First commit is just a proof of concept.

Switching between languages will be the main thing to figure out from here.

image

@bolt-new-by-stackblitz
Copy link

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@socket-security
Copy link

socket-security bot commented Oct 17, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​shikijs/​themes@​3.13.01001007696100
Addedshiki@​3.13.01001007797100
Updatedember-repl@​7.0.0 ⏵ 7.0.178 -2210084 -1690 -10100
Addedcodemirror-shiki@​0.3.0781008289100
Added@​shikijs/​langs@​3.13.01001007996100

View full report

@socket-security
Copy link

socket-security bot commented Oct 17, 2025

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
ember-repl@7.0.1 has Obfuscated code.

Confidence: 0.91

Location: Package overview

From: apps/tutorial/package.jsonnpm/ember-repl@7.0.1

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/ember-repl@7.0.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@github-actions
Copy link
Contributor

github-actions bot commented Oct 17, 2025

Project Preview URL1 Manage
Limber https://shiki-highlighter.limber-glimdown.pages.dev on Cloudflare
Tutorial https://shiki-highlighter.limber-glimmer-tutorial.pages.dev on Cloudflare

Logs

Footnotes

  1. if these branch preview links are not working, please check the logs for the commit-based preview link. There is a character limit of 28 for the branch subdomain, as well as some other heuristics, described here for the sake of implementation ease in deploy-preview.yml, that algo has been omitted. The URLs are logged in the wrangler output, but it's hard to get outputs from a matrix job.


shiki({
highlighter,
language: 'glimmer-js',
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like we'd need a map of format+flavor to language id 🤔

import { getCompiler } from 'ember-repl';

import { HorizonSyntaxTheme, HorizonTheme } from './theme.ts';
import { HorizonTheme } from './theme.ts';
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we have to lose the theme 🙈 I like Horizon haha

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably will need to lose it, or reimplement it for shiki. Probably best to either offer a theme selector with the shiki themes or pick your favourite shiki theme :)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely need to lose it lol, I had to setup an empty highlighter theme to disable lezer clobbering shiki.

I've asked the author hwo they use lezer language features with shiki (waiting on moderator approval on codemirror forum) so maybe there is another way, but maybe that's how they do it too.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did you end up getting a response there?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They recommended just not using syntaxHighlighting() function, but I'm pretty sure I lost other lezer features when doing that.

@NullVoxPopuli
Copy link
Owner

EXCITE!

Comment on lines +86 to +90
import('@shikijs/langs/javascript'),
import('@shikijs/langs/glimmer-js'),
import('@shikijs/langs/markdown'),
import('@shikijs/langs/svelte'),
import('@shikijs/langs/vue'),
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should load these lazily

Comment on lines +96 to +108
const formatToLanguage = {
js: 'javascript',
jsx: 'javascript',
ts: 'typescript',
tsx: 'typescript',
gdm: 'markdown',
gmd: 'markdown',
glimdown: 'markdown',
svelte: 'svelte',
vue: 'vue',
gjs: 'glimmer-js',
gts: 'glimmer-ts',
};
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this live here or somewhere else?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants