代码之家  ›  专栏  ›  技术社区  ›  Cheeso

emacs:x-popup-menu最大尺寸限制?

  •  5
  • Cheeso  · 技术社区  · 14 年前

    我正在为C#开发智能感知或代码完成功能。

    到目前为止,还不错。现在我已经基本完成了工作。有两种方法可以请求完成。第一个循环遍历所有可能的匹配项。第二个显示匹配项的弹出菜单。它适用于以下类型:

    alt text

    对于局部变量和实例变量:

    alt text

    我在使用x弹出菜单时遇到了两个问题:

    1. 当选择的数量很大时,弹出菜单可以扩展以占用所有可用的屏幕空间。从字面上说,它可以消耗整个屏幕,并掩盖其他一切,包括整个emacs窗口和其他窗口。 愚蠢的是,它是可滚动的。首先它会扩展以消耗所有可用空间,然后它也会变成可滚动的。似乎它应该扩展到某个点,然后变成可滚动的,而不是扩展到占用所有可用空间。
    2. 为了指定弹出菜单的位置,我传入一个位置,x-popup-menu使用它作为菜单顶行的*中间*,而不是左边。为什么偏中?谁知道呢。 如果我在指定位置之前知道弹出窗口的宽度,我可以进行补偿。但我没有。 有解决办法吗?有没有办法让弹出式菜单的位置是左边而不是中间?

    附录:x弹出菜单文件

    x-popup-menu是“C源代码”中的内置函数。

    弹出一副卡片菜单并返回用户的选择。 事件或列表((XOFFSET YOFFSET)窗口),其中XOFFSET和YOFFSET 是从窗口框架左上角开始的像素位置 (窗口可以是框架对象而不是窗口)。 窗口第一个窗格中第一行的中心位置 表示使用当前鼠标位置。

    2 回复  |  直到 5 年前
        1
  •  3
  •   Marko    14 年前
        2
  •  4
  •   Thomas    11 年前

    有些人喜欢Emacs,因为它 提供弹出窗口(参见。 this blog entry ). 更“emacsy”的表示可能完成列表的方式是在分割缓冲区中显示它们。这样,您将自动避免上述所有问题(屏幕不动产&滚动),可能会吸引更多的死硬派Emacs用户。

    但这纯粹是猜测:-)