自定义智能提示
在注释中定义智能提示
/*intellisense(名字空间.名字空间)
a = 提示文字
b.c = 提示文字
b.? = 对任意字段名配置的代码提示
end intellisense*/
上面的智能提示是由一个或多个名值对组成的字符串列表,
以换行分隔多个名值对,并且以等号分隔名值对(等号前后必须有空格),等号前面的名字部分不能包含前后有空格的等号。
等号前面可以用圆点表示成员操作符或分隔名字空间,支持用问号匹配任意字段名称。
必须是每行一个名值对,等号后面为代码提示或模板,等号后面如果有换行请用 \n 替代。
如果值的第一个字符是'@'则表示定义一个自动完成的模板代码,如果"@"后面紧跟一个圆点,则表示模板自动连接在用户输入的名字空间最后一个圆点之后,例如:
!time.format = @.format="%Y年%m月%d日 %H时%M分%S秒";名字部分中,可以使用小圆点表示aardio代码中的名字空间。
如果需要表示圆点的字面值,在名字空间的最后一部分,可以使用->替代.
例如:
!gdipgraphics.rotate(10, gdip->MatrixOrder->__ ) = 旋转画布
这是gdip.graphics库中配置的提示, !gdipgraphics是动态创建的对象,括号后面是函数签名。
在弹出提示或完成代码时,上面的->都会显示为圆点".",在圆点后面用两个下划线"__"指定光标插入此位置,
在用户完成该代码以后,立即会跳出进一步的代码提示,非常方便.
在代码中定义智能提示
/*intellisense(名字空间.名字空间)*/
testa = 提示文字
testb = 提示文字
testa.b.c = 可使用圆点表示名字空间
/*end intellisense*/
在等号左侧,可使用 "->" 表示普通圆点字符.
对于不确定的成员名称可以使用 ? 符号替代,例如:
/*intellisense()*/
testa.?.c
= 可使用问号表示任意名字
/*end intellisense*/
那么输入 testa.任意名字. 都会提示上面的 c, 另在下标操作符中输入的任意成员名字都会匹配 ? 号指定的智能刊示,例如 testa["任意名字"].c 会显示上面的智能提示。
在智能提示中使用引用代码段
对于每一个智能提示定义的名值对,值部分的提示文字首字符不能是花括号'{',如果值部分第一行的行尾以'{换行'结束,那么其值可以跨行直到'换行}'为止。即首行以{结束,尾行以}开始。注意换行符与大括号中间不要有其他字符或空白字符。
/*intellisense(名字空间.名字空间)*/
a = 提示文字 {
a=={}//如果大括号内侧不是换行符,不能表示提示段落的开始或结束。
}
b = 提示文字
/*end intellisense*/
名字空间重定向
/*intellisense()
testio = io.
end intellisense*/
在提示文字尾部加一个小圆点表示名字空间转向。
testio = io. 表示输入testio.时自动显示io.的成员
所以,如果不是确认要定义一个名字空间转向,
普通智能提示的说明文字结束尽可能避免使用圆点或句号等.
为动态创建的对象设置智能提示
/*intellisense()
!tray.delete() = 删除托盘图标
!tray.tip =
设置鼠标提示信息
!tray.pop("__","") = 弹出汽泡提示\n参数(提示信息,标题)
!tray.pop("__","",2) =
弹出汽泡提示\n参数(提示信息,标题,警告图标)
!tray.pop("__","",3) =
弹出汽泡提示\n参数(提示信息,标题,错误图标)
!tray.message =
指定回调消息\n当用户点击托盘图标时、向主窗体发送此消息
win.util.tray() = !tray.
end
intellisense*/
对于动态创建的对象,必须使用感叹号作为首字符避免名字冲突,
win.util.tray() = !tray.
或者
win.util.tray() = @这是模板代码\n!tray.
注意上面的括号中不能写参数,表示对于win.util.tray()返回的对象,将它们的代码提示全部重定向到!tray名字空间
上面的写法,可以在'!'前面,等号后面添加说明,但必须以\n换行符结束.如下:
win.util.tray() = 这是说明文字\n!tray.
注意名字空间重定向必须放在说明文字的尾部并且必须以 "\n!"开始,并以圆点"."结束,后面不能有空格,
也可以用这种方法来定义在for语句中迭代器函数返回的变量的智能提示。
web.layout() = !wblayout.
!wblayout.getValueObject() =
!layout_value.object.
这种写法的好处是可以对一个函数返回值动态创建的对象,例如!wblayout
再次定义它的成员函数返回的对象.
注意无论是智能提示配置,或编辑普通源码时,等号右侧使用括号可能被识别为函数调用.
所以在智能提示配置段中,应尽可能避免在说明文字中使用圆括号。
函数调用连缀式 代码提示
/*intellisense()
io.open() = !file.
io.open().read(-1) = 读入全部内容
!file.xxx() = 代码提示\n!file.
end intellisense*/
上面的写法可以支持识别该函数的返回值,以及直接在函数调用语句后列出成员的连缀式写法。
无论实际调用中使用了多少个参数,在这里不允许写参数.括号间不允许写空格.
如果代码提示以!开头,以.结束,则书写无参数调用函数语句时,不会显示提示(一般用于不支持无参数调用的函数)
如果代码提示形如
函数调用() = 代码提示\n!名字空间.
则在输入无参数调用语句时,会显示代码提示部分,并忽略后面的"!名字空间."
使用智能提示
1、您可用以下方式启动代码完成功能
自动:IDE会智能感知您输入的代码,并自动完成相关代码。
手动:你可以按CTRL+J组合热键调用智能提示并打开代码提示窗口。
2、智能提示引擎按以下规律分析代码
- 当打开一个aardio代码文件时,解析全部代码的智能提示数据。
- 你输入完成一行代码、按回车键结束一行时,会分析这一行的智能提示数据。
- 当从窗体可视化设计模式切换到代码编辑模式,IDE自动为窗体、控件创建智能提示数据,否则您无法获取完整的智能提示效果。
- 按CTRL+K组合热键时,更新当前文档相关的智能提示数据。