| IDA SDK

Public Attributes | List of all members
cli_t Struct Reference

## Detailed Description

Command line interpreter.

Provides functionality for the command line (located at the bottom of the main window). Only GUI version of IDA supports CLIs.

## Public Attributes
size_t | size
| size of this structure
int32 | flags
| CLI attributes
const char * | sname
| short name (displayed on the button)
const char * | lname
| long name (displayed in the menu)
const char * | hint
| hint for the input line
bool(idaapi * | execute_line )(const char *line)
| Callback: the user pressed Enter. More...
bool(idaapi * | keydown )(qstring *line, int *p_x, int *p_sellen, int *p_vk_key, int shift)
| Callback: a keyboard key has been pressed. More...
bool(idaapi * | find_completions )(qstrvec_t *out_completions, qstrvec_t *out_hints, qstrvec_t *out_docs, int *out_match_start, int *out_match_end, const char *line, int x)
| Callback: the user pressed Tab/Shift+Tab. More...

## Member Data Documentation

## ◆ execute_line

bool(idaapi * cli_t::execute_line) (const char *line)

Callback: the user pressed Enter.

CLI is free to execute the line immediately or ask for more lines.

Parameters

  line | command to execute (utf-8-encoded)

Return values

  true | executed line
  false | ask for more lines

## ◆ keydown

bool(idaapi * cli_t::keydown) (qstring *line, int *p_x, int *p_sellen, int *p_vk_key, int shift)

Callback: a keyboard key has been pressed.

This callback is optional. It is a generic callback and the CLI is free to do whatever it wants.

Parameters

  line | current input line (in/out argument)
  p_x | pointer to current x coordinate of the cursor (in/out)
  p_sellen | pointer to current selection length (usually 0)
  p_vk_key | pointer to virtual key code (in/out). if the key has been handled, it should be reset to 0 by CLI
  shift | shift state

Return values

  true | modified input line or x coordinate or selection length
  false | otherwise

## ◆ find_completions

bool(idaapi * cli_t::find_completions) (qstrvec_t *out_completions, qstrvec_t *out_hints, qstrvec_t *out_docs, int *out_match_start, int *out_match_end, const char *line, int x)

Callback: the user pressed Tab/Shift+Tab.

This callback is optional.

Parameters

  [out] | out_completions | results of completion
  [out] | out_hints | one entry per completion result giving hints about the candidate (function protype, variable type, etc ...) Either has to be exactly the length of out_completions or zero length to display no hints.
  [out] | out_docs | one entry per completion result giving the docstring of the corresponding item in out_completions. Either has to be exactly the length of out_completions or zero length to display no docstrings.
  [out] | out_match_start | the codepoint index in the line, where match starts
  [out] | out_match_end | the codepoint index in the line, where ends ends
  | line | command line
  | x | codepoint index of the cursor in line

Return values

  true | got results
  false | otherwise

The documentation for this struct was generated from the following file:

- kernwin.hpp