EEL Programming Changes in Epsilon 13It's now easier to extend Epsilon to perform additional tasks at various times. When Epsilon is idle, its when_idle( ) subroutine now calls any function whose name starts with
The fpatmatch( ) primitive now recognizes
The indent_to_column( ) subroutine is now careful to change the buffer only when necessary. In combination with the new COLOR_IGNORE_INDENT macro below, this makes block indenting much faster in languages that use syntax coloring to drive indenting.
The expand_string_template( ) subroutine now interprets
The new is_unix_flavor variable indicates if Epsilon is running under Linux, FreeBSD, or Mac OS X.
The new copy_expanding( ) subroutine helps to support maintaining arbitrary-length string data.
The new clean_mode( ) subroutine helps when using mode-specific variables (those where Epsilon looks up the right variable name based on the current mode), by providing a version of the mode with invalid variable name characters cleaned.
The new standard_tab_cmd( ) subroutine is useful in modes that want to provide a command for the <Tab> key that does the "usual thing".
The new default_replace_string( ) subroutine provides the most recent replacement string.
The clipboard primitives now take a flag argument, which enables using multiple clipboard formats under Windows.
The new original_argv( ) primitive lets EEL code access Epsilon's original unmodified command line.
The new unseen_msgs_time( ) primitive returns the time remaining for the current timed message.
The new phoneticize_lines( ) primitive computes codes for words so that words that have similar sounds will have the same code.
The new download_file_to_disk( ) subroutine lets EEL code more conveniently retrieve a file from a web server and store it on disk.
Other useful new subroutines include strpbrk( ) and strpbrk_cnt( ), the former similar to the standard C function of the same name. The new move_line_to_buffer( ) subroutine copies the current line to another buffer, deleting it, while column_color_searching( ) searches while restricting matches to start at a particular column. The new strkeep( ) subroutine saves strings for the rest of the session in a way that's especially useful for major_mode settings.
The new (or newly-documented, in some cases) subroutines string_matches_pattern( ), string_matches_regex( ), word_in_list( ) and starts_with_in_list( ) subroutines tell if strings match various sorts of patterns.
EEL now recognizes the notation 0o123 for octal numbers, in addition to C's traditional notation 0123. (13.03)