开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
2 Star 3 Fork 0

gitone-dev/gitone

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
develop
分支 (1)
develop
develop
分支 (1)
develop
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
develop
分支 (1)
develop
DiffLine.ts 3.44 KB
一键复制 编辑 原始数据 按行查看 历史
ceshiyixiaba 提交于 2024年01月05日 21:31 +08:00 . 访问仓数据
import { Change } from "diff";
import { IThemedToken } from "shiki";
import { DiffLine as DiffLineProto } from "../generated/highlight/DiffLine";
import { FormattedString, applyFormatting } from "./FormattedString";
import { ThemeColor } from "./ThemeColor";
export type DiffLineType = "UNKNOWN" | "ADD" | "DELETE" | "MATCH" | "META";
export interface RawDiffLine {
index?: number;
type?: DiffLineType;
oldNumber?: number;
newNumber?: number;
text: string;
html: string;
}
export class DiffLine {
private _index: number;
private _type: DiffLineType;
private _oldNumber: number;
private _newNumber: number;
private _text: string;
private _formattedText: FormattedString;
private _tokens: IThemedToken[];
private _changes: Change[];
constructor(
index: number,
type: DiffLineType,
oldNumber: number,
newNumber: number,
text: string,
tokens: IThemedToken[],
) {
this._index = index;
this._type = type;
this._oldNumber = oldNumber;
this._newNumber = newNumber;
this._text = text;
this._formattedText = new FormattedString().appendString(text);
this._tokens = tokens;
this._changes = [];
}
get type(): DiffLineType {
return this._type;
}
get text(): string {
return this._text;
}
get formattedText(): FormattedString {
return this._formattedText;
}
get tokens(): IThemedToken[] {
return this._tokens;
}
get changes(): Change[] {
return this._changes;
}
set changes(changes: Change[]) {
this._changes = changes;
}
static from(line: DiffLineProto, tokens: IThemedToken[]): DiffLine {
const index = line.index || 0;
const type = (line.type as DiffLineType) || "UNKNOWN";
const oldNumber = line.oldNumber || 0;
const newNumber = line.newNumber || 0;
const text = line.text || "";
return new DiffLine(index, type, oldNumber, newNumber, text, tokens);
}
to(): DiffLineProto {
const html = applyFormatting(this.formattedText);
return {
index: this._index,
type: this._type,
oldNumber: this._oldNumber,
newNumber: this._newNumber,
text: this._text,
html: html,
};
}
highlight(): void {
this.highlightChanges();
this.highlightSyntax();
}
private highlightChanges(): void {
if (!this._changes) return;
let wordColor: ThemeColor;
switch (this._type) {
case "DELETE":
wordColor = { color: "sk-del" };
break;
case "ADD":
wordColor = { color: "sk-add" };
break;
default:
wordColor = {}; // This is actually not used
break;
}
let lineIndex = 0;
for (const change of this._changes) {
// Skip changes that would not be present in the line
if (change.removed && this._type === "ADD") {
continue;
}
if (change.added && this._type === "DELETE") {
continue;
}
if (change.removed || change.added) {
this.formattedText.addSpan(
lineIndex,
lineIndex + change.value.length,
wordColor,
);
}
lineIndex += change.value.length;
}
}
private highlightSyntax(): void {
if (this._type === "META") return;
let index = 0;
for (const { content, color, fontStyle } of this._tokens) {
if (color || fontStyle) {
this._formattedText.addSpan(index, index + content.length, {
color,
fontStyle,
});
}
if (content) index += content.length;
}
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

Git 代码管理平台
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/gitone-dev/gitone.git
git@gitee.com:gitone-dev/gitone.git
gitone-dev
gitone
gitone
develop
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /