HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

严重BUG!!!!!最新版uni-app无法在app中运行

uniapp

11:36:47.837 preLogin fail res: , [Object] {"errMsg":"preLogin:fail -20203当前环境不适合一键登录","code":30005,"appid":"pPyZWvH3Fa6PXba10aJ009","...} at App.vue:40
11:37:08.847 Waiting to navigate to: /pages/tabBar/extUI/extUI, do not operate continuously: /pages/tabBar/template/template. ERROR
11:37:08.847 Waiting to navigate to: /pages/tabBar/extUI/extUI, do not operate continuously: /pages/tabBar/extUI/extUI.
ERROR
11:37:08.847 Waiting to navigate to: /pages/tabBar/extUI/extUI, do not operate continuously: /pages/tabBar/API/API. ERROR
11:37:09.849 Waiting to navigate to: /pages/tabBar/extUI/extUI, do not operate continuously: /pages/tabBar/component/component.
ERROR

继续阅读 »

11:36:47.837 preLogin fail res: , [Object] {"errMsg":"preLogin:fail -20203当前环境不适合一键登录","code":30005,"appid":"pPyZWvH3Fa6PXba10aJ009","...} at App.vue:40
11:37:08.847 Waiting to navigate to: /pages/tabBar/extUI/extUI, do not operate continuously: /pages/tabBar/template/template. ERROR
11:37:08.847 Waiting to navigate to: /pages/tabBar/extUI/extUI, do not operate continuously: /pages/tabBar/extUI/extUI.
ERROR
11:37:08.847 Waiting to navigate to: /pages/tabBar/extUI/extUI, do not operate continuously: /pages/tabBar/API/API. ERROR
11:37:09.849 Waiting to navigate to: /pages/tabBar/extUI/extUI, do not operate continuously: /pages/tabBar/component/component.
ERROR

收起阅读 »

记一次在app-vue使用摄像头和录音的各种问题

摄像头

公司业务要求在app上做人脸识别,偏偏在uniapp上摄像头调用不支持app和H5调用,只能使用plus.camera,但是领导使用这种拍照形式的并不认同,只能另外想办法。
那只好从H5的api入手了,无意之中发现了MediaDevices.getUserMedia()这个api,通过h5调取摄像头权限,经过不断的尝试终于把 MediaStream放在页面上播放并作一帧一帧地识别活体,并作调百度api做人脸识别。
问题

  1. 摄像头黑白问题
  2. webview版本对api影响,使用pollyfill垫片
  3. uniapp的video在app-vue编译成组件,不编译成原始组件,无法获取该元素
继续阅读 »

公司业务要求在app上做人脸识别,偏偏在uniapp上摄像头调用不支持app和H5调用,只能使用plus.camera,但是领导使用这种拍照形式的并不认同,只能另外想办法。
那只好从H5的api入手了,无意之中发现了MediaDevices.getUserMedia()这个api,通过h5调取摄像头权限,经过不断的尝试终于把 MediaStream放在页面上播放并作一帧一帧地识别活体,并作调百度api做人脸识别。
问题

  1. 摄像头黑白问题
  2. webview版本对api影响,使用pollyfill垫片
  3. uniapp的video在app-vue编译成组件,不编译成原始组件,无法获取该元素
收起阅读 »

参照wot-design用vue3和TS写了个uni-app组件库——wot-design-uni

vue3

<p align="center">
<img alt="logo" src="https://wot-design-uni.cn/wot-design.png" width="200">
</p>
<h1 align="center">Wot Design Uni</h1>

<p align="center"> 一个参照<a href="https://ftf.jd.com/wot-design/">Wot-design</a>,基于 Vue3 打造的uni-app组件库</p>

<p align="center">

<a href="https://github.com/Moonofweisheng/wot-design-uni">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/Moonofweisheng/wot-design-uni?logo=github&color=%234d80f0&link=https%3A%2F%2Fgithub.com%2FMoonofweisheng%2Fwot-design-uni">
</a>

<a href="https://www.npmjs.com/package/wot-design-uni">
<img alt="npm" src="https://img.shields.io/npm/v/wot-design-uni?logo=npm&color=%234d80f0&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fwot-design-uni">
</a>

<a href="https://www.npmjs.com/package/wot-design-uni">
<img alt="npm" src="https://img.shields.io/npm/dw/wot-design-uni?logo=npm&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fwot-design-uni">
</a>

<a href="https://www.npmjs.com/package/wot-design-uni">
<img src="https://img.shields.io/npm/dt/wot-design-uni?style=flat-square">
</a>

<a href="https://github.com/Moonofweisheng/wot-design-uni">
<img alt="GitHub" src="https://img.shields.io/github/license/Moonofweisheng/wot-design-uni?logo=github">
</a>

<a href="https://app.netlify.com/sites/wot-design-uni/deploys" target="_blank" referrerpolicy="no-referrer">
<img src="https://api.netlify.com/api/v1/badges/0991d8a9-0fb0-483b-8961-5bde066bbd50/deploy-status" alt="deploy-status" />
</a>

</p>

<p align="center">
<a href="https://wot-design-uni.cn/">文档网站 (官网)</a>&nbsp;
<a href="https://wot-design-uni.netlify.app/">文档网站 (Netlify)</a>
</p>

✨ 特性

  • 支持 APP、H5、微信小程序 等平台.
  • 60+ 个高质量组件,覆盖移动端主流场景.
  • 使用 Typescript 构建,提供良好的组件类型系统.
  • 采用 Vue3 最新特性,提升组件性能.
  • 提供丰富的文档和组件示例.
  • 支持主题定制,可以定制 scss 变量以及组件的样式自定义.
  • 支持暗黑模式

预览

扫描二维码访问演示:

<p>
<img src="https://wot-design-uni.cn/wx.jpg" width="200" height="200" style="margin-right:30px"/>
<img src="https://wot-design-uni.cn/alipay.png" width="200" height="200" />
</p>

快速上手

详细说明见 快速上手

链接

贡献指南

修改代码请阅读我们的 贡献指南

使用过程中发现任何问题都可以提 Issue 给我们,当然,我们也非常欢迎你给我们发 PR

贡献者们

感谢以下所有给 Wot Design Uni 贡献过代码的 开发者

<a href="https://github.com/Moonofweisheng/wot-design-uni/graphs/contributors">
<img src="https://contrib.rocks/image?repo=Moonofweisheng/wot-design-uni" />
</a>

LICENSE

MIT

Star History Chart

继续阅读 »

<p align="center">
<img alt="logo" src="https://wot-design-uni.cn/wot-design.png" width="200">
</p>
<h1 align="center">Wot Design Uni</h1>

<p align="center"> 一个参照<a href="https://ftf.jd.com/wot-design/">Wot-design</a>,基于 Vue3 打造的uni-app组件库</p>

<p align="center">

<a href="https://github.com/Moonofweisheng/wot-design-uni">
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/Moonofweisheng/wot-design-uni?logo=github&color=%234d80f0&link=https%3A%2F%2Fgithub.com%2FMoonofweisheng%2Fwot-design-uni">
</a>

<a href="https://www.npmjs.com/package/wot-design-uni">
<img alt="npm" src="https://img.shields.io/npm/v/wot-design-uni?logo=npm&color=%234d80f0&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fwot-design-uni">
</a>

<a href="https://www.npmjs.com/package/wot-design-uni">
<img alt="npm" src="https://img.shields.io/npm/dw/wot-design-uni?logo=npm&link=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fwot-design-uni">
</a>

<a href="https://www.npmjs.com/package/wot-design-uni">
<img src="https://img.shields.io/npm/dt/wot-design-uni?style=flat-square">
</a>

<a href="https://github.com/Moonofweisheng/wot-design-uni">
<img alt="GitHub" src="https://img.shields.io/github/license/Moonofweisheng/wot-design-uni?logo=github">
</a>

<a href="https://app.netlify.com/sites/wot-design-uni/deploys" target="_blank" referrerpolicy="no-referrer">
<img src="https://api.netlify.com/api/v1/badges/0991d8a9-0fb0-483b-8961-5bde066bbd50/deploy-status" alt="deploy-status" />
</a>

</p>

<p align="center">
<a href="https://wot-design-uni.cn/">文档网站 (官网)</a>&nbsp;
<a href="https://wot-design-uni.netlify.app/">文档网站 (Netlify)</a>
</p>

✨ 特性

  • 支持 APP、H5、微信小程序 等平台.
  • 60+ 个高质量组件,覆盖移动端主流场景.
  • 使用 Typescript 构建,提供良好的组件类型系统.
  • 采用 Vue3 最新特性,提升组件性能.
  • 提供丰富的文档和组件示例.
  • 支持主题定制,可以定制 scss 变量以及组件的样式自定义.
  • 支持暗黑模式

预览

扫描二维码访问演示:

<p>
<img src="https://wot-design-uni.cn/wx.jpg" width="200" height="200" style="margin-right:30px"/>
<img src="https://wot-design-uni.cn/alipay.png" width="200" height="200" />
</p>

快速上手

详细说明见 快速上手

链接

贡献指南

修改代码请阅读我们的 贡献指南

使用过程中发现任何问题都可以提 Issue 给我们,当然,我们也非常欢迎你给我们发 PR

贡献者们

感谢以下所有给 Wot Design Uni 贡献过代码的 开发者

<a href="https://github.com/Moonofweisheng/wot-design-uni/graphs/contributors">
<img src="https://contrib.rocks/image?repo=Moonofweisheng/wot-design-uni" />
</a>

LICENSE

MIT

Star History Chart

收起阅读 »

uni-app 微信小程序隐私代码流程

隐私弹窗

1、app.vue

``` vue  
<template>  
</template>  
<script>  
export default {  
globalData: {  
  PrivacyProtocol: {  
     needAuthorization: true,  
     title: ''  
  }  
},  
  methods: {  
    checkUserPrivacyProtocol() {  
                if (wx.getPrivacySetting) {  
                    wx.getPrivacySetting({  
                        success: res => {  
                            console.log(res)  
                            this.globalData.PrivacyProtocol.needAuthorization = res.needAuthorization  
                            if (res.needAuthorization) {  
                                // 需要弹出隐私协议  
                                this.globalData.PrivacyProtocol.title = res.privacyContractName  
                            }  
                        }  
                    })  
                }  
            }  
}  
  async onLaunch(option) {  
      // 检测用户是否需要提示隐私协议  
      await this.checkUserPrivacyProtocol()  
  },  
}  
</script>

2、使用mixin封装

export default {  
    data() {  
        return {  
            showPrivacyPopup: false, // 是否需要弹出协议  
            PrivacyPopupTitle: '', // 小程序协议名称  
            resolvePrivacyAuthorization: null // wx.onNeedPrivacyAuthorization的回调  
        };  
    },  
    created() {},  
    methods: {  
        // 打开弹窗  
        openPrivacyPopup() {  
            const app = getApp()  
            this.PrivacyPopupTitle = app.globalData.PrivacyProtocol.title  
            this.showPrivacyPopup = true  
        },  
        // 关闭弹窗  
        closePrivacyPopup() {  
            this.showPrivacyPopup = false  
        },  
        // 用户点击同意  
        handleAgreePrivacyAuthorization() {  
            console.log('点击了同意');  
            this.resolvePrivacyAuthorization({  
                buttonId: 'agree-btn',  
                event: 'agree'  
            })  
            this.showPrivacyPopup = false  
        },  
        // 用户点击拒绝  
        handleRefusePrivacyAuthorization() {  
            uni.showModal({  
                content: '如果拒绝,我们将无法获取您的信息, 包括手机号、位置信息、相册等该小程序十分重要的功能,您确定要拒绝吗?',  
                success: (res) => {  
                    if (res.confirm) {  
                        const app = getApp()  
                        console.log('点击了拒绝', this.resolvePrivacyAuthorization);  
                        this.resolvePrivacyAuthorization({  
                            event: 'disagree'  
                        })  
                        this.closePrivacyPopup()  
                        this.$log.warn(`用户${app.globalData.userInfo?.Name || ''}拒绝了隐私请求,无法使用相关微信的Api`)  
                    }  
                }  
            })  
        },  
        // 打开隐私协议  
        onClickPrivacyPopupTitle() {  
            wx.openPrivacyContract({})  
        },  
        // 监听调用微信api的函数  
        saveWXCallBack() {  
            if (wx.onNeedPrivacyAuthorization) {  
                wx.onNeedPrivacyAuthorization(resolve => {  
                    this.resolvePrivacyAuthorization = resolve  
                    this.openPrivacyPopup()  
                })  
            }  
        }  
    }  
};

3、main.js引入

import PrivacyProtocol from "./utils/PrivacyProtocol.js"  
Vue.mixin(PrivacyProtocol)

4、页面使用

<template>  
    <view class="box">  
               xxxxx  
        <u-popup :show="showPrivacyPopup" :closeOnClickOverlay="false" :round="10" mode="bottom"  
            @close="closePrivacyPopup()">  
            <view style="padding: 40rpx">  
                <p style="text-align: center;margin-bottom: 40rpx;font-size: 20px;font-weight: 700;">提示</p>  
                <text> 在你使用服务之前,请仔细阅读<text @click="onClickPrivacyPopupTitle()"  
                        style="color: #29B7A3;">{{PrivacyPopupTitle}}</text>。如果你同意{{PrivacyPopupTitle}},请点击“同意”开始使用。  
                </text>  
                <view class="display-style" style="margin-top: 40rpx;">  
                    <u-button text="拒绝" @click="handleRefusePrivacyAuthorization()"></u-button>  
                    <button id="agree-btn" class="btn-agree" open-type="agreePrivacyAuthorization"  
                        @agreeprivacyauthorization="handleAgreePrivacyAuthorization()">同意</button>  
                </view>  
            </view>  
        </u-popup>  
    </view>  
</template>  
<script>  
export default {  
  onLoad(option) {  
      this.saveWXCallBack()  
  },  
}  
</script>
继续阅读 »

1、app.vue

``` vue  
<template>  
</template>  
<script>  
export default {  
globalData: {  
  PrivacyProtocol: {  
     needAuthorization: true,  
     title: ''  
  }  
},  
  methods: {  
    checkUserPrivacyProtocol() {  
                if (wx.getPrivacySetting) {  
                    wx.getPrivacySetting({  
                        success: res => {  
                            console.log(res)  
                            this.globalData.PrivacyProtocol.needAuthorization = res.needAuthorization  
                            if (res.needAuthorization) {  
                                // 需要弹出隐私协议  
                                this.globalData.PrivacyProtocol.title = res.privacyContractName  
                            }  
                        }  
                    })  
                }  
            }  
}  
  async onLaunch(option) {  
      // 检测用户是否需要提示隐私协议  
      await this.checkUserPrivacyProtocol()  
  },  
}  
</script>

2、使用mixin封装

export default {  
    data() {  
        return {  
            showPrivacyPopup: false, // 是否需要弹出协议  
            PrivacyPopupTitle: '', // 小程序协议名称  
            resolvePrivacyAuthorization: null // wx.onNeedPrivacyAuthorization的回调  
        };  
    },  
    created() {},  
    methods: {  
        // 打开弹窗  
        openPrivacyPopup() {  
            const app = getApp()  
            this.PrivacyPopupTitle = app.globalData.PrivacyProtocol.title  
            this.showPrivacyPopup = true  
        },  
        // 关闭弹窗  
        closePrivacyPopup() {  
            this.showPrivacyPopup = false  
        },  
        // 用户点击同意  
        handleAgreePrivacyAuthorization() {  
            console.log('点击了同意');  
            this.resolvePrivacyAuthorization({  
                buttonId: 'agree-btn',  
                event: 'agree'  
            })  
            this.showPrivacyPopup = false  
        },  
        // 用户点击拒绝  
        handleRefusePrivacyAuthorization() {  
            uni.showModal({  
                content: '如果拒绝,我们将无法获取您的信息, 包括手机号、位置信息、相册等该小程序十分重要的功能,您确定要拒绝吗?',  
                success: (res) => {  
                    if (res.confirm) {  
                        const app = getApp()  
                        console.log('点击了拒绝', this.resolvePrivacyAuthorization);  
                        this.resolvePrivacyAuthorization({  
                            event: 'disagree'  
                        })  
                        this.closePrivacyPopup()  
                        this.$log.warn(`用户${app.globalData.userInfo?.Name || ''}拒绝了隐私请求,无法使用相关微信的Api`)  
                    }  
                }  
            })  
        },  
        // 打开隐私协议  
        onClickPrivacyPopupTitle() {  
            wx.openPrivacyContract({})  
        },  
        // 监听调用微信api的函数  
        saveWXCallBack() {  
            if (wx.onNeedPrivacyAuthorization) {  
                wx.onNeedPrivacyAuthorization(resolve => {  
                    this.resolvePrivacyAuthorization = resolve  
                    this.openPrivacyPopup()  
                })  
            }  
        }  
    }  
};

3、main.js引入

import PrivacyProtocol from "./utils/PrivacyProtocol.js"  
Vue.mixin(PrivacyProtocol)

4、页面使用

<template>  
    <view class="box">  
               xxxxx  
        <u-popup :show="showPrivacyPopup" :closeOnClickOverlay="false" :round="10" mode="bottom"  
            @close="closePrivacyPopup()">  
            <view style="padding: 40rpx">  
                <p style="text-align: center;margin-bottom: 40rpx;font-size: 20px;font-weight: 700;">提示</p>  
                <text> 在你使用服务之前,请仔细阅读<text @click="onClickPrivacyPopupTitle()"  
                        style="color: #29B7A3;">{{PrivacyPopupTitle}}</text>。如果你同意{{PrivacyPopupTitle}},请点击“同意”开始使用。  
                </text>  
                <view class="display-style" style="margin-top: 40rpx;">  
                    <u-button text="拒绝" @click="handleRefusePrivacyAuthorization()"></u-button>  
                    <button id="agree-btn" class="btn-agree" open-type="agreePrivacyAuthorization"  
                        @agreeprivacyauthorization="handleAgreePrivacyAuthorization()">同意</button>  
                </view>  
            </view>  
        </u-popup>  
    </view>  
</template>  
<script>  
export default {  
  onLoad(option) {  
      this.saveWXCallBack()  
  },  
}  
</script>
收起阅读 »

uni-app 微信小程序隐私协议开发实践(有组件提供,见文章底部)

隐私 隐私政策 隐私协议 微信小程序

背景

2023 年 08 月 10 日,微信团队发布了关于微信小程序隐私保护指引设置的公告:自2023年9月15日起,对于涉及处理用户个人信息的小程序开发者,微信要求,仅当开发者主动向平台同步用户已阅读并同意了小程序的隐私保护指引等信息处理规则后,方可调用微信提供的隐私接口。这篇公告发布之后,引发了微信社区的广泛不满和抱怨。许多开发者抱怨称,相关文档难以理解,微信偷偷将相关实现回退导致开发进度受阻后无法进行调试,而微信相关的代码逻辑也比较混乱。

2023 年 08 月 22 日微信官方又偷偷更新了相关的文档,接口可以正常调试了,同时官方也给出了相关的Demo,所以我们又可以开始心不甘情不愿开开心心地调试了。

微信官方文档及公告地址

关于小程序隐私保护指引设置的公告

隐私相关接口

微信小程序隐私协议开发指南

更新用户隐私保护指引

小程序管理员或开发者可以根据具体小程序涉及到的隐私相关接口来更新微信小程序后台的用户隐私保护指引,更新并审核通过后就可以进行相关的开发调试工作。

需要注意的是,仅有在指引中声明所处理的用户信息,才可以调用平台提供的对应接口或组件。若未声明,对应接口或组件将直接禁用

开发指南解读

开发调试配置

参考 微信小程序隐私协议开发指南中的介绍

目前 getPrivacySettingonNeedPrivacyAuthorizationrequirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明:

  • 在 2023 年 9 月 15 号之前,在 app.json 中配置 "__usePrivacyCheck__": true 后,会启用隐私相关功能,如果不配置或者配置为 false 则不会启用。

  • 在 2023 年 9 月 15 号之后,不论 app.json 中是否有配置 usePrivacyCheck,隐私相关功能都会启用。

所以在基于uni-app开发时,我们在 2023 年 9 月 15 号之前进行相关开发调试则需要在manifest.json文件mp-weixin中添加"__usePrivacyCheck__": true

微信官方 Demo

  • demo1: 演示使用 wx.getPrivacySetting<button open-type="agreePrivacyAuthorization"> 在首页处理隐私弹窗逻辑 https://developers.weixin.qq.com/s/gi71sGm67hK0

  • demo2: 演示使用 wx.onNeedPrivacyAuthorization<button open-type="agreePrivacyAuthorization"> 在多个页面处理隐私弹窗逻辑,同时演示了如何处理多个隐私接口同时调用。 https://developers.weixin.qq.com/s/4X7yyGmQ7EKp

  • demo3: 演示 wx.onNeedPrivacyAuthorizationwx.requirePrivacyAuthorize<button open-type="agreePrivacyAuthorization"><input type="nickname">组件如何结合使用 https://developers.weixin.qq.com/s/jX7xWGmA7UKa

  • demo4: 演示使用 wx.onNeedPrivacyAuthorization<button open-type="agreePrivacyAuthorization"> 在多个 tabBar 页面处理隐私弹窗逻辑 https://developers.weixin.qq.com/s/g6BWZGmt7XK9

微信官方给出了 4 个 Demo,可以覆盖大多数的开发场景,其内容主要就是getPrivacySettingonNeedPrivacyAuthorizationrequirePrivacyAuthorize这三个接口的组合使用。

Demo 解读

Demo1

Demo1 仅使用wx.getPrivacySetting接口查询隐私授权情况,在needAuthorizationtrue时主动打开授权弹框。

Demo2

Demo2 使用wx.onNeedPrivacyAuthorization接口监听隐私接口需要用户授权事件,当需要用户进行隐私授权时会触发该事件,与此同时此时打开授权弹框。

Demo3

Demo3 使用wx.onNeedPrivacyAuthorization接口监听隐私接口需要用户授权事件,使用wx.requirePrivacyAuthorize模拟隐私接口调用,所以 Demo3 不需要用户真的进行隐私授权操作,就可以主动打开授权弹框。

Demo4

Demo4 与 Demo2 的逻辑基本上一致,针对tabbar切换场景增加了打开授权弹框的同时关闭其他 tabbar 已打开授权弹框的逻辑。

Demo 总结

我们可以根据具体的场景来参考 demo 组合使用getPrivacySettingonNeedPrivacyAuthorizationrequirePrivacyAuthorize接口进行开发,比如某个页面需要上传图片,就需要使用wx.chooseImagewx.chooseMedia接口,这时候我们的场景和 Demo2 基本上是一致的,在用户点击选择图片的按钮时,就可以触发wx.onNeedPrivacyAuthorization并打开授权弹框。

组件推荐

推荐使用组件ws-wx-privacy 微信隐私保护弹出框,支持vue2和vue3

这里我们是以组件的形式提供了授权弹框,监听页面中用户调用隐私授权接口,开发者将组件引入页面后可以自行选择主动触发或被动触发。


<template>  
  <view>  
  <!-- #ifdef MP-WEIXIN -->  
  <ws-wx-privacy  
    id="privacy-popup"  
    @disagree="handleDisagree"  
    @agree="handleAgree"  
    title="用户隐私保护提示"  
    desc="感谢您使用本应用,您使用本应用的服务之前请仔细阅读并同意"  
    protocol="《用户隐私保护指引》"  
    subDesc="。当您点击同意并开始时用产品服务时,即表示你已理解并同意该条款内容,该条款将对您产生法律约束力。如您拒绝,将无法使用相应服务。"  
  ></ws-wx-privacy>  
  <!-- #endif -->  
  </view>  
</template>  
<script>  

export default {  
  methods: {  
    handleDisagree() {  
      // 处理用户不同意隐私协议的逻辑  
    },  
    handleAgree() {  
      // 处理用户同意隐私协议的逻辑  
    }  
  }  
}  
</script>

微信隐私保护弹出框组件推荐

推荐使用组件ws-wx-privacy 微信隐私保护弹出框,支持vue2和vue3

相关文章

支持多平台小程序的uni-app持续集成工具

基于vue3的uni-app路由库uni-mini-router助你实现跳转、传参、拦截等路由功能

前端代码提交规范

Vue3高颜值组件库

Wot Design Uni | 一个参照Wot-design打造的uni-app组件库

继续阅读 »

背景

2023 年 08 月 10 日,微信团队发布了关于微信小程序隐私保护指引设置的公告:自2023年9月15日起,对于涉及处理用户个人信息的小程序开发者,微信要求,仅当开发者主动向平台同步用户已阅读并同意了小程序的隐私保护指引等信息处理规则后,方可调用微信提供的隐私接口。这篇公告发布之后,引发了微信社区的广泛不满和抱怨。许多开发者抱怨称,相关文档难以理解,微信偷偷将相关实现回退导致开发进度受阻后无法进行调试,而微信相关的代码逻辑也比较混乱。

2023 年 08 月 22 日微信官方又偷偷更新了相关的文档,接口可以正常调试了,同时官方也给出了相关的Demo,所以我们又可以开始心不甘情不愿开开心心地调试了。

微信官方文档及公告地址

关于小程序隐私保护指引设置的公告

隐私相关接口

微信小程序隐私协议开发指南

更新用户隐私保护指引

小程序管理员或开发者可以根据具体小程序涉及到的隐私相关接口来更新微信小程序后台的用户隐私保护指引,更新并审核通过后就可以进行相关的开发调试工作。

需要注意的是,仅有在指引中声明所处理的用户信息,才可以调用平台提供的对应接口或组件。若未声明,对应接口或组件将直接禁用

开发指南解读

开发调试配置

参考 微信小程序隐私协议开发指南中的介绍

目前 getPrivacySettingonNeedPrivacyAuthorizationrequirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明:

  • 在 2023 年 9 月 15 号之前,在 app.json 中配置 "__usePrivacyCheck__": true 后,会启用隐私相关功能,如果不配置或者配置为 false 则不会启用。

  • 在 2023 年 9 月 15 号之后,不论 app.json 中是否有配置 usePrivacyCheck,隐私相关功能都会启用。

所以在基于uni-app开发时,我们在 2023 年 9 月 15 号之前进行相关开发调试则需要在manifest.json文件mp-weixin中添加"__usePrivacyCheck__": true

微信官方 Demo

  • demo1: 演示使用 wx.getPrivacySetting<button open-type="agreePrivacyAuthorization"> 在首页处理隐私弹窗逻辑 https://developers.weixin.qq.com/s/gi71sGm67hK0

  • demo2: 演示使用 wx.onNeedPrivacyAuthorization<button open-type="agreePrivacyAuthorization"> 在多个页面处理隐私弹窗逻辑,同时演示了如何处理多个隐私接口同时调用。 https://developers.weixin.qq.com/s/4X7yyGmQ7EKp

  • demo3: 演示 wx.onNeedPrivacyAuthorizationwx.requirePrivacyAuthorize<button open-type="agreePrivacyAuthorization"><input type="nickname">组件如何结合使用 https://developers.weixin.qq.com/s/jX7xWGmA7UKa

  • demo4: 演示使用 wx.onNeedPrivacyAuthorization<button open-type="agreePrivacyAuthorization"> 在多个 tabBar 页面处理隐私弹窗逻辑 https://developers.weixin.qq.com/s/g6BWZGmt7XK9

微信官方给出了 4 个 Demo,可以覆盖大多数的开发场景,其内容主要就是getPrivacySettingonNeedPrivacyAuthorizationrequirePrivacyAuthorize这三个接口的组合使用。

Demo 解读

Demo1

Demo1 仅使用wx.getPrivacySetting接口查询隐私授权情况,在needAuthorizationtrue时主动打开授权弹框。

Demo2

Demo2 使用wx.onNeedPrivacyAuthorization接口监听隐私接口需要用户授权事件,当需要用户进行隐私授权时会触发该事件,与此同时此时打开授权弹框。

Demo3

Demo3 使用wx.onNeedPrivacyAuthorization接口监听隐私接口需要用户授权事件,使用wx.requirePrivacyAuthorize模拟隐私接口调用,所以 Demo3 不需要用户真的进行隐私授权操作,就可以主动打开授权弹框。

Demo4

Demo4 与 Demo2 的逻辑基本上一致,针对tabbar切换场景增加了打开授权弹框的同时关闭其他 tabbar 已打开授权弹框的逻辑。

Demo 总结

我们可以根据具体的场景来参考 demo 组合使用getPrivacySettingonNeedPrivacyAuthorizationrequirePrivacyAuthorize接口进行开发,比如某个页面需要上传图片,就需要使用wx.chooseImagewx.chooseMedia接口,这时候我们的场景和 Demo2 基本上是一致的,在用户点击选择图片的按钮时,就可以触发wx.onNeedPrivacyAuthorization并打开授权弹框。

组件推荐

推荐使用组件ws-wx-privacy 微信隐私保护弹出框,支持vue2和vue3

这里我们是以组件的形式提供了授权弹框,监听页面中用户调用隐私授权接口,开发者将组件引入页面后可以自行选择主动触发或被动触发。


<template>  
  <view>  
  <!-- #ifdef MP-WEIXIN -->  
  <ws-wx-privacy  
    id="privacy-popup"  
    @disagree="handleDisagree"  
    @agree="handleAgree"  
    title="用户隐私保护提示"  
    desc="感谢您使用本应用,您使用本应用的服务之前请仔细阅读并同意"  
    protocol="《用户隐私保护指引》"  
    subDesc="。当您点击同意并开始时用产品服务时,即表示你已理解并同意该条款内容,该条款将对您产生法律约束力。如您拒绝,将无法使用相应服务。"  
  ></ws-wx-privacy>  
  <!-- #endif -->  
  </view>  
</template>  
<script>  

export default {  
  methods: {  
    handleDisagree() {  
      // 处理用户不同意隐私协议的逻辑  
    },  
    handleAgree() {  
      // 处理用户同意隐私协议的逻辑  
    }  
  }  
}  
</script>

微信隐私保护弹出框组件推荐

推荐使用组件ws-wx-privacy 微信隐私保护弹出框,支持vue2和vue3

相关文章

支持多平台小程序的uni-app持续集成工具

基于vue3的uni-app路由库uni-mini-router助你实现跳转、传参、拦截等路由功能

前端代码提交规范

Vue3高颜值组件库

Wot Design Uni | 一个参照Wot-design打造的uni-app组件库

收起阅读 »

8月29日,“警学联盟·校园无诈” 海淀公安与您相约清华大学,敬请期待!

普法 反诈

第一届“警学联盟·校园无诈”优秀反诈作品揭晓仪式即将举行,8月29日,海淀公安与您相约清华大学,敬请期待!

警学联盟·校园无诈”优秀反诈作品揭晓仪式【点击查看】

海淀警学反诈联盟 你我同心反诈同行!

继续阅读 »

第一届“警学联盟·校园无诈”优秀反诈作品揭晓仪式即将举行,8月29日,海淀公安与您相约清华大学,敬请期待!

警学联盟·校园无诈”优秀反诈作品揭晓仪式【点击查看】

海淀警学反诈联盟 你我同心反诈同行!

收起阅读 »

nvue 中使用socket.io

Socket.io

已实现客户端nvue页面使用websoket 打通 socket.io 连接服务端(目前使用的nodejs),已经实现socke.io中的所有option, 有需求的找我,联系方式如下

已实现客户端nvue页面使用websoket 打通 socket.io 连接服务端(目前使用的nodejs),已经实现socke.io中的所有option, 有需求的找我,联系方式如下

Android打电话,功能类似这个api -------uni.makePhoneCall(OBJECT)

uni_app

//#ifdef APP-PLUS
// 导入Activity、Intent类
var Intent = plus.android.importClass("android.content.Intent");
var Uri = plus.android.importClass("android.net.Uri");
// 获取主Activity对象的实例
var main = plus.android.runtimeMainActivity();
// 创建Intent
var uri = Uri.parse("tel:40088"); // 这里可修改电话号码
// var call = new Intent("android.intent.action.CALL",uri);
var call = new Intent("android.intent.action.DIAL",uri);
// 调用startActivity方法拨打电话
main.startActivity( call );
//#endif

继续阅读 »

//#ifdef APP-PLUS
// 导入Activity、Intent类
var Intent = plus.android.importClass("android.content.Intent");
var Uri = plus.android.importClass("android.net.Uri");
// 获取主Activity对象的实例
var main = plus.android.runtimeMainActivity();
// 创建Intent
var uri = Uri.parse("tel:40088"); // 这里可修改电话号码
// var call = new Intent("android.intent.action.CALL",uri);
var call = new Intent("android.intent.action.DIAL",uri);
// 调用startActivity方法拨打电话
main.startActivity( call );
//#endif

收起阅读 »

ios专业制作马甲包上架

有需要,真诚合作,可加QQ:543610866

你方,需要提供开发者账号、app相关资料

有很多白包,想看过审的马甲例子,可以加我qq,工具、财务等等的都有,已上架过几百个

插件市场,也有很多我的原生插件:https://ext.dcloud.net.cn/publisher?id=22130

继续阅读 »

有需要,真诚合作,可加QQ:543610866

你方,需要提供开发者账号、app相关资料

有很多白包,想看过审的马甲例子,可以加我qq,工具、财务等等的都有,已上架过几百个

插件市场,也有很多我的原生插件:https://ext.dcloud.net.cn/publisher?id=22130

收起阅读 »

【HbuliderX主题】Jetbrains——Darcula

主题

参照Jetbrains的Idea里暗色主题Darcula制作:

目前缺陷:右键弹出菜单颜色仍不统一
使用方法:复制代码->设置-源码视图->CtrlV->主题选择雅蓝
代码如下:

{  
    "theme-custom.author": "",  
    "theme-custom.name": "",  
    "theme-custom.version": "",  
    "theme-custom.date": "2023-8-23",  
    "editor.colorScheme": "Atom One Dark",  
    "workbench.colorCustomizations": {  
        "[Atom One Dark]": {  
            "button.background": "#45484A",  
            "button.foreground": "#a6a6a6",  
            "button.hoverBackground": "#808080",  
            "console.ad": "#666699",  
            "console.background": "#2B2B2B",  
            "console.error": "#ff3333",  
            "console.foreground": "#e6e6e6",  
            "console.success": "#99ff99",  
            "console.time": "#999999",  
            "console.warn": "#cccc00",  
            "debug.foreground": "#2B2B2B",  
            "editor.background": "#313335",  
            "editor.caret": "#b3b3b3",  
            "editor.caretLine": "#323232",  
            "editor.foreground": "#2B2B2B",  
            "editor.linenumber": "#a6a6a6",  
            "editor.selection": "#515c6a",  
            "editorGroup.border": "#545454",  
            "editorGroupHeader.tabsBackground": "#a6a6a6",  
            "extensionButton.border": "#a6a6a6",  
            "extensionButton.checkColor": "#ffffff",  
            "extensionButton.prominentBackground": "#4C5052",  
            "extensionButton.prominentForeground": "#cccccc",  
            "extensionButton.prominentHoverBackground": "#6f7576",  
            "focusBorder": "#d9d9d9",  
            "imageview.background": "#0d0d0d",  
            "imageview.foreground": "#1a1a1a",  
            "input.background": "#45494A",  
            "input.border": "#ffffff",  
            "input.foreground": "#a6a6a6",  
            "input.searchbar.foreground": "#a6a6a6",  
            "input.searchbar.foreground.notfinded": "#a6a6a6",  
            "inputList.border": "#45494A",  
            "inputList.hoverBackground": "#6f7576",  
            "inputList.titleColor": "#a6a6a6",  
            "inputOption.activeBorder": "#4B6EAF",  
            "inputValidation.infoBackground": "#45494A",  
            "list.activeSelectionBackground": "#4B6EAF",  
            "list.hoverBackground": "#0C273C",  
            "menubar.background": "#3C3F41",  
            "menubar.foreground": "#d0d0d0",  
            "notifications.background": "#313335",  
            "pathnavigator.pathnode.hoverbackground": "#3C3F41",  
            "scrollbarSlider.background": "#4F4F4F",  
            "scrollbarSlider.hoverBackground": "#6f7576",  
            "settings.dropdownBackground": "#3C3F41",  
            "settings.dropdownBorder": "#666666",  
            "settings.dropdownForeground": "#cccccc",  
            "settings.dropdownListBorder": "#3C3F41",  
            "settings.textInputBackground": "#45484A",  
            "settings.textInputBorder": "#666666",  
            "settings.textInputDisableBackground": "#262626",  
            "sideBar.background": "#3C3F41",  
            "sideBar.border": "#ffffff",  
            "statusBar.background": "#3C3F41",  
            "statusBar.button.hoverbackground": "#333333",  
            "statusBar.foreground": "#bfbfbf",  
            "tab.activeBackground": "#4E5254",  
            "tab.activeBorder": "#4E5254",  
            "tab.activeForeground": "#d9d9d9",  
            "tab.border": "#3C3F41",  
            "tab.hoverBackground": "#27292A",  
            "tab.inactiveBackground": "#3C3F41",  
            "tab.inactiveForeground": "#a6a6a6",  
            "terminal.background": "#2B2B2B",  
            "toolBar.background": "#4C5052",  
            "toolBar.border": "#737373",  
            "toolBar.hoverBackground": "#737373"  
        }  
    },  
    "editor.tokenColorCustomizations": {  
        "[Atom One Dark]": {  
            "rules": [  
                {  
                    "name": "Comment",  
                    "scope": [  
                        "comment"  
                    ],  
                    "settings": {  
                        "foreground": "#5C6370",  
                        "fontStyle": "italic"  
                    }  
                },  
                {  
                    "name": "Conditional Comment Keyword",  
                    "scope": "comment.conditional.keyword",  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Conditional Comment Defined",  
                    "scope": "comment.conditional.define",  
                    "settings": {  
                        "foreground": "#E06963",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Comment Markup Link",  
                    "scope": [  
                        "comment markup.link"  
                    ],  
                    "settings": {  
                        "foreground": "#5C6370"  
                    }  
                },  
                {  
                    "name": "Entity Name Type",  
                    "scope": [  
                        "entity.name.type"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Entity Other Inherited Class",  
                    "scope": [  
                        "entity.other.inherited-class"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "Keyword",  
                    "scope": [  
                        "keyword"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Keyword Control",  
                    "scope": [  
                        "keyword.control"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Keyword Operator",  
                    "scope": [  
                        "keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Keyword Other Special Method",  
                    "scope": [  
                        "keyword.other.special-method"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Keyword Other Unit",  
                    "scope": [  
                        "keyword.other.unit"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Storage",  
                    "scope": [  
                        "storage"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Storage Type Annotation,storage Type Primitive",  
                    "scope": [  
                        "storage.type.annotation",  
                        "storage.type.primitive"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Storage Modifier Package,storage Modifier Import",  
                    "scope": [  
                        "storage.modifier.package",  
                        "storage.modifier.import"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Constant",  
                    "scope": [  
                        "constant"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Constant Variable",  
                    "scope": [  
                        "constant.variable"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Constant Character Escape",  
                    "scope": [  
                        "constant.character.escape"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Constant Numeric",  
                    "scope": [  
                        "constant.numeric"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Constant Other Color",  
                    "scope": [  
                        "constant.other.color"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Constant Other Symbol",  
                    "scope": [  
                        "constant.other.symbol"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Variable",  
                    "scope": [  
                        "variable"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Variable Interpolation",  
                    "scope": [  
                        "variable.interpolation"  
                    ],  
                    "settings": {  
                        "foreground": "#BE5046"  
                    }  
                },  
                {  
                    "name": "Variable Parameter",  
                    "scope": [  
                        "variable.parameter"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "String",  
                    "scope": [  
                        "string"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "String Regexp",  
                    "scope": [  
                        "string.regexp"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "String Regexp Source Ruby Embedded",  
                    "scope": [  
                        "string.regexp source.ruby.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "String Other Link",  
                    "scope": [  
                        "string.other.link"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Punctuation Definition Comment",  
                    "scope": [  
                        "punctuation.definition.comment"  
                    ],  
                    "settings": {  
                        "foreground": "#858c99"  
                    }  
                },  
                {  
                    "name": "Punctuation Definition Method Parameters,punctuation Definition Function Parameters,punctuation Definition Parameters,punctuation Definition Separator,punctuation Definition Seperator,punctuation Definition Array",  
                    "scope": [  
                        "punctuation.definition.method-parameters",  
                        "punctuation.definition.function-parameters",  
                        "punctuation.definition.parameters",  
                        "punctuation.definition.separator",  
                        "punctuation.definition.seperator",  
                        "punctuation.definition.array"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Punctuation Definition Heading,punctuation Definition Identity",  
                    "scope": [  
                        "punctuation.definition.identity"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Punctuation Section Embedded",  
                    "scope": [  
                        "punctuation.section.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#BE5046"  
                    }  
                },  
                {  
                    "name": "Punctuation Section Method,punctuation Section Class,punctuation Section Inner Class",  
                    "scope": [  
                        "punctuation.section.method",  
                        "punctuation.section.class",  
                        "punctuation.section.inner-class"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Support Class",  
                    "scope": [  
                        "support.class"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Support Type",  
                    "scope": [  
                        "support.type"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Support Function",  
                    "scope": [  
                        "support.function"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Support Function Any Method",  
                    "scope": [  
                        "support.function.any-method"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Entity Name Function",  
                    "scope": [  
                        "entity.name.function"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Entity Name Class,entity Name Type Class",  
                    "scope": [  
                        "entity.name.class",  
                        "entity.name.type.class"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Entity Name Tag",  
                    "scope": [  
                        "entity.name.tag"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Entity Other Attribute Name",  
                    "scope": [  
                        "entity.other.attribute-name"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Entity Other Attribute Name Id",  
                    "scope": [  
                        "entity.other.attribute-name.id"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Meta Class",  
                    "scope": [  
                        "meta.class"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Meta Class Body",  
                    "scope": [  
                        "meta.class.body"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Meta Method Call,meta Method",  
                    "scope": [  
                        "meta.method-call",  
                        "meta.method"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Meta Definition Variable",  
                    "scope": [  
                        "meta.definition.variable"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Meta Link",  
                    "scope": [  
                        "meta.link"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Meta Require",  
                    "scope": [  
                        "meta.require"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Meta Selector",  
                    "scope": [  
                        "meta.selector"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Meta Separator",  
                    "scope": [  
                        "meta.separator"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Meta Tag",  
                    "scope": [  
                        "meta.tag"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "code block Styling",  
                    "scope": "markup.fenced_code.block.markdown",  
                    "settings": {  
                        "foreground": "#ABB2BF",  
                        "fontStyle": "italic|filled"  
                    }  
                },  
                {  
                    "name": "Markup Inline",  
                    "scope": "markup.inline.raw.string.markdown",  
                    "settings": {  
                        "fontStyle": "",  
                        "foreground": "#62A95D"  
                    }  
                },  
                {  
                    "name": "Underline",  
                    "scope": [  
                        "underline"  
                    ],  
                    "settings": {  
                        "text-decoration": "underline"  
                    }  
                },  
                {  
                    "name": "None",  
                    "scope": [  
                        "none"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Invalid Deprecated",  
                    "scope": [  
                        "invalid.deprecated"  
                    ],  
                    "settings": {  
                        "foreground": "#523D14",  
                        "background": "#E0C285"  
                    }  
                },  
                {  
                    "name": "Invalid Illegal",  
                    "scope": [  
                        "invalid.illegal"  
                    ],  
                    "settings": {  
                        "foreground": "white",  
                        "background": "#E05252"  
                    }  
                },  
                {  
                    "name": "Markup Styling",  
                    "scope": "markup.bold.markdown",  
                    "settings": {  
                        "foreground": "#A6ACBC",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Changed",  
                    "scope": [  
                        "markup.changed"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Markup Deleted",  
                    "scope": [  
                        "markup.deleted"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Markup Styling",  
                    "scope": "markup.italic.markdown",  
                    "settings": {  
                        "foreground": "#A6ACBC",  
                        "fontStyle": "italic"  
                    }  
                },  
                {  
                    "name": "Markup Heading",  
                    "scope": [  
                        "markup.heading"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Markup h1 bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.heading.h1.markdown punctuation.definition.heading.markdown entity.name.section.markdown markup.bold.markdown",  
                        "text.html.markdown markup.heading.h1.markdown punctuation.definition.heading.markdown entity.name.section.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#154431",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup h2 bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.heading.h2.markdown punctuation.definition.heading.markdown entity.name.section.markdown markup.bold.markdown",  
                        "text.html.markdown markup.heading.h2.markdown punctuation.definition.heading.markdown entity.name.section.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#DCB864",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup h3 bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.heading.h3.markdown entity.name.section.markdown markup.bold.markdown",  
                        "text.html.markdown markup.heading.h3.markdown entity.name.section.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#51ACCA",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup h4 bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.heading.h4.markdown entity.name.section.markdown markup.bold.markdown",  
                        "text.html.markdown markup.heading.h4.markdown entity.name.section.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#15936d",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Headings H1",  
                    "scope": "markup.heading.h1.markdown",  
                    "settings": {  
                        "foreground": "#E06C75",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Headings H2",  
                    "scope": "markup.heading.h2.markdown",  
                    "settings": {  
                        "foreground": "#DCB864",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Headings H3",  
                    "scope": "markup.heading.h3.markdown",  
                    "settings": {  
                        "foreground": "#51ACCA",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Headings H4",  
                    "scope": "markup.heading.h4.markdown",  
                    "settings": {  
                        "foreground": "#62C3CC",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Link",  
                    "scope": [  
                        "markup.link"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Markup Inserted",  
                    "scope": [  
                        "markup.inserted"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "Markup Raw",  
                    "scope": [  
                        "markup.raw"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "List Start",  
                    "scope": "beginning.punctuation.definition.list.markdown",  
                    "settings": {  
                        "foreground": "#C2B178"  
                    }  
                },  
                {  
                    "name": "List Start",  
                    "scope": "beginning.punctuation.definition.numbered.list.markdown",  
                    "settings": {  
                        "foreground": "#D8839D"  
                    }  
                },  
                {  
                    "name": "Markup Lists Unnumbered",  
                    "scope": "markup.list.unnumbered.markdown",  
                    "settings": {  
                        "foreground": "#C2B178"  
                    }  
                },  
                {  
                    "name": "Markup Lists Numbered",  
                    "scope": "markup.list.numbered.markdown",  
                    "settings": {  
                        "foreground": "#D8839D"  
                    }  
                },  
                {  
                    "name": "Markup unnumbered list bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown markup.bold.markdown",  
                        "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#C2B178",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup numbered list bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.list.numbered.markdown meta.paragraph.markdown markup.bold.markdown",  
                        "text.html.markdown markup.list.numbered.markdown meta.paragraph.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "fontStyle": "bold",  
                        "foreground": "#D8839D"  
                    }  
                },  
                {  
                    "name": "Markup txt bold Styling",  
                    "scope": [  
                        "text.html.markdown meta.paragraph.markdown markup.bold.markdown",  
                        "text.html.markdown meta.paragraph.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "fontStyle": "bold",  
                        "foreground": "#D8839D"  
                    }  
                },  
                {  
                    "name": "Markup quote bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.quote.markdown meta.paragraph.markdown markup.bold.markdown",  
                        "text.html.markdown markup.quote.markdown meta.paragraph.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#D8839D",  
                        "fontStyle": "bold|italic"  
                    }  
                },  
                {  
                    "name": "Source C Keyword Operator",  
                    "scope": [  
                        "source.c keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Cpp Keyword Operator",  
                    "scope": [  
                        "source.cpp keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Cs Keyword Operator",  
                    "scope": [  
                        "source.cs keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Css Property Name,source Css Property Value",  
                    "scope": [  
                        "source.css property-name",  
                        "source.css property-value"  
                    ],  
                    "settings": {  
                        "foreground": "#828997"  
                    }  
                },  
                {  
                    "name": "Source Css Property Name Support,source Css Property Value Support",  
                    "scope": [  
                        "source.css property-name.support",  
                        "source.css property-value.support"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Source Gfm Markup",  
                    "scope": [  
                        "source.gfm markup"  
                    ],  
                    "settings": {  
                        "-webkit-font-smoothing": "auto"  
                    }  
                },  
                {  
                    "name": "Source Gfm Link Entity",  
                    "scope": [  
                        "source.gfm link entity"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Source Go Storage Type String",  
                    "scope": [  
                        "source.go storage.type.string"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Ini Keyword Other Definition Ini",  
                    "scope": [  
                        "source.ini keyword.other.definition.ini"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Source Java Storage Modifier Import",  
                    "scope": [  
                        "source.java storage.modifier.import"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Source Java Storage Type",  
                    "scope": [  
                        "source.java storage.type"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Source Java Keyword Operator Instanceof",  
                    "scope": [  
                        "source.java keyword.operator.instanceof"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Java Properties Meta Key Pair",  
                    "scope": [  
                        "source.java-properties meta.key-pair"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Source Java Properties Meta Key Pair > Punctuation",  
                    "scope": [  
                        "source.java-properties meta.key-pair > punctuation"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Source Js Keyword Operator",  
                    "scope": [  
                        "source.js keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Source Js Keyword Operator Delete,source Js Keyword Operator In,source Js Keyword Operator Of,source Js Keyword Operator Instanceof,source Js Keyword Operator New,source Js Keyword Operator Typeof,source Js Keyword Operator Void",  
                    "scope": [  
                        "source.js keyword.operator.delete",  
                        "source.js keyword.operator.in",  
                        "source.js keyword.operator.of",  
                        "source.js keyword.operator.instanceof",  
                        "source.js keyword.operator.new",  
                        "source.js keyword.operator.typeof",  
                        "source.js keyword.operator.void"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Json Meta Structure Dictionary Json > String Quoted Json",  
                    "scope": [  
                        "source.json meta.structure.dictionary.json > string.quoted.json"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Source Json Meta Structure Dictionary Json > String Quoted Json > Punctuation String",  
                    "scope": [  
                        "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Source Json Meta Structure Dictionary Json > Value Json > String Quoted Json,source Json Meta Structure Array Json > Value Json > String Quoted Json,source Json Meta Structure Dictionary Json > Value Json > String Quoted Json > Punctuation,source Json Meta Structure Array Json > Value Json > String Quoted Json > Punctuation",  
                    "scope": [  
                        "source.json meta.structure.dictionary.json > value.json > string.quoted.json",  
                        "source.json meta.structure.array.json > value.json > string.quoted.json",  
                        "source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation",  
                        "source.json meta.structure.array.json > value.json > string.quoted.json > punctuation"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "Source Json Meta Structure Dictionary Json > Constant Language Json,source Json Meta Structure Array Json > Constant Language Json",  
                    "scope": [  
                        "source.json meta.structure.dictionary.json > constant.language.json",  
                        "source.json meta.structure.array.json > constant.language.json"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Source Ruby Constant Other Symbol > Punctuation",  
                    "scope": [  
                        "source.ruby constant.other.symbol > punctuation"  
                    ],  
                    "settings": {  
                        "foreground": "inherit"  
                    }  
                },  
                {  
                    "name": "Source Python Keyword Operator Logical Python",  
                    "scope": [  
                        "source.python keyword.operator.logical.python"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Python Variable Parameter",  
                    "scope": [  
                        "source.python variable.parameter"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Meta Attribute Rust",  
                    "scope": [  
                        "meta.attribute.rust"  
                    ],  
                    "settings": {  
                        "foreground": "#BCC199"  
                    }  
                },  
                {  
                    "name": "Storage Modifier Lifetime Rust,entity Name Lifetime Rust",  
                    "scope": [  
                        "storage.modifier.lifetime.rust",  
                        "entity.name.lifetime.rust"  
                    ],  
                    "settings": {  
                        "foreground": "#33E8EC"  
                    }  
                },  
                {  
                    "name": "Keyword Unsafe Rust",  
                    "scope": [  
                        "keyword.unsafe.rust"  
                    ],  
                    "settings": {  
                        "foreground": "#CC6B73"  
                    }  
                },  
                {  
                    "name": "customrule",  
                    "scope": "customrule",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Support Type Property Name",  
                    "scope": "support.type.property-name",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Punctuation for Quoted String",  
                    "scope": "string.quoted.double punctuation",  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Support Constant",  
                    "scope": "support.constant",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JSON Property Name",  
                    "scope": "support.type.property-name.json",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JSON Punctuation for Property Name",  
                    "scope": "support.type.property-name.json punctuation",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation for key-value",  
                    "scope": [  
                        "punctuation.separator.key-value.ts",  
                        "punctuation.separator.key-value.js",  
                        "punctuation.separator.key-value.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Embedded Operator",  
                    "scope": [  
                        "source.js.embedded.html keyword.operator",  
                        "source.ts.embedded.html keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Variable Other Readwrite",  
                    "scope": [  
                        "variable.other.readwrite.js",  
                        "variable.other.readwrite.ts",  
                        "variable.other.readwrite.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Support Variable Dom",  
                    "scope": [  
                        "support.variable.dom.js",  
                        "support.variable.dom.ts"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Support Variable Property Dom",  
                    "scope": [  
                        "support.variable.property.dom.js",  
                        "support.variable.property.dom.ts"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Interpolation String Punctuation",  
                    "scope": [  
                        "meta.template.expression.js punctuation.definition",  
                        "meta.template.expression.ts punctuation.definition"  
                    ],  
                    "settings": {  
                        "foreground": "#BE5046"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation Type Parameters",  
                    "scope": [  
                        "source.ts punctuation.definition.typeparameters",  
                        "source.js punctuation.definition.typeparameters",  
                        "source.tsx punctuation.definition.typeparameters"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Definition Block",  
                    "scope": [  
                        "source.ts punctuation.definition.block",  
                        "source.js punctuation.definition.block",  
                        "source.tsx punctuation.definition.block"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation Separator Comma",  
                    "scope": [  
                        "source.ts punctuation.separator.comma",  
                        "source.js punctuation.separator.comma",  
                        "source.tsx punctuation.separator.comma"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Variable Property",  
                    "scope": [  
                        "support.variable.property.js",  
                        "support.variable.property.ts",  
                        "support.variable.property.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Default Keyword",  
                    "scope": [  
                        "keyword.control.default.js",  
                        "keyword.control.default.ts",  
                        "keyword.control.default.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Instanceof Keyword",  
                    "scope": [  
                        "keyword.operator.expression.instanceof.js",  
                        "keyword.operator.expression.instanceof.ts",  
                        "keyword.operator.expression.instanceof.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Of Keyword",  
                    "scope": [  
                        "keyword.operator.expression.of.js",  
                        "keyword.operator.expression.of.ts",  
                        "keyword.operator.expression.of.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Braces/Brackets",  
                    "scope": [  
                        "meta.brace.round.js",  
                        "meta.array-binding-pattern-variable.js",  
                        "meta.brace.square.js",  
                        "meta.brace.round.ts",  
                        "meta.array-binding-pattern-variable.ts",  
                        "meta.brace.square.ts",  
                        "meta.brace.round.tsx",  
                        "meta.array-binding-pattern-variable.tsx",  
                        "meta.brace.square.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation Accessor",  
                    "scope": [  
                        "source.js punctuation.accessor",  
                        "source.ts punctuation.accessor",  
                        "source.tsx punctuation.accessor"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation Terminator Statement",  
                    "scope": [  
                        "punctuation.terminator.statement.js",  
                        "punctuation.terminator.statement.ts",  
                        "punctuation.terminator.statement.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Array variables",  
                    "scope": [  
                        "meta.array-binding-pattern-variable.js variable.other.readwrite.js",  
                        "meta.array-binding-pattern-variable.ts variable.other.readwrite.ts",  
                        "meta.array-binding-pattern-variable.tsx variable.other.readwrite.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Support Variables",  
                    "scope": [  
                        "source.js support.variable",  
                        "source.ts support.variable",  
                        "source.tsx support.variable"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Support Variables",  
                    "scope": [  
                        "variable.other.constant.property.js",  
                        "variable.other.constant.property.ts",  
                        "variable.other.constant.property.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Keyword New",  
                    "scope": [  
                        "keyword.operator.new.ts",  
                        "keyword.operator.new.j",  
                        "keyword.operator.new.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] TS Keyword Operator",  
                    "scope": [  
                        "source.ts keyword.operator",  
                        "source.tsx keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation Parameter Separator",  
                    "scope": [  
                        "punctuation.separator.parameter.js",  
                        "punctuation.separator.parameter.ts",  
                        "punctuation.separator.parameter.tsx "  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Import",  
                    "scope": [  
                        "constant.language.import-export-all.js",  
                        "constant.language.import-export-all.ts"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JSX/TSX Import",  
                    "scope": [  
                        "constant.language.import-export-all.jsx",  
                        "constant.language.import-export-all.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Keyword Control As",  
                    "scope": [  
                        "keyword.control.as.js",  
                        "keyword.control.as.ts",  
                        "keyword.control.as.jsx",  
                        "keyword.control.as.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Variable Alias",  
                    "scope": [  
                        "variable.other.readwrite.alias.js",  
                        "variable.other.readwrite.alias.ts",  
                        "variable.other.readwrite.alias.jsx",  
                        "variable.other.readwrite.alias.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Constants",  
                    "scope": [  
                        "variable.other.constant.js",  
                        "variable.other.constant.ts",  
                        "variable.other.constant.jsx",  
                        "variable.other.constant.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Export Variable",  
                    "scope": [  
                        "meta.export.default.js variable.other.readwrite.js",  
                        "meta.export.default.ts variable.other.readwrite.ts"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Template Strings Punctuation Accessor",  
                    "scope": [  
                        "source.js meta.template.expression.js punctuation.accessor",  
                        "source.ts meta.template.expression.ts punctuation.accessor",  
                        "source.tsx meta.template.expression.tsx punctuation.accessor"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Import equals",  
                    "scope": [  
                        "source.js meta.import-equals.external.js keyword.operator",  
                        "source.jsx meta.import-equals.external.jsx keyword.operator",  
                        "source.ts meta.import-equals.external.ts keyword.operator",  
                        "source.tsx meta.import-equals.external.tsx keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Type Module",  
                    "scope": "entity.name.type.module.js,entity.name.type.module.ts,entity.name.type.module.jsx,entity.name.type.module.tsx",  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Meta Class",  
                    "scope": "meta.class.js,meta.class.ts,meta.class.jsx,meta.class.tsx",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Property Definition Variable",  
                    "scope": [  
                        "meta.definition.property.js variable",  
                        "meta.definition.property.ts variable",  
                        "meta.definition.property.jsx variable",  
                        "meta.definition.property.tsx variable"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Meta Type Parameters Type",  
                    "scope": [  
                        "meta.type.parameters.js support.type",  
                        "meta.type.parameters.jsx support.type",  
                        "meta.type.parameters.ts support.type",  
                        "meta.type.parameters.tsx support.type"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Meta Tag Keyword Operator",  
                    "scope": [  
                        "source.js meta.tag.js keyword.operator",  
                        "source.jsx meta.tag.jsx keyword.operator",  
                        "source.ts meta.tag.ts keyword.operator",  
                        "source.tsx meta.tag.tsx keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Meta Tag Punctuation",  
                    "scope": [  
                        "meta.tag.js punctuation.section.embedded",  
                        "meta.tag.jsx punctuation.section.embedded",  
                        "meta.tag.ts punctuation.section.embedded",  
                        "meta.tag.tsx punctuation.section.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Meta Array Literal Variable",  
                    "scope": [  
                        "meta.array.literal.js variable",  
                        "meta.array.literal.jsx variable",  
                        "meta.array.literal.ts variable",  
                        "meta.array.literal.tsx variable"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Module Exports",  
                    "scope": [  
                        "support.type.object.module.js",  
                        "support.type.object.module.jsx",  
                        "support.type.object.module.ts",  
                        "support.type.object.module.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JSON Constants",  
                    "scope": [  
                        "constant.language.json"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Object Constants",  
                    "scope": [  
                        "variable.other.constant.object.js",  
                        "variable.other.constant.object.jsx",  
                        "variable.other.constant.object.ts",  
                        "variable.other.constant.object.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Properties Keyword",  
                    "scope": [  
                        "storage.type.property.js",  
                        "storage.type.property.jsx",  
                        "storage.type.property.ts",  
                        "storage.type.property.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Single Quote Inside Templated String",  
                    "scope": [  
                        "meta.template.expression.js string.quoted punctuation.definition",  
                        "meta.template.expression.jsx string.quoted punctuation.definition",  
                        "meta.template.expression.ts string.quoted punctuation.definition",  
                        "meta.template.expression.tsx string.quoted punctuation.definition"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Backtick inside Templated String",  
                    "scope": [  
                        "meta.template.expression.js string.template punctuation.definition.string.template",  
                        "meta.template.expression.jsx string.template punctuation.definition.string.template",  
                        "meta.template.expression.ts string.template punctuation.definition.string.template",  
                        "meta.template.expression.tsx string.template punctuation.definition.string.template"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS In Keyword for Loops",  
                    "scope": [  
                        "keyword.operator.expression.in.js",  
                        "keyword.operator.expression.in.jsx",  
                        "keyword.operator.expression.in.ts",  
                        "keyword.operator.expression.in.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Constants Other",  
                    "scope": "source.python constant.other",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Constants",  
                    "scope": "source.python constant",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Placeholder Character",  
                    "scope": "constant.character.format.placeholder.other.python storage",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Magic",  
                    "scope": "support.variable.magic.python",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Meta Function Parameters",  
                    "scope": "meta.function.parameters.python",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Function Separator Annotation",  
                    "scope": "punctuation.separator.annotation.python",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Function Separator Punctuation",  
                    "scope": "punctuation.separator.parameters.python",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Fields",  
                    "scope": "entity.name.variable.field.cs",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Keyword Operators",  
                    "scope": "source.cs keyword.operator",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Variables",  
                    "scope": "variable.other.readwrite.cs",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Variables Other",  
                    "scope": "variable.other.object.cs",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Property Other",  
                    "scope": "variable.other.object.property.cs",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Property",  
                    "scope": "entity.name.variable.property.cs",  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Storage Type",  
                    "scope": "storage.type.cs",  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Rust Unsafe Keyword",  
                    "scope": "keyword.other.unsafe.rust",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Markdown Raw Block",  
                    "scope": "markup.raw.block.markdown",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Shell Variables Punctuation Definition",  
                    "scope": "punctuation.definition.variable.shell",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Css Support Constant Value",  
                    "scope": "support.constant.property-value.css",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Css Punctuation Definition Constant",  
                    "scope": "punctuation.definition.constant.css",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Sass Punctuation for key-value",  
                    "scope": "punctuation.separator.key-value.scss",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Sass Punctuation for constants",  
                    "scope": "punctuation.definition.constant.scss",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Sass Punctuation for key-value",  
                    "scope": "meta.property-list.scss punctuation.separator.key-value.scss",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Java Storage Type Primitive Array",  
                    "scope": "storage.type.primitive.array.java",  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Markdown heading setext",  
                    "scope": "markup.heading.setext",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Markup Fenced_code",  
                    "scope": "markup.fenced_code.block.markdown",  
                    "settings": {  
                        "foreground": "#7388C1",  
                        "background": "#282C35",  
                        "fontStyle": "italic|filled"  
                    }  
                },  
                {  
                    "scope": [  
                        "meta.embedded",  
                        "source.groovy.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#7388C1"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Markdown Inline Raw",  
                    "scope": "markup.inline.raw.markdown",  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "Markup Quote",  
                    "scope": "markup.quote.markdown",  
                    "settings": {  
                        "foreground": "#B975D8",  
                        "fontStyle": "italic"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition String",  
                    "scope": [  
                        "punctuation.definition.string.begin.markdown",  
                        "punctuation.definition.string.end.markdown",  
                        "punctuation.definition.metadata.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Underline Link",  
                    "scope": "markup.underline.link.markdown",  
                    "settings": {  
                        "foreground": "#42B0DA"  
                    }  
                },  
                {  
                    "scope": "markup.underline.link.image.markdown",  
                    "settings": {  
                        "foreground": "#F1A36C"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Markdown Link Title/Description",  
                    "scope": [  
                        "string.other.link.title.markdown",  
                        "string.other.link.description.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Ruby Punctuation Separator Variable",  
                    "scope": "punctuation.separator.variable.ruby",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Ruby Other Constant Variable",  
                    "scope": "variable.other.constant.ruby",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Ruby Keyword Operator Other",  
                    "scope": "keyword.operator.other.ruby",  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] PHP Punctuation Variable Definition",  
                    "scope": "punctuation.definition.variable.php",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] PHP Meta Class",  
                    "scope": "meta.class.php",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "unquoted",  
                    "scope": "string.unquoted.label",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Text Styling Vue",  
                    "scope": [  
                        "text.html.vue"  
                    ],  
                    "settings": {  
                        "foreground": "#9FB2BF"  
                    }  
                },  
                {  
                    "name": "Text Styling Vue Comment",  
                    "scope": [  
                        "comment.block"  
                    ],  
                    "settings": {  
                        "foreground": "#858c99"  
                    }  
                },  
                {  
                    "name": "Text Styling Vue Comment Line",  
                    "scope": [  
                        "comment.line.double-slash"  
                    ],  
                    "settings": {  
                        "foreground": "#858c99"  
                    }  
                }  
            ]  
        },  
        "[Default]": {  
            "rules": [  
                {  
                    "scope": [  
                        "support.class",  
                        "support.type"  
                    ],  
                    "settings": {  
                        "foreground": "#0074e8"  
                    }  
                },  
                {  
                    "scope": [  
                        "meta.embedded",  
                        "source.groovy.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#cbcbcbff"  
                    }  
                },  
                {  
                    "scope": "emphasis",  
                    "settings": {  
                        "fontStyle": "italic"  
                    }  
                },  
                {  
                    "scope": "strong",  
                    "settings": {  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "scope": "meta.diff.header",  
                    "settings": {  
                        "foreground": "#000080"  
                    }  
                },  
                {  
                    "scope": "comment",  
                    "settings": {  
                        "foreground": "#008000"  
                    }  
                },  
                {  
                    "scope": "constant.language",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": [  
                        "constant.numeric",  
                        "variable.other.enummember",  
                        "keyword.operator.plus.exponent",  
                        "keyword.operator.minus.exponent"  
                    ],  
                    "settings": {  
                        "foreground": "#098658"  
                    }  
                },  
                {  
                    "scope": "constant.regexp",  
                    "settings": {  
                        "foreground": "#811f3f"  
                    }  
                },  
                {  
                    "name": "css tags in selectors, xml tags",  
                    "scope": "entity.name.tag",  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "entity.name.selector",  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "entity.other.attribute-name",  
                    "settings": {  
                        "foreground": "#ff0000"  
                    }  
                },  
                {  
                    "scope": [  
                        "entity.other.attribute-name.class.css",  
                        "entity.other.attribute-name.class.mixin.css",  
                        "entity.other.attribute-name.id.css",  
                        "entity.other.attribute-name.parent-selector.css",  
                        "entity.other.attribute-name.pseudo-class.css",  
                        "entity.other.attribute-name.pseudo-element.css",  
                        "source.css.less entity.other.attribute-name.id",  
                        "entity.other.attribute-name.scss"  
                    ],  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "invalid",  
                    "settings": {  
                        "foreground": "#cd3131"  
                    }  
                },  
                {  
                    "scope": "markup.underline",  
                    "settings": {  
                        "fontStyle": "underline"  
                    }  
                },  
                {  
                    "scope": "markup.bold",  
                    "settings": {  
                        "fontStyle": "bold",  
                        "foreground": "#000080"  
                    }  
                },  
                {  
                    "scope": "markup.heading",  
                    "settings": {  
                        "fontStyle": "bold",  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "markup.italic",  
                    "settings": {  
                        "fontStyle": "italic"  
                    }  
                },  
                {  
                    "scope": "markup.inserted",  
                    "settings": {  
                        "foreground": "#098658"  
                    }  
                },  
                {  
                    "scope": "markup.deleted",  
                    "settings": {  
                        "foreground": "#a31515"  
                    }  
                },  
                {  
                    "scope": "markup.changed",  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": [  
                        "punctuation.definition.quote.begin.markdown",  
                        "punctuation.definition.list.begin.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": "markup.inline.raw",  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "punctuation.definition.tag",  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": [  
                        "meta.preprocessor",  
                        "entity.name.function.preprocessor"  
                    ],  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "meta.preprocessor.string",  
                    "settings": {  
                        "foreground": "#a31515"  
                    }  
                },  
                {  
                    "scope": "meta.preprocessor.numeric",  
                    "settings": {  
                        "foreground": "#098658"  
                    }  
                },  
                {  
                    "scope": "meta.structure.dictionary.key.python",  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": "storage",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "storage.type",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": [  
                        "storage.modifier",  
                        "keyword.operator.noexcept"  
                    ],  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": [  
                        "string",  
                        "meta.embedded.assembly"  
                    ],  
                    "settings": {  
                        "foreground": "#a31515"  
                    }  
                },  
                {  
                    "scope": [  
                        "string.comment.buffered.block.pug",  
                        "string.quoted.pug",  
                        "string.interpolated.pug",  
                        "string.unquoted.plain.in.yaml",  
                        "string.unquoted.plain.out.yaml",  
                        "string.unquoted.block.yaml",  
                        "string.quoted.single.yaml",  
                        "string.quoted.double.xml",  
                        "string.quoted.single.xml",  
                        "string.unquoted.cdata.xml",  
                        "string.quoted.double.html",  
                        "string.quoted.single.html",  
                        "string.unquoted.html",  
                        "string.quoted.single.handlebars",  
                        "string.quoted.double.handlebars"  
                    ],  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "string.regexp",  
                    "settings": {  
                        "foreground": "#811f3f"  
                    }  
                },  
                {  
                    "scope": [  
                        "punctuation.definition.template-expression.begin",  
                        "punctuation.definition.template-expression.end",  
                        "punctuation.section.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": [  
                        "meta.template.expression"  
                    ],  
                    "settings": {  
                        "foreground": "#f9f9f9"  
                    }  
                },  
                {  
                    "scope": [  
                        "support.constant.property-value",  
                        "support.constant.font-name",  
                        "support.constant.media-type",  
                        "support.constant.media",  
                        "constant.other.color.rgb-value",  
                        "constant.other.rgb-value",  
                        "support.constant.color"  
                    ],  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": [  
                        "support.type.vendored.property-name",  
                        "support.type.property-name",  
                        "variable.css",  
                        "variable.scss",  
                        "variable.other.less",  
                        "source.coffee.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#ff0000"  
                    }  
                },  
                {  
                    "scope": [  
                        "support.type.property-name.json"  
                    ],  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": "keyword",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "keyword.control",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "keyword.operator",  
                    "settings": {  
                        "foreground": "#bababa"  
                    }  
                },  
                {  
                    "scope": [  
                        "keyword.operator.new",  
                        "keyword.operator.expression",  
                        "keyword.operator.cast",  
                        "keyword.operator.sizeof",  
                        "keyword.operator.alignof",  
                        "keyword.operator.typeid",  
                        "keyword.operator.alignas",  
                        "keyword.operator.instanceof",  
                        "keyword.operator.logical.python",  
                        "keyword.operator.wordlike"  
                    ],  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "keyword.other.unit",  
                    "settings": {  
                        "foreground": "#098658"  
                    }  
                },  
                {  
                    "scope": [  
                        "punctuation.section.embedded.begin.php",  
                        "punctuation.section.embedded.end.php"  
                    ],  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "support.function.git-rebase",  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": "constant.sha.git-rebase",  
                    "settings": {  
                        "foreground": "#098658"  
                    }  
                },  
                {  
                    "scope": [  
                        "storage.modifier.import.java",  
                        "variable.language.wildcard.java",  
                        "storage.modifier.package.java"  
                    ],  
                    "settings": {  
                        "foreground": "#bfbfbf"  
                    }  
                },  
                {  
                    "scope": "variable.language",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                }  
            ]  
        }  
    },  
    "explorer.iconTheme": "vs-seti"  
}  
继续阅读 »

参照Jetbrains的Idea里暗色主题Darcula制作:

目前缺陷:右键弹出菜单颜色仍不统一
使用方法:复制代码->设置-源码视图->CtrlV->主题选择雅蓝
代码如下:

{  
    "theme-custom.author": "",  
    "theme-custom.name": "",  
    "theme-custom.version": "",  
    "theme-custom.date": "2023-8-23",  
    "editor.colorScheme": "Atom One Dark",  
    "workbench.colorCustomizations": {  
        "[Atom One Dark]": {  
            "button.background": "#45484A",  
            "button.foreground": "#a6a6a6",  
            "button.hoverBackground": "#808080",  
            "console.ad": "#666699",  
            "console.background": "#2B2B2B",  
            "console.error": "#ff3333",  
            "console.foreground": "#e6e6e6",  
            "console.success": "#99ff99",  
            "console.time": "#999999",  
            "console.warn": "#cccc00",  
            "debug.foreground": "#2B2B2B",  
            "editor.background": "#313335",  
            "editor.caret": "#b3b3b3",  
            "editor.caretLine": "#323232",  
            "editor.foreground": "#2B2B2B",  
            "editor.linenumber": "#a6a6a6",  
            "editor.selection": "#515c6a",  
            "editorGroup.border": "#545454",  
            "editorGroupHeader.tabsBackground": "#a6a6a6",  
            "extensionButton.border": "#a6a6a6",  
            "extensionButton.checkColor": "#ffffff",  
            "extensionButton.prominentBackground": "#4C5052",  
            "extensionButton.prominentForeground": "#cccccc",  
            "extensionButton.prominentHoverBackground": "#6f7576",  
            "focusBorder": "#d9d9d9",  
            "imageview.background": "#0d0d0d",  
            "imageview.foreground": "#1a1a1a",  
            "input.background": "#45494A",  
            "input.border": "#ffffff",  
            "input.foreground": "#a6a6a6",  
            "input.searchbar.foreground": "#a6a6a6",  
            "input.searchbar.foreground.notfinded": "#a6a6a6",  
            "inputList.border": "#45494A",  
            "inputList.hoverBackground": "#6f7576",  
            "inputList.titleColor": "#a6a6a6",  
            "inputOption.activeBorder": "#4B6EAF",  
            "inputValidation.infoBackground": "#45494A",  
            "list.activeSelectionBackground": "#4B6EAF",  
            "list.hoverBackground": "#0C273C",  
            "menubar.background": "#3C3F41",  
            "menubar.foreground": "#d0d0d0",  
            "notifications.background": "#313335",  
            "pathnavigator.pathnode.hoverbackground": "#3C3F41",  
            "scrollbarSlider.background": "#4F4F4F",  
            "scrollbarSlider.hoverBackground": "#6f7576",  
            "settings.dropdownBackground": "#3C3F41",  
            "settings.dropdownBorder": "#666666",  
            "settings.dropdownForeground": "#cccccc",  
            "settings.dropdownListBorder": "#3C3F41",  
            "settings.textInputBackground": "#45484A",  
            "settings.textInputBorder": "#666666",  
            "settings.textInputDisableBackground": "#262626",  
            "sideBar.background": "#3C3F41",  
            "sideBar.border": "#ffffff",  
            "statusBar.background": "#3C3F41",  
            "statusBar.button.hoverbackground": "#333333",  
            "statusBar.foreground": "#bfbfbf",  
            "tab.activeBackground": "#4E5254",  
            "tab.activeBorder": "#4E5254",  
            "tab.activeForeground": "#d9d9d9",  
            "tab.border": "#3C3F41",  
            "tab.hoverBackground": "#27292A",  
            "tab.inactiveBackground": "#3C3F41",  
            "tab.inactiveForeground": "#a6a6a6",  
            "terminal.background": "#2B2B2B",  
            "toolBar.background": "#4C5052",  
            "toolBar.border": "#737373",  
            "toolBar.hoverBackground": "#737373"  
        }  
    },  
    "editor.tokenColorCustomizations": {  
        "[Atom One Dark]": {  
            "rules": [  
                {  
                    "name": "Comment",  
                    "scope": [  
                        "comment"  
                    ],  
                    "settings": {  
                        "foreground": "#5C6370",  
                        "fontStyle": "italic"  
                    }  
                },  
                {  
                    "name": "Conditional Comment Keyword",  
                    "scope": "comment.conditional.keyword",  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Conditional Comment Defined",  
                    "scope": "comment.conditional.define",  
                    "settings": {  
                        "foreground": "#E06963",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Comment Markup Link",  
                    "scope": [  
                        "comment markup.link"  
                    ],  
                    "settings": {  
                        "foreground": "#5C6370"  
                    }  
                },  
                {  
                    "name": "Entity Name Type",  
                    "scope": [  
                        "entity.name.type"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Entity Other Inherited Class",  
                    "scope": [  
                        "entity.other.inherited-class"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "Keyword",  
                    "scope": [  
                        "keyword"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Keyword Control",  
                    "scope": [  
                        "keyword.control"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Keyword Operator",  
                    "scope": [  
                        "keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Keyword Other Special Method",  
                    "scope": [  
                        "keyword.other.special-method"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Keyword Other Unit",  
                    "scope": [  
                        "keyword.other.unit"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Storage",  
                    "scope": [  
                        "storage"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Storage Type Annotation,storage Type Primitive",  
                    "scope": [  
                        "storage.type.annotation",  
                        "storage.type.primitive"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Storage Modifier Package,storage Modifier Import",  
                    "scope": [  
                        "storage.modifier.package",  
                        "storage.modifier.import"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Constant",  
                    "scope": [  
                        "constant"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Constant Variable",  
                    "scope": [  
                        "constant.variable"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Constant Character Escape",  
                    "scope": [  
                        "constant.character.escape"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Constant Numeric",  
                    "scope": [  
                        "constant.numeric"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Constant Other Color",  
                    "scope": [  
                        "constant.other.color"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Constant Other Symbol",  
                    "scope": [  
                        "constant.other.symbol"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Variable",  
                    "scope": [  
                        "variable"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Variable Interpolation",  
                    "scope": [  
                        "variable.interpolation"  
                    ],  
                    "settings": {  
                        "foreground": "#BE5046"  
                    }  
                },  
                {  
                    "name": "Variable Parameter",  
                    "scope": [  
                        "variable.parameter"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "String",  
                    "scope": [  
                        "string"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "String Regexp",  
                    "scope": [  
                        "string.regexp"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "String Regexp Source Ruby Embedded",  
                    "scope": [  
                        "string.regexp source.ruby.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "String Other Link",  
                    "scope": [  
                        "string.other.link"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Punctuation Definition Comment",  
                    "scope": [  
                        "punctuation.definition.comment"  
                    ],  
                    "settings": {  
                        "foreground": "#858c99"  
                    }  
                },  
                {  
                    "name": "Punctuation Definition Method Parameters,punctuation Definition Function Parameters,punctuation Definition Parameters,punctuation Definition Separator,punctuation Definition Seperator,punctuation Definition Array",  
                    "scope": [  
                        "punctuation.definition.method-parameters",  
                        "punctuation.definition.function-parameters",  
                        "punctuation.definition.parameters",  
                        "punctuation.definition.separator",  
                        "punctuation.definition.seperator",  
                        "punctuation.definition.array"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Punctuation Definition Heading,punctuation Definition Identity",  
                    "scope": [  
                        "punctuation.definition.identity"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Punctuation Section Embedded",  
                    "scope": [  
                        "punctuation.section.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#BE5046"  
                    }  
                },  
                {  
                    "name": "Punctuation Section Method,punctuation Section Class,punctuation Section Inner Class",  
                    "scope": [  
                        "punctuation.section.method",  
                        "punctuation.section.class",  
                        "punctuation.section.inner-class"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Support Class",  
                    "scope": [  
                        "support.class"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Support Type",  
                    "scope": [  
                        "support.type"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Support Function",  
                    "scope": [  
                        "support.function"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Support Function Any Method",  
                    "scope": [  
                        "support.function.any-method"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Entity Name Function",  
                    "scope": [  
                        "entity.name.function"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Entity Name Class,entity Name Type Class",  
                    "scope": [  
                        "entity.name.class",  
                        "entity.name.type.class"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Entity Name Tag",  
                    "scope": [  
                        "entity.name.tag"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Entity Other Attribute Name",  
                    "scope": [  
                        "entity.other.attribute-name"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Entity Other Attribute Name Id",  
                    "scope": [  
                        "entity.other.attribute-name.id"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Meta Class",  
                    "scope": [  
                        "meta.class"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Meta Class Body",  
                    "scope": [  
                        "meta.class.body"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Meta Method Call,meta Method",  
                    "scope": [  
                        "meta.method-call",  
                        "meta.method"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Meta Definition Variable",  
                    "scope": [  
                        "meta.definition.variable"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Meta Link",  
                    "scope": [  
                        "meta.link"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Meta Require",  
                    "scope": [  
                        "meta.require"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Meta Selector",  
                    "scope": [  
                        "meta.selector"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Meta Separator",  
                    "scope": [  
                        "meta.separator"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Meta Tag",  
                    "scope": [  
                        "meta.tag"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "code block Styling",  
                    "scope": "markup.fenced_code.block.markdown",  
                    "settings": {  
                        "foreground": "#ABB2BF",  
                        "fontStyle": "italic|filled"  
                    }  
                },  
                {  
                    "name": "Markup Inline",  
                    "scope": "markup.inline.raw.string.markdown",  
                    "settings": {  
                        "fontStyle": "",  
                        "foreground": "#62A95D"  
                    }  
                },  
                {  
                    "name": "Underline",  
                    "scope": [  
                        "underline"  
                    ],  
                    "settings": {  
                        "text-decoration": "underline"  
                    }  
                },  
                {  
                    "name": "None",  
                    "scope": [  
                        "none"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Invalid Deprecated",  
                    "scope": [  
                        "invalid.deprecated"  
                    ],  
                    "settings": {  
                        "foreground": "#523D14",  
                        "background": "#E0C285"  
                    }  
                },  
                {  
                    "name": "Invalid Illegal",  
                    "scope": [  
                        "invalid.illegal"  
                    ],  
                    "settings": {  
                        "foreground": "white",  
                        "background": "#E05252"  
                    }  
                },  
                {  
                    "name": "Markup Styling",  
                    "scope": "markup.bold.markdown",  
                    "settings": {  
                        "foreground": "#A6ACBC",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Changed",  
                    "scope": [  
                        "markup.changed"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Markup Deleted",  
                    "scope": [  
                        "markup.deleted"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Markup Styling",  
                    "scope": "markup.italic.markdown",  
                    "settings": {  
                        "foreground": "#A6ACBC",  
                        "fontStyle": "italic"  
                    }  
                },  
                {  
                    "name": "Markup Heading",  
                    "scope": [  
                        "markup.heading"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Markup h1 bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.heading.h1.markdown punctuation.definition.heading.markdown entity.name.section.markdown markup.bold.markdown",  
                        "text.html.markdown markup.heading.h1.markdown punctuation.definition.heading.markdown entity.name.section.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#154431",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup h2 bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.heading.h2.markdown punctuation.definition.heading.markdown entity.name.section.markdown markup.bold.markdown",  
                        "text.html.markdown markup.heading.h2.markdown punctuation.definition.heading.markdown entity.name.section.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#DCB864",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup h3 bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.heading.h3.markdown entity.name.section.markdown markup.bold.markdown",  
                        "text.html.markdown markup.heading.h3.markdown entity.name.section.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#51ACCA",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup h4 bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.heading.h4.markdown entity.name.section.markdown markup.bold.markdown",  
                        "text.html.markdown markup.heading.h4.markdown entity.name.section.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#15936d",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Headings H1",  
                    "scope": "markup.heading.h1.markdown",  
                    "settings": {  
                        "foreground": "#E06C75",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Headings H2",  
                    "scope": "markup.heading.h2.markdown",  
                    "settings": {  
                        "foreground": "#DCB864",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Headings H3",  
                    "scope": "markup.heading.h3.markdown",  
                    "settings": {  
                        "foreground": "#51ACCA",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Headings H4",  
                    "scope": "markup.heading.h4.markdown",  
                    "settings": {  
                        "foreground": "#62C3CC",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup Link",  
                    "scope": [  
                        "markup.link"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Markup Inserted",  
                    "scope": [  
                        "markup.inserted"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "Markup Raw",  
                    "scope": [  
                        "markup.raw"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "List Start",  
                    "scope": "beginning.punctuation.definition.list.markdown",  
                    "settings": {  
                        "foreground": "#C2B178"  
                    }  
                },  
                {  
                    "name": "List Start",  
                    "scope": "beginning.punctuation.definition.numbered.list.markdown",  
                    "settings": {  
                        "foreground": "#D8839D"  
                    }  
                },  
                {  
                    "name": "Markup Lists Unnumbered",  
                    "scope": "markup.list.unnumbered.markdown",  
                    "settings": {  
                        "foreground": "#C2B178"  
                    }  
                },  
                {  
                    "name": "Markup Lists Numbered",  
                    "scope": "markup.list.numbered.markdown",  
                    "settings": {  
                        "foreground": "#D8839D"  
                    }  
                },  
                {  
                    "name": "Markup unnumbered list bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown markup.bold.markdown",  
                        "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#C2B178",  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "name": "Markup numbered list bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.list.numbered.markdown meta.paragraph.markdown markup.bold.markdown",  
                        "text.html.markdown markup.list.numbered.markdown meta.paragraph.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "fontStyle": "bold",  
                        "foreground": "#D8839D"  
                    }  
                },  
                {  
                    "name": "Markup txt bold Styling",  
                    "scope": [  
                        "text.html.markdown meta.paragraph.markdown markup.bold.markdown",  
                        "text.html.markdown meta.paragraph.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "fontStyle": "bold",  
                        "foreground": "#D8839D"  
                    }  
                },  
                {  
                    "name": "Markup quote bold Styling",  
                    "scope": [  
                        "text.html.markdown markup.quote.markdown meta.paragraph.markdown markup.bold.markdown",  
                        "text.html.markdown markup.quote.markdown meta.paragraph.markdown markup.bold.markdown punctuation.definition.bold.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#D8839D",  
                        "fontStyle": "bold|italic"  
                    }  
                },  
                {  
                    "name": "Source C Keyword Operator",  
                    "scope": [  
                        "source.c keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Cpp Keyword Operator",  
                    "scope": [  
                        "source.cpp keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Cs Keyword Operator",  
                    "scope": [  
                        "source.cs keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Css Property Name,source Css Property Value",  
                    "scope": [  
                        "source.css property-name",  
                        "source.css property-value"  
                    ],  
                    "settings": {  
                        "foreground": "#828997"  
                    }  
                },  
                {  
                    "name": "Source Css Property Name Support,source Css Property Value Support",  
                    "scope": [  
                        "source.css property-name.support",  
                        "source.css property-value.support"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Source Gfm Markup",  
                    "scope": [  
                        "source.gfm markup"  
                    ],  
                    "settings": {  
                        "-webkit-font-smoothing": "auto"  
                    }  
                },  
                {  
                    "name": "Source Gfm Link Entity",  
                    "scope": [  
                        "source.gfm link entity"  
                    ],  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "Source Go Storage Type String",  
                    "scope": [  
                        "source.go storage.type.string"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Ini Keyword Other Definition Ini",  
                    "scope": [  
                        "source.ini keyword.other.definition.ini"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Source Java Storage Modifier Import",  
                    "scope": [  
                        "source.java storage.modifier.import"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Source Java Storage Type",  
                    "scope": [  
                        "source.java storage.type"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "Source Java Keyword Operator Instanceof",  
                    "scope": [  
                        "source.java keyword.operator.instanceof"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Java Properties Meta Key Pair",  
                    "scope": [  
                        "source.java-properties meta.key-pair"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Source Java Properties Meta Key Pair > Punctuation",  
                    "scope": [  
                        "source.java-properties meta.key-pair > punctuation"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Source Js Keyword Operator",  
                    "scope": [  
                        "source.js keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Source Js Keyword Operator Delete,source Js Keyword Operator In,source Js Keyword Operator Of,source Js Keyword Operator Instanceof,source Js Keyword Operator New,source Js Keyword Operator Typeof,source Js Keyword Operator Void",  
                    "scope": [  
                        "source.js keyword.operator.delete",  
                        "source.js keyword.operator.in",  
                        "source.js keyword.operator.of",  
                        "source.js keyword.operator.instanceof",  
                        "source.js keyword.operator.new",  
                        "source.js keyword.operator.typeof",  
                        "source.js keyword.operator.void"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Json Meta Structure Dictionary Json > String Quoted Json",  
                    "scope": [  
                        "source.json meta.structure.dictionary.json > string.quoted.json"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Source Json Meta Structure Dictionary Json > String Quoted Json > Punctuation String",  
                    "scope": [  
                        "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "Source Json Meta Structure Dictionary Json > Value Json > String Quoted Json,source Json Meta Structure Array Json > Value Json > String Quoted Json,source Json Meta Structure Dictionary Json > Value Json > String Quoted Json > Punctuation,source Json Meta Structure Array Json > Value Json > String Quoted Json > Punctuation",  
                    "scope": [  
                        "source.json meta.structure.dictionary.json > value.json > string.quoted.json",  
                        "source.json meta.structure.array.json > value.json > string.quoted.json",  
                        "source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation",  
                        "source.json meta.structure.array.json > value.json > string.quoted.json > punctuation"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "Source Json Meta Structure Dictionary Json > Constant Language Json,source Json Meta Structure Array Json > Constant Language Json",  
                    "scope": [  
                        "source.json meta.structure.dictionary.json > constant.language.json",  
                        "source.json meta.structure.array.json > constant.language.json"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "Source Ruby Constant Other Symbol > Punctuation",  
                    "scope": [  
                        "source.ruby constant.other.symbol > punctuation"  
                    ],  
                    "settings": {  
                        "foreground": "inherit"  
                    }  
                },  
                {  
                    "name": "Source Python Keyword Operator Logical Python",  
                    "scope": [  
                        "source.python keyword.operator.logical.python"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "Source Python Variable Parameter",  
                    "scope": [  
                        "source.python variable.parameter"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "Meta Attribute Rust",  
                    "scope": [  
                        "meta.attribute.rust"  
                    ],  
                    "settings": {  
                        "foreground": "#BCC199"  
                    }  
                },  
                {  
                    "name": "Storage Modifier Lifetime Rust,entity Name Lifetime Rust",  
                    "scope": [  
                        "storage.modifier.lifetime.rust",  
                        "entity.name.lifetime.rust"  
                    ],  
                    "settings": {  
                        "foreground": "#33E8EC"  
                    }  
                },  
                {  
                    "name": "Keyword Unsafe Rust",  
                    "scope": [  
                        "keyword.unsafe.rust"  
                    ],  
                    "settings": {  
                        "foreground": "#CC6B73"  
                    }  
                },  
                {  
                    "name": "customrule",  
                    "scope": "customrule",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Support Type Property Name",  
                    "scope": "support.type.property-name",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Punctuation for Quoted String",  
                    "scope": "string.quoted.double punctuation",  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Support Constant",  
                    "scope": "support.constant",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JSON Property Name",  
                    "scope": "support.type.property-name.json",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JSON Punctuation for Property Name",  
                    "scope": "support.type.property-name.json punctuation",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation for key-value",  
                    "scope": [  
                        "punctuation.separator.key-value.ts",  
                        "punctuation.separator.key-value.js",  
                        "punctuation.separator.key-value.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Embedded Operator",  
                    "scope": [  
                        "source.js.embedded.html keyword.operator",  
                        "source.ts.embedded.html keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Variable Other Readwrite",  
                    "scope": [  
                        "variable.other.readwrite.js",  
                        "variable.other.readwrite.ts",  
                        "variable.other.readwrite.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Support Variable Dom",  
                    "scope": [  
                        "support.variable.dom.js",  
                        "support.variable.dom.ts"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Support Variable Property Dom",  
                    "scope": [  
                        "support.variable.property.dom.js",  
                        "support.variable.property.dom.ts"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Interpolation String Punctuation",  
                    "scope": [  
                        "meta.template.expression.js punctuation.definition",  
                        "meta.template.expression.ts punctuation.definition"  
                    ],  
                    "settings": {  
                        "foreground": "#BE5046"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation Type Parameters",  
                    "scope": [  
                        "source.ts punctuation.definition.typeparameters",  
                        "source.js punctuation.definition.typeparameters",  
                        "source.tsx punctuation.definition.typeparameters"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Definition Block",  
                    "scope": [  
                        "source.ts punctuation.definition.block",  
                        "source.js punctuation.definition.block",  
                        "source.tsx punctuation.definition.block"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation Separator Comma",  
                    "scope": [  
                        "source.ts punctuation.separator.comma",  
                        "source.js punctuation.separator.comma",  
                        "source.tsx punctuation.separator.comma"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Variable Property",  
                    "scope": [  
                        "support.variable.property.js",  
                        "support.variable.property.ts",  
                        "support.variable.property.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Default Keyword",  
                    "scope": [  
                        "keyword.control.default.js",  
                        "keyword.control.default.ts",  
                        "keyword.control.default.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Instanceof Keyword",  
                    "scope": [  
                        "keyword.operator.expression.instanceof.js",  
                        "keyword.operator.expression.instanceof.ts",  
                        "keyword.operator.expression.instanceof.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Of Keyword",  
                    "scope": [  
                        "keyword.operator.expression.of.js",  
                        "keyword.operator.expression.of.ts",  
                        "keyword.operator.expression.of.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Braces/Brackets",  
                    "scope": [  
                        "meta.brace.round.js",  
                        "meta.array-binding-pattern-variable.js",  
                        "meta.brace.square.js",  
                        "meta.brace.round.ts",  
                        "meta.array-binding-pattern-variable.ts",  
                        "meta.brace.square.ts",  
                        "meta.brace.round.tsx",  
                        "meta.array-binding-pattern-variable.tsx",  
                        "meta.brace.square.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation Accessor",  
                    "scope": [  
                        "source.js punctuation.accessor",  
                        "source.ts punctuation.accessor",  
                        "source.tsx punctuation.accessor"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation Terminator Statement",  
                    "scope": [  
                        "punctuation.terminator.statement.js",  
                        "punctuation.terminator.statement.ts",  
                        "punctuation.terminator.statement.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Array variables",  
                    "scope": [  
                        "meta.array-binding-pattern-variable.js variable.other.readwrite.js",  
                        "meta.array-binding-pattern-variable.ts variable.other.readwrite.ts",  
                        "meta.array-binding-pattern-variable.tsx variable.other.readwrite.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Support Variables",  
                    "scope": [  
                        "source.js support.variable",  
                        "source.ts support.variable",  
                        "source.tsx support.variable"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Support Variables",  
                    "scope": [  
                        "variable.other.constant.property.js",  
                        "variable.other.constant.property.ts",  
                        "variable.other.constant.property.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Keyword New",  
                    "scope": [  
                        "keyword.operator.new.ts",  
                        "keyword.operator.new.j",  
                        "keyword.operator.new.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] TS Keyword Operator",  
                    "scope": [  
                        "source.ts keyword.operator",  
                        "source.tsx keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Punctuation Parameter Separator",  
                    "scope": [  
                        "punctuation.separator.parameter.js",  
                        "punctuation.separator.parameter.ts",  
                        "punctuation.separator.parameter.tsx "  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Import",  
                    "scope": [  
                        "constant.language.import-export-all.js",  
                        "constant.language.import-export-all.ts"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JSX/TSX Import",  
                    "scope": [  
                        "constant.language.import-export-all.jsx",  
                        "constant.language.import-export-all.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Keyword Control As",  
                    "scope": [  
                        "keyword.control.as.js",  
                        "keyword.control.as.ts",  
                        "keyword.control.as.jsx",  
                        "keyword.control.as.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Variable Alias",  
                    "scope": [  
                        "variable.other.readwrite.alias.js",  
                        "variable.other.readwrite.alias.ts",  
                        "variable.other.readwrite.alias.jsx",  
                        "variable.other.readwrite.alias.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Constants",  
                    "scope": [  
                        "variable.other.constant.js",  
                        "variable.other.constant.ts",  
                        "variable.other.constant.jsx",  
                        "variable.other.constant.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Export Variable",  
                    "scope": [  
                        "meta.export.default.js variable.other.readwrite.js",  
                        "meta.export.default.ts variable.other.readwrite.ts"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Template Strings Punctuation Accessor",  
                    "scope": [  
                        "source.js meta.template.expression.js punctuation.accessor",  
                        "source.ts meta.template.expression.ts punctuation.accessor",  
                        "source.tsx meta.template.expression.tsx punctuation.accessor"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Import equals",  
                    "scope": [  
                        "source.js meta.import-equals.external.js keyword.operator",  
                        "source.jsx meta.import-equals.external.jsx keyword.operator",  
                        "source.ts meta.import-equals.external.ts keyword.operator",  
                        "source.tsx meta.import-equals.external.tsx keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Type Module",  
                    "scope": "entity.name.type.module.js,entity.name.type.module.ts,entity.name.type.module.jsx,entity.name.type.module.tsx",  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Meta Class",  
                    "scope": "meta.class.js,meta.class.ts,meta.class.jsx,meta.class.tsx",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Property Definition Variable",  
                    "scope": [  
                        "meta.definition.property.js variable",  
                        "meta.definition.property.ts variable",  
                        "meta.definition.property.jsx variable",  
                        "meta.definition.property.tsx variable"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Meta Type Parameters Type",  
                    "scope": [  
                        "meta.type.parameters.js support.type",  
                        "meta.type.parameters.jsx support.type",  
                        "meta.type.parameters.ts support.type",  
                        "meta.type.parameters.tsx support.type"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Meta Tag Keyword Operator",  
                    "scope": [  
                        "source.js meta.tag.js keyword.operator",  
                        "source.jsx meta.tag.jsx keyword.operator",  
                        "source.ts meta.tag.ts keyword.operator",  
                        "source.tsx meta.tag.tsx keyword.operator"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Meta Tag Punctuation",  
                    "scope": [  
                        "meta.tag.js punctuation.section.embedded",  
                        "meta.tag.jsx punctuation.section.embedded",  
                        "meta.tag.ts punctuation.section.embedded",  
                        "meta.tag.tsx punctuation.section.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Meta Array Literal Variable",  
                    "scope": [  
                        "meta.array.literal.js variable",  
                        "meta.array.literal.jsx variable",  
                        "meta.array.literal.ts variable",  
                        "meta.array.literal.tsx variable"  
                    ],  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Module Exports",  
                    "scope": [  
                        "support.type.object.module.js",  
                        "support.type.object.module.jsx",  
                        "support.type.object.module.ts",  
                        "support.type.object.module.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JSON Constants",  
                    "scope": [  
                        "constant.language.json"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Object Constants",  
                    "scope": [  
                        "variable.other.constant.object.js",  
                        "variable.other.constant.object.jsx",  
                        "variable.other.constant.object.ts",  
                        "variable.other.constant.object.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Properties Keyword",  
                    "scope": [  
                        "storage.type.property.js",  
                        "storage.type.property.jsx",  
                        "storage.type.property.ts",  
                        "storage.type.property.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Single Quote Inside Templated String",  
                    "scope": [  
                        "meta.template.expression.js string.quoted punctuation.definition",  
                        "meta.template.expression.jsx string.quoted punctuation.definition",  
                        "meta.template.expression.ts string.quoted punctuation.definition",  
                        "meta.template.expression.tsx string.quoted punctuation.definition"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS Backtick inside Templated String",  
                    "scope": [  
                        "meta.template.expression.js string.template punctuation.definition.string.template",  
                        "meta.template.expression.jsx string.template punctuation.definition.string.template",  
                        "meta.template.expression.ts string.template punctuation.definition.string.template",  
                        "meta.template.expression.tsx string.template punctuation.definition.string.template"  
                    ],  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] JS/TS In Keyword for Loops",  
                    "scope": [  
                        "keyword.operator.expression.in.js",  
                        "keyword.operator.expression.in.jsx",  
                        "keyword.operator.expression.in.ts",  
                        "keyword.operator.expression.in.tsx"  
                    ],  
                    "settings": {  
                        "foreground": "#C678DD"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Constants Other",  
                    "scope": "source.python constant.other",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Constants",  
                    "scope": "source.python constant",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Placeholder Character",  
                    "scope": "constant.character.format.placeholder.other.python storage",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Magic",  
                    "scope": "support.variable.magic.python",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Meta Function Parameters",  
                    "scope": "meta.function.parameters.python",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Function Separator Annotation",  
                    "scope": "punctuation.separator.annotation.python",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Python Function Separator Punctuation",  
                    "scope": "punctuation.separator.parameters.python",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Fields",  
                    "scope": "entity.name.variable.field.cs",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Keyword Operators",  
                    "scope": "source.cs keyword.operator",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Variables",  
                    "scope": "variable.other.readwrite.cs",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Variables Other",  
                    "scope": "variable.other.object.cs",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Property Other",  
                    "scope": "variable.other.object.property.cs",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Property",  
                    "scope": "entity.name.variable.property.cs",  
                    "settings": {  
                        "foreground": "#61AFEF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] CSharp Storage Type",  
                    "scope": "storage.type.cs",  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Rust Unsafe Keyword",  
                    "scope": "keyword.other.unsafe.rust",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Markdown Raw Block",  
                    "scope": "markup.raw.block.markdown",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Shell Variables Punctuation Definition",  
                    "scope": "punctuation.definition.variable.shell",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Css Support Constant Value",  
                    "scope": "support.constant.property-value.css",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Css Punctuation Definition Constant",  
                    "scope": "punctuation.definition.constant.css",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Sass Punctuation for key-value",  
                    "scope": "punctuation.separator.key-value.scss",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Sass Punctuation for constants",  
                    "scope": "punctuation.definition.constant.scss",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Sass Punctuation for key-value",  
                    "scope": "meta.property-list.scss punctuation.separator.key-value.scss",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Java Storage Type Primitive Array",  
                    "scope": "storage.type.primitive.array.java",  
                    "settings": {  
                        "foreground": "#E5C07B"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Markdown heading setext",  
                    "scope": "markup.heading.setext",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Markup Fenced_code",  
                    "scope": "markup.fenced_code.block.markdown",  
                    "settings": {  
                        "foreground": "#7388C1",  
                        "background": "#282C35",  
                        "fontStyle": "italic|filled"  
                    }  
                },  
                {  
                    "scope": [  
                        "meta.embedded",  
                        "source.groovy.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#7388C1"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Markdown Inline Raw",  
                    "scope": "markup.inline.raw.markdown",  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "Markup Quote",  
                    "scope": "markup.quote.markdown",  
                    "settings": {  
                        "foreground": "#B975D8",  
                        "fontStyle": "italic"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition String",  
                    "scope": [  
                        "punctuation.definition.string.begin.markdown",  
                        "punctuation.definition.string.end.markdown",  
                        "punctuation.definition.metadata.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Underline Link",  
                    "scope": "markup.underline.link.markdown",  
                    "settings": {  
                        "foreground": "#42B0DA"  
                    }  
                },  
                {  
                    "scope": "markup.underline.link.image.markdown",  
                    "settings": {  
                        "foreground": "#F1A36C"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Markdown Link Title/Description",  
                    "scope": [  
                        "string.other.link.title.markdown",  
                        "string.other.link.description.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#56B6C2"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Ruby Punctuation Separator Variable",  
                    "scope": "punctuation.separator.variable.ruby",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Ruby Other Constant Variable",  
                    "scope": "variable.other.constant.ruby",  
                    "settings": {  
                        "foreground": "#D19A66"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] Ruby Keyword Operator Other",  
                    "scope": "keyword.operator.other.ruby",  
                    "settings": {  
                        "foreground": "#98C379"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] PHP Punctuation Variable Definition",  
                    "scope": "punctuation.definition.variable.php",  
                    "settings": {  
                        "foreground": "#E06C75"  
                    }  
                },  
                {  
                    "name": "[VSCODE-CUSTOM] PHP Meta Class",  
                    "scope": "meta.class.php",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "unquoted",  
                    "scope": "string.unquoted.label",  
                    "settings": {  
                        "foreground": "#ABB2BF"  
                    }  
                },  
                {  
                    "name": "Text Styling Vue",  
                    "scope": [  
                        "text.html.vue"  
                    ],  
                    "settings": {  
                        "foreground": "#9FB2BF"  
                    }  
                },  
                {  
                    "name": "Text Styling Vue Comment",  
                    "scope": [  
                        "comment.block"  
                    ],  
                    "settings": {  
                        "foreground": "#858c99"  
                    }  
                },  
                {  
                    "name": "Text Styling Vue Comment Line",  
                    "scope": [  
                        "comment.line.double-slash"  
                    ],  
                    "settings": {  
                        "foreground": "#858c99"  
                    }  
                }  
            ]  
        },  
        "[Default]": {  
            "rules": [  
                {  
                    "scope": [  
                        "support.class",  
                        "support.type"  
                    ],  
                    "settings": {  
                        "foreground": "#0074e8"  
                    }  
                },  
                {  
                    "scope": [  
                        "meta.embedded",  
                        "source.groovy.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#cbcbcbff"  
                    }  
                },  
                {  
                    "scope": "emphasis",  
                    "settings": {  
                        "fontStyle": "italic"  
                    }  
                },  
                {  
                    "scope": "strong",  
                    "settings": {  
                        "fontStyle": "bold"  
                    }  
                },  
                {  
                    "scope": "meta.diff.header",  
                    "settings": {  
                        "foreground": "#000080"  
                    }  
                },  
                {  
                    "scope": "comment",  
                    "settings": {  
                        "foreground": "#008000"  
                    }  
                },  
                {  
                    "scope": "constant.language",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": [  
                        "constant.numeric",  
                        "variable.other.enummember",  
                        "keyword.operator.plus.exponent",  
                        "keyword.operator.minus.exponent"  
                    ],  
                    "settings": {  
                        "foreground": "#098658"  
                    }  
                },  
                {  
                    "scope": "constant.regexp",  
                    "settings": {  
                        "foreground": "#811f3f"  
                    }  
                },  
                {  
                    "name": "css tags in selectors, xml tags",  
                    "scope": "entity.name.tag",  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "entity.name.selector",  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "entity.other.attribute-name",  
                    "settings": {  
                        "foreground": "#ff0000"  
                    }  
                },  
                {  
                    "scope": [  
                        "entity.other.attribute-name.class.css",  
                        "entity.other.attribute-name.class.mixin.css",  
                        "entity.other.attribute-name.id.css",  
                        "entity.other.attribute-name.parent-selector.css",  
                        "entity.other.attribute-name.pseudo-class.css",  
                        "entity.other.attribute-name.pseudo-element.css",  
                        "source.css.less entity.other.attribute-name.id",  
                        "entity.other.attribute-name.scss"  
                    ],  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "invalid",  
                    "settings": {  
                        "foreground": "#cd3131"  
                    }  
                },  
                {  
                    "scope": "markup.underline",  
                    "settings": {  
                        "fontStyle": "underline"  
                    }  
                },  
                {  
                    "scope": "markup.bold",  
                    "settings": {  
                        "fontStyle": "bold",  
                        "foreground": "#000080"  
                    }  
                },  
                {  
                    "scope": "markup.heading",  
                    "settings": {  
                        "fontStyle": "bold",  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "markup.italic",  
                    "settings": {  
                        "fontStyle": "italic"  
                    }  
                },  
                {  
                    "scope": "markup.inserted",  
                    "settings": {  
                        "foreground": "#098658"  
                    }  
                },  
                {  
                    "scope": "markup.deleted",  
                    "settings": {  
                        "foreground": "#a31515"  
                    }  
                },  
                {  
                    "scope": "markup.changed",  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": [  
                        "punctuation.definition.quote.begin.markdown",  
                        "punctuation.definition.list.begin.markdown"  
                    ],  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": "markup.inline.raw",  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "punctuation.definition.tag",  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": [  
                        "meta.preprocessor",  
                        "entity.name.function.preprocessor"  
                    ],  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "meta.preprocessor.string",  
                    "settings": {  
                        "foreground": "#a31515"  
                    }  
                },  
                {  
                    "scope": "meta.preprocessor.numeric",  
                    "settings": {  
                        "foreground": "#098658"  
                    }  
                },  
                {  
                    "scope": "meta.structure.dictionary.key.python",  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": "storage",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "storage.type",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": [  
                        "storage.modifier",  
                        "keyword.operator.noexcept"  
                    ],  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": [  
                        "string",  
                        "meta.embedded.assembly"  
                    ],  
                    "settings": {  
                        "foreground": "#a31515"  
                    }  
                },  
                {  
                    "scope": [  
                        "string.comment.buffered.block.pug",  
                        "string.quoted.pug",  
                        "string.interpolated.pug",  
                        "string.unquoted.plain.in.yaml",  
                        "string.unquoted.plain.out.yaml",  
                        "string.unquoted.block.yaml",  
                        "string.quoted.single.yaml",  
                        "string.quoted.double.xml",  
                        "string.quoted.single.xml",  
                        "string.unquoted.cdata.xml",  
                        "string.quoted.double.html",  
                        "string.quoted.single.html",  
                        "string.unquoted.html",  
                        "string.quoted.single.handlebars",  
                        "string.quoted.double.handlebars"  
                    ],  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "string.regexp",  
                    "settings": {  
                        "foreground": "#811f3f"  
                    }  
                },  
                {  
                    "scope": [  
                        "punctuation.definition.template-expression.begin",  
                        "punctuation.definition.template-expression.end",  
                        "punctuation.section.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": [  
                        "meta.template.expression"  
                    ],  
                    "settings": {  
                        "foreground": "#f9f9f9"  
                    }  
                },  
                {  
                    "scope": [  
                        "support.constant.property-value",  
                        "support.constant.font-name",  
                        "support.constant.media-type",  
                        "support.constant.media",  
                        "constant.other.color.rgb-value",  
                        "constant.other.rgb-value",  
                        "support.constant.color"  
                    ],  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": [  
                        "support.type.vendored.property-name",  
                        "support.type.property-name",  
                        "variable.css",  
                        "variable.scss",  
                        "variable.other.less",  
                        "source.coffee.embedded"  
                    ],  
                    "settings": {  
                        "foreground": "#ff0000"  
                    }  
                },  
                {  
                    "scope": [  
                        "support.type.property-name.json"  
                    ],  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": "keyword",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "keyword.control",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "keyword.operator",  
                    "settings": {  
                        "foreground": "#bababa"  
                    }  
                },  
                {  
                    "scope": [  
                        "keyword.operator.new",  
                        "keyword.operator.expression",  
                        "keyword.operator.cast",  
                        "keyword.operator.sizeof",  
                        "keyword.operator.alignof",  
                        "keyword.operator.typeid",  
                        "keyword.operator.alignas",  
                        "keyword.operator.instanceof",  
                        "keyword.operator.logical.python",  
                        "keyword.operator.wordlike"  
                    ],  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                },  
                {  
                    "scope": "keyword.other.unit",  
                    "settings": {  
                        "foreground": "#098658"  
                    }  
                },  
                {  
                    "scope": [  
                        "punctuation.section.embedded.begin.php",  
                        "punctuation.section.embedded.end.php"  
                    ],  
                    "settings": {  
                        "foreground": "#800000"  
                    }  
                },  
                {  
                    "scope": "support.function.git-rebase",  
                    "settings": {  
                        "foreground": "#0451a5"  
                    }  
                },  
                {  
                    "scope": "constant.sha.git-rebase",  
                    "settings": {  
                        "foreground": "#098658"  
                    }  
                },  
                {  
                    "scope": [  
                        "storage.modifier.import.java",  
                        "variable.language.wildcard.java",  
                        "storage.modifier.package.java"  
                    ],  
                    "settings": {  
                        "foreground": "#bfbfbf"  
                    }  
                },  
                {  
                    "scope": "variable.language",  
                    "settings": {  
                        "foreground": "#0000ff"  
                    }  
                }  
            ]  
        }  
    },  
    "explorer.iconTheme": "vs-seti"  
}  
收起阅读 »

【解决】video在andriod真机上抛出错误,黑屏无法播放;部分视频可以播放,部分不可以播放

Android video

解决参考:https://ask.dcloud.net.cn/question/110334里“鸡排饭加个蛋”的评论。

解决方法:
使用uni.downloadFile,先把后端返回的视频地址下载到本地;
video标签上的src使用uni.downloadFile返回的tempFilePath就解决不显示问题。

报错:

{  
"type": "error",  
"timeStamp": 0,  
"target": {  
"offsetTop": 0,  
"dataset": {},  
"offsetLeft": 0,  
"id": ""  
},  
"currentTarget": {  
"offsetTop": 0,  
"dataset": {},  
"offsetLeft": 0,  
"id": ""  
},  
"detail": {},  
"mp": {  
"@warning": "mp is deprecated",  
"type": "error",  
"timeStamp": 0,  
"target": {  
"offsetTop": 0,  
"dataset": {},  
"offsetLeft": 0,  
"id": ""  
},  
"currentTarget": {  
"offsetTop": 0,  
"dataset": {},  
"offsetLeft": 0,  
"id": ""  
},  
"detail": {}  
},  
"_processed": true  
}

↓↓↓ 各位大佬点点赞

继续阅读 »

解决参考:https://ask.dcloud.net.cn/question/110334里“鸡排饭加个蛋”的评论。

解决方法:
使用uni.downloadFile,先把后端返回的视频地址下载到本地;
video标签上的src使用uni.downloadFile返回的tempFilePath就解决不显示问题。

报错:

{  
"type": "error",  
"timeStamp": 0,  
"target": {  
"offsetTop": 0,  
"dataset": {},  
"offsetLeft": 0,  
"id": ""  
},  
"currentTarget": {  
"offsetTop": 0,  
"dataset": {},  
"offsetLeft": 0,  
"id": ""  
},  
"detail": {},  
"mp": {  
"@warning": "mp is deprecated",  
"type": "error",  
"timeStamp": 0,  
"target": {  
"offsetTop": 0,  
"dataset": {},  
"offsetLeft": 0,  
"id": ""  
},  
"currentTarget": {  
"offsetTop": 0,  
"dataset": {},  
"offsetLeft": 0,  
"id": ""  
},  
"detail": {}  
},  
"_processed": true  
}

↓↓↓ 各位大佬点点赞

收起阅读 »