Lugaru's Epsilon
Programmer's
Editor

Context:
Epsilon User's Manual and Reference
   . . .
   Error Messages
   Changes from Older Versions
      Major New Features in Epsilon 13
      EEL Programming Changes in Epsilon 13
         Improvements to File-Handling Functions in Epsilon 13
         Display-related Enhancements in Epsilon 13
         More Options for Running Programs in Epsilon 13
      New Features in Epsilon 12
      EEL Programming Changes in Epsilon 12
      . . .
   Epsilon Key Assignments
   . . .

Previous   Up    Next
EEL Improvements in Epsilon 13  Changes from Older Versions   Improvements to File-Handling Functions in Epsilon 13


Epsilon User's Manual and Reference > Changes from Older Versions >

EEL Programming Changes in Epsilon 13

It'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 do_when_idle_..., passing the same parameters and expecting the same return value as the original. You can define similar functions to be called when a key repeats, when Epsilon builds a mode line, or when Epsilon is exiting. Or you can register a function to be called during screen updating, just before Epsilon displays a window.

The fpatmatch( ) primitive now recognizes | in patterns to provide alternatives.

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 TYPE_CHAR macro had been used inconsistently. Now TYPE_CHAR always refers to a 16-bit character, and the new TYPE_BYTE refers to an 8-bit byte.

The expand_string_template( ) subroutine now interprets %x and %X in templates, substituting the directory containing Epsilon's executable.

The new is_unix_flavor variable indicates if Epsilon is running under Linux, FreeBSD, or Mac OS X.

The new subroutines buf_go_line( ) and get_line_from_buffer( ) provide more convenient line-based access to other buffers.

The new copy_expanding( ) subroutine helps to support maintaining arbitrary-length string data.

The new get_buffer_filename( ) retrieves the current buffer's associated file name, even in those buffers that don't store it in the filename variable.

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 exptoi( ) and evaluate_numeric_expression( ) subroutines let EEL code evaluate strings with expressions like 17+5*(2+3).

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.



Previous   Up    Next
EEL Improvements in Epsilon 13  Changes from Older Versions   Improvements to File-Handling Functions in Epsilon 13


Lugaru Copyright (C) 1984, 2007 Lugaru Software Ltd. All Rights Reserved.