Hi,

On Wed, 24 Jan 2007 09:40:20 +0100, Jean-Christian de Rivaz wrote:
> Programing directly on the device is interresting. Maybe porting TCC 
> Tiny C Compiler http://fabrice.bellard.free.fr/tcc/ is appropriate. I 
> use it all the time to do small applications on my desktop computer. 
> It's blazing fast and allow to use C file as you use script. It is not 
> fully compatible with GCC, but far enough for everyday use to me.

Sounds nice...

> But I must say that the first thing that prevent to use the device to do 
> programm is the lack of a good editor adatpted to it. 

Slightly off-topic and maybe? a little bit flamebait, but I have never found an 
editor adapted for programming that wasn't a pain to use in UN*X.

I'd like to know one... (certainly of all the editors there are for UN*X, there 
should be one that fits requirement below?)

Of the top of my head it should be able to do:
- Unicode (including double-width characters)
- non-variable width fonts (having a variable width font in any kind of entry 
field is an accident waiting to happen)
- undo
- virtual word wrapping (and I do mean _words_, not wrapping individual 
characters, like emacs does the latter)
- If the new line after virtual word wrapping is still too long, then insert a 
virtual linebreak inside it anyway, until it's fitting into the width of the 
client area
- syntax highlighting (a simple finite state machine dumpfile is enough, ala 
"joe's own editor")
- search / replace without 36 random reserved characters (while regexps are 
nice, being _forced_ to use them is a pain, especially when searching & 
replacing in a text that is itself a regexp ;))
- command line option to jump to line/column number on load
- command line option for file format (implying config for syntax highlighter, 
argv[] of tools for it (intellisense, indexer, debugger, ...), ...)
- interface for filling extra columns like:
  - line number
  - breakpoint (modifyable)
  - misc user-defined flag
  - line currently debugging on
  - (subversion) blame annotation
  - (subversion) line last changed on date
  - line the user is currently on
  - line the other people viewing this file are currently on
  - and so on...
- folding of blocks
- virtual concatenation of files (I'd really prefer the _filesystem_ to support 
that, but...)
- every time someone writes "." and then pauses for 1 second, call external 
tool (with all the text on stdin?)  (Intellisense :))
- every time I press the Newline key in order to create a new line, repeat the 
leading whitespace from the line I came from on the new line (and I mean, 
exactly, not expanding tabs, not grouping spaces into tabs, not trying to 
backstab me, ...)
- keep the file open while editing, so it shows up inside /proc/<pid>/fd/ (or 
lsof). No really, nobody's gonna die of that one file descriptor.
- double-clicking on a word selects it. A word is delimited by one of " )}]>". 
If one really must make it more complex, ignore (only) trailing punctuation in 
that selection.

User interface:
- no (control-..., whatever) key combinations for essential stuff
- no mode-change keys (that means you, vi) (having to change mode 5 times or 
more in 1 minute is too much) (that does include not having "stuck" keys like 
Ctrl-K)
- have function keys that actually do something (and I do mean like Save, 
Search, ... and not inserting gibberish into the text ;))
- being able to move whereever I want on a line, also within the empty (*cough* 
"non-existant") parts to the right
- Ctrl+Click on a word -> call a tool, passing the word, file and position
- don't destroy the text buffer when the window is resized (some versions of 
emacs did that)

Nice to have but not essential:
- autosave
- backup files (I'd really prefer the _filesystem_ to support that, but...)
- session saving support (remote saving, like the desktop saying "save all now" 
to all applications so that some "make" process uses the new version of the 
edited files)
- usable without X/framebuffer/graphics terminal

_Not_ to have:
- tabs -> the window manager, not the application, manages windows
- multiple buffers -> the process manager, not the application, manages 
processes
- single instance optimization -> would mess up automated tool firing up an 
editor to confirm something (that means you, gedit)
- integrated object browser, cross referencer, spell checker, project manager, 
build system, word counter, program to calculate the answer to the life, 
universe and everything ...  (can just do that using another tool :))

> The Note application is unusable to do code and editor in xterm are very 
> annoying because there heavly use CTRL ou ESC that are not easly to do on the 
> device.

Or make any sense to do on a desktop PC, for that matter ;)

Sorry for the rant... :)

No really, if anyone knew an editor that fulfills most of these criteria, I'd 
like to hear about it.
(then I could stop writing the one based to GtkTreeView I started but never 
seem to finish)

Hm, maybe with a little evil hacking I can get GtkTextView to support most of 
that... I wonder... (the folding of blocks is something that will hurt to 
implement, though...)

cheers,
  Danny

_______________________________________________
maemo-users mailing list
[email protected]
https://maemo.org/mailman/listinfo/maemo-users

Reply via email to