-
基本思路是通过符号值的go类型,取得对应的godoc,提供给 qlang shell 或者未来的 qlang ide。
-
1、在行未是这些标点 ; ) ] } ++ -- 之外的标点,则当前行与后续行合并执行。
2、在不在字符串内的 () [] {} 没有达成匹配,则当前行也与后续行合并执行。
-
比如一个自定义的 struct,或者 int 之类。
-
```
qlang -genlib []
```
- 如果 `` 为空,则为 '.' (当前目录)
例子:
``` bash
qlang -genlib encoding/json
```
这将自动在 GOPATH 中找到 encoding/json 并且生成 module 到 ./encoding/json 下。
-
qlang 习惯小写导出,建议导出大写,习惯Go开发者。
-
参考qlang的标准导入库描述Go包导入的规则以供qexport之类工具使用,请检查是否正确。
- 结构和函数
struct 类型:大写导出,以qlang.NewType的方式导出
NewStruct 函数:小写导出,并以struct名称导出
其他生成Struct函数:小写导出
其他函数:小写导出
- 变量
结构变量:大写导出,转换为指针
结构指针变量:大写导出
con…
-
因为没有找到qlang的设计文档,在些提出自己对目前v2版本的一些看法,不知是否可行。
目前qlang版本有type自省机制,建议能否加入类似python的dir等更多的自省机制。
我尝试着对Go语言导入的package包写了简单的dir实现。
``` go
modules()
> [bufio strings md5 ioutil json strconv bytes errors path …
-
```
>>> doc(os)
package os
_name string
args []string
open func(string) (*os.File, error)
exit func(int)
_initSafe func(qlang.Module)
stdin *os.File
stderr *os.File
stdout *os.…
-
我写了一个go package自动导出qlang模块的工具,目前使用go tool api进行导出标准包,但如果以后改用gotools的api则可以导出所有包https://github.com/visualfc/gotools/tree/master/goapi
因为是自动导出,所以导出规则仍不完善,与qlang自带的包不太一致。
https://github.com/visualfc/qe…
-
Go本身的函数参数支持引用,建议qlang支持引用和解引用,以便更好的利用Go语言提供的库。
即 & 和 \* 操作