Well, it has been over a year since the last release and I have finally got round to uploading a new version.
I still need to update the manual and put some screenshots up.
Version 0.3.5 (19/4/2011) eins035.zip (3.2MB).
If you have difficulty downloading the above, I have split the file in two (to meet the 4shared 2MB limit) with the main part being available here and documentation here.
There is also a Windows Installer (3.2MB), but I strongly recommend you save it (as eins035.exe) and check it is 3.2MB (and run a virus scan on it as you should with everything you download) before running. Please note this file is complete, but you may need several attempts to successfully download it (my bad for using a free host).
I will update the text below soon.
So here is version 0.3.2. Minor updates and bugfixes every few weeks soon add up, as you can see below. Now works much better on Windows XP.
Download version 0.3.2, 12/03/2010: eins032.zip (2.92MB).
**NB files have moved since 0.3.0, hence please do not install into a directory which contains a previous version of Edita. Create a new empty directory instead (and/or rename the existing one as a backup)
Note that Edita is now tested and built on Phix rather that RDS Eu. For the latter, it seems ok on both 2.4 and 3.0 (see eu30.bat), but 4.0beta does not work/is still not ready yet - which is not my problem.
The following is an extract from readme.txt:
Coloured tab controls, enhanced command setup, and .hlp/.chm integration.
Version 0.3.2
=============
14/07/07 Just as Ctrl Left and Ctrl Right jump to start of prev/next word,
Ctrl Alt Left and Ctrl Alt Right now jump to end of prev/next word.
Note that block selection (Ctrl Alt Shift Left/Right) works exactly
as expected within a single line, but uses column mode because the
Alt key is down when selecting multiple lines. Hence a Shift L/R
may be needed at the end to obtain normal block selection.
18/07/07 Added Show as Hex and Show as Decimal to Edit/Case. You must block
select a single number, with leading # for hex nos (/the latter),
for these options to have any effect.
I wanted them mainly for looking at ex.err files, in my case hex file
addresses, but probably occasionally useful for things like WS_BORDER
and the like.
[I know this is a bit of an odd place to hide these obscure functions,
though they are a bit like upper/lower only with number bases...
Any suggestions for somewhere better to put them will be considered.]
20/07/07 Made Ctrl E/R (Enlarge/Reduce font size) work on F1 Help and Ctrl Q
windows.
01/08/07 Bugfix: Using > and . to represent spaces, with tab width=4, copy
;> p2.>> ;
;> p3> > ;
then inspection of the clipboard or a paste would show the error.
The tab conversion routine assumed that the > in ".>" on the first
line was a full_width tab, ie represented 4 spaces. It now does the
correct "tab_width - remainder(logical_pos,tab_width)" calculation
on each and every tab char encountered, instead of just the first.
While the effects of this are not normally serious, and only occur
in the hopefully rare case of <space><tab>, I have noticed the long
term behaviour is accumulative, especially over repeated file saves
and generally speaking moreso on txt/html/asm files than Eu source.
Thankfully, at no point did this stop any programs working (which
would probably not be true for Python sources).
PS Tab conversion is also suspected to be dodgy when copying text
not starting from column 1, but I haven't nailed the test case for
that yet, sorry. [update see 24/9 entry]
12/08/07 Made Ctrl Shift L toggle Line nos.
17/08/07 Bugfix in Tools/Find in Files. Searching the current file (when
Current Dir, Euphoria files, and Euphoria Includes all unchecked)
was not supplying the path and quietly failing to open the file.
19/08/07 Woohoo! Finally figured out that all those miscoloured brackets
I get from time-to-time are a result of Paste() not updating the
bCFwd table properly. It now performs a syntaxColour() on each
inserted line. Huge paste ops may be a tad slower but worth it.
[update 31/10. Has improved matters ~90% but a few remain.]
10/09/07 Escape char '#' added to Euphoria.syn, for eg "Hello\#07".
Tweak needed to syntax colouring routine for '\#D4' (not that
you need the quotes really) as a 4-char squote, and check two
following chars are proper hex 0-9/A-F/a-f. (For Phix only.)
24/09/07 Fixed the following bug in copy/paste:
copy the comment on first line to second.
mov eax,[ebx+4] ; infile
mov eax,[b_ebx]
It now does some convoluted fiddling when copy/paste is not on
a tab stop or starting in column 1.
07/11/07 Bugfix: variable k has not been assigned a value when double-
clicking on a url. [?]Must have been there for 8 months![?]
08/12/07 http: links now properly created by code publisher.
17/12/07 bugs with alt+ctrl keys fixed. Thanks to Jesus Conseugra.
18/12/07 replaced ShellExecute with ShellExecuteEx in F1Help when opening
a .hlp file and TerminateProcess(old) to stop there being multiple
help files being left open at the same time. If there is any demand
for it I could make Alt-F1 leave .hlp files open.
10/01/08 Close open help files when closing Edita.
10/01/08 Open new file tab next to current, rather than at end.
11/01/08 Fixed another minor tab/space error in column paste, similar to
that fixed 24/09.
13/01/08 Suppressed the re-open pop-up if file has been externally modified.
(ie it no longer incorrectly asserts "file has not been modified".)
15/01/08 Made tedb (Database Viewer) save the detail window position.
19/01/08 Bugfix: slice starts past end of sequence (1 > 0) in eafind.ew when
F4 pressed and the find default is of a length l such that the next
'>' or '<' line plus l was a blank line. The problem/fix is that it
should not be using a previous find default; it now uses {{}}.
17/02/08 Couple of bugfixes in Code Publisher: stopped edit:xxx from appearing
as real/clickable url, changed generated html so that tags balance.
ie/eg <font><b>...</b></font> instead of <font><b>...</font></b>.
Underscores were running on a bit wildly. This may be due to bugs in
the Print code of Opera 9: while of course balanced html should have
been output all along, the purists may say, if it displays right but
prints wrong, then I still regard it a bug (in Opera 9).
02/03/08 Increased a limit of 200 to 2000 in eafind.ew, since I happened to hit
it in normal/reasonable use. See entry dated 18/11 (though the code I
just found (wot I wrote) actually had said limit of 200 not 600).
22/04/08 Made ctrl Q, and the toobar dropdown, work properly on profiles. (I
cannot use exdotpro because this freehost redirects on it!)
05/05/08 Crash in removeLineLengths after compare. Replaced the old style
selectAll()/deleteSelection()/addAction()/InsertBlock() with the
rebuild linelengths and direct update code to match that in eacca.ew,
eafif.ew, and eaxutil.ew (DEV: should probably be common code..)
18/06/08 Bugfix: Pressing Ctrl H (show as Hex) on 8585199620 crashed with the
error "number too big for %x or %o format", a limit in sprintf().
The value is now converted manually.
12/07/08 Added Ctrl J to toggle between sequence and string, for example if
ex.err contains iset = "%3>?M" then if you block select the string
pressing Ctrl J toggles between "%3>?M" and {37,51,62,63,77}.
23/07/08 Tweaked saveFile to restart the autosave timer, so that autosave
only really kicks in when not regularly saving files manually.
21/04/09 Index out of bounds line 472 in eafif when searching for "000004".
A missing exit made nphits go negative.
24/04/09 Made select word (ctrl w) on hex nos (eg #4000) include the #.
26/07/09 Made "Show as Seq/Str (Ctrl J)" (on the Edit\Case menu) properly
handle \t, \r, \n, \", \', and \\. The main purpose of this, btw,
is that when an ex.err contains a cryptic "®\n", selecting it
(quotes inclusive) and pressing Ctrl J shows {174,10}, which may
hopefully be a bit more meaningful and helpful when debugging.
26/09/09 Added File/ReOpen option (Ctrl Shift O), previously this was
only available by right-clicking on the file tab. Completely
rewrote the "Control and Alt keys" part of F1 keyboard help
(in elng_ENG.txt), and you now need Shift to Enlarge/Reduce
font size, since it was too easy to press them by mistake.
02/11/09 Fixed WordLeft/WordRight to skip ".." (and "..." etc) properly.
Prior to this, it treated eg text[1..4] the same as text[1234].
It now stops properly on the start(/end) of the 1 and the 4,
that is when using Ctrl(+Alt) left/rightarrow.
30/11/09 After some deliberation, made ''' legal on all files. In Phix,
this works the same as '\'', which is what you must use on RDS
Eu, since that barfs on '''. Hence in that sense the syntax
colouring is wrong if you're editing source files to run on
RDS Eu, but OK if they're for running on Phix. However, it is
surely only mildly annoying and not that common. I wanted this
mainly for list.asm, and ex.err, where a sequence of {-1,39,65}
is shown as {-1,39''',65'A'}.
23/12/09 Nearly drove myself nuts on this one:
p.exe, exw.exe, exwc.exe all worked fine, but pw.exe on windows XP
[which worked fine on windows 98] used 100% cpu time... Yet the
only difference between p.exe and pw.exe is one byte... After four
days of hacking, I finally figured out it was all because I had a
pw.exe.manifest file but no p.exe.manifest file; once I created
the latter it was clearly the cause. Prevented the looping by
by adding a msg!=WM_NOTIFY check in mainHandler() before restarting
the idle handler.
27/12/09 With a manifest file (on windows XP therefore), the radiobuttons in
Options/Colours appeared as black text on a black background. Added
classStyleEx[RadioButton] = WS_EX_TRANSPARENT to classes.ew.
Also resized the Display Options window and moved the OK and cancel
buttons on Options/Fonts slightly.
Update: 27/2/10 you no longer need a separate manifest file,
at least not when running on Phix that is.
28/12/09 Modified Phix to send compilation warning messages direct to Edita.
These generally appear last-first, due to the fact that in pixl87.e
routine unused_cleanup() processes symtab from 1 to symlimit, and
in edita.exw, routine CDmessage() inserts each message it gets at
the top. This is intentional, since then you can edit/delete line
9746 and line 4853 will still be exactly where it was before.
However, there are many ways for messages to appear out-of-order,
for example:
constant a={1111,2222,3333},
b=1111,
c=2222,
d=3333
(assuming all are unused) gives a,d,c,b on lines 1,4,3,2. This is
because it first creates "unnamed" constants 1111/2222/3333, and
then "hijacks" them for b/c/d, so symtab end up like this:
symtab[996]:{b,S_Const,1111}
symtab[997]:{c,S_Const,2222}
symtab[998]:{d,S_Const,3333}
symtab[999]:{a,S_Const,{1111,2222,3333}}
Thus, remembering to read backwards, you get a,d,c,b. Of course in
this example, it is only "a" which is out of order; the first time
I noticed anything like this it seemed to be well scrambled.
The point I would make here is either just accept they are out of
order, or solve the problem in CDmessage, not in Phix. Another one
you may get is eg {file:line\n"...+..."\n ^ sq_add assumed}, ie
the message is three lines, and Edita copes poorly with that, again
something probably best solved in CDmessage, or possibly F12().
Update 29/1: changed F12 to skip lines it does not understand;
naturally this may not be the perfect solution.
You may also want to see the new peama.ew, and the modifications to
pmsgs.e in Phics but as above probably only for fairly minor fixes.
Note that if lang\elng_ENG[or whatever].txt has anything other than
"Edita"="Edita", then you'll only get warnings etc on the console
window, not in Edita's message area.
Alt-F12 jumps to the source/line at the top of the message area. It
also quietly "block-selects" that line for deletion the next time
you press Alt-F12. Lastly, Ctrl-Alt-F12 clears the message area.
Update 29/1: Ctrl-Alt-F12 now clears and, if the message area
was opened via F5/CDmessage, hides it. You can of course hide
the message area without clearing it with a Ctrl-M.
These modifications are designed to be most useful when hacking a
large program down to something small enough to debug, especially
for example when it's a nastghly low-level bug in the compiler!
31/12/09 Changed "UNDEFINED" colour on tabs from COLOR_MENU to COLOR_BTNFACE
since that was much more obviously wrong on Windows XP. After some
experimentation with XP-style tabs I added "Owner Drawn Tabs" to
Options/Display, default True. Unchecking this gives you the new
XP-style tabs, with the following problems:
* Coloured backgrounds and text are NOT supported; the right,
or do I mean ONLY, way to overcome this would be to implement
ImageLists and have appropriate icons on the tabs instead.
That may take me quite some time, unfortunately. To repeat
myself: Do NOT try to put custom colors on an XP-themed tab.
* Tabs at bottom of screen are the same way up and look silly.
This is of course a windows XP problem and probably different
in Vista/Windows 7 and bound to change again in Windows 8,
which is further ammunition for the "use icons" argument.
* Of course, you [may] need a manifest file to see anything
even mildly interesting.....
I also made a minor improvement to the appearance/position of
(owner-drawn) coloured tabs at the bottom of the screen.
Update 31/1: setSaveIcon() in edita.exw should not call
setTextColour() unless isTabsOwnerDrawn is True, otherwise
it causes a partial redraw as soon as you change text, ie
the whole screen gets cleared but edita only redraws the
lines that have been altered.
01/02/10 Minor problem in eaclip.ew: getTextFromClipboard() assumed that
any '\r' found were part of a "\r\n" pair; should the clipboard
actually end with a \r it crashed with "slice ends past end of
sequence". (Triggered by a bug in another clipboard function in
a different application.) It now takes more care.
15/02/10 Added Edit\Case\Show as Binary (Ctrl B) to go with Ctrl H (Hex)
and Ctrl K (Decimal). Note that "0b01010" format is supported by
Phix, whereas RDS Eu gives a compilation error.
24/02/10 Bugfix: PageUp inoperative on a long word-wrapped top line.
Occurred when examining a .css file I had downloaded (17K all on
one line). Wordwrap, page down was fine but then pageup did nowt.
24/02/10 Improved status bar hints when perusing the Help menu. Also did a
little bit of cleanup, eg replacing [5] with [TB_mid], defined as
a new constant.
25/02/10 Rewrote string handling in rebuildbCfwd in easynclr.e to more
closely match that of syntaxColour(). Prompted by a list.asm
with wrong colours that corrected themselves when cursoring up
to a line with '\' in it (similar thing to 30/11/09 entry).
28/02/10 Fixed a problem in Macro management where it refused to parse
a literal integer, making permanent setup impossible.
06/03/10 Allowed Ctrl V/X/Z to work on the message area (Ctrl C
already worked) and passed other messages through to Main.
This, in particular, now allows Ctrl M to close/hide the
message area when the cursor was over it. Wasted some time
trying to get Ctrl A (for select all) to work, ditto Ctrl Y,
before I realised they do nowt on a standard MLE anyway.
08/03/10 Advisory: HTML block comments are denoted by <!-- and -->.
PHP block comments, within a block, are denoted by
'/*' and '*/'. Nesting of block comments has never worked very
well, and as a .php file can have TWO types of block comments,
at least one of them is going to work even less well. For now,
'*/' is ONLY recognised in column 1. Anyone who fancies giving
block comment handling in easynclr.e a major overhaul is more
than welcome to it. ;-)
Version 0.3.1
=============
05/06/07 Bugfix. Exit full screen mode was not restoring the screen properly.
Bugfix. Ctrl Shift F2 was not removing any bookmarks, let alone all.
Bugfix. Common code analysis caused ioob in adjustLine.
Bugfix. Ctrl Z after Find in files caused undo error message:
Standardized the code in eacca.e, eafif.ew, & eaxutil.ew
07/06/07 Bugfix. Insert/delete line updating end of folds incorrectly.
08/06/07 Added code for <br>, <meta>, <hr> tags, and <li> without a closing
</li> to the Strip Html function.
10/06/07 Rewrote the Strip Html function, now approx 2.5 times faster (can still
take a while on large files though), and made Copy with Html convert
"&<>" to "&<>".
11/06/07 Bugfix. Ctrl PageUp/Down "over" an "[untitled]" filetab would set the
filetab to "1". Jumping the '1' back "over" another file would seem to
rename it as "[untitled]". Been around a while that one, just took me
sweet time to get round to locating it (quite trivial, in the end).
19/06/07 Completed the tab colour part of new Options/File Extensions.
The "Run With" part is not yet used.
19/06/07 New routines added to arwen: setBackColour, getBackColour, plus the
changes mentioned on EUforum to drawTabItems().
Also added a new routine fixWindow() which removes the minimise and
maximise buttons on the titlebar, and stops cursor over border from
changing to resize_drag cursors. Since Windows prevents or at least
just ignores the dynamic removal of SBARS_SIZEGRIP on StatusBar
controls, a create(StatusBar, ... {x,x,0}) statement omits it, ie
if sequence(style) and length(style)=3 and style[3]=0 then
dwStyle -= and_bits(dwStyle,SBARS_SIZEGRIP)
end if.
(I would have prefered fixWindow(SB), but sadly not to be...)
20/06/07 Added Alt Shift M to toggle multi line tabbar.
22/06/07 Almost complete rewrite of F5 handling to use the new Options/File
Extensions info. If F5 cannot build a suitable command string, then
instead of "unrecognised file extension" it now opens the Ctrl F5
window. Capture console output has changed significantly; see the
Help on the Ctrl F5 window. Doubtlessly introduced several bugs.
23/06/07 Bugfix: Alt Shift M trashing caret.
Bugfix: Ctrl Home and End now jump to routine start/end in F11 mode.
26/06/07 Completed hlp and chm integration/configuration.
In short, a bunch of .txt files in Edita\help allow say:
WM_COMMAND -> win32.hlp
db_open -> euphoria.chm
getFileExtension ->edita.edb
createEx -> encyeu.hlp
For more details see
http://palacebuilders.pwp.blueyonder.co.uk/docs/manual.htm#UDH
29/06/07 Allowed Alt keys to be specified on the Project/Directory/Recovery
tabs of the filepanel (in the elng_XXX.txt file). In English, Alt J/D/R
select tabs when the filepanel is visible. The Alt U/I/L and W of the
case conversion (see Edit/Case) and Wordwrap keys are now collected
from the elng_XXX.txt file rather than hard-coded.