Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
dc27f94
refactor(ipc): 重构 JsonRpcClient 实现以支持多并发调用
feigeCode May 7, 2026
1b9eb21
refactor(db): 统一数据库插件的 capabilities 接口并重构相关实现
feigeCode May 8, 2026
ac66566
feat: ferrum-flow使用官方依赖,不再fork
feigeCode May 8, 2026
0ec8e85
feat(er_diagram): 添加滚动条支持并优化鼠标事件处理
feigeCode May 8, 2026
90d28e4
fix(er_diagram): 修复滚动面板插件刷新调度的问题
feigeCode May 8, 2026
d4774a1
docs(readme): 添加ER图及致谢部分
feigeCode May 8, 2026
c9b0a32
chore(main): bump version to 0.4.0
feigeCode May 8, 2026
c18abab
feat: 修改版本号
feigeCode May 8, 2026
2a96d05
feat(logging): 添加日志文件路径配置及文件写入功能
feigeCode May 9, 2026
690937e
feat(terminal): 添加终端鼠标滚轮 SGR 模式支持及 Vim 鼠标增强
feigeCode May 9, 2026
47486bc
feat(ui): 添加 TitleBar 组件提升界面结构一致性
feigeCode May 9, 2026
2d404e3
feat(remote_file_editor): 实现支持多标签的远程文件编辑器窗口
feigeCode May 10, 2026
938b155
faet:删除无用文件
feigeCode May 10, 2026
d0e858e
feat(terminal): 优化终端事件转发和块字符渲染
feigeCode May 11, 2026
7159192
feat(terminal): 记录像素尺寸并增加 nudge_resize 触发 SIGWINCH
feigeCode May 11, 2026
9cb88c7
chore(main): bump version to 0.4.1
feigeCode May 11, 2026
cbe319b
fix(edit_table): 修复选中单元格时内容因边框挤压产生偏移
SWZ128 May 11, 2026
65687f7
Merge pull request #42 from SWZ128/fix/cell-selection-border-shift
feigeCode May 11, 2026
ab8afce
fix(edit_table): 修复双击编辑时单元格内容位移
SWZ128 May 12, 2026
bf9b852
feat(terminal): 新增关闭 shell integration 功能
feigeCode May 12, 2026
98daba6
Merge pull request #45 from SWZ128/fix/cell-edit-unify-container
feigeCode May 12, 2026
04857c0
refactor(db): 统一数据库插件的 capabilities 接口并重构相关实现
feigeCode May 8, 2026
572cdc9
feat: ferrum-flow使用官方依赖,不再fork
feigeCode May 8, 2026
a10f010
feat(er_diagram): 添加滚动条支持并优化鼠标事件处理
feigeCode May 8, 2026
ff69fca
fix(er_diagram): 修复滚动面板插件刷新调度的问题
feigeCode May 8, 2026
b8a2091
docs(readme): 添加ER图及致谢部分
feigeCode May 8, 2026
c0de5ee
chore(main): bump version to 0.4.0
feigeCode May 8, 2026
3114bae
feat: 修改版本号
feigeCode May 8, 2026
df68274
feat(logging): 添加日志文件路径配置及文件写入功能
feigeCode May 9, 2026
53ad10b
feat(terminal): 添加终端鼠标滚轮 SGR 模式支持及 Vim 鼠标增强
feigeCode May 9, 2026
062b6f7
feat(ui): 添加 TitleBar 组件提升界面结构一致性
feigeCode May 9, 2026
298cb10
feat(remote_file_editor): 实现支持多标签的远程文件编辑器窗口
feigeCode May 10, 2026
cf25937
faet:删除无用文件
feigeCode May 10, 2026
07a5c75
feat(terminal): 优化终端事件转发和块字符渲染
feigeCode May 11, 2026
db8c413
feat(terminal): 记录像素尺寸并增加 nudge_resize 触发 SIGWINCH
feigeCode May 11, 2026
559d38c
chore(main): bump version to 0.4.1
feigeCode May 11, 2026
660080d
fix(edit_table): 修复选中单元格时内容因边框挤压产生偏移
SWZ128 May 11, 2026
05b1326
fix(edit_table): 修复双击编辑时单元格内容位移
SWZ128 May 12, 2026
6e46fca
feat(terminal): 新增关闭 shell integration 功能
feigeCode May 12, 2026
83b435d
merge(dev): 同步 dev 最新更改并修复冲突
htmambo May 12, 2026
7370a91
refactor: 移除未使用的 TableModel trait 并清理代码
htmambo May 13, 2026
d4c762c
merge(dev): 同步 dev 最新更改并解决冲突
htmambo May 13, 2026
fe4cca1
fix(terminal): 修复合并 dev 后的编译错误
htmambo May 13, 2026
b6cb790
fix(remote_file_editor): 修复 open_popup_window 调用缺少 window 参数
htmambo May 13, 2026
a45ee4f
fix(terminal): 修复高速输出时 Wakeup 事件丢失并改进高亮正则
htmambo May 13, 2026
b4ddd5a
style(ui): 优化表格选区边框与主题颜色透明度
htmambo May 13, 2026
5820e25
sync: update from dev branch
htmambo May 15, 2026
520410c
fix popup in linux
htmambo May 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 35 additions & 14 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ members = [
"crates/er_flow",
"crates/terminal",
"crates/terminal_view",
"crates/ferrum-flow",
"main", "crates/ssh", "crates/sftp", "crates/sftp_view", "crates/one_ui", "crates/redis_view", "crates/mongodb_view", "crates/remote_file_editor"]
resolver = "2"

