Early ETScript 4 preview!


(Flippy) #1

Hi,

I am currently working on a new version of ETScript, the W:ET Script advanced text editor.
I have given up on improving ETScript 3 because after gaining some more knowledge in programming, I now see that my coding practice was simply too bad to improve upon… Adding new features was becoming harder and harder because nothing was really compatible with eachother… Basically, it became too much work :slight_smile:

So I decided to start from scratch, this time using a pretty good set of control components (pretty expensive too, but I was lucky enough to get them from work :wink:) which allows me to do sooo much more with sooo much less coding!

I am pretty far along trying to get all the features from ETScript 3 to work, although there is still a whole lot of work to be done. Don’t expect a release any time soon.

Besides trying to recreate the ETScript 3 features, these components also allow me to create many new features which can also be seen in the screenshots below:

[ul]
[li]Tabbed Multi-Document Interface
[/li]Open many files simultaneously, grouping them into vertical or horizontal groups (or both). You can drag files from one group to another. You can even scroll files simultaneously.


[li]Microsoft Office 2007 skin style
[/li]The style of the entire application resembles the blue Office 2007 style. I might even add a fully functional Ribbon bar (which is just a click of a button for me) but I didn’t think it was very practical at the moment (not enough tools yet).
liDockable Task Panes such as the Script Reference and Error List.
[/li]Move them around in separate windows or dock them anywhere you want, using helpful ‘docking areas’ to make docking easy. You can even drop the Task Panes inside the file tab bar, next to all your files.

[li]New Find & Replace dialog
[/li]You now have the option to use Regular Expressions (RegEx) in your search terms. A helpful menu shows a frequently used selection of RegEx commands.

[li]New Auto-Backup Manager and improved Auto-Backup system
[/li]Auto-Backup system now handles errors better and is better in general. I also designed a new Auto-Backup Manager that is less cluttered with the same functionality.

[li]Improved Menu / Tool bars
[/li]Menu and Tool bars are now 100% customizable. You can drag them to other locations (even undock them) and you can choose which buttons and menus to show. You can also change some options such as the ‘drop down animation’.

[li]And much more to come…
[/li][/ul]

I probably forgot quite a few new things, but these are the best examples so far.

(See next post)


(Flippy) #2

Next, the single most advanced feature I hope to put in ETScript 4 is a very advanced text editor. This editor behaves exactly like the editor in Microsoft Visual Studio and will have the following features:

[LIST][li]Syntax Highlighting (Fast)
[/li][li]Collapsible code regions
[/li]Collapse code blocks (script blocks, events, etc) into a single line to hide them. Click the [+] sign in the side-bar to show them again. You can also create ‘regions’ that you can hide/show. This way you can create a region for the tank, one region for the truck, one region for the game_manager, etc!
[li]Changed code indicator
[/li]The sidebar also indicates (in yellow) the lines that have changed since you last saved the file. Lines in green are already saved. This way you can see quickly which changes you made and where.
[li]Intellisense & AutoComplete
[/li]Works the same as in ETScript3: shows a list of possible keywords you are typing, including a short usage and description text. Press enter to AutoComplete the selected keyword. This way you can write your script very quickly and you will never have to search for the exact spelling of a keyword again!

Screenshot (not in ETScript 4 yet, it’s not yet implemented, but I hope it will be soon!)

In conclusion, ETScript 4 is already very stable, and I just wanted to show you some nice screenshots and a preview of what is coming :cool:


(Miki) #3

Flippy, that looks nice!
I’m afraid that its in VB.NET? :slight_smile:

Can’t wait till its done :slight_smile:


(Pytox) #4

Nice stuff! Seems very interesting :slight_smile:


(th0rn3) #5

I became a fan of ETScript since the 2nd release (never saw first one :rolleyes: ). Release this version faster!


(yuanfenya) #6

A Smart Housewife. A smart housewife was told that there was a kind of stove which would only consume half of the coal she was burning. She was very excited, and said: "That’ll be terrific! Since one stove can save half of the coal, if I buy two, no coal will be needed!"Although the world is full of suffering, it is full also of the overcoming of it. (Hellen Keller, American writer)More Games,joke,Lineage 2 adena and famous. Click http://www.ygscn.net You will get more.


(Flippy) #7

Thanks for the comments. Yes it is written in VB.NET.

