好主意 嘿嘿 可以先做呀 ~~ 后续也会有不基于skill的开发活动哟
【全局搜索插件开发指南】来咯~ 期待大佬佳作!
文档: 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
自己顶一下,不会C++ 的小菜鸡,期待其他大佬的作品。
【全局搜索插件开发指南】来咯~ 期待大佬佳作!
文档: 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 写的工具中。
插件开发必须是用 QT C++ 吗?
我用 golang 写了一个 D-Bus 工具,发现可以拉起,但是没有任何调用信息发送到 golang 写的工具中。
不限制,只要有DBus就行,你可以把你源码、demo发出来看看你的程序是否注册了错误的DBus总线,应该使用session bus
不限制,只要有DBus就行,你可以把你源码、demo发出来看看你的程序是否注册了错误的DBus总线,应该使用session bus
study-godbus-dde-grand-search.zip
麻烦你帮忙看看。
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。
可以直接把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 注册名称写错了。

实现了,哈哈哈。
Popular Ranking
ChangePopular Events
More

中文 


全局搜索能力不错,但缺失部分能力。例如:翻译,简单计算,汇率计算等功能。
近期 【deepin 插件开发活动】看社区内开发的插件多为单体插件,并不是某服务功能增强,不知道是否支持给 全局搜索开发插件。