Skip to content
ivy-posframe is a ivy extension, which let ivy use posframe to show its candidate menu.
Branch: master
Clone or download
Latest commit bf6cf5d May 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
snapshots Update snapshots Mar 8, 2019
README.md Update README Mar 13, 2019
ivy-posframe.el requires ivy v0.11.0 May 15, 2019

README.md

Note: this file is auto converted from ivy-posframe.el by el2org, please do not edit it by hand!!!

目录

  1. ivy-posframe README
    1. What is ivy-posframe
    2. Display functions
    3. How to enable ivy-posframe
      1. Global mode
      2. Per-command mode.
      3. Fallback mode
    4. Tips
      1. How to show fringe to ivy-posframe
      2. How to custom your ivy-posframe style

ivy-posframe README

What is ivy-posframe

ivy-posframe is a ivy extension, which let ivy use posframe to show its candidate menu.

NOTE: ivy-posframe requires Emacs 26 and do not support mouse click.

Display functions

  1. ivy-posframe-display
  2. ivy-posframe-display-at-frame-center
  3. ivy-posframe-display-at-window-center img
  4. ivy-posframe-display-at-frame-bottom-left
  5. ivy-posframe-display-at-window-bottom-left img
  6. ivy-posframe-display-at-frame-bottom-window-center
  7. ivy-posframe-display-at-point img

How to enable ivy-posframe

Global mode

(require 'ivy-posframe)
(setq ivy-display-function #'ivy-posframe-display)
;; (setq ivy-display-function #'ivy-posframe-display-at-frame-center)
;; (setq ivy-display-function #'ivy-posframe-display-at-window-center)
;; (setq ivy-display-function #'ivy-posframe-display-at-frame-bottom-left)
;; (setq ivy-display-function #'ivy-posframe-display-at-window-bottom-left)
;; (setq ivy-display-function #'ivy-posframe-display-at-point)
(ivy-posframe-enable)

Per-command mode.

(require 'ivy-posframe)
;; Different command can use different display function.
(push '(counsel-M-x . ivy-posframe-display-at-window-bottom-left) ivy-display-functions-alist)
(push '(complete-symbol . ivy-posframe-display-at-point) ivy-display-functions-alist)
(push '(swiper . ivy-posframe-display-at-point) ivy-display-functions-alist)
(ivy-posframe-enable)

NOTE: Using swiper as example: swiper's display function only take effect when you call swiper command with global keybinding, if you call swiper command with 'M-x' (for example: counsel-M-x), counsel-M-x's display function will take effect instead of swiper's.

The value of variable `this-command' will be used as the search key by ivy to find display function in `ivy-display-functions-alist', "C-h v this-command" is a good idea.

Fallback mode

(require 'ivy-posframe)
(push '(t . ivy-posframe-display) ivy-display-functions-alist)
(ivy-posframe-enable)

Tips

How to show fringe to ivy-posframe

(setq ivy-posframe-parameters
      '((left-fringe . 8)
        (right-fringe . 8)))

By the way, User can set any parameters of ivy-posframe with the help of `ivy-posframe-parameters'.

How to custom your ivy-posframe style

The simplest way is:

(defun ivy-posframe-display-at-XXX (str)
  (ivy-posframe--display str #'your-own-poshandler-function))
(ivy-posframe-enable) ; This line is needed.
You can’t perform that action at this time.