[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[StrongED] StrongED 4.70a10 available

Hi All,

The tenth alpha release of StrongED 4.70 can found on the website:

This version brings some new features and some changes to existing
features. A number of them are marked WIP (Work In Progress) and require
more work before they become fully usable.

Included are updated versions of the BasAsm and Dump modes that make use
of the new options for colouring assembler instructions.

As always, all feedback is welcome and appreciated!


Changes in StrongED 4.70a10

Iconbar menu

Added a submenu to the 'Create file' item to the iconbar menu with the
following items:

 o New file       > modes menu
 o Task window
 o Grab memory...

 This should make it easier for users not familiar with StrongED to find
 these options. Anyone new wouldn't find how to open the Grab dialogue
 quickly: 'Adjust click on iconbar icon -> click Select on Dump item'.

View menu

Added line numbers submenu to View menu > Display so that line numbers
can be turned on/off on a per view basis.

New global options

 - Detect ASM sections in BASIC detokenise
 - Verify BASIC file before detokenising
 - Report errors from BASIC's tokeniser
 - Use a time delay when auto-scrolling
 - Turn match highlight off after set time
 - Mouse highlight in LoF, LoW, Throwback
 - Colours throwback error detail lines

New mode options

 - Checks child done, refresh files + spell checking

Refreshing files

StrongED already had the ability to check a text against it's copy on
disc the see if the disc copy had been changed through the Autorefresh
function. In this version this has been extended using the Checks child
in Mode Choices. It allows for auto-refresh to be configured for a mode
and provides a number of options:

 - Check disc copy on first edit
 - Check disc copy when text gains focus
 - Check disc copy at regular intervals
 - Stop all checks once text has been edited

There are also options to control what should be done when the disc copy
has been altered:

 - Query before refreshing the text
 - Query only if the text has been edited
 - Refresh automatically (loses any changes made)

Embedded options (WIP)

Previous versions allowed a limited set of embedded options (such as
StrongED$Mode) in a text. This has been extended to include most of the
options that can be set in the Mode Choices. The format for these new
embedded options is: StrongED$<option name> = <value>

The option name is the same as used in a Mode Choices file. Eg to turn
visible spaces on you'd use: StrongED$Display_ShowSpace = On

At the moment this is very much a WIP as most options can't be set at
view level so setting an option applies to the entire mode the text is
displayed in.

Dialogue boxes

All dialogue boxes that offer history menus now have a menu icon next to
the writable field. When the pointer is over a writable field it now
shows ptr_write instead of ptr_menu. More style guide compliant and
easier for new users.

Inserting filenames

Added support for the Alt key in InsertFilename. When pressed the
leafname/filename will not be terminated. This is useful in, say, BASIC
mode to insert the name into a string, not so useful in a TaskWindow as
you'd always want a terminator (to separate multiple names).

In Taskwindows the terminator is a space, for other texts it's a

Changed BASIC handling

If a BASIC program is too long and line numbers would became too large a
warning would be raised and the save would be aborted. The warning has
been changed to a query asking if the program should be saved using 0,0
for linenumber start, increment. This way the program can still be
saved. Although there may be problems when running, eg ERL will always
be 0 so finding errors is difficult.

Before a BASIC file is detokenised it is now checked for validity. When
the check fails a warning is put up. The file will still be detokenised
(as much as possible) in order to keep behaviour the same as previous

There is now an option to detect asssembler sections, and comments
inside one. This should fix the problem of top-bit-set characters in
assembler comments being converted to keywords.

The option to add/remove spaces didn't work due to an error introduced
during earlier changes (in 4.68), as a result editing compacted BASIC
files often resulted in a non-functional file.

When a file is saved it is retokenised using BASIC's tokeniser which can
signal errors. There is now an option to report these errors (mismatched
quotes, mismatched parenthesis, line number too big).

Assembler colouring

The colouring of assembler instructions has been further extended; it
now covers NEON2 as well. This is what's supported now:

 - ARMv7 including all the new ARM instructions
 - FPE   instructions for the floating point emulator
 - VFP4  vector floating point in UAL format
 - NEON2 SIMD instructions

SyntaxWords groups

To allow all the new instruction groups to be individually coloured the
number of SyntaxWords groups has been increased to 32. Roughly 24 groups
are used for instructions, with the other 8 used for things like labels,
directives etc.

Instructions are grouped mostly as they are in the ARM-ARM.

 - Data processing
 - Single load/store
 - Multiple load/store
 - Compares and Tests
 - (Table) Branches
 - Exception instructions
 - Divide and Multiply
 - Packing and Unpacking
 - Parallel instructions
 - Saturating instructions
 - Miscellaneous instructions
 - Coprocessor instructions
 - FPE instructions
 - NEON2 + VFP4 instructions

 - Register names
 - Coprocessor registers
 - FPE register names
 - PSR registers
 - VFPv3 registers

DumpMode grouping

The hexadecimal/binary memory dump in Dump mode can now be grouped, that
is have an extra space inserted after N elements. This makes it easier
to see how many elements there per line. For now it's hardwired to 4
elements per group but it will be made configurable in a later version.

Trim EOL spaces

Old versions of StrongED would trim EOL spaces of an edited line when
the cursor was moved out of that line using the keyboard. Moving the
cursor with the mouse did not trigger trimming.

To fix this inconsistency the code was changed to do a trim-on-save so
that EOL spaces were trimmed from all (unprotected) lines. Recently it
was pointed out that this can be awkward when the file is in a version
control system as it may show more changes than were actually made due
to trimming.

So trimming is now back to the original 'trim edited line' regime but
with one difference: instead of just setting a flag to mark that the
line at cursor has been edited, the code now notes the line's address.

This means the line can also be trimmed when the cursor is moved using
the mouse. However it also means that lines that were block-edited won't
be trimmed with the exception of the line that held the cursor (just as
with the original regime).

This is an experimental change to see if trimming this way is better
than trim-on-save and the original regime. It may be possible to trim
block-edited regions too by noting the edited region rather the edited
line, but that's something for a later release.

Indent change

Changed ReindentText function, the 'force' parameter no longer controls
the initial indent of a line (so lines would always indent even when
there was no smart indent match). It is now used to force a smart indent
even when the auto-indent option is off.

Turning off auto-indent now turns off smart indent too so that indents
aren't adjusted at all. Disruption should be minor as most users that
use smart indent will have auto-indent on.

Menuline in LoF

The LoF, LoW and Throwback windows show a menuline when the pointer is
over one or when the window has input focus. Someone requested that the
menuline not be shown when the pointer is over such a window.

While investigating if this was possible some strange behaviour was
found. If there was more than one of these windows open and one had
input focus while the mouse was over another, the menuline would be
shown in the window the pointer was over. This menuline however would
move is you used the cursor keys, even though the input focus was in
another window.

To address this issue and honour the request there are now 2 menulines,
one tied to input focus and the other tied to the pointer. An option has
been created allowing the pointer menuline to be turned off.

If there are two menulines as in the scenario above then they will each
move independently (one controlled by the mouse the by the cursor keys).
If the pointer is over the window with input focus then only 1 menuline
will be shown but it'll respond to cursor keys _and_ mouse movement.

Throwback colours

The display of error lines has been extended; instead of W,E,S it now
shows Warning, Error and Serious error (this is done through tokens in
the messages file so can be changed if you wish). The different error
levels can be shown in their own colours. These changes should make it
easier to spot serious errors.

Grab window

The grab window has the 'Zero page' button reinstated. It was moved out
because grabbing 'Zero page' aborted on RO4 as the page was inaccessible
from user mode. Now we switch to SVC mode before grabbing, also checks
if 'Zero page' has been relocated (RO5 with ZPP) and grab that if so.
Note: this requires CallASWI 0.10 to work correctly on non-RO5 systems.

To unsubscribe send a mail to StrongED+unsubscribe@xxxxxxxxxxxxxx
List archives at http://www.Torrens.org.uk/RO/StrongED/index.html