I have a few updates to tell you about. I renamed a few things to make them more clear also:

[ul][li]Syntax Highlighting is now working again:[/li]super fast, no delays even with large files.

[li]Together with Syntax Highlighting now also brace highlighting:[/li]matching braces belonging to the current Class or Event are highlighted in gray.

[li]Added two comboboxes at the top of every code text.[/li]The left most combobox will display all the Class names (such as ‘game_manager’, and entity names). Selecting one will jump the cursor to that Class block.
The right most combobox displays all the Event names (such as triggers and spawn events) in the selected Class block. Again, selecting jumps to the selected Event.

[li]New Bookmarks and (together with bookmarks) shortcuts:[/li](Ctrl+K, Ctrl+K) adds or removes a Bookmark to the current location
(Ctrl+K, N) jumps to the next Bookmark
(Ctrl+K, P) jumps to the previous Bookmark
(Ctrl+K, Ctrl+C) comments the selected text
(Ctrl+K, Ctrl+U) uncomments the selected text
These shortcuts are designed to match the shortcuts of popular Microsoft development environments (such as Visual Studio, the one I wrote this program in).

[li]Revert to Backup function:[/li]Allows you to select a Backup of the current file to revert to. Optionally, you can view the differences in the current file and the selected backup in a side-by-side analysis, where two text editors highlight the differences between the two.
(Unfortunately, this is not implemented fully yet, so no screenshot at the moment)
[li]Split document:[/li]By dragging the (barely visible) thumb button at the top of the horizontal scrollbar, you can split the current document into two views, allowing you to edit the same document in multiple places in a single window.
[li]Added a File Browser that shows all the script files in your maps directory, allowing you to open, rename or delete them from within ETScript.[/li][li]Added the Accum List to the Task Pane to the right. It lists all used globalaccums and all local accums within the selected class as in ETScript 3.[/li][li]The Task Pane now holds each item (Keywords (= Script reference), File Browser and Accum List by default, might be more to come, and you can add the Error List if you want) in a tabbed manner as can be seen in the screenshot. You can also drag individual tabs out again and make that window into a floating window, a separate docked window, or whatever you like best. I will probably make a video of this some time soon because it cannot really be explained in words lol.[/li][/ul]

Two new screenshots:


I’m still thinking of more and more functions to add, and it’s still not nearly finished. As you can see, the ‘operators’ (trigger_if_equal, abort_if_equal etc) are not colored yet; this is a weird issue I have not been able to solve, but I will! Furthermore, I still need to figure out the best way to save the layout of the Task Pane and toolbars because they are completely customizable. The customization would be useless if it would revert back to the default every time you start ETScript, so I need to save them somehow…
I am also working on code outlining (the [+] and [-] buttons that allow you to expand and collapse blocks of code) but it was harder than I expected since I have to calculate the position of each outline manually. I found one way to do it but it was too slow to be useful so I left it out for now.

So hang in there!


(aaa3) #8

lol this is srsly getting nice… if i ever trying to script again this is the 1st version of etscript i would definitely give a try instead of simple notepadding…
irresistable :stuck_out_tongue:


(Pegazus) #9

Hmm, now i am convinved. If this now gets released i am going to download it, will surely help me on next script phases.


Can’t wait (thumbs_up)


(th0rn3) #10

you should make a php editor with those good functions, coz’ I’m tired of writing sites in notepad


(Pegazus) #11

Use Adobe Dreamweaver CS3 Has everything you need to make professional sites [HTML, PHP, CSS, Java, and so on]


But to get it, well that’s a different story lol.


(Flippy) #12

I’m glad to hear so much enthusiasm :slight_smile:
I found a way to store the layout of toolbars and dock settings etc; so that is one major hurdle out of the way! I am still working on outlining, but getting closer.
Then there’s still some little things to do. I am expecting a release within two weeks, especially since I have some more free time than usual the coming two weeks. It might be two weeks (or a little more), it might also be a few days, all depends on how quick I find solutions to the little problems left!


(Flippy) #13

Another large hurdle out of the way: the Class and Event selector lists are now fully functional.

Took a long time to get rid of all the little bugs and get it to function properly, but now if you drop the Class list down you get a list of every Class (game_manager, scriptnames etc). Selecting one will jump to that class.
If you drop down the Event list you get a list of every Event in the current Class. Again selecting one will jump to that Event.

