洛谷 C 和 C++ 代码 DEV-C++ 主题

· · 科技·工程

你是否想在洛谷再次看到 DEV-C++ 的经典代码高亮?

那就试试这个脚本!(脚本请根据其它类似文章安装。)

默认只更改 C 和 C++,其它的请见下方 FAQ。

其实之前早做好了。

这是测试链接。

:::success[效果图]{open} :::

:::info[更新日志] 时间 版本 备注
2025/7/25 v1.1 没想到洛谷变量默认是灰色的……没看清。
^ v1 第一版代码。

:::

代码

因为应该不会更新很多次,故不在其他地方更新代码,以后就在这里更新。

:::warning[注意]{open} 不保证洛谷以后不会再换渲染引擎,换了很可能会失效。 :::

// ==UserScript==
// @name        洛谷 C 和 C++ 代码 DEV-C++ 主题
// @namespace   https://www.luogu.com.cn/user/576074
// @license     SATA
// @version     1.1
// @description 使得洛谷 C 和 C++ 代码变成 DEV-C++ 的主题。
// @author      123asdf123
// @match       *://www.luogu.com.cn/*
// @icon        https://payment.luogu.com.cn/favicon.ico
// @grant       none
// ==/UserScript==
const onlycpp=1;
var sty=document.createElement('style');
function upd(){
    if(document.getElementById("LuoguDEVCppStyleCode")==null){
        document.body.appendChild(sty);
    }
}
(function(){
    'use strict';
    sty.id="LuoguDEVCppStyleCode";
    if(onlycpp){
    sty.innerHTML=
`/*dev-c++ classic plus style code*/
code.language-cpp span.token.macro.property span{
    color:green;
    font-weight: normal;
}
code.language-cpp span.token.boolean,
code.language-cpp span.token.keyword{
    color:black;
    font-weight: bold;
}
code.language-cpp,
code.language-cpp span.token.constant,
code.language-cpp span.token.class-name,
code.language-cpp span.token.function,
code.language-cpp span.token.char{
    color:black;
    font-weight: normal;
}
code.language-cpp span.token.number{
    color:purple;
}
code.language-cpp span.token.string{
    color:blue;
    font-weight: bold;
}
code.language-cpp span.token.punctuation,
code.language-cpp span.token.operator{
    color:red;
    font-weight: bold;
}
code.language-cpp span.token.comment{
    color:rgb(0, 120, 215);
    font-style: italic;
}

code.language-c span.token.macro.property span{
    color:green;
    font-weight: normal;
}
code.language-c span.token.boolean,
code.language-c span.token.keyword{
    color:black;
    font-weight: bold;
}
code.language-c,
code.language-c span.token.constant,
code.language-c span.token.class-name,
code.language-c span.token.function,
code.language-c span.token.char{
    color:black;
    font-weight: normal;
}
code.language-c span.token.number{
    color:purple;
}
code.language-c span.token.string{
    color:blue;
    font-weight: bold;
}
code.language-c span.token.punctuation,
code.language-c span.token.operator{
    color:red;
    font-weight: bold;
}
code.language-c span.token.comment{
    color:rgb(0, 120, 215);
    font-style: italic;
}
`;
    }
    else{
    sty.innerHTML=
`/*dev-c++ classic plus style code*/
span.token.macro.property span{
    color:green;
    font-weight: normal;
}
span.token.boolean,
span.token.keyword{
    color:black;
    font-weight: bold;
}
code,
span.token.constant,
span.token.class-name,
span.token.function,
span.token.char{
    color:black;
    font-weight: normal;
}
span.token.number{
    color:purple;
}
span.token.string{
    color:blue;
    font-weight: bold;
}
span.token.punctuation,
span.token.operator{
    color:red;
    font-weight: bold;
}
span.token.comment{
    color:rgb(0, 120, 215);
    font-style: italic;
}
`;
    }
    setInterval(upd,50);
})();

FAQ

:::info[为什么写成脚本而不是直接放 CSS?]{open} 因为我没装 Stylus……而且脚本也更适应动态刷新的界面。 ::: :::info[我想其他语言也用 DEV 的高亮]{open} 更改上方高亮的代码为 onlycpp=0; 即可。

但效果很不好,我也懒得改,不建议使用! :::

:::info[为什么之前没有这个脚本]{open} 因为就在今天,洛谷把代码渲染引擎改为了 prismjs,它的划分更细,才方便操控。

之前的渲染引擎把不高亮的 <<a<<b; 缩在一起,我不想重头开始手搓代码渲染引擎。 ::: :::error[有 BUG]{open} 欢迎反馈!会及时在这里更新! :::