Worklog for Nebula

Worklog 1

Return to Worklogs

Blue - Day 2(Posted 2004-03-08)


Blitzshowcase Link : http://www.blitzcoder.com/cgi-bin/showcase/showcase_showentry.pl?id=nebula03092004060732&comments=no

Its taken years of anoyance for me to take the dive into raw editor coding. Every time I code I think hey if I can do this then it can safe me precious time. Like when editing blocks of code would it not be useful to have a selection method where one can select just that block of code or a part of it in a vertical selection. And when using language specific value like True would a simple icon next to it not be a useful way of switching to false.

Project goal :
Atm I plan to taylor it for code editing in Blitz+. Config/ini files should make it good for freeform editing. Emulating rtf files I have considered
but it would be a little to hard without the specs.

Status :
The initial code I had yesterday was a mess but its getting more modularized. I plan to create a core set of functions for adjusting the internal mechanics and a top user level where it will be safe to work with for regular users.

Atm I have no idea how the editor part can be integrated into a regular application. It should be easy enough(I hope)

Problems :
Data corruptions. Having text get corrupted is my main concern. No save and enter atm until I figure out a fast waterproof method of doing this.

Tech talk :
The editor itself is located on a canvas in a window. This window is then parented to the host window and this is parented to the desktop. This should make having multiple edit windows simple.
The array that holds all the lines and its data still is being expanded. A group of constants point to the data so its easy to shrink and expand it.

For line splitting (enter) I still need to think of a good and easy method of moving text. A single enter in the beginning of a 3 mb file with crappy code would be a huge time loss. Atm I am thinking of creating a pointer system but it would be messy I believe. I have though of adding a poor mans threading method that would sort the data for x millisecs in the main loop but I am not sure if this would work. Another method I have been considering is sorting the data on forehand and updating this with changes.

Multi line tabbing for huge blocks of text is also slow when updated directly. Yet again still looking for the most simple solution.

Fun stuff :
Have you ever blasted your code into pieces? Today I got the idea of creating a tiling map of the text characters and having a sprite visit on those 'bored now' times. Blast away your bugs without having to worry that your code gets destroyed.

Planned Additions :

; Special Edit (vertical Selection)
; Shift + Tab
; Internal Tab handling
; Multiple Line Select
; Tab Multiple Lines
; Shift + Tab multiple Lines + optimalization
; Ctrl + C (Multi line)
; Ctrl + V (Multi line)
; Ctrl + X (Single Line/Multi line)
; Italic/Bold/Underline
; Enter + Splitline
; Mouse to Character collision
; Mouse Selection Automation (double click ect)
; Text Folding
; Folding interface + Hotkeys
; Colored Text
; Inline Icons
; Popup menu
; Auto Completion (list or shaded preview - double click ctrl)
; Current Line expand to Visual console (inscreen visual menu)
; Optional Horizontal and Vertical Scrollbars
; Data structure optimalization
; Config file based Parsing system
; Save Text
; Sorting routines
; Find/Replace core routines
; Double click keys (Ctrl/shift/Alt)
; Font support
; Dynamic multiple font support
; Inline Images or Ontop Images
; Edit Statistics
; Text Statistics
; Image Buffering

Nebula

All typing errors reserved


---------
Desktop : AMD Athlon 64 3400Ghz 200GB HD 1GB DDR ATI RADEON X300SE HM 256MB Win XP MCE2005 Spyc@m M300 Voice
Notepad : Celeron M 410 1.46Ghz 533 Mhz Fsb Mobile Intel 940Gml Express 60GB
HDD 512MB DDR2 / www.cromdesign.nl