If you change the selection (move the cursor) the lists will update to show you the Class and Event you are currently in.

Finally, you can use Ctrl+Pagedown and Ctrl+PageUp to select the next or previous Class respectively.
You can use Alt+Pagedown and Alt+Pageup to select the next or previous Event respectively.

This all makes it very easy to cruise through your script very fast without overlooking things.

I have also made a little progress on the Outlining. It works completely, but it is still too slow at the moment. Every few seconds when the outlining updates there is a half second delay or something, that is unacceptable… If I cannot get it faster (I doubt it to be honest :() or if I cannot get it in a background thread then I am going to leave it out unfortunately :frowning:


(Flippy) #14

I’m making steady progress now.

First of all, the Outlining works again and is fast. However, there seems to be a bug in the control I am using which causes all the collapsed outlined regions to expand again when the text changes; rendering the entire feature useless.

I have added a small Lock/Unlock document feature that makes the current script Read Only; this means you cannot edit any text, but you can still browse through the script as usual.
Useful when you are using an existing script as a reference, this way you can browse through it (even with enter to go to a new line or space etc) you are sure that you cannot accidentally change it.

I am also working on a large feature that reads the BSP file (if present) and makes a list of all the entities in your map that have either a Scriptname or a Targetname (or both). This will allow me to add these Scriptnames and Targetnames to the Intellisense list AND allows me to syntax highlight these names.
This was, in my opinion, one of the most missed features in ETScript3. You could already use Intellisense for all the keywords, but those were usually easy to remember anyway. The problem is usually remembering the names of your entities so you can reference them in your script correctly.
If I get this feature to work correctly you never have to browse back to GTKRadiant to look up entity names as they will appear in your Intellisense list just like keywords.

However it will take a while before this is finished, since Intellisense itself is not really working properly yet. I have decided on a new description layout which shows you the parameters of commands more clearly, but this means I have to rewrite each description, and there’s a lot of commands :wink:

I think that’s about it for new features :slight_smile:


(th0rn3) #15

Awesome application comming out :smiley:


(Flippy) #16

More goodies for you:

Entity import
If available, the BSP file of your current map will be read and all entities will be extracted. All entities containing a scriptname, targetname, or both, will be added to an Entity List, which you can view and also filter from. The type (classname) of the entity is also shown.
Furthermore, the scriptnames and targetnames are added to the Intellisense popup, and they are highlighted in a different color.

Format Document / Selection
This function will format the entire document, or the current selection. It will quickly add the correct number of tabs before each line, making the script easy to read. So if you ever find a messy script with no indentation, or too much indentation, or weird indentation, simply use this function to bring it back to the accepted standard.

Finally I am still working on the Intellisense. It finally works the way I want it to, but I still have loads of commands to add to it. I am working on a new description for each keyword. Instead of a description + explanation of most of the parameters, I now have a separate description for the keyword alone, and a description for each parameter.
This means however that I am finding a few parameters that I don’t actually know what they do…
I am composing a list of questions for you guys which I hope someone can answer, so the descriptions are accurate and correct.

That’s it for now, stay tuned!


(C) #17

OK Flippy…
i like Your tool, way to go…
i never used it though :o i use notepad… but still, well done.


(Flippy) #18

I am uploading a couple of videos to youtube (hope the quality will be good enough) that show most of the major features in action. Hold on a few minutes until they are done, and I will post the links.

I hope the video’s can convince you :wink:

EDIT
Here you go:
http://www.splashdamage.com/forums/showthread.php?p=190020#post190020


(aaa3) #19

[QUOTE=Flippy;190010]Format Document / Selection
[…] It will quickly add the correct number of tabs before each line […] if you ever find a messy script with no indentation, or too much indentation, or weird indentation, simply use this function to bring it back to the accepted standard.
[/QUOTE]
:frowning: :confused: :S
i know i dont have to use it thus my post is useless spam; but i hate tabs (the tab character i mean, not nice identation) and tend to use spaces, even replacing them sometimes. hehe just telling, no way im against implementing it, as its just an opportunity not a necessity…


(Flippy) #20

Then you’ll be glad to hear that you can convert all tabs to spaces with the click of a button :wink:
I’ll also make it into an option to use spaces instead of tabs by default (so pressing tab will insert 4 spaces, instead of a tab).