[ANN] aeditor 1.7

S

Simon Strandgaard

AEditor is an uborcool programmer's editor, written entirely in Ruby
and very easy to extend with your own customizations.

screenshots:
http://aeditor.rubyforge.org/wiki/wiki.pl?HomePage

install guide + download:
http://raa.ruby-lang.org/project/aeditor/


Contact me if you want to volunteer.



Changes since 1.6

1) ruby syntax coloring has been improved
it can now deal with strings,literals,regexp that spans over
multiple lines. If brackets has been used for literals, then
it count bracket-pairs and ignores escaped brackets.
http://aeditor.rubyforge.org/wiki/wiki.pl?RubyLexer


2) c++ syntax coloring
http://aeditor.rubyforge.org/aeditor_shots/029.png
http://aeditor.rubyforge.org/aeditor_shots/027.png


3) delete key.


4) immediate update.. earlier if there were incoming event
then no repaint occured, which could be frustrating if
you held down a key.


Thanks for all the feedback I have gotten. Keep it coming ;-)



AEditor 1.7 features

aeditor --selftest # -> 421 tests, 1447 assertions, 0 failures, 0 errors
syntax coloring for: ruby, c++.
multi buffers
option for autoindent
option for skipping tabs or moving through tabs
option for tabsize
configuration file
easy to make custom themes
ruby license
platform independent: works on unix, mac and win.


AEditor 1.7 uses these keybindings

CURSOR

CTRL-G Goto line
CTRL-M Jump to matching parentesis
CTRL-Left Prev word
CTRL-Right Next word
CTRL-PgUp Goto Top
CTRL-PgDn Goto Bottom
F4 Incremental centering
Left Move left
Right Move right
Up Move up
Down Move down
PgUp Move a page up
PgDn Move a page down
Home Move to indentation point / move to line begin
End Move to line end


EDIT

Backspace Remove left letter
Delete Remove right letter
Enter Break line
Tab Indent line
SHIFT-Left Unindent line / Unindent selection
SHIFT-Right Indent line / Indent selection
SHIFT-Up Exchange with line above
SHIFT-Down Exchange with line below
F5 Selection on/off (turn off copies to clipboard)
F6 Paste from clipboard
F7 Cut selection
F10 Record/Stop
F11 Play Macro


SEARCH

CTRL-F Find text
CTRL-R Replace text
F3 Repeat search
F9 Jump to next bookmark
CTRL-B Insert/Remove Bookmark


OTHER

CTRL-Z Undo
CTRL-SHIFT-Z Redo
Esc Return to normal mode (turn off selectionmode)
F1 [ debug - inspect aeditor internals ]


BUFFERS

CTRL-O Open File
CTRL-S Save File
CTRL-1 Switch to 1st buffer
CTRL-2 Switch to 2nd buffer
CTRL-3 Switch to 3rd buffer
F12 Next Buffer
SHIFT-F12 Prev Buffer


VIEW

F8 Fullscreen / Window mode



Open Questions
Q. In which direction should AEditor evolve?
Q. What features is missing so it fits your needs?
Q. Whats wrong with AEditor?


I am very willing to help if you have requests. Thanks.
 
F

Florian Gross

Simon said:
Open Questions
Q. In which direction should AEditor evolve?

Oh, it should be the most powerful Ruby IDE of course.
Q. What features is missing so it fits your needs?

The frequently mentioned code-structure tree and a tabs-like front end
for buffers.
I am very willing to help if you have requests. Thanks.

Thanks for providing something great and for listening to feedback. :)

Regards,
Florian Gross
 
T

T. Onoma

Tab           Indent line
 SHIFT-Left    Unindent line / Unindent selection
 SHIFT-Right   Indent line / Indent selection
 SHIFT-Up      Exchange with line above
 SHIFT-Down    Exchange with line below

I want to give her a go, but until I can do this I just cant', my habits are
at this point just too strong.

