语言
shikiphp 捆绑了 完整的 Shiki 语言集:包含
tm-grammars 1.31.15 中的每个语法,
也就是 Shiki 3.23.0 随附的集合。其中有 235 种语言及其嵌入的 18 个辅助语法,
总计 253 个语法。这些 TextMate 语法与 VS Code 和 Shiki 进行词法标记化时
使用的语法相同,因此语言覆盖范围、别名和作用域名称都保持一致。
你可以通过语言 id 或其别名引用语言,例如 ts 或 typescript、js 或 javascript、php、rust、python、html、yaml、json 等。id 会精确匹配,因此请使用下方列出的全小写形式;如果捆绑包无法识别某个 id,就会抛出 Shikiphp\Exceptions\Highlight,并显示消息 Unknown language "…"。
特殊 id 'ansi' 不是语法,而是用于高亮终端输出。参见 ANSI。
Shiki 的纯文本 id text、txt、plain 和 plaintext 目前尚不受支持,会抛出 Unknown language(#2)。
列出捆绑语言
通过 PHP 请求高亮器提供列表:
use Shikiphp\Shikiphp;
$highlighter = Shikiphp::highlighter();
$highlighter->bundledLanguages(); // list<string> — ids shipped in the box
$highlighter->loadedLanguages(); // list<string> — bundled plus any you registered
两个列表都包含所有可解析的 id:先列出 253 个语法 id,再列出 97 个别名;捆绑包共计 350 项。
也可以通过命令行逐行列出 id:
vendor/bin/shikiphp langs
目录
按名称排序的 235 捆绑语言。每行中的任一 id 或别名都对应同一语法。
| 语言 | Id | 别名 |
|---|---|---|
| 1C (Enterprise) | bsl |
1c |
| 1C (Query) | sdbl |
1c-query |
| ABAP | abap |
|
| ActionScript | actionscript-3 |
|
| Ada | ada |
|
| Angular HTML | angular-html |
|
| Angular TypeScript | angular-ts |
|
| Apache Conf | apache |
|
| Apex | apex |
|
| APL | apl |
|
| AppleScript | applescript |
|
| Ara | ara |
|
| AsciiDoc | asciidoc |
adoc |
| ASP.NET Razor | razor |
|
| Assembly | asm |
|
| Astro | astro |
|
| AWK | awk |
|
| Ballerina | ballerina |
|
| Batch File | bat |
batch |
| Beancount | beancount |
|
| Berry | berry |
be |
| BibTeX | bibtex |
|
| Bicep | bicep |
|
| BIRD2 Configuration | bird2 |
bird |
| Blade | blade |
|
| C | c |
|
| C# | csharp |
c#, cs |
| C++ | cpp |
c++ |
| C3 | c3 |
|
| Cadence | cadence |
cdc |
| Cairo | cairo |
|
| Clarity | clarity |
|
| Clojure | clojure |
clj |
| Closure Templates | soy |
closure-templates |
| CMake | cmake |
|
| COBOL | cobol |
|
| CODEOWNERS | codeowners |
|
| CodeQL | codeql |
ql |
| CoffeeScript | coffee |
coffeescript |
| Common Lisp | common-lisp |
lisp |
| Coq | coq |
|
| Crystal | crystal |
|
| CSS | css |
|
| CSV | csv |
|
| CUE | cue |
|
| Cypher | cypher |
cql |
| D | d |
|
| Dart | dart |
|
| DAX | dax |
|
| Desktop | desktop |
|
| Diff | diff |
|
| Dockerfile | docker |
dockerfile |
| dotEnv | dotenv |
|
| Dream Maker | dream-maker |
|
| Edge | edge |
|
| Elixir | elixir |
|
| Elm | elm |
|
| Emacs Lisp | emacs-lisp |
elisp |
| ERB | erb |
|
| Erlang | erlang |
erl |
| F# | fsharp |
f#, fs |
| Fennel | fennel |
|
| Fish | fish |
|
| Fluent | fluent |
ftl |
| Fortran (Fixed Form) | fortran-fixed-form |
f, for, f77 |
| Fortran (Free Form) | fortran-free-form |
f90, f95, f03, f08, f18 |
| GDResource | gdresource |
tscn, tres |
| GDScript | gdscript |
gd |
| GDShader | gdshader |
|
| Genie | genie |
|
| Gettext PO | po |
pot, potx |
| Gherkin | gherkin |
|
| Git Commit Message | git-commit |
|
| Git Rebase Message | git-rebase |
|
| Gleam | gleam |
|
| Glimmer JS | glimmer-js |
gjs |
| Glimmer TS | glimmer-ts |
gts |
| GLSL | glsl |
|
| GN | gn |
|
| Gnuplot | gnuplot |
|
| Go | go |
|
| GraphQL | graphql |
gql |
| Groovy | groovy |
|
| Hack | hack |
|
| Handlebars | handlebars |
hbs |
| HashiCorp HCL | hcl |
|
| Haskell | haskell |
hs |
| Haxe | haxe |
|
| Hjson | hjson |
|
| HLSL | hlsl |
|
| HTML | html |
|
| HTML (Derivative) | html-derivative |
|
| HTTP | http |
|
| Hurl | hurl |
|
| HXML | hxml |
|
| Hy | hy |
|
| Imba | imba |
|
| INI | ini |
properties |
| Java | java |
|
| JavaScript | javascript |
js, cjs, mjs |
| Jinja | jinja |
|
| Jison | jison |
|
| JSON | json |
|
| JSON Lines | jsonl |
|
| JSON with Comments | jsonc |
|
| JSON5 | json5 |
|
| Jsonnet | jsonnet |
|
| JSSM | jssm |
fsl |
| JSX | jsx |
|
| Julia | julia |
jl |
| Just | just |
|
| KDL | kdl |
|
| Kotlin | kotlin |
kt, kts |
| Kusto | kusto |
kql |
| LaTeX | latex |
|
| Lean 4 | lean |
lean4 |
| Less | less |
|
| Liquid | liquid |
|
| LLVM IR | llvm |
|
| Log file | log |
|
| Logo | logo |
|
| Lua | lua |
|
| Luau | luau |
|
| Makefile | make |
makefile |
| Markdown | markdown |
md |
| Marko | marko |
|
| MATLAB | matlab |
|
| MDC | mdc |
|
| MDX | mdx |
|
| Mermaid | mermaid |
mmd |
| MIPS Assembly | mipsasm |
mips |
| Mojo | mojo |
|
| MoonBit | moonbit |
mbt, mbti |
| Move | move |
|
| Narrat Language | narrat |
nar |
| Nextflow | nextflow |
nf |
| Nextflow Groovy | nextflow-groovy |
|
| Nginx | nginx |
|
| Nim | nim |
|
| Nix | nix |
|
| nushell | nushell |
nu |
| Objective-C | objective-c |
objc |
| Objective-C++ | objective-cpp |
|
| OCaml | ocaml |
|
| Odin | odin |
|
| OpenSCAD | openscad |
scad |
| Pascal | pascal |
|
| Perl | perl |
|
| PHP | php |
|
| Pkl | pkl |
|
| PL/SQL | plsql |
|
| Polar | polar |
|
| PostCSS | postcss |
|
| PowerQuery | powerquery |
|
| PowerShell | powershell |
ps, ps1 |
| Prisma | prisma |
|
| Prolog | prolog |
|
| Protocol Buffer 3 | proto |
protobuf |
| Pug | pug |
jade |
| Puppet | puppet |
|
| PureScript | purescript |
|
| Python | python |
py |
| QML | qml |
|
| QML Directory | qmldir |
|
| Qt Style Sheets | qss |
|
| R | r |
|
| Racket | racket |
|
| Raku | raku |
perl6 |
| RegExp | regexp |
regex |
| Rel | rel |
|
| reStructuredText | rst |
|
| RISC-V | riscv |
|
| RON | ron |
|
| ROS Interface | rosmsg |
|
| Ruby | ruby |
rb |
| Ruby Haml | haml |
|
| Rust | rust |
rs |
| SAS | sas |
|
| Sass | sass |
|
| Scala | scala |
|
| Scheme | scheme |
|
| SCSS | scss |
|
| ShaderLab | shaderlab |
shader |
| Shell | shellscript |
bash, sh, shell, zsh |
| Shell Session | shellsession |
console |
| Smalltalk | smalltalk |
|
| Solidity | solidity |
|
| SPARQL | sparql |
|
| Splunk Query Language | splunk |
spl |
| SQL | sql |
|
| SSH Config | ssh-config |
|
| Stata | stata |
|
| Stylus | stylus |
styl |
| SurrealQL | surrealql |
surql |
| Svelte | svelte |
|
| Swift | swift |
|
| Systemd Units | systemd |
|
| SystemVerilog | system-verilog |
|
| TalonScript | talonscript |
talon |
| Tasl | tasl |
|
| Tcl | tcl |
|
| Templ | templ |
|
| Terraform | terraform |
tf, tfvars |
| TeX | tex |
|
| TOML | toml |
|
| TSV | tsv |
|
| TSX | tsx |
|
| Turtle | turtle |
|
| Twig | twig |
|
| TypeScript | typescript |
ts, cts, mts |
| TypeScript with Tags | ts-tags |
lit |
| TypeSpec | typespec |
tsp |
| Typst | typst |
typ |
| V | v |
|
| Vala | vala |
|
| Verilog | verilog |
|
| VHDL | vhdl |
|
| Vim Script | viml |
vim, vimscript |
| Visual Basic | vb |
cmd |
| Vue | vue |
|
| Vue HTML | vue-html |
|
| Vue Vine | vue-vine |
|
| Vyper | vyper |
vy |
| WebAssembly | wasm |
|
| WebAssembly Interface Types | wit |
|
| Wenyan | wenyan |
文言 |
| WGSL | wgsl |
|
| Wikitext | wikitext |
mediawiki, wiki |
| Windows Registry Script | reg |
|
| Wolfram | wolfram |
wl |
| XML | xml |
|
| XSL | xsl |
|
| YAML | yaml |
yml |
| ZenScript | zenscript |
|
| Zig | zig |
辅助语法
这 18 种语法供其他语法嵌入或注入使用(Angular、Vue、C++ 宏、Jinja、Nix,以及 ts-tags 中的标记模板字面量)。需要它们的语言会自动加载这些语法,其 id 也会显示在 bundledLanguages() 和 shikiphp langs 中:
angular-expression, angular-let-declaration, angular-template, angular-template-blocks, angular-inline-style, angular-inline-template, cpp-macro, jinja-html, markdown-nix, es-tag-css, es-tag-glsl, es-tag-html, es-tag-sql, es-tag-xml, markdown-vue, vue-directives, vue-interpolations, vue-sfc-style-variable-injection.
添加自己的语言
需要未捆绑的语言或私有语法?请通过 loadGrammar 注册。参见 自定义语言和主题。