Skip to content

Add support for multiple programming languages and Git features#104

Merged
qianmoQ merged 53 commits into
devlive-community:devfrom
qianmoQ:dev-26.1.0
Jun 18, 2026
Merged

Add support for multiple programming languages and Git features#104
qianmoQ merged 53 commits into
devlive-community:devfrom
qianmoQ:dev-26.1.0

Conversation

@qianmoQ

@qianmoQ qianmoQ commented Jun 17, 2026

Copy link
Copy Markdown
Member

No description provided.

qianmoQ added 30 commits June 17, 2026 11:06
- 后端插件 plugins/dart.rs:dart run $filename,扩展名 dart,console 输出
- 注册 plugins/mod.rs 与 manager.rs(前端语言下拉/扩展名探测自动生成)
- CodeMirror 高亮复用 legacy-modes clike 的 dart 流式解析
- LSP:server_cmd/server_defs 接入 dart language-server(随 Dart SDK 提供)
  及前端 lspExtension 的 LANGUAGE_ID/LANGUAGE_EXT
- 新增图标 public/icons/dart.svg
- 后端插件 plugins/perl.rs:perl $filename,扩展名 pl,console 输出
- 注册 plugins/mod.rs 与 manager.rs(语言下拉/扩展名探测自动生成)
- CodeMirror 高亮复用 legacy-modes 的 perl 流式解析
- 新增图标 public/icons/perl.svg(社区洋葱符号),README 支持语言补充 Perl
- 暂不接 LSP(无干净的单二进制 server,按约定自动回退高亮+AI 预测)
- 后端插件 plugins/julia.rs:julia $filename,扩展名 jl,console 输出
- 注册 plugins/mod.rs 与 manager.rs(语言下拉/扩展名探测自动生成)
- CodeMirror 高亮复用 legacy-modes 的 julia 流式解析
- 新增图标 public/icons/julia.svg(三色圆点),README 支持语言补充 Julia
- 暂不接 LSP(LanguageServer.jl 启动复杂,按约定自动回退高亮+AI 预测)
- 后端插件 plugins/vue.rs:console_type web,CDN 引入 Vue 3 全局构建,
  用户代码用 Vue.createApp(...).mount('#app') 在浏览器内运行时渲染
- 无本机依赖(get_path_command 用 "--",与 HTML 一致),始终可运行
- 注册 mod.rs/manager.rs,高亮复用 javascript(),新增图标 public/icons/vue.svg
- README 支持语言补充 Vue
- 不走 SFC 编译:WebOutput 内联 file:// 脚本会剥离 type 属性,故用纯 JS 全局构建最稳
- 点击带下级(childrenNum>0)的区域,按 adcode 加载下一级边界并切换地图
- 基础 china/world 仍走本地离线 json;省/市级按 adcode 联网取 DataV GeoAtlas,
  会话内缓存已注册地图,离线或失败时 toast 提示并停留当前级
- 左上角「返回上级」按钮按面包屑逐级回退;切换 china↔world 自动重置层级
- 仅中国地图体系下钻(world 不下钻);新增 chart.mapBack/mapLoadFailed 文案
- 新增后端命令 fetch_area_geojson(adcode):优先读 ~/.codeforge/cache/geo/<adcode>.json,
  缺失时 reqwest 拉 DataV GeoAtlas 并落盘;adcode 仅允许纯数字,防路径注入
- MapChart 省/市级改走该命令(替代前端直接 fetch),首次联网后即可离线下钻
- 注册 main.rs 的 mod/use/invoke_handler
- DataSource/DbConnection 增加 ssl 与 ssh* 字段;db_connections 表加列并懒迁移旧表
- 新增 db/tunnel.rs:用系统 OpenSSH 的 ssh -L 本地端口转发(私钥/sshpass 密码/agent),
  转发与并发交给 OpenSSH,零原生依赖;解析端点时按需开隧道,run 结束自动关闭
- Postgres 走 postgres-native-tls、MySQL 走 rustls SslOpts、ClickHouse 改 https;
  SSH 隧道下统一连本地转发端口
- Database.vue 表单增加 SSL 开关与 SSH 隧道配置(主机/端口/用户/密码/私钥选择)
- 新增依赖 native-tls、postgres-native-tls
- 后端插件 plugins/powershell.rs:pwsh -File $filename,扩展名 ps1,console 输出
- 注册 mod.rs/manager.rs,高亮复用 legacy-modes 的 powerShell
- 新增图标 public/icons/powershell.svg(蓝底 >_),README 支持语言补充 PowerShell
- 后端插件 plugins/ocaml.rs:ocaml $filename,扩展名 ml,console 输出
- 注册 mod.rs/manager.rs,高亮复用 legacy-modes mllike 的 oCaml
- LSP:server_cmd/server_defs 接入 ocamllsp(opam install ocaml-lsp-server),
  前端 lspExtension 补 LANGUAGE_ID/LANGUAGE_EXT
