Skip to content

Repository files navigation

CodeFloat — Windows 代码悬浮卡片

复制一段代码,按 Ctrl+Shift+Space,在桌面生成一张可置顶、可拖拽的只读代码卡片。配合导航功能,Ctrl+单击 方法名即可沿着调用链跳转,用贝塞尔连线保留调用上下文。


快速开始

  1. Releases 下载 CodeFloat-v2.0-x64.zip
  2. 解压到任意目录,运行 CodeFloat.exe
  3. 系统托盘出现图标,复制任意代码后按 Ctrl+Shift+Space 创建卡片
在 IDE / 浏览器中复制代码 → Ctrl+Shift+Space → 卡片出现在鼠标所在屏幕

实际使用示例

下列示例图依据当前 v2.0 的 WPF 布局、主题色、导航线样式和交互状态绘制,展示的功能均可在本仓库代码中找到对应实现。

沿调用链展开多级代码

在父卡片内 Ctrl+单击 方法名后,定义卡片在旁边展开,父代码仍然可见。同一来源使用相同强调色;已解析关系使用实线,当前来源未找到定义时创建橙色待补全卡片。

CodeFloat 多级代码导航示例

在卡片内搜索并聚焦关键行

Ctrl+F 搜索当前代码,使用 Enter / F3Shift+Enter 切换匹配项;双击行号可把关键行滚动到视口中央。深浅主题可在托盘 Settings 中切换。


主要功能

代码阅读

功能 操作
创建卡片 复制代码 → Ctrl+Shift+Space(全局快捷键,任何应用中都可用)
语法高亮 自动识别 Python / C# / JavaScript / JSON / XML / HTML
字体缩放 Ctrl+滚轮(9–32pt)
聚焦行 双击行号 → 高亮并滚动到视口中央
搜索 Ctrl+F 打开搜索栏,Enter / F3 下一个,Shift+Enter 上一个
折叠卡片 双击标题栏折叠为标题条,再次双击恢复
拖拽缩放 标题栏拖动移动,边缘 8 方向缩放,最小 280×160px
多卡片 同时打开多张卡片,各自的字体/位置/滚动互不影响
置顶 卡片默认置顶,可逐张关闭
深浅主题 右键托盘 → Settings 切换(默认浅色)

代码导航

功能 操作
跳转到定义 按住 Ctrl 单击方法名 → 当前文本中找到定义则创建同色卡片并定位
待补全卡片 定义不在当前文本 → 创建橙色空卡片 → 复制目标代码 → 点击卡片 Ctrl+V 粘贴定位
导航连线 父子卡片间显示贝塞尔曲线,实线=已解析,虚线=待补全,灰色=休眠
来源颜色 每个代码来源分配独立强调色(S1、S2…),卡片左侧 3px 强调条
键盘导航 Alt+←→↑↓ 在父/子/兄弟卡片间跳转
整理卡片 Shift+拖拽 标题栏整组移动,Ctrl+Shift+W 关闭子树
恢复卡片 关闭子卡片后再 Ctrl+单击 → 恢复原位和滚动状态
多候选选择 同名方法有多个定义时弹出菜单选择

快捷键参考

全局

快捷键 作用
Ctrl+Shift+Space 从剪贴板创建卡片

卡片内

快捷键 作用
Ctrl+F 搜索
Ctrl+W 关闭卡片
Ctrl+Shift+W 关闭卡片及所有后代
Ctrl+Shift+C 复制全部代码
Esc 取消搜索 / 清除聚焦行

导航

快捷键 作用
Ctrl+单击 跳转到方法定义
Alt+← 回到父卡片
Alt+→ 跳到子卡片
Alt+↑ / Alt+↓ 兄弟卡片间切换
Ctrl+V(待补全卡片) 粘贴目标代码完成关联

鼠标

操作 作用
滚轮 垂直滚动
Shift+滚轮 水平滚动
Ctrl+滚轮 字体缩放
双击正文 选词
双击行号 聚焦行
双击标题栏 折叠/展开
右键 上下文菜单

从源码构建

git clone https://github.com/ly-rrrrr/CodeFloat.git
cd CodeFloat

# 构建
dotnet build CodeFloat.sln -c Release

# 测试
dotnet test CodeFloat.sln -c Release

# 运行
dotnet run --project src/CodeFloat.App -c Release

# 发布自包含包
dotnet publish src/CodeFloat.App/CodeFloat.App.csproj `
  -c Release -r win-x64 --self-contained true `
  -p:PublishSingleFile=true -o ./release

依赖: .NET 8.0 SDK x64,Windows 10/11


项目结构

src/
├── CodeFloat.Core/           领域模型、导航图、接口定义
├── CodeFloat.Interop/        Win32 P/Invoke、多显示器
├── CodeFloat.Infrastructure/  剪贴板读取、语言检测、Roslyn符号解析、会话持久化
└── CodeFloat.App/            WPF 界面、卡片窗口、导航覆盖层、系统托盘
tests/
└── CodeFloat.Core.Tests/     33 个单元测试

技术栈: .NET 8.0 + WPF + AvalonEdit 6.3 + CommunityToolkit.Mvvm 8.4 + Microsoft.CodeAnalysis 5.6


配置

设置文件位于 %LOCALAPPDATA%\CodeFloat\settings.json

{
  "useDarkTheme": false,
  "navigationCardsEnabled": true,
  "navigationOverlayEnabled": true,
  "cSharpRoslynLocatorEnabled": true,
  "autoPlacementEnabled": true
}

许可

MIT

About

Windows 代码悬浮卡片 — 复制代码按 Ctrl+Shift+Space 创建可置顶卡片,Ctrl+单击方法名沿着调用链导航

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages