Files
claudeandClaude Opus 4.8 4fc86ebd3d
Build and Deploy Verso / deploy (push) Successful in 9m48s
Editor: qmd/typst autocomplete, format column, compiler gating, Verso loader
- Add a Typst language (stream highlighting + completions) for .typ, and
  Quarto completions (code chunks, callouts, cross-refs) for .qmd/markdown.
- Project dashboard: new Format column (Quarto/Typst/LaTeX) from the cheap
  project compiler field, surfaced through the projects list API.
- Compiler dropdown: grey out engines that don't match the root file's
  extension (.qmd->Quarto, .typ->Typst, .tex->LaTeX engines).
- Replace the Overleaf fill loader with an animated Verso logo: the four
  quadrant circles drift on their own orbits while colour warms up with load
  progress; reused on the token-access screen too.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 07:47:31 +00:00

78 lines
1.4 KiB
TypeScript

import { LanguageDescription } from '@codemirror/language'
export const languages = [
LanguageDescription.of({
name: 'latex',
extensions: [
'tex',
'sty',
'cls',
'clo',
'bbl',
'pdf_tex',
'pdf_t',
'fd',
'def',
'pgf',
'tikz',
'bbx',
'cbx',
'dbx',
'lbx',
'lco',
'ldf',
'xmpdata',
'Rnw',
'rnw',
'inc',
'dtx',
'hak',
'eps_tex',
'brf',
'ins',
'hva',
'Rtex',
'rtex',
'pstex',
'pstex_t',
'gin',
'fontspec',
'pygstyle',
'pygtex',
'ps_tex',
'ltx',
],
load: () => {
return import('./latex').then(m => m.latex())
},
}),
LanguageDescription.of({
name: 'bibtex',
extensions: ['bib'],
load: () => {
return import('./bibtex').then(m => m.bibtex())
},
}),
LanguageDescription.of({
name: 'markdown',
extensions: ['md', 'markdown', 'qmd', 'rmd'],
load: () => {
return import('./markdown').then(m => m.markdown())
},
}),
LanguageDescription.of({
name: 'python',
extensions: ['py'],
load: () => {
return import('@codemirror/lang-python').then(m => m.python())
},
}),
LanguageDescription.of({
name: 'typst',
extensions: ['typ'],
load: () => {
return import('./typst').then(m => m.typst())
},
}),
]