- 新增图标 public/icons/ocaml.svg(橙底白峰),README 支持语言补充 OCaml
- 后端插件 plugins/tcl.rs:tclsh $filename,扩展名 tcl,console 输出
- 注册 mod.rs/manager.rs,高亮复用 legacy-modes 的 tcl
- 新增图标 public/icons/tcl.svg,README 支持语言补充 Tcl
- 后端插件 plugins/fsharp.rs:dotnet fsi $filename,扩展名 fsx,console 输出
- 注册 mod.rs/manager.rs,高亮复用 legacy-modes mllike 的 fSharp
- 新增图标 public/icons/fsharp.svg,README 支持语言补充 F#
- 后端插件 plugins/crystal.rs:crystal run $filename,扩展名 cr,console 输出
- 注册 mod.rs/manager.rs,高亮复用 legacy-modes 的 crystal
- 新增图标 public/icons/crystal.svg(黑底白宝石),README 支持语言补充 Crystal
- 后端插件 plugins/erlang.rs:escript $filename(含 main/1),扩展名 erl,console 输出
- 注册 mod.rs/manager.rs,高亮复用 legacy-modes 的 erlang
- 新增图标 public/icons/erlang.svg,README 支持语言补充 Erlang
- 后端插件 plugins/d.rs:rdmd $filename(编译并运行单文件),扩展名 d,console 输出
- 注册 mod.rs/manager.rs,高亮复用 legacy-modes 的 d
- 新增图标 public/icons/d.svg,README 支持语言补充 D
- Common Lisp:sbcl --script,扩展名 lisp;Scheme:guile,扩展名 scm;Pascal:instantfpc,扩展名 pas
- 均 console 输出,注册 mod.rs/manager.rs,高亮复用 legacy-modes 的 commonLisp/scheme/pascal
- 新增图标(λ 区分 Lisp/Scheme 配色、Pascal 字母标),README 支持语言同步
- 后端 git_pull(pull)、git_fetch(fetch --all --prune)命令并注册
- GitPanel 头部加「抓取」图标按钮、操作行加「拉取(↓N)」按钮,带 loading 与 toast
- 新增 git.pull/fetch/pulled/fetchFailed 等双语文案
- 文件行新增「查看改动」按钮,取 git_file_head 与工作区内容交 DiffView 对比
- 已删除/二进制文件工作区内容按空处理;新增 git.viewDiff/diffTitle/diffSubtitle 文案
- 后端 git_discard:已跟踪文件 restore --source=HEAD --staged --worktree 恢复到 HEAD
- GitPanel 文件行加「丢弃改动」按钮 + 确认弹窗;未跟踪文件丢弃即删除(delete_path)
- 新增 git.discard/discardConfirm/discarded 等双语文案
- 后端 git_log(分页,\x1f 分隔字段)、git_show(含 stat 的补丁,超长截断)
- 新增 GitLog.vue:左侧提交列表(无限滚动)+右侧补丁着色预览(+/-/@@ 行高亮)
- GitPanel 头部加「提交历史」按钮打开;新增 git.history/loadMore/allLoaded 等文案
- 后端 git_stash_list/push(--include-untracked)/pop/drop 命令并注册
- 新增 GitStash.vue:储藏当前改动 + 列表(弹出/删除),pop 后通知 GitPanel 刷新
- GitPanel 头部加「储藏」按钮;新增 git.stash* 双语文案
- 后端 git_branch_create(checkout -b)、git_branch_delete(branch -d)、git_merge(--no-edit)
- GitPanel 头部加分支管理弹层:新建分支输入、逐分支「合并到当前/删除」、点击切换
- 新增 git.newBranch/mergeInto/deleteBranch 等双语文案
- git_commit 增加 amend 参数:amend 且信息为空时 --amend --no-edit 保留原信息,否则 --amend -m
- GitPanel 提交区加「修正上次提交」勾选;amend 时放宽提交校验(允许仅改信息)
- 新增 git.amend 双语文案
- 后端 git_blame:解析 --line-porcelain 为逐行 短哈希/作者/日期/内容(自带 epoch 转日期)
- 新增 BlameView.vue:逐行展示 提交·作者·日期 + 行号 + 内容
- App 编辑器右键菜单加「Git Blame」(已打开文件夹内的文件可用,非 LSP 文件也可触发)
- 新增 git.blame/blameTitle/blameFailed 双语文案
- 后端 git_revert(--no-edit 生成反向提交)、git_reset(soft/mixed/hard)
- GitLog 每条提交悬浮加「还原/重置」;重置弹确认选 soft/mixed/hard 并提示硬重置风险
- 操作后重载列表并通知 GitPanel 刷新;新增 git.revert/reset* 双语文案
- 后端 git_tags(按创建时间倒序)、git_tag_create(hash 为空打在 HEAD)、git_tag_delete
- 新增 GitTags.vue:在 HEAD 打标签 + 列表删除;GitPanel 头部加「标签」按钮
- GitLog 每条提交加「标签」动作,弹窗输入名在该提交打标签
- 新增 git.tag/tagTitle/tagCreated 等双语文案
- 后端 git_remotes(解析 remote -v 的 fetch 行)、git_remote_add/remove、git_set_upstream
- 新增 GitRemotes.vue:列表 + 添加/删除远程 + 为当前分支「设为上游」
- GitPanel 头部加「远程」按钮(传入当前分支);新增 git.remote* 双语文案
- 识别未合并状态(任一侧 U,或 AA/DD),单列「冲突」分区,从暂存/更改区排除
- 每个冲突文件提供「标记已解决」(git add) 与打开;新增 git.conflicts/resolve/resolved 文案
git@… 中的 @ 被 vue-i18n 当作链接消息语法解析,导致 GitRemotes 渲染时
"Invalid linked format" 崩溃。改用字面插值 {'@'} 输出字面量 @。
- 后端 git_log_file(--follow,按文件分页)
- GitLog 支持 relPath/fileName,按文件过滤并在标题显示文件名
- App 编辑器右键菜单加「文件历史」,复用 GitLog 展示当前文件历史
- 新增 git.fileHistory 双语文案
qianmoQ added 23 commits June 18, 2026 09:21
- Sidebar 右键菜单按对象与 git 状态追加 Git 操作:改动文件可 暂存/取消暂存/查看改动/丢弃;
  任意文件可 Blame/文件历史;目录可暂存整目录;任意项可复制路径