Tab           Indent line / Indent selection
 SHIFT-Tab Unindent line / Unindent selection
SHIFT-Left    Highlight Selection
 SHIFT-Right   "
 SHIFT-Up      "
 SHIFT-Down    "
CTRL-C Copy Selection to Buffer
CTRL-X Cut Selection to Buffer
CTRL-P Paste Buffer

Could it be a priority?
Thanks,
Tom

P.S. How does editing Ruby code in aeditor compare too say freeride's IDE?
I've been thinking about giving it a try too.
 
L

Lothar Scholz

Hello T.,

TO> CTRL-P Paste Buffer

In which editor do you find this strange key shortcut ?
Or is it a typo ?

TO> P.S. How does editing Ruby code in aeditor compare too say freeride's IDE?
TO> I've been thinking about giving it a try too.

I think that there aren't so many different ways to edit a text. The
editor widget is one of the smallest part of an IDE.
 
T

T. Onoma

Hello T.,

TO> CTRL-P Paste Buffer

In which editor do you find this strange key shortcut ?
Or is it a typo ?

Typo, Ctrl-V. Sorry.
TO> P.S. How does editing Ruby code in aeditor compare too say freeride's
IDE? TO> I've been thinking about giving it a try too.

I think that there aren't so many different ways to edit a text. The
editor widget is one of the smallest part of an IDE.

Good point.
 
S

Simon Strandgaard

Florian said:
Oh, it should be the most powerful Ruby IDE of course.

I maybe make an attempt to embed aeditor into freeride.
I don't have any plans to turn the editor into an standalone IDE.
However I plan to make the configuration file so flexible that
many ide like features can be used.

possible hooks:
* on_help(&block)
which you can bind to RI, when you are in
ruby mode.. so that pressing F1 provides help.

* on_execute(&block)
which runs the current buffer.

maybe I make some sort of project manager.. any volunteers for
this task? ;-)


The frequently mentioned code-structure tree and a tabs-like front end
for buffers.

tabs showing the open buffer.. agree that would be good


the code-structure tree in the sidebar is a feature I think
which belong in the configuration file. Maybe a hook ala

on_text_change do |context|
name_position_pairs = extract_positions_via_ripper(context.text)
context.tree.reload(name_position_pairs)
end

Suggestions are welcome.

Thanks for providing something great and for listening to feedback. :)

Thanks for some good requests.
 
S

Simon Strandgaard

T. Onoma wrote:
[snip]
Tab           Indent line / Indent selection
SHIFT-Tab Unindent line / Unindent selection
SHIFT-Left    Highlight Selection
SHIFT-Right   "
SHIFT-Up      "
SHIFT-Down    "
CTRL-C Copy Selection to Buffer
CTRL-X Cut Selection to Buffer
CTRL-P Paste Buffer

Could it be a priority?

CUA bindings is a priority.. I hope to implement it with the next version.
Thanks for your request.

P.S. How does editing Ruby code in aeditor compare too say freeride's IDE?
I've been thinking about giving it a try too.

I have little experience with FreeRide.. I am that kind of type who avoid
IDE's.. I think FreeRide is good.. Im just interested in a good editor.
Two different goals.

Maybe I embed aeditor into FreeRide.. that could be interesting.
This thought has been circulating around in my brain for quite some time
now.
 
E

Edgardo Hames

This, BTW, is just my two cents. I have nothing but respect for all of
the IDE and editor projects. I just don't agree that the editor is "one
of the smallest parts" of an IDE.

I realize I may not be typical, but on any given day I will probably
edit files of all of these types:

ruby
verilog
c++
tcl
text
xml
bash
makefiles

Less frequently, I can add perl, scheme, DEF, LEF, html, C, and Python.

I don't want to change editors for all of these tasks. So my editor
needs to understand all of them. The editor also needs to be powerful
(I can't imagine editing XML with nothing but CUA type operations, for
example).

