neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

menu_defs.h (2186B)


      1 #pragma once
      2 
      3 #include <stdbool.h>
      4 
      5 /// Indices into vimmenu_T->strings[] and vimmenu_T->noremap[] for each mode
      6 /// \addtogroup MENU_INDEX
      7 /// @{
      8 enum {
      9  MENU_INDEX_INVALID    = -1,
     10  MENU_INDEX_NORMAL     = 0,
     11  MENU_INDEX_VISUAL     = 1,
     12  MENU_INDEX_SELECT     = 2,
     13  MENU_INDEX_OP_PENDING = 3,
     14  MENU_INDEX_INSERT     = 4,
     15  MENU_INDEX_CMDLINE    = 5,
     16  MENU_INDEX_TERMINAL   = 6,
     17  MENU_INDEX_TIP        = 7,
     18  MENU_MODES            = 8,
     19 };
     20 /// @}
     21 
     22 /// Menu modes
     23 /// \addtogroup MENU_MODES
     24 /// @{
     25 enum {
     26  MENU_NORMAL_MODE     = 1 << MENU_INDEX_NORMAL,
     27  MENU_VISUAL_MODE     = 1 << MENU_INDEX_VISUAL,
     28  MENU_SELECT_MODE     = 1 << MENU_INDEX_SELECT,
     29  MENU_OP_PENDING_MODE = 1 << MENU_INDEX_OP_PENDING,
     30  MENU_INSERT_MODE     = 1 << MENU_INDEX_INSERT,
     31  MENU_CMDLINE_MODE    = 1 << MENU_INDEX_CMDLINE,
     32  MENU_TERMINAL_MODE   = 1 << MENU_INDEX_TERMINAL,
     33  MENU_TIP_MODE        = 1 << MENU_INDEX_TIP,
     34  MENU_ALL_MODES       = (1 << MENU_INDEX_TIP) - 1,
     35 };
     36 /// @}
     37 /// note MENU_INDEX_TIP is not a 'real' mode
     38 
     39 /// Start a menu name with this to not include it on the main menu bar
     40 #define MNU_HIDDEN_CHAR         ']'
     41 
     42 typedef struct VimMenu vimmenu_T;
     43 
     44 struct VimMenu {
     45  int modes;                  ///< Which modes is this menu visible for
     46  int enabled;                ///< for which modes the menu is enabled
     47  char *name;                 ///< Name of menu, possibly translated
     48  char *dname;                ///< Displayed Name ("name" without '&')
     49  char *en_name;              ///< "name" untranslated, NULL when
     50                              ///< was not translated
     51  char *en_dname;             ///< NULL when "dname" untranslated
     52  int mnemonic;               ///< mnemonic key (after '&')
     53  char *actext;               ///< accelerator text (after TAB)
     54  int priority;               ///< Menu order priority
     55  char *strings[MENU_MODES];  ///< Mapped string for each mode
     56  int noremap[MENU_MODES];    ///< A \ref REMAP_VALUES flag for each mode
     57  bool silent[MENU_MODES];    ///< A silent flag for each mode
     58  vimmenu_T *children;        ///< Children of sub-menu
     59  vimmenu_T *parent;          ///< Parent of menu
     60  vimmenu_T *next;            ///< Next item in menu
     61 };