- 复用 git_stage/unstage/discard/file_head/blame/log_file 命令,侧栏内渲染 DiffView/BlameView/GitLog 与丢弃确认
- 未跟踪文件丢弃即删除;操作后 emit git-refresh,App 增 gitRepo 标志并刷新徽标
- 复用 git.* 文案,新增 stageFile/unstageFile/stageDir/copyPath 等
- 后端 git_init(在目录初始化仓库)、git_ignore_add(追加模式到 .gitignore,去重)
- Sidebar:非仓库目录右键「初始化 Git 仓库」;仓库内文件右键「加入 .gitignore」
- 操作后 emit git-refresh 刷新状态;新增 git.init/ignore 等双语文案
- 后端 git_clone(克隆到所选目录,按 URL 推断仓库目录名并返回路径)
- Sidebar 未打开文件夹时提供「克隆仓库」:输入 URL → 选目录 → 克隆 → 自动打开
- URL 占位符中的 @ 用 {'@'} 转义;新增 git.clone* 双语文案
echarts .on('click') 类型要求处理器返回 boolean|void,但下钻用的是 async(返回 Promise)。
包一层 (params)=>{ void onMapClick(params) } 触发并忽略 Promise,修复 pnpm build 的 TS2345。
- 后端 git_branch_rename(branch -m old new)
- GitPanel 分支弹层每个分支加重命名按钮 + 输入弹窗,含当前分支
- 新增 git.renameBranch/branchRenamed 双语文案
- git_commit 增加 all/signoff 参数(-a/-s),与 amend 组合
- GitPanel 提交区加「自动暂存已跟踪改动」「Sign-off」勾选;-a 时放宽提交校验
- 新增 git.commitAll/signoff 双语文案
- 后端 git_clean_preview(clean -nd 预览)、git_clean(clean -fd)
- GitPanel 头部加「清理」按钮:先 dry-run 列出将删除项,确认后执行;无可清理时提示
- 新增 git.clean/cleanConfirm/cleaned 双语文案
- 后端 git_stash_apply(apply 保留)、git_stash_show(补丁内容)
- GitStash 每项加「应用(保留)/查看」;查看按需加载并内联展开补丁
- 新增 git.stashApply/stashView/stashApplied 双语文案
- 后端 git_reflog(短哈希/选择器 HEAD@{n}/动作/时间)
- 新增 GitReflog.vue:列出 reflog,每项可「恢复到此」(对 HEAD@{n} 硬重置,带确认)
- GitPanel 头部加「引用日志」按钮,恢复后通知刷新;复用 git_reset;新增 git.reflog* 文案
- 后端 git_cherry_pick;git_log 增加可选 revision 以查看指定分支历史
- GitLog 头部加分支下拉(切换查看某分支历史),查看非当前分支时每条提交可「拣选到当前分支」
- 拣选后通知刷新;新增 git.cherryPick/currentBranch 等双语文案
- 后端 git_op_state 探测 merge/rebase/cherry-pick/revert;git_op_abort/continue/skip
  (continue 用 core.editor=true 避免编辑器挂起;op 白名单校验防注入)