Well, Eclipse can suit your needs, then. It fits all the editors in
the same IDE.
Except for toolbars or key-bindings, it's pretty much transparent
which editor it is using. Perhaps, the text editor is not "one of the
smallest" parts of and IDE but it surely needs not to be tied to it.

Regards,
Ed
 
L

Lothar Scholz

Hello Edgardo,

EH> Well, Eclipse can suit your needs, then. It fits all the editors in
EH> the same IDE.
EH> Except for toolbars or key-bindings, it's pretty much transparent
EH> which editor it is using. Perhaps, the text editor is not "one of the
EH> smallest" parts of and IDE but it surely needs not to be tied to it.

Editor != Editor Widget

I meant the text editing widget is one of the smallest parts (Lines Of
Code) but one of the most important. Even with a finished AEditor
widget you are miles away from it.
 
S

Simon Strandgaard

EH> Well, Eclipse can suit your needs, then. It fits all the editors in
EH> the same IDE.
EH> Except for toolbars or key-bindings, it's pretty much transparent
EH> which editor it is using. Perhaps, the text editor is not "one of the
EH> smallest" parts of and IDE but it surely needs not to be tied to it.

Editor != Editor Widget

I meant the text editing widget is one of the smallest parts (Lines Of
Code) but one of the most important. Even with a finished AEditor
widget you are miles away from it.

Agree lines of code in AEditor is not impressive.

It has taken me very long time to reach this point, where I can edit with my
own editor. The first experimental versions which I wrote in C++ could show
the text and was very poor at dealing with edit operations..
It was more an viewer than an editor.

Even though its few lines of code.. its not something that one can write in a
weekend. Lots of things must be considered and analysed carefully.
1) finding an appropriate undo/redo/macro system took quite some time.
2) figuring out how to support folding took forever.
3) syntaxcoloring+accelerated scrolling requires careful management of 4
layers of caching.
4) editing strategies, such as if the cursor should skip tabs or move through
tabs, supporing different indentsize and tabsize... (took lots of time).
5) made regexp engine that can do multiline selection and skip over foldings
and search through rectangular selections.. and deal with multiple encodings.

This is just some of the things that has taken _long_ time, even though its
relative few lines of code.


I don't like your sentence "One of the smallest parts". I have not insulted
your IDE.. why Lothar?
 
L

Lothar Scholz

Hello Simon,


SS> Agree lines of code in AEditor is not impressive.

SS> It has taken me very long time to reach this point, where I can edit with my
SS> own editor. The first experimental versions which I wrote in C++ could show
SS> the text and was very poor at dealing with edit operations..
SS> It was more an viewer than an editor.

SS> Even though its few lines of code.. its not something that one can write in a
SS> weekend. Lots of things must be considered and analysed carefully.
SS> 1) finding an appropriate undo/redo/macro system took quite some time.
SS> 2) figuring out how to support folding took forever.
SS> 3) syntaxcoloring+accelerated scrolling requires careful management of 4
SS> layers of caching.
SS> 4) editing strategies, such as if the cursor should skip tabs or move through
SS> tabs, supporing different indentsize and tabsize... (took lots of time).
SS> 5) made regexp engine that can do multiline selection and skip over foldings
SS> and search through rectangular selections.. and deal with multiple encodings.

SS> This is just some of the things that has taken _long_ time, even though its
SS> relative few lines of code.


SS> I don't like your sentence "One of the smallest parts". I have not insulted
SS> your IDE.. why Lothar?

It was just from my 'wc' 9,945 lines of code (at the moment) out of
total 210,035 lines. Only my diff frontend has less code. Maybe not
fair because i don't calculate the concrete syntax highlighters as
'editor' parts only the core highlighting engine and i don't support
line folding at the moment.

But you are right it is a lot of work and i guess that nobody can do
it right the first time.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,767
Messages
2,569,570
Members
45,045
Latest member
DRCM

Latest Threads

Top