wex v24.10.0
|
This class offers a stc with support for commands. More...
#include <wex/stc/shell.h>
Public Member Functions | |
shell (const data::stc &data=data::stc(), const std::string &prompt=">", const std::string &command_end=std::string()) | |
Default constructor. | |
~shell () override | |
Destructor, keeps the commands in the config, if required. | |
void | AppendText (const wxString &text) override |
Appends text, and updates the command start position. | |
void | Undo () override |
Undo one action in the undo history. | |
bool | process_char (int c) override |
Processes specified char. | |
void | enable (bool enable=true) |
Enable/disable shell processing. | |
const std::string | get_command () const |
Returns last entered command. | |
const std::string | get_history () const |
Returns all history commands as a string, separated by a newline (for testing). | |
const auto & | get_prompt () const |
Returns the prompt. | |
bool | is_enabled () const |
Returns whether shell processing is enabled. | |
bool | prompt (const std::string &text=std::string(), bool add_eol=true) |
Puts the text (if not empty) and a prompt at the end, goes to the end, and empties the undo buffer. | |
void | set_process (factory::process *process) |
Sets the process to which commands are sent. | |
bool | set_prompt (const std::string &prompt, bool do_prompt=true) |
Sets the prompt, and prompts if asked for. | |
Public Member Functions inherited from wex::stc | |
stc (const std::string &text=std::string(), const data::stc &data=data::stc()) | |
Default constructor, sets text if not empty. | |
stc (const wex::path &p, const data::stc &data=data::stc()) | |
Constructor, opens the file if it exists. | |
~stc () override | |
Destructor. | |
auto * | auto_complete () |
Returns auto_complete. | |
void | config_get () |
Sets the configurable parameters to values currently in config. | |
const auto & | data () const |
Returns associated data. | |
void | filetype_menu () |
Shows a menu with current line type checked, and allows you to change it. | |
bool | find_next (bool stc_find_string=true) |
Finds next with settings from find replace data. | |
auto & | get_file () |
Returns the file. | |
auto | get_frame () |
Returns frame. | |
const auto & | get_hexmode () const |
Returns hex mode component. | |
auto & | get_hexmode () |
Returns writable hex mode component. | |
const vi & | get_vi () const |
Returns vi component. | |
vi & | get_vi () |
Returns writable vi component. | |
bool | is_shown_line_numbers () const |
Returns true if line numbers are shown. | |
void | keep_event_data (bool synced) |
Keeps event data. | |
bool | link_open (link_t mode, std::string *filename=nullptr) |
Returns true if selected text (or a link on the current line can be opened, and fills the filename with the link. | |
bool | marker_delete_all_change () |
Deletes all change markers. | |
int | replace_all (const std::string &find_text, const std::string &replace_text) |
Replaces all text. | |
bool | replace_next (bool stc_find_string=true) |
Replaces text and calls find next. | |
bool | replace_next (const std::string &find_text, const std::string &replace_text, int find_flags=0, bool stc_find_string=true) |
Replaces text and calls find next. | |
void | add_text (const std::string &text) override |
Adds text. | |
void | add_text_block (const std::string &text) override |
Adds text block mode. | |
void | append_text (const std::string &text) override |
Appends text (to end). | |
bool | auto_indentation (int c) override |
After pressing enter, starts new line at same place as previous line. | |
bool | find (const std::string &text, int find_flags=-1, bool find_next=true) override |
Override methods from text_window. | |
wex::data::stc * | get_data () override |
Returns stc data. | |
const ex_command & | get_ex_command () const override |
Returns the ex command. | |
const std::string | get_find_string () const override |
Returns find string, from selected text or from config. | |
bool | get_hexmode_erase (int begin, int end) override |
Hex erase. | |
bool | get_hexmode_insert (const std::string &command, int pos) override |
Hex insert. | |
std::string | get_hexmode_lines (const std::string &text) const override |
Hex lines. | |
bool | get_hexmode_replace (char) override |
Hex replace. | |
bool | get_hexmode_replace_target (const std::string &replacement, bool set_text) override |
Hex replace target. | |
bool | get_hexmode_sync () override |
Hex sync. | |
int | get_current_line () const override |
Returns current line no. | |
int | get_line_count () const override |
Returns number of lines. | |
int | get_line_count_request () override |
Request for number of lines. | |
void | goto_line (int line) override |
Goes to specified line. | |
bool | inject (const data::control &data) override |
Injects data. | |
bool | is_hexmode () const override |
Returns true if we are in hex mode (default false). | |
bool | is_visual () const override |
Returns true if we are in visual mode (not ex mode) (default true). | |
bool | link_open () override |
If selected text is a link, opens the link. | |
bool | open (const wex::path &p, const data::stc &data=data::stc()) override |
Opens the file, reads the content into the window, then closes the file and sets the lexer. | |
const wex::path & | path () const override |
Returns the path, as used by the file. | |
void | print (bool prompt=true) override |
Prints the document. | |
void | print_preview (wxPreviewFrameModalityKind kind=wxPreviewFrame_AppModal) override |
Shows a print preview. | |
void | properties_message (path::log_t t=path::log_t().set(path::LOG_MOD)) override |
Shows properties on the statusbar using specified flags. | |
bool | set_hexmode (bool on) override |
Sets hex mode (default false). | |
void | set_search_flags (int flags) override |
Sets search flags, default invokes SetSearchFlags. | |
void | set_text (const std::string &value) override |
Sets the text. | |
void | show_ascii_value () override |
Shows decimal or hex info of word under cursor. | |
void | show_line_numbers (bool show) override |
Shows or hides line numbers. | |
void | show_whitespace (bool show) override |
Shows or hides whitespace. | |
void | sync (bool start=true) override |
Starts or stops syncing. | |
void | use_modification_markers (bool use) override |
Use and show modification markers in the margin. | |
bool | vi_command (const line_data &data) override |
Runs a vi command on this stc (default false). | |
bool | vi_command_finish (bool user_input) override |
Finish last vi command (default false). | |
void | vi_record (const std::string &command) override |
Records a macro. | |
bool | vi_is_recording () const override |
Returns true if we are recording. | |
bool | vi_is_visual () const override |
Returns true if we are in vi visual mode (default false). | |
std::string | vi_register (char c) const override |
Returns vi register. | |
int | vi_search_flags () const override |
Returns vi search flags. | |
const std::string | vi_mode () const override |
Returns vi mode as a string. | |
void | visual (bool on) override |
Sets using visual vi (on) or ex mode (!on). | |
Public Member Functions inherited from wex::syntax::stc | |
stc (const data::window &data=data::window()) | |
Default constructor. | |
virtual bool | lexer_is_previewable () const final |
Returns whether lexer is previewable. | |
virtual std::string | lexer_name () const final |
Returns the name of the lexer. | |
void | blame_margin (const blame *blame) |
Blames margin. | |
void | fold (bool fold_all=false) |
Enables or disables folding depending on fold property (default not implemented). | |
const auto & | get_lexer () const |
Returns the lexer. | |
auto & | get_lexer () |
Returns the lexer. | |
std::string | margin_get_revision_renamed () const |
Returns renamed revision. | |
bool | set_indicator (const indicator &indicator, int start=-1, int end=-1) |
Sets an indicator at specified start and end pos. | |
Public Member Functions inherited from wex::factory::stc | |
stc (const data::window &data=data::window()) | |
Default constructor. | |
void | bind_wx () |
Binds wx methods. | |
void | clear (bool set_savepoint=true) |
Clears the component: all text is cleared and all styles are reset. | |
const std::string | eol () const |
Returns EOL string. | |
size_t | get_fold_level () const |
Returns current line fold level. | |
int | get_margin_text_click () const |
Returns line on which text margin was clicked, or -1 if not. | |
const std::string | get_selected_text () const |
Returns selected text as a string. | |
const std::string | get_text () const |
Returns the text. | |
const std::string | get_word_at_pos (int pos) const |
Returns word at position. | |
std::string | margin_get_revision_id () const |
When clicked on a line with a text margin, returns revision id on the text margin, otherwise returns empty string. | |
bool | margin_text_is_shown () const |
Returns true if margin text is shown. | |
void | margin_text_show () |
Shows text margin. | |
bool | position_restore () |
Restores saved position. | |
void | position_save () |
Saves position. | |
void | reset_margins (margin_t type=margin_t().set()) |
Resets (all) margins. | |
void | set_margin_text_click (int line) |
Sets the margin line that is clicked (for testing). | |
auto & | vcs_renamed () const |
Returns renamed. | |
Public Member Functions inherited from wex::factory::text_window | |
virtual | ~text_window ()=default |
Destructor. | |
Additional Inherited Members | |
Public Types inherited from wex::stc | |
enum | { LINK_CHECK = 0 , LINK_OPEN = 1 , LINK_OPEN_MIME = 2 } |
typedef std::bitset< 3 > | link_t |
A typedef containing lnk flags. | |
Public Types inherited from wex::factory::stc | |
enum | { MARGIN_DIVIDER = 0 , MARGIN_FOLDING = 1 , MARGIN_LINENUMBER = 2 , MARGIN_TEXT = 3 } |
Margin flags. More... | |
typedef std::bitset< 4 > | margin_t |
A typedef containing margin flags. | |
Static Public Member Functions inherited from wex::stc | |
static int | config_dialog (const data::window &data=data::window()) |
Shows a dialog with options, returns dialog return code. | |
static auto * | config_items () |
Returns config items. | |
static auto * | get_config_dialog () |
Returns the config dialog. | |
static void | on_exit () |
Saves static data in config. | |
static void | on_init () |
Reads static data from config (e.g. | |
This class offers a stc with support for commands.
The commands are entered at the last line, and kept in a list of commands, by pressing key up and down you browse through the commands. If a command is entered, an ID_SHELL_COMMAND command event is sent to the event handler, with the command available as event.GetString(). Or, if you used set_process, commands are sent to the process.
wex::shell::shell | ( | const data::stc & | data = data::stc(), |
const std::string & | prompt = ">", | ||
const std::string & | command_end = std::string() ) |
Default constructor.
data | data |
prompt | Give the command used to end a line. The default uses the eol. |
command_end | The command used to end a line. |
|
override |
Appends text, and updates the command start position.
Only if the cursor was at the end, the cursor is repositioned at the end after appending the text,
void wex::shell::enable | ( | bool | enable = true | ) |
Enable/disable shell processing.
Default (and after constructed) shell processing is enabled. When disabled, shell is a normal stc.
|
overridevirtual |
bool wex::shell::prompt | ( | const std::string & | text = std::string(), |
bool | add_eol = true ) |
Puts the text (if not empty) and a prompt at the end, goes to the end, and empties the undo buffer.
Default it also adds an eol before the prompt. Returns false and does not prompt if the shell is not enabled.
void wex::shell::set_process | ( | factory::process * | process | ) |
Sets the process to which commands are sent.
If you do not set this, commands are sent to the parent.
bool wex::shell::set_prompt | ( | const std::string & | prompt, |
bool | do_prompt = true ) |
Sets the prompt, and prompts if asked for.
Returns false and does not set the prompt if the shell is not enabled.