更新记录
1.0.0(2025-06-09) 下载此版本
- 实现多平台代码高亮支持
平台兼容性
云端兼容性
阿里云 | 腾讯云 | 支付宝云 |
---|---|---|
√ | √ | √ |
uni-app x(4.61)
Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
---|---|---|---|---|---|
√ | √ | √ | √ | √ | √ |
其他
多语言 | 暗黑模式 | 宽屏模式 |
---|---|---|
× | √ | √ |
uni-highlight
本插件支持基于 TextMate 语法规则(如 javascript.tmLanguage.json)的前端代码高亮渲染,与 VS Code 的语法高亮引擎相同。
功能介绍
- 用于代码文本高亮
Grammars
Name | Alias | Source | License | Sponsor | Deps On | File Size |
---|---|---|---|---|---|---|
abap |
pvl/abap.tmbundle | 15.12 kB | ||||
actionscript-3 |
BowlerHatLLC/vscode-as3mxml | Apache-2.0 | Patreon: josht | 13.32 kB | ||
ada |
AdaCore/ada_language_server | GPL-3.0 | 45.39 kB | |||
angular-html |
onivim/vscode-exthost | MIT | html angular-expression angular-let-declaration angular-template angular-template-blocks |
701.00 B | ||
angular-ts |
microsoft/vscode | MIT | angular-expression angular-inline-style angular-inline-template angular-let-declaration angular-template angular-template-blocks |
160.04 kB | ||
apache |
colinta/ApacheConf.tmLanguage | NOASSERTION | 11.83 kB | |||
apex |
forcedotcom/apex-tmLanguage | NOASSERTION | 43.61 kB | |||
apl |
kimmolinna/vscode-apl-language | html xml css javascript json |
22.69 kB | |||
applescript |
textmate/applescript.tmbundle | 27.80 kB | ||||
ara |
ara-lang/highlighting | Apache-2.0 | 5.91 kB | |||
asciidoc |
adoc |
asciidoctor/asciidoctor-vscode | NOASSERTION | html yaml csv c clojure coffee cpp css csharp diff docker elixir elm erlang go groovy haskell java javascript json jsx julia kotlin less make objective-c ocaml perl python r ruby rust sass scala scss shellscript sql swift toml typescript xml |
81.89 kB | |
asm |
13xforever/x86_64-assembly-vscode | MIT | 38.43 kB | |||
astro |
withastro/language-tools | MIT | GitHub Sponsors: @withastro Open Collective: astrodotbuild thanks.dev: u/gh/withastro | json javascript typescript stylus sass css scss less postcss tsx |
22.87 kB | |
awk |
luggage66/vscode-awk | MIT | 5.16 kB | |||
ballerina |
ballerina-platform/ballerina-grammar | Apache-2.0 | 55.03 kB | |||
bat |
batch |
microsoft/vscode | MIT | 12.29 kB | ||
beancount |
Lencerf/vscode-beancount | MIT | 9.66 kB | |||
berry |
be |
berry-lang/berry | MIT | 2.06 kB | ||
bibtex |
microsoft/vscode | MIT | 4.51 kB | |||
bicep |
Azure/bicep | MIT | 3.88 kB | |||
blade |
laravel/vs-code-extension | MIT | html-derivative html xml sql javascript json css |
98.91 kB | ||
bsl |
1c |
1c-syntax/vsc-language-1c-bsl | MIT | sdbl |
32.60 kB | |
c |
microsoft/vscode | MIT | 67.93 kB | |||
cadence |
cdc |
onflow/vscode-cadence | Apache-2.0 | 9.87 kB | ||
cairo |
starkware-libs/cairo-lang | Apache-2.0 | python |
2.66 kB | ||
clarity |
hirosystems/clarity.tmbundle | MIT | 13.30 kB | |||
clojure |
clj |
microsoft/vscode | MIT | 6.02 kB | ||
cmake |
twxs/vs.language.cmake | MIT | 9.38 kB | |||
cobol |
spgennard/vscode_cobol | MIT | html java |
37.31 kB | ||
codeowners |
jasonnutter/vscode-codeowners | MIT | 471.00 B | |||
codeql |
ql |
github/vscode-codeql | MIT | 25.78 kB | ||
coffee |
coffeescript |
microsoft/vscode | MIT | javascript |
25.88 kB | |
common-lisp |
lisp |
qingpeng9802/vscode-common-lisp | MIT | 21.55 kB | ||
coq |
coq-community/vscoq | MIT | 5.11 kB | |||
cpp |
c++ |
microsoft/vscode | MIT | cpp-macro regexp glsl sql |
372.71 kB | |
crystal |
crystal-lang-tools/vscode-crystal-lang | MIT | html sql css c javascript shellscript |
27.39 kB | ||
csharp |
c# cs |
microsoft/vscode | MIT | 80.40 kB | ||
css |
microsoft/vscode | MIT | 46.93 kB | |||
csv |
mechatroner/vscode_rainbow_csv | MIT | 1017.00 B | |||
cue |
cue-lang/vscode-cue | NOASSERTION | 15.09 kB | |||
cypher |
cql |
adam-cowley/neo4j-vscode | MIT | 5.53 kB | ||
d |
Pure-D/code-d | MIT | GitHub Sponsors: @WebFreak001 Patreon: WebFreak | 41.11 kB | ||
dart |
microsoft/vscode | MIT | 7.25 kB | |||
dax |
huyza/dax-language | 5.12 kB | ||||
desktop |
nico-castell/desktop-file-support | MIT | paypal.com | 1.69 kB | ||
diff |
microsoft/vscode | MIT | 2.38 kB | |||
docker |
dockerfile |
microsoft/vscode | MIT | 1.58 kB | ||
dotenv |
dotenv-org/dotenv-vscode | MIT | 1.30 kB | |||
dream-maker |
gbasood/vscode-atomic-dreams | 9.71 kB | ||||
edge |
edge-js/edge-vscode | MIT | typescript html html-derivative |
1.97 kB | ||
elixir |
elixir-editors/elixir-tmbundle | NOASSERTION | html |
15.19 kB | ||
elm |
elm-tooling/elm-language-client-vscode | MIT | GitHub Sponsors: @razzeee GitHub Sponsors: @jmbockhorst Open Collective: elm-tooling | glsl |
10.27 kB | |
emacs-lisp |
elisp |
Alhadis/language-emacs-lisp | ISC | 760.40 kB | ||
erb |
textmate/ruby.tmbundle | html ruby |
1.90 kB | |||
erlang |
erl |
erlang-ls/grammar | Apache-2.0 | 35.65 kB | ||
fennel |
kongeor/vsc-fennel | MIT | 4.53 kB | |||
fish |
bmalehorn/vscode-fish | MIT | 3.88 kB | |||
fluent |
ftl |
macabeus/vscode-fluent | MIT | 3.38 kB | ||
fortran-fixed-form |
f for f77 |
fortran-lang/vscode-fortran-support | MIT | fortran-free-form |
903.00 B | |
fortran-free-form |
f90 f95 f03 f08 f18 |
fortran-lang/vscode-fortran-support | MIT | 82.16 kB | ||
fsharp |
f# fs |
microsoft/vscode | MIT | markdown |
23.87 kB | |
gdresource |
godotengine/godot-vscode-plugin | MIT | fund.godotengine.org | gdshader gdscript |
4.72 kB | |
gdscript |
godotengine/godot-vscode-plugin | MIT | fund.godotengine.org | 17.82 kB | ||
gdshader |
godotengine/godot-vscode-plugin | MIT | fund.godotengine.org | 5.91 kB | ||
genie |
vala-lang/vala-vscode | MIT | 3.11 kB | |||
gherkin |
alexkrechik/VSCucumberAutoComplete | MIT | 11.55 kB | |||
git-commit |
microsoft/vscode | MIT | diff |
1.06 kB | ||
git-rebase |
microsoft/vscode | MIT | shellscript |
821.00 B | ||
gleam |
gleam-lang/vscode-gleam | Apache-2.0 | 2.37 kB | |||
glimmer-js |
gjs |
lifeart/vsc-ember-syntax | MIT | javascript typescript css html |
19.05 kB | |
glimmer-ts |
gts |
lifeart/vsc-ember-syntax | MIT | typescript css javascript html |
19.05 kB | |
glsl |
polym0rph/GLSL.tmbundle | c |
3.39 kB | |||
gnuplot |
MarioSchwalbe/vscode-gnuplot | GPL-3.0 | 13.73 kB | |||
go |
microsoft/vscode | MIT | 41.92 kB | |||
graphql |
gql |
prisma-labs/vscode-graphql | MIT | javascript typescript jsx tsx |
16.91 kB | |
groovy |
microsoft/vscode | MIT | 18.17 kB | |||
hack |
slackhq/vscode-hack | MIT | html sql |
76.67 kB | ||
haml |
karuna/haml-vscode | MIT | ruby javascript sass coffee markdown css |
7.54 kB | ||
handlebars |
hbs |
microsoft/vscode | MIT | html css javascript yaml |
11.40 kB | |
haskell |
hs |
octref/language-haskell | BSD-3-Clause | GitHub Sponsors: @octref | 38.52 kB | |
haxe |
vshaxe/haxe-TmLanguage | MIT | 33.52 kB | |||
hcl |
hashicorp/syntax | MPL-2.0 | 9.49 kB | |||
hjson |
hjson/textmate-hjson | MIT | 11.37 kB | |||
hlsl |
microsoft/vscode | MIT | 6.83 kB | |||
html |
microsoft/vscode | MIT | javascript css |
55.05 kB | ||
html-derivative |
microsoft/vscode | MIT | html |
707.00 B | ||
http |
Huachao/vscode-restclient | MIT | shellscript json xml graphql |
3.89 kB | ||
hxml |
vshaxe/haxe-TmLanguage | MIT | haxe |
1.54 kB | ||
hy |
hylang/vscode-hy | MIT | 2.42 kB | |||
imba |
imba/imba | MIT | 47.13 kB | |||
ini |
properties |
microsoft/vscode | MIT | 1.38 kB | ||
java |
microsoft/vscode | MIT | 25.72 kB | |||
javascript |
js |
microsoft/vscode | MIT | 155.59 kB | ||
jinja |
samuelcolvin/jinjahtml-vscode | MIT | GitHub Sponsors: @samuelcolvin | jinja-html |
4.66 kB | |
jison |
cdibbs/language-jison | MIT | javascript |
9.12 kB | ||
json |
microsoft/vscode | MIT | 2.64 kB | |||
json5 |
mrmlnc/vscode-json5 | MIT | 3.04 kB | |||
jsonc |
microsoft/vscode | MIT | 2.92 kB | |||
jsonl |
microsoft/vscode | MIT | 2.82 kB | |||
jsonnet |
heptio/vscode-jsonnet | Apache-2.0 | 3.29 kB | |||
jssm |
fsl |
StoneCypher/sublime-jssm | MIT | 2.08 kB | ||
jsx |
microsoft/vscode | MIT | 158.51 kB | |||
julia |
jl |
microsoft/vscode | MIT | cpp python javascript r sql |
28.25 kB | |
kotlin |
kt kts |
fwcd/vscode-kotlin | MIT | 8.19 kB | ||
kusto |
kql |
rosshamish/kuskus | 14.28 kB | |||
latex |
microsoft/vscode | MIT | tex shellscript css gnuplot haskell html java julia javascript lua python ruby rust typescript xml yaml scala |
64.85 kB | ||
lean |
lean4 |
leanprover/vscode-lean4 | Apache-2.0 | 3.75 kB | ||
less |
microsoft/vscode | MIT | 92.58 kB | |||
liquid |
Shopify/liquid-tm-grammar | MIT | html css json javascript |
16.94 kB | ||
llvm |
llvm/llvm-project | NOASSERTION | 4.53 kB | |||
log |
emilast/vscode-logfile-highlighter | MIT | 2.52 kB | |||
logo |
textmate/logo.tmbundle | 2.95 kB | ||||
lua |
microsoft/vscode | MIT | c |
14.17 kB | ||
luau |
JohnnyMorganz/Luau.tmLanguage | NOASSERTION | 11.89 kB | |||
make |
makefile |
microsoft/vscode | MIT | 8.41 kB | ||
markdown |
md |
microsoft/vscode | MIT | css html ini java lua make perl r ruby php sql vb xml xsl yaml bat clojure coffee c cpp diff docker git-commit git-rebase go groovy pug javascript json jsonc less objective-c swift scss raku powershell python julia regexp rust scala shellscript typescript tsx csharp fsharp dart handlebars log erlang elixir latex bibtex html-derivative |
51.85 kB | |
marko |
marko-js/marko-tmbundle | MIT | css less scss javascript |
15.77 kB | ||
matlab |
mathworks/MATLAB-Language-grammar | 14.92 kB | ||||
mdc |
nuxtlabs/vscode-mdc | MIT | markdown yaml html-derivative |
18.66 kB | ||
mdx |
wooorm/markdown-tm-language | MIT | tsx toml yaml c clojure coffee cpp csharp css diff docker elixir elm erlang go graphql haskell html ini java javascript json julia kotlin less lua make markdown objective-c perl python r ruby rust scala scss shellscript shellsession sql xml swift typescript |
127.71 kB | ||
mermaid |
mmd |
bpruitt-goddard/vscode-mermaid-syntax-highlight | MIT | 26.01 kB | ||
mipsasm |
mips |
textmate/mips.tmbundle | 2.90 kB | |||
mojo |
modularml/mojo-syntax | MIT | 65.93 kB | |||
move |
damirka/move-syntax | MIT | 16.16 kB | |||
narrat |
nar |
liana-p/narrat-syntax-highlighting-vscode | MIT | 3.38 kB | ||
nextflow |
nf |
nextflow-io/vscode-language-nextflow | MIT | 3.65 kB | ||
nginx |
hangxingliu/vscode-nginx-conf-hint | GPL-3.0 | lua |
33.88 kB | ||
nim |
pragmagic/vscode-nim | NOASSERTION | c html xml javascript css glsl markdown |
20.78 kB | ||
nix |
nix-community/vscode-nix-ide | MIT | Open Collective: nix-community | 13.97 kB | ||
nushell |
nu |
nushell/vscode-nushell-lang | MIT | 18.67 kB | ||
objective-c |
objc |
microsoft/vscode | MIT | 100.65 kB | ||
objective-cpp |
microsoft/vscode | MIT | 163.50 kB | |||
ocaml |
reasonml-editor/vscode-reasonml | Apache-2.0 | 58.98 kB | |||
pascal |
alefragnani/vscode-language-pascal | MIT | GitHub Sponsors: @alefragnani Patreon: alefragnani paypal.com | 3.89 kB | ||
perl |
microsoft/vscode | MIT | html xml css javascript sql |
40.89 kB | ||
php |
microsoft/vscode | MIT | html xml sql javascript json css |
104.80 kB | ||
plsql |
zabel-xyz/plsql-language | MIT | 7.93 kB | |||
po |
pot potx |
textmate/gettext.tmbundle | 2.96 kB | |||
polar |
osohq/polar-grammar | Apache-2.0 | 4.37 kB | |||
postcss |
vuejs/vetur | MIT | GitHub Sponsors: @octref IssueHunt: vuejs/vetur | 6.05 kB | ||
powerquery |
microsoft/powerquery-language | MIT | 5.50 kB | |||
powershell |
ps ps1 |
microsoft/vscode | MIT | 19.16 kB | ||
prisma |
prisma/language-tools | Apache-2.0 | 5.97 kB | |||
prolog |
arthwang/vsc-prolog | MIT | 10.94 kB | |||
proto |
protobuf |
zxh0/vscode-proto3 | MIT | 6.09 kB | ||
pug |
jade |
microsoft/vscode | MIT | javascript css sass scss stylus coffee html |
12.73 kB | |
puppet |
octref/puppet-vscode | Apache-2.0 | GitHub Sponsors: @octref | 10.81 kB | ||
purescript |
nwolverson/vscode-language-purescript | NOASSERTION | 21.19 kB | |||
python |
py |
microsoft/vscode | MIT | 66.54 kB | ||
qml |
seanwu1105/vscode-qt-for-python | MIT | javascript |
4.91 kB | ||
qmldir |
seanwu1105/vscode-qt-for-python | MIT | 902.00 B | |||
qss |
seanwu1105/vscode-qt-for-python | MIT | 7.12 kB | |||
r |
microsoft/vscode | MIT | 50.74 kB | |||
racket |
Eugleo/magic-racket | GPL-3.0 | GitHub Sponsors: @eugleo | 87.43 kB | ||
raku |
perl6 |
microsoft/vscode | MIT | 9.95 kB | ||
razor |
dotnet/razor | MIT | html csharp |
24.30 kB | ||
reg |
mihai-vlc/reg-vscode | MIT | 2.19 kB | |||
regexp |
regex |
MagicStack/MagicPython | MIT | 7.54 kB | ||
rel |
relationalai-oss/rel_vscode | 3.14 kB | ||||
riscv |
zhuanhao-wu/vscode-riscv-support | MIT | 6.33 kB | |||
rst |
microsoft/vscode | MIT | html-derivative cpp python javascript shellscript yaml cmake ruby |
9.07 kB | ||
ruby |
rb |
microsoft/vscode | MIT | html haml xml sql graphql css cpp c javascript shellscript lua yaml |
42.64 kB | |
rust |
rs |
microsoft/vscode | MIT | 14.34 kB | ||
sas |
rpardee/sas | MIT | sql |
8.61 kB | ||
sass |
TheRealSyler/vscode-sass-indented | NOASSERTION | 8.76 kB | |||
scala |
scala/vscode-scala-syntax | MIT | 26.32 kB | |||
scheme |
sjhuangx/vscode-scheme | MIT | 6.76 kB | |||
scss |
microsoft/vscode | MIT | css |
25.81 kB | ||
sdbl |
1c-query |
1c-syntax/vsc-language-1c-bsl | MIT | 4.37 kB | ||
shaderlab |
shader |
microsoft/vscode | MIT | hlsl |
5.49 kB | |
shellscript |
bash sh shell zsh |
microsoft/vscode | MIT | 38.98 kB | ||
shellsession |
console |
hronro/sublime-linguist-syntax | MIT | shellscript |
513.00 B | |
smalltalk |
leocamello/vscode-smalltalk | MIT | 6.22 kB | |||
solidity |
juanfranblanco/vscode-solidity | MIT | 15.21 kB | |||
soy |
closure-templates |
mthadley/language-closure-templates | MIT | html |
6.40 kB | |
sparql |
stardog-union/stardog-vsc | turtle |
1.30 kB | |||
splunk |
spl |
arcsector/vscode-splunk-search-syntax | MIT | 3.18 kB | ||
sql |
microsoft/vscode | MIT | 22.34 kB | |||
ssh-config |
textmate/ssh-config.tmbundle | 3.43 kB | ||||
stata |
kylebarron/language-stata | MIT | sql |
54.40 kB | ||
stylus |
styl |
d4rkr00t/language-stylus | MIT | Open Collective: stylus | 29.69 kB | |
svelte |
sveltejs/language-tools | MIT | Open Collective: svelte | javascript typescript coffee stylus sass css scss less postcss pug markdown |
16.81 kB | |
swift |
jtbandes/swift-tmlanguage | MIT | GitHub Sponsors: @jtbandes Ko-fi: jtbandes | 81.28 kB | ||
system-verilog |
mshr-h/vscode-verilog-hdl-support | MIT | buymeacoffee.com | 24.20 kB | ||
systemd |
hangxingliu/vscode-systemd | MIT | 7.39 kB | |||
talonscript |
talon |
mrob95/vscode-TalonScript | MIT | 6.40 kB | ||
tasl |
underlay/vscode-tasl | MIT | 3.10 kB | |||
tcl |
sleutho/tcl | 4.12 kB | ||||
templ |
templ-go/templ-vscode | MIT | go javascript css |
22.98 kB | ||
terraform |
tf tfvars |
hashicorp/syntax | MPL-2.0 | 10.79 kB | ||
tex |
microsoft/vscode | MIT | r |
8.99 kB | ||
toml |
textmate/toml.tmbundle | 5.98 kB | ||||
ts-tags |
lit |
- | typescript es-tag-css es-tag-glsl es-tag-html es-tag-sql es-tag-xml |
121.00 B | ||
tsv |
mechatroner/vscode_rainbow_csv | MIT | 633.00 B | |||
tsx |
microsoft/vscode | MIT | 156.31 kB | |||
turtle |
stardog-union/stardog-vsc | 3.49 kB | ||||
twig |
mblode/vscode-twig-language-2 | MIT | GitHub Sponsors: @mblode | css javascript scss php python ruby |
19.59 kB | |
typescript |
ts |
microsoft/vscode | MIT | 160.03 kB | ||
typespec |
tsp |
microsoft/typespec | MIT | 22.22 kB | ||
typst |
typ |
nvarner/typst-lsp | MIT | 7.83 kB | ||
v |
vlang/vscode-vlang | MIT | 12.45 kB | |||
vala |
vala-lang/vala-vscode | MIT | 3.12 kB | |||
vb |
cmd |
microsoft/vscode | MIT | 5.70 kB | ||
verilog |
mshr-h/vscode-verilog-hdl-support | MIT | buymeacoffee.com | 5.60 kB | ||
vhdl |
jonasjj/awesome-vhdl | MIT | 22.98 kB | |||
viml |
vim vimscript |
dunstontc/viml | MIT | 19.58 kB | ||
vue |
vuejs/language-tools | MIT | GitHub Sponsors: @johnsoncodehk | markdown pug stylus sass css scss less javascript typescript jsx tsx coffee json jsonc json5 yaml toml graphql html-derivative html markdown-vue vue-directives vue-interpolations vue-sfc-style-variable-injection |
17.09 kB | |
vue-html |
vuejs/vetur | MIT | GitHub Sponsors: @octref IssueHunt: vuejs/vetur | vue javascript |
8.04 kB | |
vue-vine |
vue-vine/assets | MIT | css scss less stylus postcss vue javascript |
169.46 kB | ||
vyper |
vy |
tintinweb/vscode-vyper | MIT | 71.02 kB | ||
wasm |
wasmerio/vscode-wasm | MIT | 11.18 kB | |||
wenyan |
文言 |
wenyan-lang/highlight | MIT | 2.01 kB | ||
wgsl |
PolyMeilex/vscode-wgsl | MIT | 4.82 kB | |||
wikitext |
mediawiki wiki |
Frederisk/Wikitext-VSCode-Extension | MIT | Patreon: rwfholme frederisk.github.io paypal.me | html css ini java lua make perl r ruby php sql vb xml xsl yaml bat clojure coffee c cpp diff docker go groovy pug javascript jsonc less objective-c swift scss raku powershell python julia rust scala shellscript typescript csharp fsharp dart handlebars markdown erlang elixir latex bibtex json |
53.00 kB |
wit |
wasmerio/vscode-wasm | MIT | 20.40 kB | |||
wolfram |
wl |
WolframResearch/vscode-wolfram | NOASSERTION | 254.54 kB | ||
xml |
microsoft/vscode | MIT | java |
5.09 kB | ||
xsl |
microsoft/vscode | MIT | xml |
1.20 kB | ||
yaml |
yml |
textmate/yaml.tmbundle | 9.75 kB | |||
zenscript |
CraftTweaker/ZenScript-tmLanguage | MIT | 3.62 kB | |||
zig |
ziglang/vscode-zig | MIT | 4.96 kB |
使用指南:基于 TextMate Grammar 的前端语法高亮插件
本插件支持基于 TextMate 语法规则(如 javascript.tmLanguage.json)的前端代码高亮渲染。
快速开始
- 引入uni-modules插件
import { createHighLighter } from "../../uni_modules/uni-highlight
- 准备语法定义文件(.tmLanguage.json)
准备好你需要的语法定义文件,例如:
- JavaScript.tmLanguage.json
- TypeScript.tmLanguage.json
- ...
确保你的语法文件使用 JSON 格式,只要有符合TextMate
语法规则的定义文件,即可支持任意语言的代码高亮。
语法定义文件可从vscode源码仓库中获取,如:
- 初始化高亮器
import grammar from './javascript.tmLanguage.json'
let uniCodeHighlighter = await createHighLighter({
languages: {
'javascript': grammar
}
})
注意:引入.tmLanguage.json时,不同平台为不同的引入方式
// #ifdef WEB || APP-IOS || MP-WEIXIN
import grammar from './javascript.tmLanguage.json'
...
// #endif
// #ifdef APP-ANDROID || APP-HARMONY
let fileManager = uni.getFileSystemManager()
let content = fileManager.readFileSync('xxxx.tmLanguage.json', 'utf-8') as string
let grammar = JSON.parse(content)
...
// #endif
let uniCodeHighlighter = await createHighLighter({
languages: {
'javascript': grammar
}
})
- 传入代码文本进行高亮
const sourceCode =
`
import App from './App.uvue'
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
`
let tokens:[] as Array<IToken> = []
let ILineTokensList = await uniCodeHighlighter.tokenizeFullText('javascript', sourceCode)
const text = sourceCode.split(/\r|\n|\r\n/)
ILineTokensList.forEach((line, i) => {
line.tokens.forEach((tk) => {
tokens.push({
text: text[i].substring(tk.startIndex, tk.endIndex),
// 'entity'
className: tk.scopes[tk.scopes.length - 1].split(".")[0]
})
})
tokens.push({
text: "\n",
className: "eol"
});
})
// 在uvue的template中使用:
<template>
<view>
<template v-for="token in tokens">
<view v-if="token.text == '\n'" class="br"></view>
<text v-else class="code-text" :class="token.className">{{token.text}}</text>
</template>
</view>
</template>
- 配置样式(CSS)
你可以为不同 scope 定义样式类,例如:
.entity { color: #4ec9b0; } // 实体使用青色
.support { color: #4ec9b0; } // 支持类使用青色
.constant { color: #b5cea8; } // 常量使用浅绿色
.variable { color: #9cdcfe; } // 变量使用浅蓝色
.punctuation { color: #d4d4d4; } // 标点符号使用默认文本颜色
.function { color: #dcdcaa; } // 函数使用黄色
IToken 数据结构说明
高亮器返回的 token 结构如下:
export interface IToken {
readonly startIndex: number
readonly endIndex: number
readonly scopes: string[]
}
export interface ILineTokens {
readonly tokens: IToken[]
readonly state: any // 用于跨行状态管理(如多行注释)
}