Expand Down Expand Up @@ -157,7 +156,7 @@ interprocess = { version = "2.4.0", features = ["tokio"] }
url = "2.5.4"
percent-encoding = "2.3.1"
global-hotkey = "0.7.0"
ferrum-flow = { path = "crates/ferrum-flow" }
ferrum-flow = { git = "https://github.com/tu6ge/ferrum-flow.git", rev = "507cab7505b8dfa6a1e4a121e3c503e3f2f882d6" }

[patch.crates-io]
gpui = { git = "https://github.com/zed-industries/zed", rev = "8b5328ca" }
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,11 @@
**Edit files directly from the app, with syntax highlighting and autocomplete.**
![remote_file_editor](remote_file_editor.png)

**ER Diagram**
![ER Diagram](er.png)

Thanks to [ferrum-flow](https://github.com/tu6ge/ferrum-flow.git).

## Platform Support

| Platform | Architecture | Rendering |
Expand Down
5 changes: 5 additions & 0 deletions README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,11 @@
**直接在应用程序中编辑文件,具备语法高亮显示和自动完成功能。**
![remote_file_editor](remote_file_editor.png)

**ER 图**
![ER 图](er.png)

感谢 [ferrum-flow](https://github.com/tu6ge/ferrum-flow.git)。

## 平台支持

| 平台 | 架构 | 渲染后端 |
Expand Down
2 changes: 0 additions & 2 deletions crates/core/src/ai_chat/components/model_settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,6 @@ impl ModelSettingsPanel {
Self::with_labels(settings, ModelSettingsLabels::default(), window, cx)
}



/// 使用自定义标签创建模型设置面板
pub fn with_labels(
settings: ModelSettings,
Expand Down
11 changes: 10 additions & 1 deletion crates/core/src/popup_window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,7 @@ pub fn open_popup_window_with_should_close<F, E, H>(
let title = options.title.clone();
let on_should_close = Arc::new(on_should_close);
let kind = options.kind.clone();
let corner_radius = cx.theme().radius_lg;

cx.spawn(async move |cx| {
let on_should_close = Arc::clone(&on_should_close);
Expand Down Expand Up @@ -314,7 +315,15 @@ pub fn open_popup_window_with_should_close<F, E, H>(
let view = create_view_fn(window, cx).into();
let popup_view =
cx.new(|cx| PopupWindowView::new(view, Some(content_size), window, cx));
cx.new(|cx| Root::new(popup_view, window, cx))
cx.new(|cx| {
let mut root = Root::new(popup_view, window, cx);
#[cfg(target_os = "linux")]
{
// popup 的可见底色由 PopupWindowView 承担,避免 Root 底色在圆角处透出。
root = root.bg(gpui::transparent_black());
}
root
})
})?;

window.update(cx, |_, window, _| {
Expand Down
3 changes: 3 additions & 0 deletions crates/core/src/storage/models.rs
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,9 @@ pub struct SshParams {
/// SFTP 远程目录(留空则使用服务器默认目录)
#[serde(skip_serializing_if = "Option::is_none")]
pub sftp_remote_directory: Option<String>,
/// 关闭 shell integration 注入(走裸 request_shell,牺牲 prompt hook / 命令记录 / vim 鼠标)
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_shell_integration: Option<bool>,
/// 跳板机配置
#[serde(skip_serializing_if = "Option::is_none")]
pub jump_server: Option<JumpServerConfig>,
Expand Down
30 changes: 20 additions & 10 deletions crates/db/src/clickhouse/plugin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ use crate::manifest_helpers::{
use crate::plugin::{DatabaseOperationRequest, DatabasePlugin, SqlCompletionInfo};
use crate::plugin_manifest::{
DatabaseActionId, DatabaseActionManifest, DatabaseActionPlacement, DatabaseActionToolbarScope,
DatabaseFormFieldType, DatabaseFormKind, DatabaseFormManifest, DatabaseUiCapabilities,
DatabaseUiManifest,
DatabaseCapabilities, DatabaseFormFieldType, DatabaseFormKind, DatabaseFormManifest,
DatabaseUiCapabilities, DatabaseUiManifest,
};
use crate::types::*;

Expand Down Expand Up @@ -505,6 +505,15 @@ impl DatabasePlugin for ClickHousePlugin {
format!("`{}`", identifier.replace("`", "``"))
}

fn capabilities(&self) -> DatabaseCapabilities {
DatabaseUiCapabilities {
supports_functions: true,
supports_table_engine: true,
table_engines: self.engines(),
..DatabaseUiCapabilities::default()
}
}

fn ui_manifest(&self) -> DatabaseUiManifest {
CLICKHOUSE_UI_MANIFEST.clone()
}
Expand Down Expand Up @@ -688,10 +697,6 @@ impl DatabasePlugin for ClickHousePlugin {
}
}

fn supports_sequences(&self) -> bool {
false
}

// === Database/Schema Level Operations ===

fn sql_dialect(&self) -> Box<dyn sqlparser::dialect::Dialect> {
Expand Down Expand Up @@ -1112,10 +1117,6 @@ impl DatabasePlugin for ClickHousePlugin {

// === Function Operations ===

fn supports_procedures(&self) -> bool {
false
}

async fn list_procedures(
&self,
_connection: &dyn DbConnection,
Expand Down Expand Up @@ -1585,6 +1586,15 @@ mod tests {
assert_eq!(plugin.quote_identifier("col`umn"), "`col``umn`");
}

#[test]
fn test_capabilities() {
let capabilities = create_plugin().capabilities();
assert!(capabilities.supports_functions);
assert!(!capabilities.supports_procedures);
assert!(!capabilities.supports_sequences);
assert_eq!(capabilities.table_engines, clickhouse_engine_names());
}

#[test]
fn test_ui_manifest_smoke() {
let manifest = create_plugin().ui_manifest();
Expand Down
23 changes: 14 additions & 9 deletions crates/db/src/duckdb/plugin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ use crate::manifest_helpers::{DatabaseActionDescriptorExt, action, action_with_s
use crate::plugin::{DatabaseOperationRequest, DatabasePlugin, SqlCompletionInfo};
use crate::plugin_manifest::{
DatabaseActionId, DatabaseActionManifest, DatabaseActionPlacement, DatabaseActionToolbarScope,
DatabaseFormFieldType, DatabaseFormKind, DatabaseFormManifest, DatabaseUiManifest,
DatabaseCapabilities, DatabaseFormFieldType, DatabaseFormKind, DatabaseFormManifest,
DatabaseUiCapabilities, DatabaseUiManifest,
};
use crate::sqlite::SqlitePlugin;
use crate::types::*;
Expand Down Expand Up @@ -753,6 +754,10 @@ impl DatabasePlugin for DuckDbPlugin {
DatabaseType::DuckDB
}

fn capabilities(&self) -> DatabaseCapabilities {
DatabaseUiCapabilities::default()
}

fn ui_manifest(&self) -> DatabaseUiManifest {
DUCKDB_UI_MANIFEST.clone()
}
Expand Down Expand Up @@ -1192,10 +1197,6 @@ impl DatabasePlugin for DuckDbPlugin {
})
}

fn supports_functions(&self) -> bool {
false
}

async fn list_functions(
&self,
connection: &dyn DbConnection,
Expand All @@ -1212,10 +1213,6 @@ impl DatabasePlugin for DuckDbPlugin {
self.sqlite.list_functions_view(connection, database).await
}

fn supports_procedures(&self) -> bool {
false
}

async fn list_procedures(
&self,
connection: &dyn DbConnection,
Expand Down Expand Up @@ -1468,6 +1465,14 @@ mod tests {
DuckDbPlugin::new()
}

#[test]
fn test_capabilities() {
let capabilities = create_plugin().capabilities();
assert!(!capabilities.supports_functions);
assert!(!capabilities.supports_procedures);
assert!(!capabilities.supports_sequences);
}

#[test]
fn test_ui_manifest_smoke() {
let manifest = create_plugin().ui_manifest();
Expand Down
Loading
Loading