diff --git a/README.md b/README.md index a73d3b2bc..cac6ea165 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ # CodeGraph +
+ Already installed? Run `codegraph upgrade` Follow [@getcodegraph](https://x.com/getcodegraph) on X for updates. diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 000000000..b4bf4e858 --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,967 @@ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
codegraph sync
+
+这个屏幕上你会得到:
+
+- **按文件分组的调用者**,每一个都带上它发出调用的精确行 — 点一下就能跳过去。测试调用者收成一行,好让真正的调用者留在视野里。
+- **真正的源码**,带语法高亮,每一行只要调用了什么,装订线里就有一个标记。
+- **右边的被调用者**,放在调用它们的那一行,用一根细线连起来。悬停任意一端,两端都会亮。
+- **爆炸半径** — 直接依赖者、三跳之内的一切,以及这会碰到多少文件和测试文件。
+- **诚实的边。** CodeGraph 没把握的猜测会收成 “uncertain”,而不是当成事实摆出来;三跳之内没有任何测试能到达的符号也会说出来。
+- **搜索**(`/` 或 ⌘K)覆盖每一个符号和文件,以及你走过的 **trail** 就活在 URL 里,所以可以把你走的精确路线发给别人。输入名字还会在单独的标题下带出匹配的 **入口点**,于是一个 URL 会连同为它服务的符号一起回来,而不是孤零零一个地址。
+- **入口点** — 你从没打开过的代码库上该看的第一屏,也是 “任何事情从哪开始” 的答案。每一条路由及其处理函数、以及它注册所在的行,按路由文件分组,并用检测到的框架命名;在 import 时就会跑起来的文件(CLI、worker 入口、脚本);测试,按各自覆盖项目的多少排序;以及最多代码所依赖的符号。没有任何东西是从文件名猜的 — 全是从图里读出来的,没有路由的项目会直接说没有,而不是画一张空列表。任何点名一个符号的行都可以开始一条 **flow**:再挑第二个符号,你就得到它们之间的路径,所以 “`POST /v1/payroll/cycles/{cycleID}/run` 怎么到达数据库” 是两次点击。
+- 点任何文件路径打开 **文件视图**:这个文件依赖的一切、按源码顺序的大纲、以及依赖它的一切。它的 **Source** 页签展示整个文件,同样的装订线标记,再加上左边距里每一条留在文件内部的调用弧 — 因为源码顺序就是布局,这是文件内部调用结构唯一能一眼读懂的地方。6800 行的文件也能全速滚动。
+- **问一条路径。** 输入 “how does execute reach getFile”(或 `execute -> getFile`)你会得到 **flow**:一跳一张卡片,每张都打开在发出下一次调用的那一行。图上没有静态边的跳转 — 回调、接口分发、React 重渲染 — 画成虚线,并写明 handler 是在哪里接上的。“Read as flow” 把你亲手走的一趟变成同一条带子。
+- **路走到头时,它会说停在哪。** 到不了的 flow 会停在 “Where the graph stops”:结束它的那种分发(计算出来的成员调用、`getattr`、反射 invoke、消息总线)、它所在的行、源码里写明的 key,以及另一侧可能是什么的短名单 — 外加 CodeGraph 拒绝跟随的仅按名字匹配及其置信度。没有猜测;真正连上的 flow 从不会显示这一段。
+- **从这里会发生什么。** 在有屏幕的应用上,**Screens** 页签一屏一个方块,每一种从一屏到另一屏的走法都是一条箭头,并标上它发生的条件。**Steps** 页签对一屏 *上* 发生的事做同样的事:选一屏(或任意符号),你会得到它的 handler、跨进 native 的调用、native 事件怎么回来、它写入的 store action 以及离开应用的请求,都是带类型的步骤,它们之间的管道折进箭头里 — 一个 React Native 应用从采集到上传的整条流,一张图,每一步都可以点成下一个锚点或一条 Flow 带子。
+- **地图**:整个项目按模块粒度,从图里排布,依赖朝下 — 从不手摆,每次都是同一张图。环列出来,而不是被拉直藏掉。
+- **把图带走。** 一条 flow 带子或一张地图可以复制成图片直接贴进 PR 评论,或存成 SVG 放进 README — 永远是浅色主题,不管你正在用哪套阅读,并带一句说明这张图是什么。SVG 是真正的文字,所以任意尺寸都清晰,里面的名字可以选中。
+- **留下一次行走。** 在 trail 条上按 **Save trail**,起个名字,这条路径就被留下 — 列在空白屏和入口点上、建议的上面,并从你离开的那个符号重新打开,整段行走都恢复。步骤按它们 *是什么* 记住,而不是当时坐在哪,所以描述它的代码被改过,保存的 trail 也能活下来;真的挪了位置时,它会说哪一步动了、哪一步被改名走了、这段行走还剩多少能打开。Trail 是 `.codegraph/ui/trails/` 下的普通 JSON(git 已经忽略它),**Export** 会把文件交给你,如果你更想提交一份。
+- **它跟得上。** 保存一个文件后大约三分之一秒会出现横幅,说索引还没赶上 — 屏幕会切到文件现在的源码,而不是按它已经不再拥有的行切出来的正文。有东西重新索引时,屏幕上无论什么都会自己再读一遍,并说 “Index updated · reloaded”。你在上面加了两行而导致符号挪位时,它会跟上,而不是弄丢。没有轮询:查看器在监视;如果和服务器失联,它会重试几次,然后说出来,而不是不停砸它。
+
+选项:`--port