更新记录
1.0.2(2025-08-01) 下载此版本
- 优化高亮处理性能
 
1.0.1(2025-07-16) 下载此版本
- 优化单行代码高亮的解析性能
 
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  // 用于跨行状态管理(如多行注释)
}

                                                                    
                                                                        收藏人数:
                                    
                                                        下载插件并导入HBuilderX
                                                    
                                        赞赏(0)
                                    
 下载 34
                
 赞赏 0
                
            
                    下载 10694979 
                
                        赞赏 1797 
                    
            
            
            
            
            
            
            
            
            
            
            
            
            
            
                        
                                赞赏
                            
            
京公网安备:11010802035340号