- GitPanel 顶部进行中操作横幅:继续/中止/(跳过),刷新时随状态获取
- 补上 merge/cherry-pick/revert 冲突后无法收尾的漏洞;新增 git.op* 双语文案
- 后端 git_compare(base...head 的领先/落后计数 + 含 stat 的补丁,超长截断)
- 新增 GitCompare.vue:基线/对比两个 ref 下拉,显示领先落后 + 着色补丁
- GitPanel 头部加「分支对比」按钮(lucide GitCompare 改名 GitCompareIcon 避免与组件重名)
- 新增 git.compare* 双语文案
- 后端 git_pull_rebase、git_push_force(--force-with-lease)、git_push_tags、git_delete_remote_branch
- GitPanel 操作行加「更多」弹层:带变基拉取 / 推送标签 / 强制推送
- GitRemotes 加「删除远程分支」(远程下拉 + 分支名)
- 新增 git.more/forcePush/pushTags/pullRebase/deleteRemoteBranch 等双语文案
- 后端 git_restore_file(checkout <hash> -- <file> 写回工作区)
- GitLog 文件历史视图下每条提交加「恢复此版本」,恢复后通知刷新
- 新增 git.restoreVersion/versionRestored 双语文案
- 后端 git_remote_branches(branch -r)、git_checkout_track(checkout -t)
- GitPanel 分支弹层新增「远程分支」分区,每个可一键检出并跟踪
- refresh 时一并拉取远程分支;新增 git.remoteBranches/checkoutTrack/tracked 文案
- git_tag_create 新增 message 参数,非空则创建附注标签(-a -m)
- 标签弹层新增附注信息输入框,每个标签可一键检出(分离 HEAD)
- 新增 git.tagMessagePlaceholder/tagCheckout/tagCheckedOut 文案
- 后端 git_get_identity / git_set_identity,读写当前仓库本地 user.name / user.email
- 新增 GitConfig 弹层,GitPanel 头部增加身份配置入口
- 补充 git.identity* 文案
- 后端 git_file_diff 取单文件 unified diff,git_apply_patch 经 stdin 应用单个 hunk(支持 --cached/--reverse)
- 新增 HunkStageView:按 hunk 展示差异,可逐块暂存/取消暂存/丢弃
- 修改类文件行新增「分块」入口;补充 git.hunk* 文案
- 后端 git_graph(log --all --topo-order,含父提交与引用名)
- 新增 GitGraph:泳道算法布局 + SVG 绘制提交 DAG,标注分支/标签,显示主题/作者/时间
- GitPanel 头部新增分支图入口;补充 git.graph* 文案
- 后端 git_submodules(解析状态)、git_submodule_update(--init --recursive)、git_submodule_sync
- 新增 GitSubmodules 弹层:列出子模块状态,可逐个/全部更新、同步 URL
- GitPanel 仅在存在子模块时显示入口;补充 git.submodule* 文案
- 后端 git_worktrees(解析 list --porcelain)、git_worktree_add/remove/prune
- 新增 GitWorktrees 弹层:列出工作树(分支/HEAD/锁定/裸),新增(路径+可选 ref)、移除、清理失效、文件管理器中显示
- GitPanel 头部新增工作树入口;补充 git.worktree* 文案
- 后端 git_bisect_state(探测 BISECT_START + 当前待测提交)、git_bisect(start/good/bad/skip/reset)
- 新增 GitBisect 弹层:开始/标记好坏/跳过/结束,展示当前待测提交与 git 输出
- GitPanel 头部新增二分定位入口;补充 git.bisect* 文案
- 后端 git_rebase_interactive:经 sequence.editor 注入 todo、core.editor=true 接受默认信息,非交互执行(类 Unix)
- 新增 GitRebase 弹层:选取最近 N 个提交,逐条 保留/squash/fixup/丢弃 并可上下重排
- 冲突时由现有进行中操作横幅接管继续/中止;补充 git.rebase* 文案
@qianmoQ qianmoQ merged commit 306b857 into devlive-community:dev Jun 18, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant