更新记录

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)的前端代码高亮渲染。

快速开始

  1. 引入uni-modules插件
    import { createHighLighter } from "../../uni_modules/uni-highlight
  2. 准备语法定义文件(.tmLanguage.json)

准备好你需要的语法定义文件,例如:

  • JavaScript.tmLanguage.json
  • TypeScript.tmLanguage.json
  • ...

确保你的语法文件使用 JSON 格式,只要有符合TextMate语法规则的定义文件,即可支持任意语言的代码高亮。

语法定义文件可从vscode源码仓库中获取,如:

  1. 初始化高亮器
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
    }
})
  1. 传入代码文本进行高亮
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>
  1. 配置样式(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  // 用于跨行状态管理(如多行注释)
}

注意:此插件在用于Android/ios/鸿蒙等平台时,调试前需要制作自定义调试基座才能生效。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

uni-highlight(以下简称软件)源码使用许可协议

2022年10月

本许可协议,是数字天堂(北京)网络技术有限公司(以下简称DCloud)对其所拥有著作权的“软件”,提供的使用许可协议。

您对“软件”的复制、使用、修改及分发受本许可协议的条款的约束,如您不接受本协议,则不能使用、复制、修改本软件。

授权许可范围

a) 授予您永久性的、全球性的、免费的、非独占的、不可撤销的本软件的源码使用许可,您可以使用这些源码制作自己的应用。

b) 您只能在DCloud产品体系内使用本软件及其源码。您不能将源码修改后运行在DCloud产品体系之外的环境,比如客户端脱离uni-app,或服务端脱离uniCloud(如涉及uniCloud)。

c) DCloud未向您授权商标使用许可。您在根据本软件源码制作自己的应用时,需以自己的名义发布软件,而不是以DCloud名义发布。

d) 本协议不构成代理关系。

DCloud的责任限制 “软件”在提供时不带任何明示或默示的担保。在任何情况下,DCloud不对任何人因使用“软件”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。

您的责任限制

a) 您需要在授权许可范围内使用软件。

b) 您在分发自己的应用时,不得侵犯DCloud商标和名誉权利。

c) 您不得进行破解、反编译、套壳等侵害DCloud知识产权的行为。您不得利用DCloud系统漏洞谋利或侵害DCloud利益,如您发现DCloud系统漏洞应第一时间通知DCloud。您不得进行攻击DCloud的服务器、网络等妨碍DCloud运营的行为。未经书面许可,您不得利用DCloud的产品进行与DCloud争夺开发者的行为。

d) 如您违反本许可协议,需承担因此给DCloud造成的损失。

本协议签订地点为中华人民共和国北京市海淀区。

根据发展,DCloud可能会对本协议进行修改。修改时,DCloud会在产品或者网页中显著的位置发布相关信息以便及时通知到用户。如果您选择继续使用本框架,即表示您同意接受这些修改。

条款结束

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问