[AI Development Lab] 【deepin 插件开发活动】是否支持给全局搜索开发插件?
Tofloor
poster avatar
ws1992deepin
deepin
2026-08-14 10:09
Author

全局搜索能力不错,但缺失部分能力。例如:翻译,简单计算,汇率计算等功能。

近期 【deepin 插件开发活动】看社区内开发的插件多为单体插件,并不是某服务功能增强,不知道是否支持给 全局搜索开发插件。

Reply Favorite View the author
All Replies
avatar
deepin流云
Super Moderator
Community OP
2026-08-14 10:25
#1
It has been deleted!
avatar
骑🐖追帅哥bot
Moderator
2026-08-14 10:58
#2

好主意 嘿嘿 可以先做呀 ~~ 后续也会有不基于skill的开发活动哟

Reply View the author
avatar
酱乌鱼
deepin product team
2026-08-14 14:10
#3
It has been deleted!
avatar
酱乌鱼
deepin product team
2026-08-14 16:22
#4

【全局搜索插件开发指南】来咯~ 期待大佬佳作!smirk

文档: https://github.com/linuxdeepin/dde-grand-search/blob/master/docs/plugin-development-guide.md
代码参考(计算器example):https://github.com/linuxdeepin/dde-grand-search/tree/master/examples/calculator-search-plugin

Reply View the author
avatar
ws1992deepin
deepin
2026-08-17 09:23
#5

自己顶一下,不会C++ 的小菜鸡,期待其他大佬的作品。

Reply View the author
avatar
ws1992deepin
deepin
2026-08-20 16:08
#6
酱乌鱼:

【全局搜索插件开发指南】来咯~ 期待大佬佳作!smirk

文档: https://github.com/linuxdeepin/dde-grand-search/blob/master/docs/plugin-development-guide.md
代码参考(计算器example):https://github.com/linuxdeepin/dde-grand-search/tree/master/examples/calculator-search-plugin

插件开发必须是用 QT C++ 吗?

我用 golang 写了一个 D-Bus 工具,发现可以拉起,但是没有任何调用信息发送到 golang 写的工具中。

Reply View the author
avatar
夜夜笙歌free
deepin
2026-08-21 09:22
#7
ws1992deepin:

插件开发必须是用 QT C++ 吗?

我用 golang 写了一个 D-Bus 工具,发现可以拉起,但是没有任何调用信息发送到 golang 写的工具中。

不限制,只要有DBus就行,你可以把你源码、demo发出来看看你的程序是否注册了错误的DBus总线,应该使用session bus

Reply View the author
avatar
ws1992deepin
deepin
2026-08-21 13:57
#8
夜夜笙歌free:

不限制,只要有DBus就行,你可以把你源码、demo发出来看看你的程序是否注册了错误的DBus总线,应该使用session bus

study-godbus-dde-grand-search.zip

麻烦你帮忙看看。

Reply View the author
avatar
夜夜笙歌free
deepin
2026-08-24 09:08
#9
ws1992deepin:

study-godbus-dde-grand-search.zip

麻烦你帮忙看看。

可以直接把dde-grand-search的源码拉下来,交给AI来分析你的插件。我让AI看了下:

Bug 分析
Bug 1(致命):接口名拼写错误 — SearchPulgin vs SearchPlugin
main.go:111:
conn.Export(plugin, dbus.ObjectPath(objectPath), "com.studyGodbus.printSomething.SearchPulgin")
//                                                                                       ^^^^^^^ 拼错了!
配置文件 study-godbus-grand-search.conf:7:
DBusInterface=com.studyGodbus.printSomething.SearchPlugin
//                                                     ^^^^^^
daemon 按 SearchPlugin 去调,Go 程序导出的是 SearchPulgin,接口名不匹配,D-Bus 调用直接失败。这就是"进程拉起来了但没有调用信息"的根本原因。
Bug 2:ReqBody 的 JSON tag 错了 — 搜索词收不到
main.go:37:
type ReqBody struct {
    Ver   string `json:"ver"`
    MID   string `json:"mID"`
    Count string `json:"count"`  // ❌ 应为 "cont"
}
daemon 发来的是 {"ver":"1.0","mID":"...","cont":"搜索词"},字段名是 cont 不是 count。当前 rb.Count 永远为空,搜索词丢失。
Bug 3:RespBody 的 JSON tag 也错了 — daemon 解析不出结果
main.go:43:
type RespBody struct {
    Ver  string `json:"ver"`
    MID  string `json:"mID"`
    Cont []Cont `json:"count"`  // ❌ 应为 "cont"
}
daemon 期望返回的 JSON 里结果列表字段是 cont,但这里序列化成了 "count",daemon 找不到 cont 字段,结果被当作空。
Bug 4:performSearch 传错了参数
main.go:68:
results := performSearch(rb.MID) // ❌ 传了任务ID,应该传搜索词
mID 是任务标识号,cont 才是搜索关键词。修完 Bug 2 后应传 rb.Cont。
Reply View the author
avatar
ws1992deepin
deepin
2026-08-24 15:27
#10
夜夜笙歌free:

可以直接把dde-grand-search的源码拉下来,交给AI来分析你的插件。我让AI看了下:

Bug 分析
Bug 1(致命):接口名拼写错误 — SearchPulgin vs SearchPlugin
main.go:111:
conn.Export(plugin, dbus.ObjectPath(objectPath), "com.studyGodbus.printSomething.SearchPulgin")
//                                                                                       ^^^^^^^ 拼错了!
配置文件 study-godbus-grand-search.conf:7:
DBusInterface=com.studyGodbus.printSomething.SearchPlugin
//                                                     ^^^^^^
daemon 按 SearchPlugin 去调,Go 程序导出的是 SearchPulgin,接口名不匹配,D-Bus 调用直接失败。这就是"进程拉起来了但没有调用信息"的根本原因。
Bug 2:ReqBody 的 JSON tag 错了 — 搜索词收不到
main.go:37:
type ReqBody struct {
    Ver   string `json:"ver"`
    MID   string `json:"mID"`
    Count string `json:"count"`  // ❌ 应为 "cont"
}
daemon 发来的是 {"ver":"1.0","mID":"...","cont":"搜索词"},字段名是 cont 不是 count。当前 rb.Count 永远为空,搜索词丢失。
Bug 3:RespBody 的 JSON tag 也错了 — daemon 解析不出结果
main.go:43:
type RespBody struct {
    Ver  string `json:"ver"`
    MID  string `json:"mID"`
    Cont []Cont `json:"count"`  // ❌ 应为 "cont"
}
daemon 期望返回的 JSON 里结果列表字段是 cont,但这里序列化成了 "count",daemon 找不到 cont 字段,结果被当作空。
Bug 4:performSearch 传错了参数
main.go:68:
results := performSearch(rb.MID) // ❌ 传了任务ID,应该传搜索词
mID 是任务标识号,cont 才是搜索关键词。修完 Bug 2 后应传 rb.Cont。

啊啊,多谢。是 objectPath 注册名称写错了。

Reply View the author
avatar
ws1992deepin
deepin
2026-08-24 17:35
#11

image.png

实现了,哈哈哈。

Reply View the author