emacs:x-popup-menu最大大小限制?

Che*_*eso 5 emacs

我正在为C#开发intellisense或代码完成功能.

到现在为止还挺好.现在我已基本完成工作了.有两种方法可以请求完成.第一个循环通过所有潜在的匹配.第二个是比赛的弹出菜单.它适用于类型:

替代文字http://i44.tinypic.com/afbl2o.jpg

还有本地和实例变量:

alt text http://i40.tinypic.com/2pqul2u.jpg

我正在面对x-popup-menu的两个问题:

  1. 当选项数量很大时,弹出菜单可以扩展以消耗所有可用的屏幕空间.从字面上看,它可以消耗整个屏幕,并遮盖其他所有内容,包括整个emacs窗口和其他所有窗口.愚蠢的是,它是可滚动的.首先它扩展以消耗所有可用空间,然后它也变得可滚动.似乎它有意义扩展到某一点,然后变得可滚动,而不是扩展以占用所有可用空间.有没有办法可以限制x-popup-menu的最大大小?
  2. 要指定弹出菜单的位置,我传入一个位置,x-popup-menu将其用作菜单顶行的*middle*,而不是左边.为什么中间?谁知道.这意味着,如果我指定(40.60)菜单的位置,并且菜单恰好是100像素宽,菜单将延伸到emacs窗口的左边框之外.您可以在上面的第二张图片中看到这一点.如果我在指定位置之前知道弹出窗口的宽度,我可以补偿.但我没有.有解决方法吗?有没有办法让x-popup-menu占据LEFT而不是中间位置?

附录:x-popup-menu的文档

x-popup-menu是"C源代码"中的内置函数.(x-popup-menu POSITION MENU)

弹出一副卡片菜单并返回用户的选择.PO SITION是一个位置规范.这可以是一个鼠标按钮事件或列表((X偏移Y偏移)WINDOW),其中X偏移和Y偏移是从窗口的框架的左上角中的像素位置(WINDOW可以是框架对象,而不是窗口). 这将控制菜单第一个窗格中第一行中心的位置,而不是整个菜单的左上角. 如果POSITION为t,则表示使用当前鼠标位置.

Mar*_*rko 3

您可以将自动完成后端基于公司或自动完成,其中为您处理建议的显示。